Ini adalah template cookiecutter untuk membuat proyek python yang akan didistribusikan di PYPI. Ini termasuk integrasi dengan tindakan GitHub, readthedocs.io dan coveralls.io.
Struktur proyek mengikuti pola dari proyek demonstrasi permintaan maaf. Puisi digunakan mengelola pengemasan dan dependensi Python, dan sebagian besar tugas sehari-hari (seperti menjalankan tes unit dari baris perintah) diatur melalui puisi menggunakan run-script-script-framework saya. Standar pengkodean ditegakkan menggunakan Black, Isort dan Pylint. Python 3 Type mengisyaratkan divalidasi menggunakan Mypy. Alur kerja Github Action adalah pembuatan matriks yang diimplementasikan menggunakan alur kerja GHA saya. Ada juga kait pra-komit untuk menegakkan pemeriksaan gaya kode. File DEVELOPER.md yang dihasilkan memberikan catatan tentang bagaimana kode disusun, cara mengatur lingkungan pengembangan, dll.
Untuk menggunakan template ini, Anda perlu menginstal cookiecutter:
pip install cookiecutter
Proyek yang dihasilkan tergantung pada alat pembuatan puisi. Anda hanya perlu menginstal interpreter dan puisi Python 3. Puisi itu sendiri mengurus yang lainnya. Lihat instruksinya.
Proses pengembang yang dijelaskan dalam file DEVELOPER.md yang dihasilkan mengasumsikan Anda sedang mengerjakan shell gaya unix, seperti bash. Di Windows, Anda diharapkan menggunakan emulator bash git yang diinstal dengan git untuk windows.
Secara default, proses pelepasan dalam alur .github/workflows/test-suite.yml yang dihasilkan dikonfigurasi untuk menerbitkan artefak dengan menempelkannya pada rilis di repositori GitHub. (File DEVELOPER.md yang dihasilkan berisi instruksi.) Secara opsional, Anda juga dapat menerbitkan ke PYPI. Untuk melakukan ini, buat akun di PYPI sendiri, dan daftarkan proyek Anda. Setelah proyek ada, buka pengaturan akun PYPI Anda dan buat token API dengan izin unggahan untuk proyek baru. Di repositori GitHub Anda, tambahkan rahasia tindakan github yang disebut PYPI_TOKEN untuk memegang token. Kemudian, sesuaikan test-suite.yml untuk mengatur publish-pypi: true .
Gunakan cookiecutter untuk menjalankan template:
cookiecutter gh:pronovic/cookiecutter-pypi
Saat diminta, berikan nilai untuk semua parameter template:
project_slug [sample-project]:
project_name [Sample Project]:
short_description [Short description]:
author_name [First Last]:
author_email [[email protected]]:
github_owner [owner]:
github_repo [samplerepo]:
default_branch [master]:
package [sample]:
python_version [>=3.9,<4]:
black_target ['py39', 'py310']:
copyright_year [2022]:
Proyek Slug adalah nama direktori yang dihasilkan, jadi dalam contoh ini proyek akan dihasilkan dalam sample-project :
cd sample-project
Kemudian, inisialisasi repositori git:
git init . && git add . && git commit -m "Initial revision based on pronovic/cookiecutter-pypi"
Dengan asumsi Anda telah menginstal poetry (per instruksi), Anda dapat memulai dengan menggunakan skrip run . Pertama, instal dependensi dan atur kait pra-komit:
./run install
Akhirnya, jalankan test suite:
./run suite
Dengan asumsi test suite pass, Anda harus memeriksa poetry.lock dengan versi saat ini dari semua dependensi:
git add poetry.lock && git commit -m "Add initial poetry.lock" poetry.lock
Kemudian, Anda dapat mendorong ke repositori Anda dan menguji proses tindakan GitHub.
Catatan: Untuk melihat perintah apa yang tersedia, gunakan
./run --help. Lihat fileDEVELOPER.mdyang dihasilkan untuk informasi lebih lanjut tentang lingkungan pengembangan, termasuk integrasi dengan pycharm, dll.
Anda perlu menyesuaikan secara manual. .github/workflows/test-suite.yml untuk mencerminkan platform dan versi Python yang ingin Anda uji. Alur kerja yang disarankan menjalankan matriks build di Linux untuk semua versi Python yang didukung, dan build di Windows dan MacOS hanya untuk versi Python terbaru. Dalam tindakan GitHub, pelari Linux jauh lebih cepat dan lebih dapat diandalkan, jadi strategi ini tampaknya menghasilkan hasil terbaik.