Skip to main content

Excelsior: High-fidelity clean architecture linter for Python.

Project description

Stellar Engineering Command Banner

PyPI Build Status Python Versions License

Captain's Log: High-authority Pylint module for enforcing Prime Directives (Clean Architecture) and preventing Hull Integrity Breaches (Technical Debt) in Python projects.

Enforcing architectural boundaries, dependency rules, and design patterns to ensure the fleet remains operational and modular.

Features

  • Layer Boundary Enforcement: Ensures Prime Directives are maintained between Domain, UseCase, and Infrastructure.
  • The Silent Core Rule (W9013): Guarantees that Domain/UseCase layers remain free of print, logging, and console I/O, forcing delegation to Interfaces/Adapters.
  • Dependency Injection Checks: Forbids unauthorized instantiation of infrastructure modules within UseCases.
  • Design Pattern Enforcement: Detects "naked returns" and other architectural anomalies.
  • Law of Demeter: Prevents tight coupling through deep method chains.
  • Contract Integrity: Verifies that Infrastructure implements Domain Protocols correctly.
  • Anti-Bypass Guard: Prevents "lazy" disabling of Prime Directives without high-level authorization (Justification).

Docking Procedures

pip install pylint-clean-architecture

Flight Manual

Add the plugin to your pyproject.toml or Pylint configuration:

[tool.pylint.main]
load-plugins = ["clean_architecture_linter"]

Run Pylint as usual:

pylint src/

AI Coding Assistant Support

The clean-arch-init command generates architectural instructions for AI agents (like Cursor or GitHub Copilot) to prevent "Split Brain" issues by teaching the AI your project's rules before it writes code.

Usage:

clean-arch-init

Outcome: This creates a customized .agent/instructions.md file based on the layer names defined in the project's Console Calibration.

Console Calibration

The module is calibrated via [tool.clean-arch] in pyproject.toml.

[tool.clean-arch]
# 1. Project Type Presets (generic, cli_app, fastapi_sqlalchemy)
project_type = "generic"

# 2. Strict Visibility Enforcement
visibility_enforcement = true

# 3. Silent Core Calibration
silent_layers = ["Domain", "UseCase"]
allowed_io_interfaces = ["TelemetryPort", "LoggerPort"]

# 4. Shared Kernel (Allow cross-cutting concerns anywhere)
shared_kernel_modules = ["logging_utils", "clean_architecture_linter.interface.telemetry"]

# 5. Custom Layer Mapping (Map directory regex patterns to layers)
[tool.clean-arch.layer_map]
"services" = "UseCase"
"infrastructure/clients" = "Infrastructure"
"domain/models" = "Domain"

Prime Directives

See RULES.md for a complete catalog of enforced Prime Directives and "Clean Fix" examples.

Mission Log

Contributing

  1. Fork the repo.
  2. Install dependencies: make install.
  3. Run tests: make test.
  4. Submit a PR.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pylint_clean_architecture-1.4.2.tar.gz (32.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pylint_clean_architecture-1.4.2-py3-none-any.whl (35.8 kB view details)

Uploaded Python 3

File details

Details for the file pylint_clean_architecture-1.4.2.tar.gz.

File metadata

File hashes

Hashes for pylint_clean_architecture-1.4.2.tar.gz
Algorithm Hash digest
SHA256 a55bc345b7b989766535be08dbba0e0e9fb47d087b95ddf03ff82bfa648fe21e
MD5 d80db1206fd48d28085302839f3962cb
BLAKE2b-256 f2bbca6247eb7cc5ed5731b3751eaed4ce05a697c6307a8b4cdb1031aae68e9f

See more details on using hashes here.

File details

Details for the file pylint_clean_architecture-1.4.2-py3-none-any.whl.

File metadata

File hashes

Hashes for pylint_clean_architecture-1.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b21e60898168eb76da465423c59361a454cbac05a2f571eff0ee660822db4b5b
MD5 82b81f88900d5b707358e6eca57ef052
BLAKE2b-256 79defee9952ff9bebbb8356aa28755eb4672dffbf7ca7b5474845a8b29ee2a97

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page