المهارات python-packaging
📦

python-packaging

مخاطر منخفضة ⚙️ الأوامر الخارجية🌐 الوصول إلى الشبكة📁 الوصول إلى نظام الملفات

إنشاء ونشر حزم Python باستخدام PyPI

متاح أيضًا من: wshobson,ActiveInferenceInstitute

يواجه مطورو Python صعوبة في عمليات إنشاء الحزم المعقدة وهياكل المشاريع غير المتسقة. توفر هذه المهارة إرشادات كاملة لإنشاء حزم Python احترافية باستخدام المعايير الحديثة مثل pyproject.toml وsetuptools.

يدعم: Claude Codex Code(CC)
📊 71 كافٍ
1

تنزيل ZIP المهارة

2

رفع في Claude

اذهب إلى Settings → Capabilities → Skills → Upload skill

3

فعّل وابدأ الاستخدام

اختبرها

استخدام "python-packaging". Create a pyproject.toml for a package named 'data-utils' with Click and pandas dependencies, pytest for dev, and a CLI entry point

النتيجة المتوقعة:

pyproject.toml كامل مع تكوين نظام البناء، وبيانات المشروع، والتبعيات مع قيود الإصدار، والتبعيات الاختيارية للنطوير، ونقاط دخول البرامج النصية CLI، وتكوينات الأدوات لـ black وruff وpytest.

استخدام "python-packaging". How do I publish my package to TestPyPI first?

النتيجة المتوقعة:

تعليمات خطوة بخطوة: (1) تثبيت twine، (2) بناء الحزمة باستخدام python -m build، (3) التحقق باستخدام twine check، (4) رفع إلى TestPyPI باستخدام twine upload --repository testpypi، (5) اختبار التثبيت من TestPyPI، (6) النشر إلى PyPI الإنتاجي عند الاست readiness.

التدقيق الأمني

مخاطر منخفضة
v1 • 2/24/2026

This skill consists entirely of markdown documentation teaching Python packaging best practices. Static analyzer flagged 118 patterns (backticks, URLs, config examples) that are documentation content, not executable code. All findings are false positives from code examples in fenced markdown blocks. No actual security risks detected.

2
الملفات التي تم فحصها
909
الأسطر التي تم تحليلها
6
النتائج
1
إجمالي عمليات التدقيق
مشكلات متوسطة المخاطر (1)
Documentation flagged as code execution
Static analyzer detected backtick characters in markdown documentation. These are fenced code block delimiters in documentation, not actual shell execution. The skill contains no executable Python or shell code - only educational content about Python packaging practices.
مشكلات منخفضة المخاطر (2)
Documentation URLs flagged as network activity
Static analyzer detected hardcoded URLs in documentation. These are reference links to PyPI, GitHub, and Python packaging resources - not actual network requests in code.
Configuration examples flagged as sensitive file access
Static analyzer detected .pypirc configuration file references. This is documentation teaching users how to configure PyPI authentication - not unauthorized file access.
تم تدقيقه بواسطة: claude

درجة الجودة

38
الهندسة المعمارية
100
قابلية الصيانة
87
المحتوى
50
المجتمع
81
الأمان
91
الامتثال للمواصفات

ماذا يمكنك بناءه

نشر مكتبة المؤلف

إنشاء مكتبة Python جديدة للتوزيع على PyPI مع هيكل المشروع الصحيح والبيانات الوصفية وسير عمل النشر الآلي.

توزيع أدوات CLI

تعبئة أدوات سطر الأوامر مع نقاط الدخول، مما يجعلها سهلة التثبيت عبر pip بأوامر قابلة للتنفيذ.

إدارة حزم المؤسسات

إعداد فهارس الحزم الخاصة ومساحات الأسماء لتنظيم الكود عبر فرق ومستودعات متعددة.

جرّب هذه الموجهات

