{"id":15682787,"url":"https://github.com/FlorianWilhelm/the-hatchlor","last_synced_at":"2025-10-14T09:31:56.583Z","repository":{"id":193315496,"uuid":"688557246","full_name":"FlorianWilhelm/the-hatchlor","owner":"FlorianWilhelm","description":"🌹 Cookiecutter template featuring the modern and extensible Python project manager hatch","archived":false,"fork":false,"pushed_at":"2024-11-18T12:48:01.000Z","size":474,"stargazers_count":73,"open_issues_count":5,"forks_count":7,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-01-30T10:11:32.933Z","etag":null,"topics":["cookiecutter","distribution","git","package","package-creation","package-management","project-template","python","release-automation","template-project"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FlorianWilhelm.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.md","dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"FlorianWilhelm","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":"https://www.paypal.me/FlorianWilhelm"}},"created_at":"2023-09-07T15:39:14.000Z","updated_at":"2025-01-10T08:23:56.000Z","dependencies_parsed_at":"2023-09-07T21:10:28.916Z","dependency_job_id":"fb825ad3-c181-4f68-9cf1-7c1bd2db294f","html_url":"https://github.com/FlorianWilhelm/the-hatchlor","commit_stats":null,"previous_names":["florianwilhelm/hatchlor","florianwilhelm/the-hatchlor"],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FlorianWilhelm%2Fthe-hatchlor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FlorianWilhelm%2Fthe-hatchlor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FlorianWilhelm%2Fthe-hatchlor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FlorianWilhelm%2Fthe-hatchlor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FlorianWilhelm","download_url":"https://codeload.github.com/FlorianWilhelm/the-hatchlor/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":236464788,"owners_count":19152978,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cookiecutter","distribution","git","package","package-creation","package-management","project-template","python","release-automation","template-project"],"created_at":"2024-10-03T17:01:25.296Z","updated_at":"2025-10-14T09:31:51.134Z","avatar_url":"https://github.com/FlorianWilhelm.png","language":"Python","funding_links":["https://github.com/sponsors/FlorianWilhelm","https://www.paypal.me/FlorianWilhelm"],"categories":["Python"],"sub_categories":[],"readme":"# 🌹 The Hatchlor 🌹 Cookiecutter Template\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/FlorianWilhelm/the-hatchlor/master/images/logo.svg\" alt=\"The Hatchlor logo\" width=\"300\" role=\"img\"\u003e\n\u003c/div\u003e\n\n|         |                                    |\n|---------|------------------------------------|\n| Details | [![Tests][Tests-image]][Tests-link] [![License - MIT][MIT-image]][MIT-link] [![GitHub Sponsors][sponsor-image]][sponsor-link] |\n| Features | [![Hatch project][hatch-image]][hatch-link] [![linting - Ruff][ruff-image]][ruff-link] [![types - mypy][mypy-image]][mypy-link] [![test - pytest][pytest-image]][pytest-link]  [![Pre-Commit][precommit-image]][precommit-link] [![docs - mkdocs][mkdocs-image]][mkdocs-link] |\n\nThe Hatchlor is a [cookiecutter] template featuring the modern and extensible Python project manager [hatch] 🐣.\n\nWith hatch, you no longer need to deal with files like `requirements.txt`, `Pipfile` or `environment.yml`,\njust configure everything in `pyproject.toml`. Thus, hatch is a sophisticated alternative to [pipenv], [poetry], [conda], or\ndirect [virtualenv] usage. Just think of hatch as a tool that allows you to easily define many isolated development environments,\ne.g. virtual but also docker environments, and helps you to manage them. A bit like what [tox] does for testing environments but\nfor all kinds of environments, e.g. testing, linting your code, buildings your docs, and whatever you want.\n\nCheck out a [vanilla Python project] created by the Hatchlor.\n\n## ✨ Features\n\nThe Hatchlor integrates the following features:\n\n* [hatch]: Python packaging, environment management and test runner,\n* [hatch-vcs]: determine the package version automatically from git tags, e.g. `v0.9`,\n* [hatch-pip-compile]: support for lock-files,\n* [pyproject.toml]: all package, build and tool configuration in one file,\n* [pytest]: full-featured Python testing tool that helps you write better programs,\n* [coverage]: tool for measuring code coverage of Python programs with pytest integration,\n* [GitHub Actions]: workflows with [dependabot], [release-drafter], [labeler], build docs, test \u0026 publish to PyPI,\n* [ruff]: extremely fast Python linter/formatter, which replaces [isort], [flake8], [black], etc.,\n* [mypy]: optional static type checker for Python,\n* [mkdocs]: a fast, simple and downright gorgeous static site generator,\n* [pre-commit]: pre-commit git hooks that make your life easier,\n* [Markdown]: instead of reStructuredText, Markdown is used consistently for all text files,\n* [EditorConfig]: maintain consistent coding styles for multiple developers,\n* [src-layout]: the actual Python package is kept under a `src` folder avoiding many common errors.\n\nThe template includes a `skeleton.py` with a simple function `fib` that calculates the Fibonacci numbers\nas demonstration. This is tested with `tests/test_skeleton.py` to demonstrate the corresponding features\nfrom above. As an additional tidbit, `skeleton.py` also features [Typer] to show how `fib` can be\nexposed as a CLI command. These files are only for demonstration and can be safely deleted.\n\n## 💫 Quickstart\n\nInstall the latest [cookiecutter], i.e. \u003e= 1.4, if not installed:\n\n```console\npip install -U cookiecutter\n```\n\nThen generate your Python project with:\n\n```console\ncookiecutter https://github.com/florianwilhelm/the-hatchlor.git\n```\n\n🎉 That's  it! Now change into the created directory and check out [`README.md`] for more information.\n\n## 🪪 License\n\nThe Hatchlor is distributed under the terms of the [MIT license](LICENSE.txt).\n\n## 🙏 Credits\n\nTo start this project off a lot of inspiration was taken from [hatch], [cookiecutter-pypackage] and [Pyscaffold].\n\n[cookiecutter]: https://cookiecutter.readthedocs.io/\n[tox]: https://tox.wiki/\n[hatch]: https://hatch.pypa.io/\n[hatch-vcs]: https://github.com/ofek/hatch-vcs\n[hatch-pip-compile]: https://github.com/juftin/hatch-pip-compile\n[cookiecutter-pypackage]: https://github.com/audreyfeldroy/cookiecutter-pypackage\n[Pyscaffold]: https://pyscaffold.org/\n[pre-commit]: https://pre-commit.com/\n[mkdocs]: https://www.mkdocs.org/\n[Markdown]: https://www.markdownguide.org/\n[src-layout]: https://packaging.python.org/en/latest/discussions/src-layout-vs-flat-layout/\n[flake8]: https://pypi.org/project/flake8/\n[isort]: https://pycqa.github.io/isort/\n[pytest]: https://docs.pytest.org/\n[coverage]: https://coverage.readthedocs.io/\n[mypy]: https://mypy-lang.org/\n[black]: https://black.readthedocs.io/\n[ruff]: https://beta.ruff.rs/\n[EditorConfig]: http://editorconfig.org/\n[Typer]: https://typer.tiangolo.com/\n[pyproject.toml]: https://hatch.pypa.io/latest/config/metadata/\n[pipenv]: https://pipenv.pypa.io/\n[poetry]: https://python-poetry.org/\n[conda]: https://docs.conda.io/\n[virtualenv]: https://virtualenv.pypa.io/\n[vanilla Python project]: https://github.com/FlorianWilhelm/the-hatchlor-demo\n[`README.md`]: https://github.com/FlorianWilhelm/the-hatchlor-demo\n[GitHub Actions]: https://docs.github.com/en/actions\n[labeler]: https://github.com/marketplace/actions/github-labeler\n[dependabot]: https://docs.github.com/en/code-security/dependabot\n[release-drafter]: https://github.com/marketplace/actions/release-drafter\n\n[Tests-image]: https://github.com/FlorianWilhelm/the-hatchlor/actions/workflows/run-tests.yml/badge.svg?branch=main\n[Tests-link]: https://github.com/FlorianWilhelm/the-hatchlor/actions/workflows/run-tests.yml\n[hatch-image]: https://img.shields.io/badge/%F0%9F%A5%9A-hatch-4051b5.svg\n[hatch-link]: https://github.com/pypa/hatch\n[ruff-image]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json\n[ruff-link]: https://github.com/charliermarsh/ruff\n[mypy-image]: https://img.shields.io/badge/Types-mypy-blue.svg\n[mypy-link]: https://mypy-lang.org/\n[pytest-image]: https://img.shields.io/static/v1?label=‎\u0026message=Pytest\u0026logo=Pytest\u0026color=0A9EDC\u0026logoColor=white\n[pytest-link]:  https://docs.pytest.org/\n[mkdocs-image]: https://img.shields.io/static/v1?label=‎\u0026message=mkdocs\u0026logo=Material+for+MkDocs\u0026color=526CFE\u0026logoColor=white\n[mkdocs-link]: https://www.mkdocs.org/\n[precommit-image]: https://img.shields.io/static/v1?label=‎\u0026message=pre-commit\u0026logo=pre-commit\u0026color=76877c\n[precommit-link]: https://pre-commit.com/\n[MIT-image]: https://img.shields.io/badge/License-MIT-9400d3.svg\n[MIT-link]: LICENSE.txt\n[sponsor-image]: https://img.shields.io/static/v1?label=Sponsor\u0026message=%E2%9D%A4\u0026logo=GitHub\u0026color=ff69b4\n[sponsor-link]: https://github.com/sponsors/FlorianWilhelm\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FFlorianWilhelm%2Fthe-hatchlor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FFlorianWilhelm%2Fthe-hatchlor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FFlorianWilhelm%2Fthe-hatchlor/lists"}