Skip to main content

Python project template that follows proven patterns. Scaffolds libraries, CLIs, and web services.

Project description

Copier

Python Project Foundry

Command-line usage

Installing

On macOS or Linux, scaffold with one command even if uv is not installed:

curl -LsSf https://raw.githubusercontent.com/ryancswallace/python-project-foundry/main/ppf | sh -s -- /path/to/new/project

This downloads the repository's small launcher before executing it. The launcher installs a compatible uv version, then runs Python Project Foundry from GitHub in an isolated environment.

If uv is already installed, use uvx directly:

uvx --from git+https://github.com/ryancswallace/python-project-foundry ppf /path/to/new/project

Without uv, clone the repository and use its self-bootstrapping launcher:

git clone https://github.com/ryancswallace/python-project-foundry
cd python-project-foundry
./ppf /path/to/new/project

The launcher installs a compatible uv version when necessary. uv then installs Python, Copier, and the other runtime dependencies when they are missing.

The equivalent Make command is:

make template DEST=/path/to/new/project

It also installs uv when necessary and does not require a separate make setup.

Persistent installation

Install the command from GitHub if it will be used regularly:

uv tool install git+https://github.com/ryancswallace/python-project-foundry

Then scaffold a project:

ppf /path/to/new/project

The command prompts for the template's answers and runs its trusted setup tasks. ppf template /path/to/new/project remains available as the explicit form. Use ppf template --help to see options for unattended generation, overwriting files, previewing changes, and skipping setup tasks.

After the package is published to PyPI, the no-clone command becomes:

uvx python-project-foundry /path/to/new/project

Contributor setup

For work on Python Project Foundry itself, make setup installs uv when needed and syncs the complete development environment:

make setup
make check

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

python_project_foundry-0.1.3.tar.gz (172.8 kB view details)

Uploaded Source

Built Distribution

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

python_project_foundry-0.1.3-py3-none-any.whl (202.3 kB view details)

Uploaded Python 3

File details

Details for the file python_project_foundry-0.1.3.tar.gz.

File metadata

  • Download URL: python_project_foundry-0.1.3.tar.gz
  • Upload date:
  • Size: 172.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.33 {"installer":{"name":"uv","version":"0.11.33","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for python_project_foundry-0.1.3.tar.gz
Algorithm Hash digest
SHA256 249064fb31793ccf8e6740e76acd7e8b0e85155ca243776dd3f37141175fce5b
MD5 8674be3fade289c32653efee90a4465a
BLAKE2b-256 51ae68c2952ebed6e521c3b121e4e212539090b22ea2d6912f5a03e82c6f8545

See more details on using hashes here.

File details

Details for the file python_project_foundry-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: python_project_foundry-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 202.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.33 {"installer":{"name":"uv","version":"0.11.33","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for python_project_foundry-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 b2063767858dee3ac1690c5523c72765db232895d78542558795966dacb63194
MD5 819aa7a954d9b00a9ec11d906c5bdf2a
BLAKE2b-256 2f153c89948b0a21457eebfa667c36ea99f22348e232ec4d26fa5c1e816d23fa

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