Skip to main content

Bauklotz

A Python-based tool for software architecture analysis and visualization.

Overview

Bauklotz is a framework for building and executing analysis pipelines that process software project structures. It is designed to help software architects analyze codebases through configurable filters and generate various reports and visualizations.

Features

  • Pipeline-based architecture analysis
  • Configurable filters for analyzing Python projects
  • Multiple report formats (CSV, YAML, UML diagrams, C4 diagrams, Treemaps)
  • Graph-based visualization of class hierarchies and dependency networks
  • C4 model extraction from docstring annotations
  • Extensible filter and report system
  • Plugin system for custom filters and reports
  • Fact contract validation: static pre-run check that every filter's required facts are provided by upstream filters

Installation

pip install bauklotz

Usage

  1. Create a configuration file describing your analysis pipeline:
channel input

filter builtin.python.project:PythonProjectFilter project
filter builtin.python.structure:PythonClassHierarchyFilter hierarchy
    internal_modules: "your_module"

# External filter example
filter external.metrics:ComplexityFilter complexity
    threshold: 10

report builtin.writer.uml:ClassDiagramWriter classdiagram
   path: "output/classdiagram.uml"

input -> project -> hierarchy -> complexity -> classdiagram
  1. Run the analysis:
bauklotz config.bauklotz <project_dir> input --extension external

Configuration

The pipeline is configured using a simple DSL that defines:

  • Input channels
  • Filters for processing (both built-in and external)
  • Reports for output generation
  • Connections between components

Syntax Notes

A few DSL conventions that aren't obvious from the example above:

  • Argument names always end with a colon, e.g. threshold: (the colon is stripped from the parsed name).
  • A value prefixed with @ is treated as a file path, e.g. path: @output/summary.csv; relative paths are resolved relative to the config file's directory.
  • Numeric argument values (e.g. threshold: 10) are always parsed as floating point numbers internally.
  • # starts a comment that runs to the end of the line; a # inside a "quoted string" is treated as a literal character, not a comment.

Plugin System

Bauklotz supports external filters and reports through its plugin system. Custom filters can be added by:

  1. Creating a Python module with filter implementations
  2. Registering the module with Bauklotz
  3. Referencing the custom filters in your configuration using external.module:FilterName syntax

Core Components

  • Pipe: Base interface for pipeline construction and execution
  • Filter: Processes items in the pipeline
  • Report: Generates output in various formats

Output Formats

  • CSV reports
  • YAML summaries
  • UML class diagrams
  • Graph formats (GML)
  • C4 architecture diagrams (PlantUML)
  • Interactive Treemaps (HTML)

Documentation

For detailed documentation, please visit the project repository.

License

BSD3

Metadata

Release files for bauklotz 2.3.2

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

Source distribution (sdist)

Source distribution for bauklotz 2.3.2
File Size Uploaded Provenance
bauklotz-2.3.2.tar.gz 69.6 kB Without provenance Details

Built distribution (wheel)

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

Total release size: 166.7 kB

Release files / bauklotz-2.3.2.tar.gz

Download URL bauklotz-2.3.2.tar.gz
Size 69.6 kB
Tags Source
SHA-256 checksum
How to use checksums
666a2fed0c1f507fbbb094b61f9b89da9f3fa704e8aa3cdc1d3e726d7c298c36
BLAKE2b-256 checksum
How to use checksums
3f6aa5c81b69c6a47f4f8d90928e572156b2cf5a50144455a0adffda708c3af8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.4.1 CPython/3.14.7 Linux/5.15.154+

Release files / bauklotz-2.3.2-py3-none-any.whl

Download URL bauklotz-2.3.2-py3-none-any.whl
Size 97.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e4c477348c9ec336ac0c998b845f38c5b79e5a076135beee396ecec8278170a2
BLAKE2b-256 checksum
How to use checksums
9b325de9cb58d6f119797e9bfef106023f3e07c20f38ed2494ed48e7aad4e465
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.4.1 CPython/3.14.7 Linux/5.15.154+

Security for bauklotz 2.3.2

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.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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