From cbb2dd44f360945d7837d438cc1a64d90f32f338 Mon Sep 17 00:00:00 2001 From: Jev Date: Tue, 17 Feb 2026 22:11:35 +0100 Subject: [PATCH] add license and simplify --- LICENSE | 21 ++++++++++++++ README.md | 82 +++++++++++-------------------------------------------- 2 files changed, 37 insertions(+), 66 deletions(-) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..c7b7e36 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Jev Kuznetsov + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md index a01f418..c2c32dd 100644 --- a/README.md +++ b/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