Source code for emout
"""emout -- Python interface for EMSES simulation output.
Provides :class:`Emout` as the main entry point for reading grid data,
particle data, input parameters, and boundary definitions from EMSES
HDF5 and namelist files.
Quick start::
import emout
data = emout.Emout("/path/to/output")
data.phisp[-1].plot()
"""
import logging as _logging
from .core import data
from .core.data import VectorData, VectorData2d, VectorData3d
from .core.facade import Emout
from .local_data_policy import (
LocalDataAccessDisabledError,
disable_local_data_access,
enable_local_data_access,
get_local_data_policy,
is_local_data_access_disabled,
local_data_policy,
reset_local_data_policy,
set_local_data_policy,
)
from .utils.emsesinp import InpFile, UnitConversionKey
from .utils.units import Units
[docs]
def set_log_level(level: str = "WARNING") -> None:
"""Configure the log level for the entire ``emout`` package.
Parameters
----------
level : str, default ``"WARNING"``
One of ``"DEBUG"``, ``"INFO"``, ``"WARNING"``, ``"ERROR"``,
``"CRITICAL"``.
Examples
--------
>>> import emout
>>> emout.set_log_level("DEBUG") # verbose
>>> emout.set_log_level("WARNING") # quiet (default)
"""
logger = _logging.getLogger("emout")
logger.setLevel(getattr(_logging, level.upper(), _logging.WARNING))
if not logger.handlers:
handler = _logging.StreamHandler()
handler.setFormatter(_logging.Formatter("%(name)s [%(levelname)s] %(message)s"))
logger.addHandler(handler)