add license and simplify
This commit is contained in:
82
README.md
82
README.md
@@ -1,81 +1,31 @@
|
||||
# Python CLI Template
|
||||
|
||||
A minimal Cookiecutter template for building personal CLI tools with `uv`, Typer, and strict typing.
|
||||
Minimal Cookiecutter template for python CLI tools. Python 3.12+, uv, Typer, ruff, mypy, pytest.
|
||||
|
||||
## Features
|
||||
## Usage
|
||||
|
||||
- CLI with Typer
|
||||
- `uv_build` backend and lockfile-first reproducibility
|
||||
- Ruff for linting/formatting
|
||||
- MyPy strict mode
|
||||
- Pytest with coverage
|
||||
- Invoke tasks for common operations
|
||||
```bash
|
||||
cruft create git@git.roxautomation.com:sjev/python-cli-template.git
|
||||
cd your-project
|
||||
uv sync --frozen --group dev
|
||||
uv run invoke lint
|
||||
uv run invoke test
|
||||
```
|
||||
|
||||
## Quick Start
|
||||
|
||||
1. Generate a new project:
|
||||
```bash
|
||||
cruft create git@git.roxautomation.com:sjev/python-cli-template.git
|
||||
```
|
||||
|
||||
Or locally:
|
||||
```bash
|
||||
cookiecutter /path/to/python-cli-template
|
||||
```
|
||||
|
||||
2. Post-generation hook runs `uv lock` to create `uv.lock`.
|
||||
|
||||
3. Bootstrap the generated project:
|
||||
```bash
|
||||
uv sync --frozen --group dev
|
||||
uv run invoke lint
|
||||
uv run invoke test
|
||||
```
|
||||
|
||||
## Template Variables
|
||||
|
||||
| Variable | Description | Example |
|
||||
|----------|-------------|---------|
|
||||
| `project_name` | Human-readable project name | "My CLI App" |
|
||||
| `project_slug` | Repository/directory name | "my-cli-app" |
|
||||
| `package_name` | Python package name | "my_cli_app" |
|
||||
| `description` | Short project description | "A modern CLI tool" |
|
||||
| `author_name` | Author's full name | "Your Name" |
|
||||
| `author_email` | Author's email | "your.email@example.com" |
|
||||
| `version` | Initial version | "0.1.0" |
|
||||
|
||||
Python is fixed to 3.12+ by template policy.
|
||||
|
||||
## Generated Project Structure
|
||||
## Generated structure
|
||||
|
||||
```
|
||||
your-project/
|
||||
├── README.md
|
||||
├── pyproject.toml
|
||||
├── tasks.py
|
||||
├── uv.lock
|
||||
├── src/
|
||||
│ └── your_package/
|
||||
│ ├── __init__.py
|
||||
│ ├── py.typed
|
||||
│ └── cli.py
|
||||
├── src/your_package/
|
||||
│ ├── __init__.py
|
||||
│ ├── py.typed
|
||||
│ └── cli.py
|
||||
└── tests/
|
||||
└── test_cli.py
|
||||
```
|
||||
|
||||
## Template Development
|
||||
## License
|
||||
|
||||
To modify this template:
|
||||
|
||||
1. Edit files in `{{cookiecutter.project_slug}}/`
|
||||
2. Update variables in `cookiecutter.json`
|
||||
3. Test changes:
|
||||
```bash
|
||||
./test.sh
|
||||
```
|
||||
|
||||
## Requirements
|
||||
|
||||
- Python 3.12+
|
||||
- `uv`
|
||||
- `cruft` or `cookiecutter`
|
||||
MIT
|
||||
|
||||
Reference in New Issue
Block a user