Source code for mumot

"""Multiscale Modelling Tool (MuMoT)

For documentation and version information use about()

Authors:
James A. R. Marshall, Andreagiovanni Reina, Thomas Bose

Contributors:
Robert Dennison

Packaging, Documentation and Deployment:
Will Furnass

Windows Compatibility:
Renato Pagliara Vasquez
"""

# Set package version.
# NB with Python 3.8 we could use importlib.metadata (in std lib) instead.
from pkg_resources import get_distribution, DistributionNotFound
try:
    __version__ = get_distribution(__name__).version
except DistributionNotFound:
    # package is not installed
    pass
import sys

import matplotlib
from matplotlib import pyplot as plt
# Guard against iopub rate limiting warnings (https://github.com/DiODeProject/MuMoT/issues/359)
from notebook.notebookapp import NotebookApp
NotebookApp.iopub_msg_rate_limit = 10000.0
from sympy.parsing.latex import parse_latex

# Import the functions and classes we wish to export i.e. the public API
from .models import (
    MuMoTmodel,
    parseModel,
)
from .utils import (
    about,
)
from .views import (
    MuMoTSSAView,
    MuMoTbifurcationView,
    MuMoTfieldView,
    MuMoTintegrateView,
    MuMoTmultiView,
    MuMoTmultiagentView,
    MuMoTnoiseCorrelationsView,
    MuMoTstochasticSimulationView,
    MuMoTstreamView,
    MuMoTtimeEvolutionView,
    MuMoTvectorView,
    MuMoTview,
)
from .controllers import (
    MuMoTbifurcationController,
    MuMoTcontroller,
    MuMoTfieldController,
    MuMoTmultiController,
    MuMoTmultiagentController,
    MuMoTstochasticSimulationController,
    MuMoTtimeEvolutionController,
)
from .consts import (
    NetworkType,
    MAX_RANDOM_SEED,
)
from .exceptions import (
    MuMoTError,
    MuMoTSyntaxError,
    MuMoTValueError,
    MuMoTWarning,
)

try:
    # Try to get the currently-running IPython instance
    ipython = get_ipython()
    ipython.magic('alias_magic model latex')
    ipython.magic('matplotlib nbagg')

    def _hide_traceback(exc_tuple=None, filename=None, tb_offset=None,
                        exception_only=False, running_compiled_code=False):
        etype, value, tb = sys.exc_info()
        return ipython._showtraceback(etype, value, ipython.InteractiveTB.get_exception_only(etype, value))

    _show_traceback = ipython.showtraceback
    ipython.showtraceback = _hide_traceback
except NameError:
    # There is no currently-running IPython instance
    pass


[docs]def setVerboseExceptions(verbose: bool = True) -> None: """Set the verbosity of exception handling. Parameters ---------- verbose : bool, optional Whether to show a exception traceback. Defaults to True. """ ipython.showtraceback = _show_traceback if verbose else _hide_traceback