Skip to main content

acme-project-create

Sets up a new (python) project using a template.

Uses a three-step process:

  1. Template files are copied to the -target-dir location from a --template-dir-path directory. Default template for a python project is included in the package.
  2. Directory names in the template following the pattern {{<variable>}} are substituted with value provided by the user.
  3. Filenames in the template directory that end with j2template (e.g. pyproject.toml.j2template) are assumed to be Jinja2 templates and a file is generated in the target location with variable substitutions provided by the user i.e. pyproject.toml.

And that's it.

Note: to provide all values to compile the template the template dir needs to contain a template_manifest.py file that must implement a function:

def configure_parser(parser: argparse.ArgumentParser) -> argparse.ArgumentParser

which takes an existing instance of ArgumentParser, adds arguments specific to the template and returns the parser object.

Default template

The default template makes several notable choices:

  • Uses venv for virtual environments and .venv dir to store built environment (and uv to build it)
  • Uses .env file for setting up environment variables
  • Uses setuptools for packaging
  • Uses pytest for testing
  • Uses mkdocs for documentation

Problem

Setting up all files to create a new project is time consuming and involves lots of small technical choices.

Why use this project?

You are probably better off using Cookiecutter

Example usage

apc -target-dir . -project-name hello-world -desc "Say hello to the world" -package-name hello_world -command hello -owner-email hello@example.com

Project template

This project has been setup with acme-project-create, a python code template library.

Required setup post use

  • Enable GitHub Pages to be published via GitHub Actions
  • Create release environment for GitHub Actions
  • Setup auth to PyPI for the GitHub Action implemented in release.yml: Link & uv publish doc
  • Once you create the python environment for the first time add the uv.lock file that will be created in project directory to the source control and update it each time environment is rebuilt
  • Run pre-commit install to install the pre-commit hooks.

Metadata

Release files for acme_project_create 0.0.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for acme_project_create 0.0.7
File Size Uploaded Provenance
acme_project_create-0.0.7.tar.gz 12.5 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for acme_project_create 0.0.7
File Interpreter ABI Platform
acme_project_create-0.0.7-py3-none-any.whl Python 3 none any Details

Total release size: 30.2 kB

Release files / acme_project_create-0.0.7.tar.gz

Download URL acme_project_create-0.0.7.tar.gz
Size 12.5 kB
Tags Source
SHA-256 checksum
How to use checksums
7655893e89c76f08fd2ec93ff53e9c683b0bb85195598d7663259e04263e259d
BLAKE2b-256 checksum
How to use checksums
2e4532ad9b7e9e14b59daaabd2ad49a66591198ed00728eae8bb78ea6044c60f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.6.2

Release files / acme_project_create-0.0.7-py3-none-any.whl

Download URL acme_project_create-0.0.7-py3-none-any.whl
Size 17.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f0c2c70a6cd913511569fd7d006b5c635db594f786f79c71a8f735ee39d422e7
BLAKE2b-256 checksum
How to use checksums
2992b8268280053ba9e9f9e61f3988fc6328664bfaeff45393c0142504568859
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.6.2

Security for acme_project_create 0.0.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page