Source code for tempnet
"""
tempnet
Logging
-------
The package sets up a default logger on import. You can adjust the logging level:
>>> import tempnet
>>> tempnet.set_log_level("DEBUG")
Author
------
Alexandre Bovet <alexandre.bovet@maths.ox.ac.uk>
Contributors
............
- Jonas I. Liechti <j-i-l@t4d.ch>
License
-------
GNU Lesser General Public License v3 or later (LGPLv3+).
"""
try:
# try to import version (provided by hatch (see pyproject.toml)
from ._version import __version__
except ImportError:
# Fallback if the package wasn't installed properly
__version__ = "unknown"
import logging
from .logger import setup_logger, get_logger
# Default log level
setup_logger() # Set up the logger with the default level
from .temporal_network import ( # noqa: F401
ContTempNetwork,
ContTempInstNetwork,
lin_approx_trans_matrix,
compute_stationary_transition,
compute_subspace_expm,
csc_row_normalize,
find_spectral_gap,
remove_nnz_rowcol,
numpy_rebuild_nnz_rowcol,
sparse_lapl_expm,
sparse_lin_approx,
sparse_stationary_trans,
set_to_ones,
set_to_zeroes,
)
from .synth_temp_network import ( # noqa: F401
SynthTempNetwork,
Individual,
make_step_block_probs,
)
[docs]
def set_log_level(level):
"""
Set the logging level for the package.
Parameters
----------
level : str
The logging level as a string (e.g., 'DEBUG', 'INFO').
"""
level_dict = {
'DEBUG': logging.DEBUG,
'INFO': logging.INFO,
'WARNING': logging.WARNING,
'ERROR': logging.ERROR,
'CRITICAL': logging.CRITICAL,
}
if level in level_dict:
logger = get_logger()
logger.setLevel(level_dict[level])
for handler in logger.handlers:
handler.setLevel(level_dict[level])
else:
raise ValueError(
f"Invalid log level: {level}. "
f"Choose from {list(level_dict.keys())}."
)