A utility script for easily switching between local development and published sources for Python packages in your pyproject.toml
.
- Automatically toggles between local development paths and GitHub sources
- Preserves TOML file comments and structure
- Automatically clones repositories when switching to local development
- Supports branch tracking
- Falls back to PyPI metadata if direct GitHub repository is not found
- Integrates with GitHub CLI for username detection
- Creates necessary TOML structure (
tool.uv.sources
) if it doesn't exist - Automatically runs
uv sync --upgrade-package
after successful updates
pip install uv-development-toggle
To toggle a package activemodel:
uv-development-toggle activemodel --local
Then, after you push to a custom branch, reference the branch in your pyproject.toml
:
uv-development-toggle activemodel --published
To revert a package to PyPI:
uv-development-toggle activemodel --pypi
This will:
- Check if the package exists in your
PYTHON_DEVELOPMENT_TOGGLE
directory - If switching to local and the repository doesn't exist, clone it automatically (attempts to determine the repo URL from pypi information)
- Update your
pyproject.toml
with the appropriate source configuration (creating thetool.uv.sources
structure if needed) - Preserve any existing branch information when toggling
- Automatically run
uv sync --upgrade-package <package_name>
to apply the changes
MODULE_NAME
: The name of the Python module to toggle--local
: Force using local development path--published
: Force using published source--pypi
: Revert to default PyPI source
PYTHON_DEVELOPMENT_TOGGLE
: Directory for local development repositories (default: "pypi")