hatchit 🚀
A modern, Python project scaffolder combining the blazing speed of uv with the robust build ecosystem of hatch.
Inspired by PyScaffold, hatchit scaffolds Python packages, fully equipped with automated testing, documentation, and scientific publishing metadata.
Setup & Installation
You must have uv installed on your system.
pip install hatchit
Quickstart Tutorial
To create a brand new repository, simply run the hatchit CLI command:
hatchit my-awesome-package --description "A robust new tool" --license MIT
or to programmatically create a project,
from hatchit import create_hatchit_repository
create_hatchit_repository(project_path = "my-awesome-package", description = "new tool", license = "MIT")
This will generate the project in the my-awesome-package directory and initialize a fresh Git repository.
After setup
- The GitHub workflows use "trusted publisher workflow" to publish packages to PyPI. Read more instructions here.
- Install tox to handle package tasks. GitHub Actions relies on the tox configuration to test, generate documentation, and publish packages.
- (Optional) Enable the pre-commit.ci bot for your repository.
- (Optional) Install ruff for code formatting.
- (Optional) Setup codecov for coverage reports.
Development Process
hatchit structures your project around tox and uv. To run your tests during development:
cd my-awesome-package
tox -e default
To build your documentation locally and preview:
tox -e docs
Publishing Process
- GitHub Actions: The included workflows will automatically begin checking your tests on all commits and PR's.
- PyPI: Create a new GitHub Release or tag. The
publish-pypi.ymlworkflow will automatically securely publish your wheel to PyPI via Trusted Publishing. - Zenodo: If you've activated Zenodo for your repository,
hatchitincludes a.zenodo.jsonand will automatically generate DOIs for new releases!
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 hatchit-0.1.0.tar.gz.
File metadata
- Download URL: hatchit-0.1.0.tar.gz
- Upload date:
- Size: 129.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
57fe6af29b0341267eb65e0a5e8dcde177a4324fe9674d201a4ac176e247fe01
|
|
| MD5 |
ce86ee95c6712c923c4a6c4316c46862
|
|
| BLAKE2b-256 |
4144a9d47a31f85f81c7a6c7fe22d1c725ae1e8297787e0da90ce49c8e46e4b4
|
Provenance
The following attestation bundles were made for hatchit-0.1.0.tar.gz:
Publisher:
publish-pypi.yml on BiocPy/hatchit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hatchit-0.1.0.tar.gz -
Subject digest:
57fe6af29b0341267eb65e0a5e8dcde177a4324fe9674d201a4ac176e247fe01 - Sigstore transparency entry: 2500434340
- Sigstore integration time:
-
Permalink:
BiocPy/hatchit@6b095e8a5683d1666c1af074768f9cba1221b2b7 -
Branch / Tag:
refs/tags/0.1.0 - Owner: https://github.com/BiocPy
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@6b095e8a5683d1666c1af074768f9cba1221b2b7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file hatchit-0.1.0-py3-none-any.whl.
File metadata
- Download URL: hatchit-0.1.0-py3-none-any.whl
- Upload date:
- Size: 26.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a6b415e07e71683d90cc1a73d0101b333886b71531327833c10bf7a0c8c6dafa
|
|
| MD5 |
94eba13d00a77f7bf967fbe3c2f7ae87
|
|
| BLAKE2b-256 |
4b4fa6267c4fd2a7761a88736c79229f802182e6bb3a5ca4727bf75a817a2267
|
Provenance
The following attestation bundles were made for hatchit-0.1.0-py3-none-any.whl:
Publisher:
publish-pypi.yml on BiocPy/hatchit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hatchit-0.1.0-py3-none-any.whl -
Subject digest:
a6b415e07e71683d90cc1a73d0101b333886b71531327833c10bf7a0c8c6dafa - Sigstore transparency entry: 2500434343
- Sigstore integration time:
-
Permalink:
BiocPy/hatchit@6b095e8a5683d1666c1af074768f9cba1221b2b7 -
Branch / Tag:
refs/tags/0.1.0 - Owner: https://github.com/BiocPy
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@6b095e8a5683d1666c1af074768f9cba1221b2b7 -
Trigger Event:
push
-
Statement type: