Skip to main content

A Python library for reading and parsing Functional Mock-up Interface model description XML file.

This project has been archived.

The maintainers of this project have marked this project as archived. No new releases are expected.

Project description

mdreader 📖

A Python library for reading and parsing Functional Mock-up Interface (FMI2.0 currently) model description XML file into Pydantic models.

PyPI version

Installation 📦

Add mdreader to your pyproject.toml with uv with:

uv add mdreader

To install uv, see https://docs.astral.sh/uv/getting-started/installation/

How to use 🚀

To read and parse an FMI 2.0 model description:

from mdreader.fmi2 import read_model_description

# Read from XML file
md = read_model_description("path/to/modelDescription.xml")

# Read from FMU archive
md = read_model_description("path/to/model.fmu")

# Read from unzipped FMU directory
md = read_model_description("path/to/unzipped/fmu/directory")

print(md)

Features ✨

  • Parse FMI 2.0 model description XML files
  • Read model information from FMU archives
  • Access model metadata (name, version, author, GUID, etc.)
  • Extract variable definitions (real, integer, boolean, string, enumeration)
  • Access unit definitions and type definitions
  • Support for both Model Exchange and Co-Simulation interfaces
  • Parse model structure, dependencies, and experiment configurations

Why another FMI model description reader? 🤔

  • Lightweight: mdreader only depends on Pydantic
  • De/Serialization: Pydantic models support easy serialization to/from JSON, dict, etc.
  • Validation: mdreader uses Pydantic models to ensure the integrity of the parsed data
  • FMI version exclusive: The fmi2.FMIModelDescription class is specific to FMI 2.0 (not a mix of FMI1/2/3), making it simpler to use for that version

Related projects 🔗

  • fmpy: A similar read_model_description function is available in FMPy, but it uses custom classes instead of Pydantic models and has more dependencies.

Licensing 📄

The code in this project is licensed under MIT license. See the LICENSE file for details.

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

mdreader-0.1.2rc0.tar.gz (14.4 kB view details)

Uploaded Source

Built Distribution

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

mdreader-0.1.2rc0-py3-none-any.whl (15.1 kB view details)

Uploaded Python 3

File details

Details for the file mdreader-0.1.2rc0.tar.gz.

File metadata

  • Download URL: mdreader-0.1.2rc0.tar.gz
  • Upload date:
  • Size: 14.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for mdreader-0.1.2rc0.tar.gz
Algorithm Hash digest
SHA256 c9af0f4c937e0c4626916646c2022a503191e4eb0eafdca5623bc2b64d0c140d
MD5 6d60ec8b4c34425cb02f220b37a10556
BLAKE2b-256 44f01dc85ddf7418ee8bf6dd401ea47be5d80574b2f2064d949651dee8ef4a24

See more details on using hashes here.

File details

Details for the file mdreader-0.1.2rc0-py3-none-any.whl.

File metadata

  • Download URL: mdreader-0.1.2rc0-py3-none-any.whl
  • Upload date:
  • Size: 15.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for mdreader-0.1.2rc0-py3-none-any.whl
Algorithm Hash digest
SHA256 3321b8c460d85c51cc3b4d27196a7a5baea2d6c52caa3eaeed74b349f4a93821
MD5 b69844b9085edf666cb887663777b651
BLAKE2b-256 1c96c9c3a78465bf67fcdf84cbd91f367eeefdc7f9e90e978d0c05335a804a69

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