Skip to content

Architecture — Layer Dependency Graph

Import dependency graph generated by grimp from the live ezqt_app source tree.

Auto-generated

This page is regenerated at each documentation build from the actual source code. It reflects the real import graph, not a manually maintained diagram.

To regenerate locally:

PYTHONPATH=src python .scripts/dev/generate_architecture_graph.py

Dependency Graph

graph TD
    cli["cli/<br/>(CLI Entry Point)"]
    services["services/<br/>(Business Logic)"]
    widgets["widgets/<br/>(Qt Widget Implementations)"]
    domain["domain/<br/>(Models + Ports + Results)"]
    shared["shared/<br/>(Shared Resources)"]
    utils["utils/<br/>(Utilities)"]

    cli --> services
    cli --> utils
    services --> domain
    services --> utils
    widgets --> services
    widgets --> shared
    widgets --> utils
    domain --> shared
    shared --> utils

    style cli fill:#4A90D9,color:#fff,stroke:#2C5F8A
    style services fill:#5BA85A,color:#fff,stroke:#3A6B39
    style widgets fill:#E8922A,color:#fff,stroke:#A3621B
    style domain fill:#9B59B6,color:#fff,stroke:#6C3483
    style shared fill:#E74C3C,color:#fff,stroke:#A93226
    style utils fill:#7F8C8D,color:#fff,stroke:#566573

Layer Import Matrix

Layer Imports from
cli services, utils
services domain, utils
widgets services, shared, utils
domain shared
shared utils
utils

Layer Responsibilities

Layer Responsibility
cli Public entry point — Click CLI (ezqt command)
services Business logic and orchestration (ApplicationService, ConfigService, TranslationManager, …)
widgets Concrete Qt widget implementations (MainWindow, SplashScreen, extended widgets, …)
domain Pure domain — models, ports (interfaces), result types, errors (no Qt dependency)
shared Cross-layer shared resources and constants
utils Pure utility functions and helpers