Skip to content

A simple CLI tool for bootstrapping new projects fast

License

Notifications You must be signed in to change notification settings

Achronus/zenforge

Repository files navigation

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.
  2. api: a FastAPI project with Logfire.
  3. agents: an AI Agent project with PydanticAI and Logfire.
  4. dl: a Deep Learning project with PyTorch.
  5. api-agents: a FastAPI and PydanticAI 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 - for unit tests.
  • pytest-cov - for unit test line coverage.
  • black - for code formatting.
  • flake8 - for confirming Python style formatting.
  • isort - for automatic import sorting.
  • mypy - for static type checking.

Building a Project

  1. Install the package using pip:

    pip install zenforge
  2. Create a new project with zenforge create:

    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:

zenforge create [PROJECT_NAME] api-dl --ci-deps