https://github.com/achronus/zenforge
A simple CLI tool for bootstrapping new projects fast
https://github.com/achronus/zenforge
cli-tool poetry-python project-bootstrapping python
Last synced: 4 months ago
JSON representation
A simple CLI tool for bootstrapping new projects fast
- Host: GitHub
- URL: https://github.com/achronus/zenforge
- Owner: Achronus
- License: apache-2.0
- Created: 2025-01-16T11:55:45.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-01-23T20:23:26.000Z (11 months ago)
- Last Synced: 2025-04-08T05:23:43.137Z (9 months ago)
- Topics: cli-tool, poetry-python, project-bootstrapping, python
- Language: Python
- Homepage:
- Size: 70.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Zenforge
A simple CLI tool for bootstrapping new Python projects fast.
## Why It Exists
I often find myself building the same types of Python projects with the same dependencies over and over again. After a while, it gets tedious repeating the same CLI commands to create a simple project.
_Zenforge_ combats this by using static configuration settings to build projects based on a single `create` command. There are 7 types of projects available:
1) **basic**: a simple project with [Pydantic](https://docs.pydantic.dev/latest/).
2) **api**: a [FastAPI](https://fastapi.tiangolo.com/) project with [Logfire](https://logfire.pydantic.dev/docs/).
3) **agents**: an AI Agent project with [PydanticAI](https://ai.pydantic.dev/) and [Logfire](https://logfire.pydantic.dev/docs/).
4) **dl**: a Deep Learning project with [PyTorch](https://pytorch.org/).
5) **api-agents**: a [FastAPI](https://fastapi.tiangolo.com/) and [PydanticAI](https://ai.pydantic.dev/) project (API and AGENTS).
6) **api-dl**: a Deep Learning API project (API and DL).
7) **all**: a Deep Learning, API, AI Agent project (DL and API-AGENTS).
The packages are always updated to their latest versions with every newly created project and are bootstrapped as a `Poetry` project.
## Test Packages
They also come configured with a set of test dependencies:
- [pytest](https://docs.pytest.org/en/stable/) - for unit tests.
- [pytest-cov](https://pytest-cov.readthedocs.io/en/latest/) - for unit test line coverage.
- [black](https://black.readthedocs.io/en/stable/) - for code formatting.
- [flake8](https://flake8.pycqa.org/en/latest/) - for confirming Python style formatting.
- [isort](https://pycqa.github.io/isort/) - for automatic import sorting.
- [mypy](https://mypy.readthedocs.io/en/stable/) - for static type checking.
## Building a Project
1. Install the package using `pip`:
```bash
pip install zenforge
```
2. Create a new project with `zenforge create`:
```bash
zenforge create [PROJECT_NAME] [PROJECT_TYPE]
```
That's it!
The `project_type` must be one of the following options: `['basic', 'api', 'agents', 'dl', 'api-agents', 'api-dl', 'all']`. It defaults to `basic`.
There is also an optional flag for setting up a `ci` dependencies group that comes configured with `git-cliff`. You can add it with `--ci-deps` flag, like so:
```bash
zenforge create [PROJECT_NAME] api-dl --ci-deps
```