🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

Nm Parseltongue Python Packaging

by @athola

Python package creation and PyPI distribution via pyproject.toml and entry points

Versionv1.9.16
Downloads1,377
TERMINAL
clawhub install nm-parseltongue-python-packaging

πŸ“– About This Skill


name: python-packaging description: | Python package creation and distribution: pyproject.toml, entry points, PyPI publishing, CI/CD version: 1.9.4 triggers: - python - packaging - pyproject.toml - uv - pip - pypi - distribution metadata: {"openclaw": {"homepage": "https://github.com/athola/claude-night-market/tree/master/plugins/parseltongue", "emoji": "\ud83e\udd9e"}} source: claude-night-market source_plugin: parseltongue

> Night Market Skill β€” ported from claude-night-market/parseltongue. For the full experience with agents, hooks, and commands, install the Claude Code plugin.

Table of Contents

  • Quick Start
  • When to Use
  • Core Decisions
  • 1. Layout Choice
  • 2. Project Structure
  • Detailed Topics
  • Best Practices
  • Exit Criteria
  • Python Packaging

    Modern Python packaging with pyproject.toml, uv, and best practices for distribution.

    Quick Start

    # Create new project with uv
    uv init my-package
    cd my-package

    Add dependencies

    uv add requests click

    Build package

    uv build

    Publish to PyPI

    uv publish
    Verification: Run the command with --help flag to verify availability.

    When To Use

  • Creating distributable Python libraries
  • Building CLI tools
  • Publishing to PyPI
  • Setting up development environments
  • Managing project dependencies
  • When NOT To Use

  • Testing packages - use python-testing
  • instead
  • Optimizing package performance - use python-performance
  • Testing packages - use python-testing
  • instead
  • Optimizing package performance - use python-performance
  • Core Decisions

    1. Layout Choice

    # Source layout (recommended)
    src/my_package/
        __init__.py
        module.py

    Flat layout (simple)

    my_package/ __init__.py module.py
    Verification: Run the command with --help flag to verify availability.

    Source layout benefits:

  • Clear separation of source and tests
  • Prevents accidental imports of uninstalled code
  • Better for packages with complex structure
  • 2. Project Structure

    Minimal Project:

    Verification: Run pytest -v to verify tests pass.
    my-project/
    β”œβ”€β”€ pyproject.toml
    β”œβ”€β”€ README.md
    β”œβ”€β”€ src/
    β”‚   └── my_package/
    β”‚       └── __init__.py
    └── tests/
        └── test_init.py
    
    Verification: Run pytest -v to verify tests pass.

    Complete Project:

    Verification: Run the command with --help flag to verify availability.
    my-project/
    β”œβ”€β”€ pyproject.toml
    β”œβ”€β”€ README.md
    β”œβ”€β”€ LICENSE
    β”œβ”€β”€ .gitignore
    β”œβ”€β”€ src/
    β”‚   └── my_package/
    β”‚       β”œβ”€β”€ __init__.py
    β”‚       β”œβ”€β”€ cli.py
    β”‚       β”œβ”€β”€ core.py
    β”‚       └── utils.py
    β”œβ”€β”€ tests/
    β”‚   β”œβ”€β”€ conftest.py
    β”‚   └── test_core.py
    └── docs/
        └── index.md
    
    Verification: Run pytest -v to verify tests pass.

    Detailed Topics

    See modules for detailed information:

  • uv Workflow - Complete uv commands and troubleshooting
  • pyproject.toml Patterns - Configuration examples for different package types
  • Entry Points - Console scripts, GUI scripts, and plugins
  • CI/CD Integration - GitHub Actions and automated publishing
  • Best Practices

    1. Use source layout for anything beyond simple packages 2. Pin direct dependencies with minimum versions 3. Use optional dependency groups for dev/docs/test 4. Include py.typed for type hint support 5. Add detailed README with usage examples 6. Use semantic versioning (MAJOR.MINOR.PATCH) 7. Test on multiple Python versions before publishing

    Exit Criteria

  • Modern pyproject.toml configuration
  • Clear dependency specification
  • Proper version management
  • Tests included and passing
  • Build process reproducible
  • Publishing pipeline automated
  • ⚑ When to Use

    TriggerAction
    - Building CLI tools
    - Publishing to PyPI
    - Setting up development environments
    - Managing project dependencies

    πŸ’‘ Examples

    # Create new project with uv
    uv init my-package
    cd my-package

    Add dependencies

    uv add requests click

    Build package

    uv build

    Publish to PyPI

    uv publish
    Verification: Run the command with --help flag to verify availability.

    πŸ“‹ Tips & Best Practices

    1. Use source layout for anything beyond simple packages 2. Pin direct dependencies with minimum versions 3. Use optional dependency groups for dev/docs/test 4. Include py.typed for type hint support 5. Add detailed README with usage examples 6. Use semantic versioning (MAJOR.MINOR.PATCH) 7. Test on multiple Python versions before publishing