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.
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.FMIModelDescriptionandfmi3.FMIModelDescriptionclasses 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_descriptionfunction 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.
Metadata
Release files for fmureader 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| fmureader-0.1.2.tar.gz | 33.1 kB | Without provenance | Details for fmureader-0.1.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| fmureader-0.1.2-py3-none-any.whl | Python 3 | none | any | Details for fmureader-0.1.2-py3-none-any.whl |
Total release size: 68.3 kB
Release files / fmureader-0.1.2.tar.gz
| Download URL | fmureader-0.1.2.tar.gz |
|---|---|
| Size | 33.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
bd41e95b44756db77c7acbc5bfed6999a7d8044be1c63cce0ac0a437cfaaff3e
|
|
BLAKE2b-256 checksum How to use checksums |
8b7770b7f070787939ef69949f0c41a6de1c74cfcef78272168d47f313d63b8a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","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}
|
Release files / fmureader-0.1.2-py3-none-any.whl
| Download URL | fmureader-0.1.2-py3-none-any.whl |
|---|---|
| Size | 35.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fed1371da75075f89ce1be9d442004328d4917a87323da358dc1504c165149d4
|
|
BLAKE2b-256 checksum How to use checksums |
b4bdf49f2fde47ea31f8fe7cf2b8d8af64f1e7695f1504adf0a73fe3a77def07
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","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}
|
Security for fmureader 0.1.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.