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-runoption 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
Release history Release notifications | RSS feed
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)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
gentem-0.1.1-py3-none-any.whl
(22.5 kB
view details)
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a2b7c4fda3bbb2e8de9085813ee9b8b2c7cee2f68e4b26245824d55b4be311b7
|
|
| MD5 |
1b913acad3a03b68dc611e0b699819ec
|
|
| BLAKE2b-256 |
90daecc0df3bb55e20ff12bdfc6649cba4c7a1d9d7d25215e5a4106255d265ed
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8cc0085bcb60f8f250dcc5cdd7c3d8769d6cc5539bdc4ed61b8126125e223250
|
|
| MD5 |
114c8ebe2c6c8f4f5f0d2a85637e6f7e
|
|
| BLAKE2b-256 |
88bab9861181e529ec2ae585b8601e87eac0901b60bd96b25e27b2072d10a3bf
|