Skip to main content

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

Project description

fmureader 📖

A Python library for reading and parsing Functional Mock-up Interface (FMI 2.0 and 3.0) model description XML files into Pydantic models.

PyPI version

Installation 📦

Add fmureader to your pyproject.toml with uv with:

uv add fmureader

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

How to use 🚀

To read and parse an FMI model description (works for both 2.0 and 3.0):

import fmureader.fmi2 as fmi2
import fmureader.fmi3 as fmi3

# Read from XML file
md = fmi2.read_model_description("path/to/fmi2/modelDescription.xml")  # or fmi3.read_model_description for 3.0
# Read from FMU archive
md = fmi2.read_model_description("path/to/model.fmu")  # or fmi3.read_model_description for 3.0

# Read from unzipped FMU directory
md = fmi2.read_model_description("path/to/unzipped/fmu/directory")  # or fmi3.read_model_description for 3.0

print(md)

Features ✨

  • Parse FMI 2.0 and 3.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, clock, binary)
  • Access unit definitions and type definitions
  • Support for Model Exchange, Co-Simulation, and Scheduled Execution interfaces
  • Parse model structure, dependencies, and experiment configurations
  • Full support for FMI 3.0 features including structural parameters, clock variables, and directional derivatives

Why another FMI model description reader? 🤔

  • Lightweight: fmureader only depends on Pydantic
  • De/Serialization: Pydantic models support easy serialization to/from JSON, dict, etc.
  • Validation: fmureader uses Pydantic models to ensure the integrity of the parsed data
  • FMI version specific: The fmi2.FMIModelDescription and fmi3.FMIModelDescription classes are specific to their respective FMI versions (not a mix of versions), making it simpler to use for each 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

fmureader-0.1.1rc0.tar.gz (32.6 kB view details)

Uploaded Source

Built Distribution

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

fmureader-0.1.1rc0-py3-none-any.whl (34.7 kB view details)

Uploaded Python 3

File details

Details for the file fmureader-0.1.1rc0.tar.gz.

File metadata

  • Download URL: fmureader-0.1.1rc0.tar.gz
  • Upload date:
  • Size: 32.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","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 fmureader-0.1.1rc0.tar.gz
Algorithm Hash digest
SHA256 1d22ae24931ec432b76b55689d8a6cab4b1aebe613b3db8f1b4c09ee012ccad4
MD5 e7c95670f76d63beb403fde360919441
BLAKE2b-256 dce0496147ef62c83ebac4ead17e95dedfea0623ac9eefc1cb7f8db2636add79

See more details on using hashes here.

File details

Details for the file fmureader-0.1.1rc0-py3-none-any.whl.

File metadata

  • Download URL: fmureader-0.1.1rc0-py3-none-any.whl
  • Upload date:
  • Size: 34.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","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 fmureader-0.1.1rc0-py3-none-any.whl
Algorithm Hash digest
SHA256 4897a0b1de3447bacc3d9b0ae6c0019bd3199d64d1cb4b096c11e1f01a8d4ba7
MD5 c8520de85d9027f35c11ae18928eb1fc
BLAKE2b-256 21d30a57f913c4cd71d7bf5658fdcba7b7845c7f74d5ae87636ca58c351860d0

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