Metadata-Version: 2.4
Name: python-project-foundry
Version: 0.1.3
Summary: Python project template that follows proven patterns. Scaffolds libraries, CLIs, and web services.
Project-URL: Homepage, https://github.com/ryancswallace/python-project-foundry
Project-URL: Changelog, https://github.com/ryancswallace/python-project-foundry/blob/main/CHANGELOG.md
Project-URL: Documentation, https://ryancswallace.github.io/python-project-foundry/
Project-URL: Issues, https://github.com/ryancswallace/python-project-foundry/issues
Project-URL: Source, https://github.com/ryancswallace/python-project-foundry
Author-email: Ryan Wallace <ryancswallace@gmail.com>
Maintainer-email: Ryan Wallace <ryancswallace@gmail.com>
License-Expression: MIT
License-File: LICENSE
Keywords: copier,copier-template,project-generator,project-template,python,python-template,scaffolding,template
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Software Development
Classifier: Topic :: Utilities
Requires-Python: <3.15,>=3.11
Requires-Dist: copier~=9.10
Description-Content-Type: text/markdown

<!-- markdownlint-disable MD041 -->
[![Copier](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/copier-org/copier/master/img/badge/badge-grayscale-inverted-border-orange.json)](https://github.com/copier-org/copier)

# Python Project Foundry

## Command-line usage

## Installing

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

```console
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:

```console
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:

```console
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:

```console
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:

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

Then scaffold a project:

```console
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:

```console
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:

```console
make setup
make check
```
