Metadata-Version: 2.4
Name: mitm-tooling
Version: 0.8.2
Author-email: Leah Tacke genannt Unterberg <l.tgu@pads.rwth-aachen.de>
Requires-Python: <3.14,>=3.12
Requires-Dist: genson>=1.3.0
Requires-Dist: numpy>=2
Requires-Dist: pandas[compression,computation,performance]>=2.0
Requires-Dist: pydantic>=2.11
Requires-Dist: pyyaml>=6.0
Requires-Dist: sqlalchemy-utils>=0.38.0
Requires-Dist: sqlalchemy>=2
Requires-Dist: stream-zip
Provides-Extra: analysis
Requires-Dist: matplotlib; extra == 'analysis'
Requires-Dist: seaborn; extra == 'analysis'
Provides-Extra: pm
Requires-Dist: pm4py; extra == 'pm'
Description-Content-Type: text/markdown

# mitm-tooling

This python package contains basic functionality to work with "Models-in-the-Middle" (MitM) data sets.
It bundles a generic mechanism to load and export relational data as a configurable MitM.

## Package Structure

- `mitm_tooling/data_types`: Defines the basic attribute data types supported in MitMs.
- `mitm_tooling/definition`: Contains MitM definitions. Currently, only `MAED` is supported.
- `mitm_tooling/extraction/sql`: Functionality for mapping and (virtually) transforming relational databases. This is
  used by the [maed\[/mitm\]-exporter-backend](https://git-ce.rwth-aachen.de/machine-data/maed-exporter/maed-exporter-backend).
- `mitm_tooling/representation`: Defines different representations of MitM data. From the proposed zipped format to
  dataframes and a relational DB representation.
    - `/sql`: Defines the relational representation along with utilities for inserting any (mapped) MitM data, by
      essentially executing a (streamable) ETL pipeline.
- `mitm_tooling/transformation`: Functionality for converting different representations into each other. Also contains
    - `/superset`: Functionality for generating superset-importable definitions, particularly programmatically defined
      dynamic dashboards. This is used by the [superset-mitm-service](https://git-ce.rwth-aachen.de/machine-data/superset-mitm-service).
- `mitm_tooling/utilities`: Some utility functions.


## Extension Points

1. Adding new MitMs via a `.yaml` definition.
2. Adding transformation capabilities to/from other formats.
3. Adding new model-specific visualization creators (e.g., `mitm_tooling/transformation/superset/visualizations/maed/dashboards.py`)