# JANI Models Momba exposes two main functions to work with [JANI-model](https://jani-spec.org) files, {func}`~momba.jani.dump_model` and {func}`~momba.jani.load_model`. As the names suggest, {func}`~momba.jani.dump_model` exports a Momba automaton {class}`~momba.model.Network` to JANI-model while the function {func}`~momba.jani.load_model` imports an automaton {class}`~momba.model.Network` from a JANI-model file. Momba supports the full JANI core specification and furthermore has support for the following JANI extensions: `arrays`, `derived-operators`, `functions`, `nondet-selection`, `state-exit-rewards`, and `trigonometric-functions`. ## Examples ### Loading a JANI-Model ```{jupyter-execute} import pathlib from momba import jani path = pathlib.Path("tests/resources/QVBS2019/benchmarks/mdp/firewire/firewire.true.jani") jani.load_model(path.read_text("utf-8")) ``` ### Exporting a JANI-Model ```{jupyter-execute} from momba import jani, model ctx = model.Context(model.ModelType.MDP) network = ctx.create_network() # ... build the automaton network jani.dump_model(network) ``` ## Reference ```{eval-rst} .. autofunction:: momba.jani.load_model .. autofunction:: momba.jani.dump_model .. autoclass:: momba.jani.ModelFeature :members: ``` ### Exceptions ```{eval-rst} .. autoclass:: momba.jani.JANIError .. autoclass:: momba.jani.InvalidJANIError .. autoclass:: momba.jani.UnsupportedJANIError ```