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/knightlesssword/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.2.0.tar.gz
(28.5 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.2.0-py3-none-any.whl
(25.9 kB
view details)
File details
Details for the file gentem-0.2.0.tar.gz.
File metadata
- Download URL: gentem-0.2.0.tar.gz
- Upload date:
- Size: 28.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f74186c635f42f00f5474cd6589f1ac6f6bb7985f67ab919830d19b3a05a6fe3
|
|
| MD5 |
ec1bcd8a621b6f05070f094d8a1ebeaf
|
|
| BLAKE2b-256 |
7f43595f40a77fa7132c87c2629edc9dc78883eaf8f2f348ae6e0fb578f5fffd
|
File details
Details for the file gentem-0.2.0-py3-none-any.whl.
File metadata
- Download URL: gentem-0.2.0-py3-none-any.whl
- Upload date:
- Size: 25.9 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 |
546e293ec39c8cbaa847941d47ca18172fc3e6963bf4c88ee68e5e593ff70f41
|
|
| MD5 |
858102c7857e64bf1f37062146d10c4f
|
|
| BLAKE2b-256 |
e7dbc251b42aaa3e5eeb5e618d2d53fb599022dda5d91c1e843618a2a1178449
|