Excuse Generator
Generate a random excuse from a category and an absurdity level. The same package is a small Python library and a pipe-friendly command.
The PyPI name is lupaxa-excuse-generator. The import path is
lupaxa.excuse_generator. The console script is excuse-generator.
lupaxa is a namespace package — there is no lupaxa/__init__.py.
Public names: get_excuse, get_excuses, get_blame, Category, Level,
ExcuseError, InvalidCategoryError, InvalidLevelError,
ExcuseDataError, __version__, get_version().
Friday excuses are a normal category. Ask for them with --category friday.
The tool does not look at the date.
Install
pip install lupaxa-excuse-generator
Requires Python 3.10+. The standard library is enough.
CLI
excuse-generator
excuse-generator --category coding --level questionable
excuse-generator --count 5
excuse-generator --blame
excuse-generator --seed 42
excuse-generator --version
One excuse is printed per line. There is no banner.
| Flag | Meaning |
|---|---|
-c, --category |
Limit excuses to one category |
-l, --level |
Limit excuses to one absurdity level |
-n, --count |
Print this many excuses (1 to 100) |
--blame |
Print one thing to blame |
--categories |
List categories and exit |
--levels |
List absurdity levels and exit |
--seed |
Seed generation for a repeatable result |
--version |
Print excuse-generator x.y.z and exit 0 |
--help |
Show argparse help |
--blame cannot be combined with --category, --level, or --count.
--categories and --levels cannot be combined with each other or with
generation options.
| Result | Stdout | Exit |
|---|---|---|
| Success | One excuse per line | 0 |
--version |
excuse-generator x.y.z |
0 |
| Invalid arguments | error on stderr | 2 |
| Broken packaged data | error on stderr | 1 |
python -m lupaxa.excuse_generator --category friday
Library
from lupaxa.excuse_generator import get_blame, get_excuse, get_excuses
get_excuse(category="coding", level="absurd")
get_excuses(5, category="meeting")
get_blame()
Pass rng=random.Random(seed) when a test needs the same result twice.
That object is the only random state the library uses.
Excuses live in data/excuses.json. Blame lives in data/blame.json.
| Call | Return |
|---|---|
get_excuse() |
one excuse from any pool |
get_excuse(category="coding") |
one coding excuse |
get_excuses(count, category, level) |
count excuses |
get_blame() |
one blame entry |
| Situation | Result |
|---|---|
| Unknown category | InvalidCategoryError |
| Unknown level | InvalidLevelError |
count below 1 |
ValueError |
| Packaged data is missing or wrong | ExcuseDataError |
Development
make init
make python-install-dev
make python-check
Metadata
Release files for lupaxa-excuse-generator 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| lupaxa_excuse_generator-0.1.1.tar.gz | 16.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| lupaxa_excuse_generator-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 35.0 kB
Release files / lupaxa_excuse_generator-0.1.1.tar.gz
| Download URL | lupaxa_excuse_generator-0.1.1.tar.gz |
|---|---|
| Size | 16.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ce0a523f3922a29126f877eb1bcc2014d5496e9fb3f68335f439b7bf8965bcbe
|
|
BLAKE2b-256 checksum How to use checksums |
93d5abee3d0a5405d83e4a6b91f81e106009860c57df330a7eabcc2c6230a627
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.
Transparency logRelease files / lupaxa_excuse_generator-0.1.1-py3-none-any.whl
| Download URL | lupaxa_excuse_generator-0.1.1-py3-none-any.whl |
|---|---|
| Size | 18.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
dfcb8be007ee0210595fbbff5daaa566a2341b1a4268b659641345e4706d1fea
|
|
BLAKE2b-256 checksum How to use checksums |
8566ed4be4ae8d7b4840afd95fc76ad97dcf0cfb2c864b53eca03ab645f403e4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.
Transparency log