Skip to content
Development
Skill

/python-packaging

Python package creation and PyPI distribution via pyproject.toml and entry points. Use when publishing a package or setting up build configuration.

From plugin
claude-night-market
337200 skills59 agents162 commands1 MCP
Install
$ npx -y skills add athola/claude-night-market --skill python-packaging --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/python-packaging

Context preview

The summary Claude sees to decide when to auto-load this skill.

Python package creation and PyPI distribution via pyproject.toml and entry points. Use when publishing a package or setting up build configuration.

SKILL.md

python-packaging.SKILL.md
name: python-packaging
description: Python package creation and PyPI distribution via pyproject.toml and entry points. Use when publishing a package or setting up build configuration.
globs: "**/*.py"
alwaysApply: false
category: packaging
tags:
- python
- packaging
- pyproject.toml
- uv
- pip
- pypi
- distribution
tools: []
usage_patterns:
- package-creation
- pypi-publishing
- cli-tool-development
- library-distribution
complexity: beginner
model_hint: fast
estimated_tokens: 200
progressive_loading: true
modules:
- uv-workflow.md
- pyproject-patterns.md
- entry-points.md
- ci-cd-integration.md

Table of Contents

  • [Quick Start](#quick-start)
  • [When to Use](#when-to-use)
  • [Core Decisions](#core-decisions)
  • [1. Layout Choice](#1-layout-choice)
  • [2. Project Structure](#2-project-structure)
  • [Detailed Topics](#detailed-topics)
  • [Best Practices](#best-practices)
  • [Exit Criteria](#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](modules/uv-workflow.md)** - Complete uv commands and troubleshooting
  • **[pyproject.toml Patterns](modules/pyproject-patterns.md)** - Configuration examples for different package types
  • **[Entry Points](modules/entry-points.md)** - Console scripts, GUI scripts, and plugins
  • **[CI/CD Integration](modules/ci-cd-integration.md)** - 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
Read more
Ships withclaude-night-market

A plugin marketplace for Claude Code. Install only the plugins you need to run git workflows, code review, spec-driven development, and autonomous agents from inside your Claude Code session.

Get the whole plugin

Other skills on claude-night-market.