Skip to main content

A Python CLI template boilerplate generator

Project description

Gentem

A Python CLI template boilerplate generator for quickly scaffolding Python projects.

Features

  • Project Scaffolding: Generate Python projects with a single command
  • Multiple Project Types: Support for library, CLI tool, and script projects
  • FastAPI Templates: Pre-configured FastAPI project templates with optional database support
  • Opinionated Structure: Best practices baked into every template
  • Interactive Preview: --dry-run option to preview before creating files

Installation

pip install gentem

Or install from source:

git clone https://github.com/gentem/gentem.git
cd gentem
pip install -e .

Usage

Creating a New Project

# Create a library project
gentem new mylib --type library

# Create a CLI tool project
gentem new mycli --type cli

# Create a simple script project
gentem new myscript --type script

# With author and description
gentem new mylib --type library --author "John Doe" --description "My library"

# With license
gentem new mylib --type library --license mit
gentem new mylib --type library --license apache
gentem new mylib --type library --license gpl

# Preview without creating files
gentem new mylib --type library --dry-run

Creating a FastAPI Project

# Create a basic FastAPI project
gentem fastapi myapi

# Create with async mode and lifespan
gentem fastapi myapi --async

# Create with database support (asyncpg)
gentem fastapi myapi --db asyncpg

# Combine options
gentem fastapi myapi --async --db asyncpg --author "John Doe"

Project Structure

Library Template

mylib/
├── src/
│   └── mylib/
│       ├── __init__.py
│       └── core.py
├── tests/
│   ├── __init__.py
│   └── test_core.py
├── pyproject.toml
├── README.md
├── LICENSE
└── .gitignore

FastAPI Template

myapi/
├── src/
│   └── myapi/
│       ├── __init__.py
│       ├── main.py              # FastAPI application
│       ├── core/
│       │   ├── __init__.py
│       │   ├── config.py        # Settings
│       │   └── exceptions.py    # Custom exceptions
│       ├── deps/
│       │   └── __init__.py      # Dependencies
│       ├── utils/
│       │   └── __init__.py      # Utility functions
│       ├── v1/
│       │   ├── __init__.py
│       │   └── apis/
│       │       ├── __init__.py
│       │       └── routes.py    # API routes
│       ├── services/
│       │   └── __init__.py      # Business logic
│       ├── schemas/
│       │   └── __init__.py      # Pydantic schemas
│       └── models/
│           └── __init__.py      # SQLAlchemy models
├── .env
├── requirements.txt
├── .gitignore
└── README.md

Development

# Install development dependencies
pip install -e ".[dev]"

# Run tests
pytest

# Format code
black .
ruff check --fix .

# Type checking
mypy .

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gentem-0.1.1.tar.gz (22.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gentem-0.1.1-py3-none-any.whl (22.5 kB view details)

Uploaded Python 3

File details

Details for the file gentem-0.1.1.tar.gz.

File metadata

  • Download URL: gentem-0.1.1.tar.gz
  • Upload date:
  • Size: 22.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for gentem-0.1.1.tar.gz
Algorithm Hash digest
SHA256 a2b7c4fda3bbb2e8de9085813ee9b8b2c7cee2f68e4b26245824d55b4be311b7
MD5 1b913acad3a03b68dc611e0b699819ec
BLAKE2b-256 90daecc0df3bb55e20ff12bdfc6649cba4c7a1d9d7d25215e5a4106255d265ed

See more details on using hashes here.

File details

Details for the file gentem-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: gentem-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 22.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for gentem-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8cc0085bcb60f8f250dcc5cdd7c3d8769d6cc5539bdc4ed61b8126125e223250
MD5 114c8ebe2c6c8f4f5f0d2a85637e6f7e
BLAKE2b-256 88bab9861181e529ec2ae585b8601e87eac0901b60bd96b25e27b2072d10a3bf

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page