إنشاء هيكل حزمة Python أساسي
ساعدني في إنشاء حزمة Python جديدة تسمى 'my-tool' مع تخطيط src، وpyproject.toml باستخدام setuptools، وهيكل وحدة أساسي. أريد تضمين pytest للاختبار.
إضافة نقاط دخول CLI إلى حزمة موجودة
لدي حزمة Python موجودة مع وظائف مساعدة. أرني كيفية إضافة نقاط دخول CLI باستخدام Click بحيث يمكن للمستخدمين تشغيل 'mytool' من سطر الأوامر بعد التثبيت.
تكوين نشر PyPI الآلي
إنشاء سير عمل GitHub Actions الذي يبني وينشر حزمة Python الخاصة بي إلى PyPI عند إنشاء إصدار جديد._INCLUDE خطوات التحقق من الحزم واختبار TestPyPI.
إنشاء هيكل مشروع كامل وتكوينات pyproject.toml.

أفضل الممارسات

  • استخدم تخطيط src/ لمنع الاستيراد العرضي من دليل المصدر غير المثبت
  • حدد جميع البيانات الوصفية في pyproject.toml باتباع PEP 621 للتعبئة الحديثة
  • اختبار تثبيت الحزمة في بيئة نظيفة افتراضية قبل النشر إلى PyPI

تجنب

  • لا تستخدم setup.py كتكوين أساسي - انتقل إلى pyproject.toml
  • تجنب التخطيط المسطح للمكتبات لأنه يسمح بالاستيراد بدون التثبيت
  • لا ترتكب رموز API أو بيانات الاعتماد - استخدم متغيرات البيئة لمصادقة PyPI

الأسئلة المتكررة

ما هو الفرق بين pyproject.toml وsetup.py؟
pyproject.toml هو المعيار الحديث (PEP 518/621) الذي يعلن متطلبات البناء والبيانات الوصفية في ملف واحد. setup.py هو الأسلوب القديم الذي يستخدم كود Python قابل للتنفيذ. يجب على المشاريع الجديدة استخدام pyproject.toml مع خلفية بناء مثل setuptools أو hatchling.
هل يجب أن أنشر على TestPyPI قبل PyPI؟
نعم، اختبر دائماً على TestPyPI أولاً. إنه فهرس منفصل يعكس وظائف PyPI. ارفع حزمتك هناك، وثبتها في بيئة نظيفة، وتحقق من عمل جميع الوظائف، ثم انشر إلى PyPI الحقيقي.
كيف أشمل ملفات البيانات في حزمتي؟
استخدم تكوين package-data في pyproject.toml ضمن [tool.setuptools.package-data]. حدد أنماط مثل '*.json' أو 'templates/*.html'. الوصول إلى الملفات في وقت التشغيل باستخدام importlib.resources.files() لـ Python الحديث.
ما الإصدار الذي يجب أن أبدأ به لإصداري الأول؟
ابدأ بـ 0.1.0 للإصدارات الأولية للإشارة إلى أن الحزمة في مرحلة التطوير المبكر. استخدم الإصدار الدلالي (MAJOR.MINOR.PATCH). انتقل إلى 1.0.0 عندما يكون لديك واجهة برمجة عامة مستقرة لا تريد كسرها.
هل يمكنني إصدار حزمتي تلقائياً من علامات git؟
نعم، استخدم setuptools-scm في build-system.requires الخاص بك. قم بتكوينه في pyproject.toml لقراءة معلومات الإصدار من علامات git. يضمن هذا تطابق الإصدار مع سجل git وإدارة الإصدار الآلي.
كيف أنشئ أداة CLI يمكن للمستخدمين تثبيتها باستخدام pip؟
حدد نقاط الدخول في pyproject.toml ضمن [project.scripts]. قم بتعيين اسم الأمر إلى مسار دالة Python مثل 'mytool = my_package.cli:main'. بعد التثبيت، يمكن للمستخدمين تشغيل 'mytool' من terminal الخاص بهم.

تفاصيل المطور

المؤلف

sickn33

الترخيص

MIT

مرجع

main

بنية الملفات