ASD

Python Packaging

Crea paquetes Python distribuibles con estructura de proyecto adecuada, setup.py/pyproject.toml y publicación en PyPI.

Reemplaza a: setup.py manual, Configuración manual de setup.cfg

Estrellas
38.8k

en todo el repo

Actividad
47

0–100, la ruta de este skill

Actualizado
hace 2 meses

último commit aquí

Commits
1

últimos 90 días

Contexto
983 tok

51 tok en reposo

Paquete
3 archivos

18 KB

Instalar

Funciona con cualquier agente que lea SKILL.md

npx -y skills add wshobson/agents --skill python-packaging --agent claude-code

Se instala solo en este repositorio.

Qué hace

  • Guía la creación de estructura de proyecto Python (source layout o flat layout) con pyproject.toml
  • Configura sistemas de build (setuptools, hatchling, flit, poetry) y metadatos según PEP 517/518/621
  • Explica cómo generar wheels y source distributions y publicarlas en PyPI/TestPyPI o repositorios privados
  • Ayuda a definir entry points para herramientas CLI y dependencias opcionales

Úsalo cuando

  • Crear librerías Python para distribución
  • Construir herramientas de línea de comandos con entry points
  • Publicar paquetes en PyPI o repositorios privados
  • Configurar estructura de proyecto Python o versionar/lanzar paquetes

