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, you can use the hatchit CLI command:
hatchit my-awesome-package --description "A robust new tool" --license MIT
Alternatively, since hatchit is a 100% compatible Copier template, you can use copier directly to render the project!
pip install copier
copier copy https://github.com/biocpy/hatchit my-awesome-package
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.
What's Next? (After Setup Checklist)
Now that your project is perfectly scaffolded, there are just a few quick things you'll want to configure to get the full automated experience working for you:
- Update
pyproject.tomlkeywords: We've added a few placeholder keywords (like"TODO","FIXME") to yourpyproject.toml. Swap those out with relevant keywords for your package to make it more discoverable on PyPI! - Setup PyPI Trusted Publishing: We use GitHub Actions for publishing. You don't need any secrets! Instead, head over to PyPI, create a "Pending Publisher", and link it to your GitHub repository. Read more here.
- Configure Codecov (Optional): If you want test coverage reports, head to Codecov, link your repo, grab your token, and add it as a
CODECOV_TOKENsecret in your GitHub repository. - Activate pre-commit.ci (Optional): If you want automated PRs keeping your code perfectly formatted, enable the pre-commit.ci bot on your repo.
- Enable GitHub Pages (Optional): The publishing workflow automatically builds your Sphinx docs. To serve them, go to your repository settings, navigate to "Pages", and select GitHub Actions as the "Source". The deployment workflow will automatically publish the built artifact to your site!
That's it! You're ready to start writing code.
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!
Metadata
Release files for hatchit 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| hatchit-0.1.2.tar.gz | 201.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| hatchit-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 239.3 kB
Release files / hatchit-0.1.2.tar.gz
| Download URL | hatchit-0.1.2.tar.gz |
|---|---|
| Size | 201.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
af2e31831b94d3f2510e98ab531e07ee8cda333fb17c19c0da5de8781b923145
|
|
BLAKE2b-256 checksum How to use checksums |
93d0e98ccf0c17bd72d3d0ec24b28fd14236b06fc2d735591267618d806305c4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 27, 2026.
Transparency logRelease files / hatchit-0.1.2-py3-none-any.whl
| Download URL | hatchit-0.1.2-py3-none-any.whl |
|---|---|
| Size | 37.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
57bf54ef06cc658a889a3c607634489329027d17fe6de129b7b270efa039f9ae
|
|
BLAKE2b-256 checksum How to use checksums |
d5794ef1e1c5af476748a3c41fbea37e00af57dd207384a4e31f13ef0604928e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 27, 2026.
Transparency log