Assumeless
An Assumptions-First Diagnostic Tool For Python
Project Overview
Assumeless is a specialized static analysis tool designed to surface dangerous hidden assumptions in your code.
Unlike traditional linters that focus on style or syntax errors, Assumeless audits your codebase for semantic fragility—places where the code "assumes" success without ensuring it.
Key Goals:
- Reliability: Detect undefined behavior like silent exception swallowing.
- Security: Identify hardcoded paths, secrets, and environment dependencies.
- Integrity: Ensure documentation matches the reality of your implementation.
Tech Stack
| Core | Analysis | Interface | Formatting |
|---|---|---|---|
| Python 3.9+ | AST Visitor | Click CLI | Rich |
CLI Showcase
Assumeless provides a suite of 10+ standardized commands for every workflow.
| Scan Mode | Doctor Mode | Docs Check |
|---|---|---|
assumeless scan |
assumeless doctor |
assumeless docs |
| Fast, minimal CI output | Human-readable diagnosis | Detect documentation drift |
Key Commands
# Quick diagnostics for CI/CD
$ assumeless scan . --json
# Detailed human-readable report
$ assumeless doctor
# Check if README.md matches code reality
$ assumeless docs
# List all active rules
$ assumeless rules
Active Rules
Assumeless enforces a strict catalog of assumption checks:
| ID | Name | Description |
|---|---|---|
AL-ERR-01 |
Silent Exception | except: blocks that swallow errors silently. |
AL-ERR-02 |
Broad Catch | except Exception: without logging re-raise. |
AL-ENV-01 |
Direct Env Var | os.environ["KEY"] which crashes if missing. |
AL-PATH-01 |
Hardcoded Path | Absolute file paths that break portability. |
AL-PATH-08 |
Unclosed File | open() calls without context managers. |
AL-GLOB-07 |
Mutable Default | Function arguments like def foo(x=[]):. |
AL-DOC-XX |
Docs Drift | Mismatches between docs and code. |
License & Credits
Metadata
Release files for assumeless 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| assumeless-1.0.0.tar.gz | 26.5 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| assumeless-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 60.8 kB
Release files / assumeless-1.0.0.tar.gz
| Download URL | assumeless-1.0.0.tar.gz |
|---|---|
| Size | 26.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cdb176a2a2700e29af2cbb4aa787eadd99591380a0a059cf9b28b26fafb0dfaf
|
|
BLAKE2b-256 checksum How to use checksums |
8d1dab48a439887afd1440b306db6cec76cc3857fd2fd3d18a8d9982a75a3eda
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / assumeless-1.0.0-py3-none-any.whl
| Download URL | assumeless-1.0.0-py3-none-any.whl |
|---|---|
| Size | 34.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
67981cccb0e2525db2911b8dbd1b37390b90caf1afe9f2c23ff3a77df4bd4edf
|
|
BLAKE2b-256 checksum How to use checksums |
59f3019e5264d548d3fab54b009c55787c7289d85af6c8e4537e596297daffe2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Security for assumeless 1.0.0
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.