No lo uses cuando

    Qué lo activa

    Di cualquiera de estas frases y el agente debería cargar este skill.

    • Ayúdame a estructurar mi librería Python para publicarla en PyPI
    • Necesito un pyproject.toml para mi paquete con entry points de CLI
    • Quiero migrar mi setup.py a pyproject.toml

    SKILL.md

    En inglés

    Python Packaging

    Comprehensive guide to creating, structuring, and distributing Python packages using modern packaging tools, pyproject.toml, and publishing to PyPI.

    When to Use This Skill

    • Creating Python libraries for distribution
    • Building command-line tools with entry points
    • Publishing packages to PyPI or private repositories
    • Setting up Python project structure
    • Creating installable packages with dependencies
    • Building wheels and source distributions
    • Versioning and releasing Python packages
    • Creating namespace packages
    • Implementing package metadata and classifiers

    Core Concepts

    1. Package Structure

    • Source layout: src/package_name/ (recommended)
    • Flat layout: package_name/ (simpler but less flexible)
    • Package metadata: pyproject.toml, setup.py, or setup.cfg
    • Distribution formats: wheel (.whl) and source distribution (.tar.gz)

    2. Modern Packaging Standards

    • PEP 517/518: Build system requirements
    • PEP 621: Metadata in pyproject.toml
    • PEP 660: Editable installs
    • pyproject.toml: Single source of configuration

    3. Build Backends

    • setuptools: Traditional, widely used
    • hatchling: Modern, opinionated
    • flit: Lightweight, for pure Python
    • poetry: Dependency management + packaging

    4. Distribution

    • PyPI: Python Package Index (public)
    • TestPyPI: Testing before production
    • Private repositories: JFrog, AWS CodeArtifact, etc.

    Quick Start

    Minimal Package Structure

    my-package/
    ├── pyproject.toml
    ├── README.md
    ├── LICENSE
    ├── src/
    │   └── my_package/
    │       ├── __init__.py
    │       └── module.py
    └── tests/
        └── test_module.py
    

    Minimal pyproject.toml

    [build-system]
    requires = ["setuptools>=61.0"]
    build-backend = "setuptools.build_meta"
    
    [project]
    name = "my-package"
    version = "0.1.0"
    description = "A short description"
    authors = [{name = "Your Name", email = "you@example.com"}]
    readme = "README.md"
    requires-python = ">=3.8"
    dependencies = [
        "requests>=2.28.0",
    ]
    
    [project.optional-dependencies]
    dev = [
        "pytest>=7.0",
        "black>=22.0",
    ]
    

    Package Structure Patterns

    Pattern 1: Source Layout (Recommended)

    my-package/
    ├── pyproject.toml
    ├── README.md
    ├── LICENSE
    ├── .gitignore
    ├── src/
    │   └── my_package/
    │       ├── __init__.py
    │       ├── core.py
    │       ├── utils.py
    │       └── py.typed          # For type hints
    ├── tests/
    │   ├── __init__.py
    │   ├── test_core.py
    │   └── test_utils.py
    └── docs/
        └── index.md
    

    Advantages:

    • Prevents accidentally importing from source
    • Cleaner test imports
    • Better isolation

    pyproject.toml for source layout:

    [tool.setuptools.packages.find]
    where = ["src"]
    

    Pattern 2: Flat Layout

    my-package/
    ├── pyproject.toml
    ├── README.md
    ├── my_package/
    │   ├── __init__.py
    │   └── module.py
    └── tests/
        └── test_module.py
    

    Simpler but:

    • Can import package without installing
    • Less professional for libraries

    Pattern 3: Multi-Package Project

    project/
    ├── pyproject.toml
    ├── packages/
    │   ├── package-a/
    │   │   └── src/
    │   │       └── package_a/
    │   └── package-b/
    │       └── src/
    │           └── package_b/
    └── tests/
    

    Detailed patterns and worked examples

    Detailed pattern documentation lives in references/details.md. Read that file when the navigation tier above is insufficient.

    Reproducido de wshobson/agents bajo licencia MIT. Leer esta página en markdown.

    Archivos

    3 archivos en el paquete. Solo se lee SKILL.md al activarse — las referencias se cargan si el skill decide que las necesita.

    Antes de instalar

    Para casos detallados, consulta el archivo references/details.md incluido en el skill.

    Detalles

    Creador
    wshobson
    Licencia
    MIT
    Recursos incluidos
    referencias
    Repositorio
    wshobson/agents
    Código fuente
    Ver SKILL.md

    Etiquetas

    Más de wshobson/agents

    Este repo incluye 180 skills. Si instalas uno, normalmente ya tienes los demás.

    Úsalo al seleccionar y colocar iconos, imágenes, SVGs, diagramas o infografías de apoyo aprobados en un PPTX editable.

    Costo de contexto al activarse
    344 tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 26 días
    documentos

    Úsalo cuando pidan optimizar un prompt, mejorar su rendimiento, diseñar una plantilla, aplicar chain-of-thought, few-shot prompting o técnicas avanzadas de prompt engineering para producción.

    Costo de contexto al activarse
    1.3k tok
    Tamaño del paquete
    10 archivos
    Última actualización
    el mes pasado
    herramientas desarrollo

    Úsalo al redactar o reparar una especificación JSON con coordenadas explícitas para un PPTX editable.

    Costo de contexto al activarse
    489 tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 26 días
    documentos

    Úsalo para validar o reparar un PPTX editable en cuanto a geometría, accesibilidad, editabilidad nativa, linaje de fuente e integridad del paquete OOXML.

    Costo de contexto al activarse
    409 tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 26 días
    documentos

    Úsalo para analizar un PPTX de referencia en modo solo lectura: estructura, tema, tipografía, ritmo de layout, diagnósticos, catálogos de plantillas derivados o inspección segura del paquete OOXML.

    Costo de contexto al activarse
    689 tok
    Tamaño del paquete
    8 archivos
    Última actualización
    hace 26 días
    documentos

    Úsalo al preparar la narrativa, las fuentes y el contexto de diseño para un nuevo deck PPTX editable.

    Costo de contexto al activarse
    415 tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 26 días
    documentos

    Skills relacionados

    Domina el sistema de tipos avanzado de TypeScript: generics, tipos condicionales, mapped types, template literals y utility types para aplicaciones type-safe.

    Costo de contexto al activarse
    2k tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 2 meses
    herramientas desarrollo

    Patrones de resiliencia en Python: reintentos automáticos, backoff exponencial, timeouts y decoradores tolerantes a fallos para servicios.

    Costo de contexto al activarse
    1.5k tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 2 meses
    herramientas desarrollo

    Organización de proyectos Python, arquitectura de módulos y diseño de APIs públicas con __all__, para nuevos proyectos o reorganización de directorios.

    Costo de contexto al activarse
    1.7k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 6 meses
    herramientas desarrollo