An assumptions-first diagnostic tool that aims to surface dangerous hidden assumptions in code.
Project description
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file assumeless-1.0.0.tar.gz.
File metadata
- Download URL: assumeless-1.0.0.tar.gz
- Upload date:
- Size: 26.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cdb176a2a2700e29af2cbb4aa787eadd99591380a0a059cf9b28b26fafb0dfaf
|
|
| MD5 |
45a5c8fe2bfd9404cec7c30435f651bd
|
|
| BLAKE2b-256 |
8d1dab48a439887afd1440b306db6cec76cc3857fd2fd3d18a8d9982a75a3eda
|
File details
Details for the file assumeless-1.0.0-py3-none-any.whl.
File metadata
- Download URL: assumeless-1.0.0-py3-none-any.whl
- Upload date:
- Size: 34.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
67981cccb0e2525db2911b8dbd1b37390b90caf1afe9f2c23ff3a77df4bd4edf
|
|
| MD5 |
93b1e2756b5705e1e9b3fc8bd659839d
|
|
| BLAKE2b-256 |
59f3019e5264d548d3fab54b009c55787c7289d85af6c8e4537e596297daffe2
|