Skip to main content

Just a demo of the uv package manager for Python.

Project description

uv-demo PyPI package

PyPI - Version PyPI - Python Version Pepy Total Downloads Code Quality Check

A demo and template for a modern Python package managed by uv. Very useless as a package.

Use this as a template for new projects, or as a reference for how to set up a Python project with the following:

  • uv as the Python package manager.
  • pre-commit hooks for code formatting, linting, and quality checks.
  • GitHub Actions for testing and publishing.
  • Multiple Python versions tested with uv -p ${python-version} run pytest [...].
  • gh-act for running GitHub Actions locally.
  • Justfile with common recipes.
  • Documentation with pdoc + GitHub Pages.
  • Deptry to highlight missing and unused dependencies.

System Dependencies

  • uv
    • curl -LsSf https://astral.sh/uv/install.sh | sh
  • just
    • sudo apt install just
    • sudo pacman -S just
    • More installation methods.
  • For running GitHub Actions locally
    • Docker
    • gh (GitHub CLI)
      • sudo pacman -S github-cli
      • Others
    • gh-act
      • gh extension install nektos/gh-act

Quick start

This will install all dependencies (uv sync) and run the entrypoint script:

uv run uv-demo

just Recipes

# just --list
Available recipes:
    all               # Installs dependencies and runs tests
    build             # Build the package and run tests
    check             # Run all code quality checks and linting
    clean             # Clean up generated files
    deptry            # Run deptry to check for unused and missing dependencies
    docs              # Generate and serve documentation
    docs-gen          # Generate documentation using pdoc
    docs-serve        # Serve the docs with a simple HTTP server
    gact              # Run the GitHub Actions workflow for all branches
    gact-pull-request # Run the GitHub Actions workflow for pull requests [alias: gact-pr]
    gact-release      # Run the GitHub Actions workflow for release
    install           # Install pre-commit hooks and development project dependencies with uv
    pre-commit        # Run pre-commit hooks on all files
    publish           # Build and publish the package to PyPI
    serve-coverage    # Serve the coverage report with a simple HTTP server
    test              # Simple execution of tests with coverage
    test-all          # Run static checker and tests for all compatible python versions
    test-verbose      # Run tests with coverage and increased output
    upgrade           # Upgrades all project and pre-commit dependencies respecting pyproject.toml constraints [alias: update]

Integration with GitHub Actions

See the Upload Python Package workflow file for this package.

Running actions locally

You can use act to run GitHub Actions locally. Use cases:

  1. While writing a workflow, to test the workflow locally before pushing to the repository.
  2. Run the publishing workflow without setting secrets on GitHub.
  3. Before opening a pull request, to check the workflow will pass.

Copy the example secrets file:

cp "config/secrets.env.example" "config/secrets.env"

Then edit the new file to add your secrets.

After that, run just gact to run the GitHub Actions workflow locally.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

uv_demo-0.3.0.tar.gz (4.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

uv_demo-0.3.0-py3-none-any.whl (4.5 kB view details)

Uploaded Python 3

File details

Details for the file uv_demo-0.3.0.tar.gz.

File metadata

  • Download URL: uv_demo-0.3.0.tar.gz
  • Upload date:
  • Size: 4.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.12

File hashes

Hashes for uv_demo-0.3.0.tar.gz
Algorithm Hash digest
SHA256 9990bb6641bf3fc6491de9eb7b16ab2da7ff968f9fef4c6b36dde1a373c8590f
MD5 0993fe8ccc412f04254415224f926d56
BLAKE2b-256 569eca8dfd6702f475ec2dae42f0823d3cdf56808b9844ff8c4815b926ae124b

See more details on using hashes here.

File details

Details for the file uv_demo-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: uv_demo-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 4.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.12

File hashes

Hashes for uv_demo-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9669164ad68465ca5e817fe061497f8f2299585b3bbd94ec8d41d4c496881c99
MD5 1c8b99212b64296362e2073785d85a31
BLAKE2b-256 6bb01398492bc843fb698c2d598f8971a982357500792e4c9d449553f392a474

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page