Universal Python project scaffold — generate professional project skeletons in seconds
Project description
diamond-setup
Universal Python project scaffold — generate professional, CI-ready skeletons in seconds.
No cookiecutter, no Jinja2, no magic. Just a clean CLI that produces a fully working project — uv sync, pytest, ruff, pre-commit and CI all wired up from second one.
Install
pip install diamond-setup
# or
uv tool install diamond-setup
Usage
# New project with the minimal template (default)
diamond scaffold my-lib
# GenesisAeon preset (adds domains.yaml + entropy-table bridge)
diamond scaffold my-physics-tool --template genesis --author "Ada Lovelace"
# Preview what would be generated (no files written)
diamond scaffold my-lib --dry-run
# See all templates
diamond list-templates
# Validate any project directory
diamond validate path/to/my-project
diamond validate # validates the current directory
What you get
Running diamond scaffold my-lib produces:
my-lib/
├── src/
│ └── my_lib/
│ └── __init__.py # __version__ = "0.1.0"
├── tests/
│ ├── __init__.py
│ └── test_main.py
├── .github/
│ └── workflows/
│ └── ci.yml # matrix: 3.11 + 3.12
├── pyproject.toml # hatchling, ruff, pytest configured
├── README.md
├── .gitignore
└── .pre-commit-config.yaml # ruff + standard hooks
Then just:
cd my-lib
uv sync --dev
pre-commit install
uv run pytest
Templates
| Template | Description |
|---|---|
minimal |
Clean Python package for everyone |
genesis |
Adds domains.yaml + entropy-table bridge (GenesisAeon preset) |
Extending
Adding a new template is one Python file. See docs/templates.md.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file diamond_setup-1.0.0.tar.gz.
File metadata
- Download URL: diamond_setup-1.0.0.tar.gz
- Upload date:
- Size: 69.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
751a1c1b1b99c27545002739cb7cbe0e51a56c53525645c052155f83c7eec9ac
|
|
| MD5 |
9e2770a8b4cdec744f053fbb4461ddc6
|
|
| BLAKE2b-256 |
8df619c744bebba9de16767c5de3778fff105f222d958751756c625a2cfd9f0b
|
File details
Details for the file diamond_setup-1.0.0-py3-none-any.whl.
File metadata
- Download URL: diamond_setup-1.0.0-py3-none-any.whl
- Upload date:
- Size: 10.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ee34bbcda010680a77ed0562b533c0eb87b80a24b5d7b52566cad8cc0600088d
|
|
| MD5 |
ea4f56d94826a7504cf8a8ce3c487cdd
|
|
| BLAKE2b-256 |
62e5dee2a154ffdfcf5bf4f4dcea27a68c750acbdf5597d2839c2665e8c91a36
|