Utils Module
Helper functions and configuration utilities.
Configuration
Configuration loading from YAML and JSON files.
- class simcraft.utils.config.ConfigLoader[source]
Bases:
objectLoad configuration from various file formats.
Examples
>>> config = ConfigLoader.load("config.yaml") >>> print(config["simulation"]["duration"])
- class simcraft.utils.config.YAMLConfig[source]
Bases:
objectBase class for typed configuration.
Subclass this to create strongly-typed configuration classes.
Examples
>>> @dataclass ... class SimConfig(YAMLConfig): ... duration: float = 100.0 ... warmup: float = 10.0 ... seed: int = 42 ... >>> config = SimConfig.from_file("config.yaml") >>> print(config.duration)
- classmethod from_dict(data)[source]
Create instance from dictionary.
- Parameters:
data (Dict[str, Any]) – Configuration data
- Returns:
Configuration instance
- Return type:
T
- classmethod from_file(filepath)[source]
Create instance from file.
- Parameters:
filepath (str) – Configuration file path
- Returns:
Configuration instance
- Return type:
T
- to_dict()[source]
Convert to dictionary.
- Returns:
Configuration dictionary
- Return type:
Dict[str, Any]
- __init__()
- Return type:
None
- class simcraft.utils.config.SimulationConfig[source]
Bases:
YAMLConfigStandard simulation configuration.
- __init__(name='Simulation', duration=100.0, warmup=0.0, seed=None, replications=1, time_unit='hours', log_level='WARNING', collect_trace=False)
Logging
Structured logging for simulations.
- class simcraft.utils.logging.SimulationLogger[source]
Bases:
objectLogger for simulation events.
Provides structured logging with simulation time stamps.
- Parameters:
sim (Simulation) – Parent simulation
name (str) – Logger name
level (int) – Logging level
Examples
>>> logger = SimulationLogger(sim, "MyModel") >>> logger.info("Customer arrived") >>> logger.debug("Queue length: %d", queue.length)
- __init__(sim, name='', level=20)[source]
Initialize logger.
- Parameters:
sim (Simulation)
name (str)
level (int)
- Return type:
None
Visualization
Plotting utilities for simulation output.
- simcraft.utils.visualization.plot_time_series(time_series, title=None, xlabel='Time', ylabel='Value', figsize=(10, 6), show=True, save_path=None)[source]
Plot a time series.
- Parameters:
- Returns:
Matplotlib figure
- Return type:
Any