Structure¶
McSAS3 ships a generated module dependency overview for the maintained top-level modules in
src/mcsas3.
The rendered Mermaid version is tracked in the repository at:
design_documentation/generated_module_dependencies.md
It is generated by:
tools/generate_dependency_diagram.py
The content below is included from the generated Markdown file.
This file is generated by python tools/generate_dependency_diagram.py.
It captures imports between top-level modules in src/mcsas3 and is intended as a
maintained structure overview rather than a full call graph.
flowchart LR
subgraph module_Public API and entry points["Public API and entry points"]
module___init__["__init__"]
module___main__["__main__"]
module_cli_tools["cli_tools"]
module_mc_plot["mc_plot"]
module_mcsas3_cli_histogrammer["mcsas3_cli_histogrammer"]
module_mcsas3_cli_runner["mcsas3_cli_runner"]
module_workflows["workflows"]
end
subgraph module_Canonical data and workflow layer["Canonical data and workflow layer"]
module_data_adapters["data_adapters"]
module_data_model["data_model"]
module_ingestion["ingestion"]
module_mc_hdf["mc_hdf"]
module_optimizer_input["optimizer_input"]
module_preprocessing["preprocessing"]
end
subgraph module_Optimization and analysis core["Optimization and analysis core"]
module_mc_analysis["mc_analysis"]
module_mc_core["mc_core"]
module_mc_hat["mc_hat"]
module_mc_model["mc_model"]
module_mc_model_histogrammer["mc_model_histogrammer"]
module_mc_opt["mc_opt"]
module_osb["osb"]
end
subgraph module_Other internal modules["Other internal modules"]
module__cli_common["_cli_common"]
module_cli_histogram["cli_histogram"]
module_cli_optimize["cli_optimize"]
module_parameter_units["parameter_units"]
module_plot_labels["plot_labels"]
module_runtime_paths["runtime_paths"]
end
module___init__ --> module_data_adapters
module___init__ --> module_data_model
module___init__ --> module_workflows
module___main__ --> module_cli_histogram
module___main__ --> module_cli_optimize
module_cli_histogram --> module__cli_common
module_cli_histogram --> module_mc_analysis
module_cli_histogram --> module_mc_plot
module_cli_histogram --> module_workflows
module_cli_optimize --> module__cli_common
module_cli_optimize --> module_workflows
module_cli_tools --> module_cli_histogram
module_cli_tools --> module_cli_optimize
module_cli_tools --> module_workflows
module_data_adapters --> module_data_model
module_mc_analysis --> module_data_adapters
module_mc_analysis --> module_data_model
module_mc_analysis --> module_mc_core
module_mc_analysis --> module_mc_hdf
module_mc_analysis --> module_mc_model_histogrammer
module_mc_analysis --> module_optimizer_input
module_mc_analysis --> module_plot_labels
module_mc_core --> module_data_adapters
module_mc_core --> module_mc_hdf
module_mc_core --> module_mc_model
module_mc_core --> module_mc_opt
module_mc_core --> module_optimizer_input
module_mc_core --> module_osb
module_mc_hat --> module_data_adapters
module_mc_hat --> module_mc_core
module_mc_hat --> module_mc_hdf
module_mc_hat --> module_mc_model
module_mc_hat --> module_mc_opt
module_mc_hat --> module_optimizer_input
module_mc_hdf --> module_data_model
module_mc_model --> module_mc_hdf
module_mc_model --> module_parameter_units
module_mc_model_histogrammer --> module_mc_core
module_mc_model_histogrammer --> module_mc_hdf
module_mc_model_histogrammer --> module_mc_model
module_mc_model_histogrammer --> module_mc_opt
module_mc_model_histogrammer --> module_parameter_units
module_mc_model_histogrammer --> module_plot_labels
module_mc_opt --> module_mc_hdf
module_mc_plot --> module_optimizer_input
module_mc_plot --> module_plot_labels
module_mcsas3_cli_histogrammer --> module_cli_histogram
module_mcsas3_cli_histogrammer --> module_runtime_paths
module_mcsas3_cli_runner --> module_cli_optimize
module_mcsas3_cli_runner --> module_runtime_paths
module_optimizer_input --> module_data_adapters
module_osb --> module_data_adapters
module_osb --> module_optimizer_input
module_parameter_units --> module_data_model
module_plot_labels --> module_parameter_units
module_preprocessing --> module_data_adapters
module_preprocessing --> module_data_model
module_workflows --> module_data_adapters
module_workflows --> module_data_model
module_workflows --> module_ingestion
module_workflows --> module_mc_hat
module_workflows --> module_mc_hdf
module_workflows --> module_preprocessing
classDef public fill:#e7f0ff,stroke:#3a66b3,color:#1d2b45;
classDef canonical fill:#e8f8ee,stroke:#2a7f45,color:#153523;
classDef core fill:#fff2df,stroke:#b06a00,color:#4d3200;
classDef other fill:#f2f2f2,stroke:#777777,color:#333333;
class module___init__,module___main__,module_cli_tools,module_mc_plot,module_mcsas3_cli_histogrammer,module_mcsas3_cli_runner,module_workflows public;
class module_data_adapters,module_data_model,module_ingestion,module_mc_hdf,module_optimizer_input,module_preprocessing canonical;
class module_mc_analysis,module_mc_core,module_mc_hat,module_mc_model,module_mc_model_histogrammer,module_mc_opt,module_osb core;
class module__cli_common,module_cli_histogram,module_cli_optimize,module_parameter_units,module_plot_labels,module_runtime_paths other;
Regeneration¶
Run:
./.venv/bin/python tools/generate_dependency_diagram.py
Notes¶
The diagram is generated from import statements, so it shows module coupling rather than runtime call flow.
External dependencies are intentionally omitted.
The layer grouping is curated for readability; edges within and across layers remain generated.