Skip to main content

branthebuilder

pypi

Utility CLI for creating, documenting, and testing Python packages. Uses a cookiecutter template.

Philosophy

This project embodies a self-contained, low-dependency approach to Python library development. Projects built with it follow the same principles.

Core principles

  • No external services — no codecov, no readthedocs, no hosted CI artifacts. Everything lives in the repo.
  • Docs in the repo — documentation is generated into docs/ as HTML and Markdown, readable by both humans and AI tools without a browser.
  • Coverage in the repo — test coverage reports are generated locally into coverage/, in HTML and Markdown formats, committed alongside the code.
  • Minimal dependencies — avoid heavy frameworks unless the value is clear and lasting. Prefer stdlib, then small focused libraries with few transitive deps.
  • Modern Python toolinguv for dependency management, ruff for formatting and linting, hatchling for builds, pyproject.toml as the single config source.
  • AI-friendly — Markdown output for docs and coverage means both humans and LLMs can read and reason about the project state without fetching external URLs.

Doc generation

API docs are generated from docstrings into docs/api.md using Python's inspect module. No external tools required. Release notes live in docs/release_notes.md, with the newest release always on top.

branb build-docs   # generates docs/api.md from docstrings
branb tag "msg" minor  # prepends entry to docs/release_notes.md

Coverage

pytest-cov + coverage built-in Markdown reporter (coverage ≥ 7.2):

branb test         # runs lint + pytest, writes coverage/ with HTML and report.md

Coverage output is committed to the repo so it is always readable in-browser on GitHub and by any LLM with repo access.

Usage

# create a new project from the cookiecutter template
branb init

# lint (ruff format + check)
branb lint

# run tests with coverage
branb test

# build docs
branb build-docs

# tag a release and push
branb tag "release message" minor

Installation

uv tool install branthebuilder

thanks to typer, can install shell completion after

License

MIT

Release files for branthebuilder 5.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for branthebuilder 5.1.0
File Size Uploaded
branthebuilder-5.1.0.tar.gz 49.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for branthebuilder 5.1.0
File Interpreter ABI Platform
branthebuilder-5.1.0-py3-none-any.whl Python 3 none any Details

Total release size:58.7 kB

Release files / branthebuilder-5.1.0.tar.gz

Download URL branthebuilder-5.1.0.tar.gz
Size 49.4 kB
Tags Source
SHA-256 checksum
How to use checksums
2f9aba86992817d1fbcae8f21fa0205b863f3953df6206f2c247644bfa6077ad
BLAKE2b-256 checksum
How to use checksums
79e8592b313c4a2414dcbd2f3d91047393b2c60de550b8d770e96b074a1f74d6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / branthebuilder-5.1.0-py3-none-any.whl

Download URL branthebuilder-5.1.0-py3-none-any.whl
Size 9.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cedb488505b37c7dac5cf7465428dbdc610b11eb8d6dc0ba7d4e750f2ba9348f
BLAKE2b-256 checksum
How to use checksums
cebab96578ce9443fa68f0aaa1d0df2468e40e0cafa24c97a6217481e0afb4a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

5.1.0 This release

2 release files

5.0.1

2 release files

4.1.0

2 release files

1.0.12

2 release files

1.0.10

2 release files

1.0.9

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.2.4

1 release file

0.2.3

1 release file

0.2.2

1 release file

0.2.1

1 release file

0.2.0

1 release file

0.1.6

1 release file

0.1.4

1 release file

0.1.3

1 release file

0.1.2

1 release file

0.1.0

1 release file

0.0.4

1 release file

0.0.3

1 release file

0.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page