Managing python with uv
Skill narumiruna/skills/skills/python/managing-python-with-uv
npx -y skills add narumiruna/skills --skill managing-python-with-uvAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 8 stars8 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Manage Python projects and standalone scripts with uv, including setup, dependencies, execution, quality gates, locking, builds, and release preparation. Use for `uv run`, `uv add`, inline script metadata, packaging, or an explicitly requested publish workflow.
SKILL.md
3.3 KB, as published. Nobody here has run it
Python with uv
Use the repository's existing Python and verification choices first; use uv for dependency and execution operations unless a documented repository command wraps them.
Choose the Mode
- Project: a
pyproject.toml, lockfile, shared package, or local imports define an environment. - Standalone script: one file or stdin should run without creating a project.
- Use
--no-projectonly when the invocation must ignore the surrounding project and does not import its code.
Project Workflow
- Inspect
pyproject.toml, lockfiles, repository instructions, and existing tools. - Initialize only genuinely new projects with
uv init. Add or remove dependencies withuv addanduv remove; useuv syncto reconcile declared state. - Run Python and project tools through
uv runor the repository's documented wrapper. - Preserve the established test, lint, type-check, coverage, and hook stack. For a new project with no stated requirements, add only tools that serve the requested quality bar.
- Update and inspect the lockfile when dependency inputs change.
- Run the narrow checks needed during iteration, then the repository's aggregate gate.
Standalone Script Workflow
- Use
uv run script.pywhen no extra dependency is needed. - Use
uv run --with <dependency> script.pyfor disposable dependencies. - Use
uv init --scriptanduv add --scriptwhen dependencies or Python requirements should travel with a reusable script. - Put
--no-projectbefore the script name when isolation is intentional. - Read
references/scripts.mdonly for inline metadata, stdin, shebang, locking, alternate indexes, or platform-specific patterns.
Quality and Release
Use verification in this order: documented aggregate gate; the repository's configured hook runner; individual uv run ... commands when no aggregate gate exists or when narrowing a failure. Do not introduce or switch tools solely to run checks. Read references/quality.md for fallback patterns.
For release preparation:
- Run the repository gate.
- Build with
uv build --no-sourcesso local source overrides cannot leak. - Inspect wheel and sdist contents.
- Install and test the built wheel in a fresh uv-managed invocation.
- Record the artifact names, checks, and lockfile state.
Publishing is a separate external write. Do not run uv publish based only on a request to build, package, prepare, or release. Require authorization for the exact package/version, repository or index, and artifacts; use secret-safe credentials and verify the resulting release. Read references/packaging.md for the authorized publish path.
Invariants
- Do not use
pip installto mutate a uv-managed project. - Do not create
pyproject.tomlmerely to run a one-file script. - Do not use
--no-projectwhen local project imports are required. - Treat
--withas ephemeral; encode dependencies when reuse or reproducibility matters. - Test the built or published artifact, not only the source checkout.