هذا هو قالب CookieCutter لإنشاء مشروع Python ليتم توزيعه في PYPI. ويشمل التكامل مع إجراءات github ، readthedocs.io و coveralls.io.
يتبع هيكل المشروع النمط من مشروع عرض الاعتذار. يتم استخدام الشعر إدارة تغليف الثعبان وتبعيات ، ويتم تنظيم معظم المهام اليومية (مثل اختبارات الوحدة الجارية من سطر الأوامر) من خلال الشعر باستخدام Framework Run-Scriper. يتم فرض معيار الترميز باستخدام الأسود و isort و pylint. تم التحقق من صحة Type Python 3 باستخدام MyPy. سير العمل في إجراءات GitHub عبارة عن مصفوفة تم تنفيذها باستخدام تدفقات GHA-Sharked. هناك أيضًا خطافات مسبقة لإنفاذ اختبارات نمط الكود. يوفر ملف DEVELOPER.md
لاستخدام هذا القالب ، تحتاج إلى تثبيت cookiecutter:
pip install cookiecutter
يعتمد المشروع الناتج على أداة بناء الشعر. تحتاج إلى تثبيت مترجم وشعر Python 3 فقط. الشعر نفسه يعتني بكل شيء آخر. انظر التعليمات.
تفترض عملية المطور الموضحة في ملف DEVELOPER.md الناتج. على Windows ، من المتوقع أن تستخدم محاكي Git Bash المثبت مع GIT لنظام التشغيل Windows.
افتراضيًا ، تم تكوين عملية الإصدار في تدفقات العمل .github/workflows/test-suite.yml لنشر القطع الأثرية عن طريق ربطها بإصدار في مستودع GitHub. (يحتوي ملف DEVELOPER.md الذي تم إنشاؤه على تعليمات.) اختياريًا ، يمكنك أيضًا النشر إلى PYPI. للقيام بذلك ، قم بإنشاء حساب في PYPI لنفسك ، وتسجيل مشروعك. بمجرد وجود المشروع ، انتقل إلى إعدادات حساب PYPI الخاص بك وإنشاء رمز API مع أذونات التحميل للمشروع الجديد. في مستودع github الخاص بك ، أضف سرًا من إجراءات github يسمى PYPI_TOKEN لعقد الرمز المميز. ثم ، اضبط test-suite.yml لتعيين publish-pypi: true .
استخدم cookiecutter لتنفيذ القالب:
cookiecutter gh:pronovic/cookiecutter-pypi
عند المطالبة ، قدم قيمًا لجميع معلمات القالب:
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]:
Slug Project هو اسم الدليل الناتج ، لذلك في هذا المثال ، سيتم إنشاء المشروع في sample-project :
cd sample-project
ثم ، قم بتهيئة مستودع GIT:
git init . && git add . && git commit -m "Initial revision based on pronovic/cookiecutter-pypi"
على افتراض أنك قمت بالفعل بتثبيت poetry (وفقًا للإرشادات) ، يمكنك بدء الأشياء باستخدام البرنامج النصي run . أولاً ، قم بتثبيت التبعيات وقم بإعداد خطافات ما قبل الالتزام:
./run install
أخيرًا ، قم بتشغيل مجموعة الاختبار:
./run suite
على افتراض تمريرات جناح الاختبار ، سيتعين عليك التحقق من poetry.lock .
git add poetry.lock && git commit -m "Add initial poetry.lock" poetry.lock
بعد ذلك ، يمكنك الدفع إلى مستودعك واختبار عملية إجراءات GitHub.
ملاحظة: لمعرفة ما هي الأوامر الأخرى المتاحة ، استخدم
./run --help. راجع ملفDEVELOPER.mdالذي تم إنشاؤه لمزيد من المعلومات حول بيئة التطوير ، بما في ذلك التكامل مع Pycharm ، إلخ.
ستحتاج إلى ضبط .github/workflows/test-suite.yml . يدير سير العمل المقترح مصفوفة على Linux لجميع إصدارات Python المدعومة ، وبناء على Windows و MacOS فقط للحصول على أحدث إصدار من Python. في إجراءات GitHub ، يكون المتسابقون في Linux أسرع وأكثر موثوقية ، لذلك يبدو أن هذه الاستراتيجية تسفر عن أفضل النتائج.