get_role#
- bamengine.core.registry.get_role(name)[source]#
Retrieve a role class from the registry by name.
- Parameters:
name (
str) – Name of the role to retrieve (case-sensitive).- Returns:
The registered role class.
- Return type:
type[Role]- Raises:
KeyError – If the role name is not found in the registry. Error message includes list of all available roles.
Examples
Retrieve a role class and create instance:
>>> from bamengine.core.registry import get_role >>> import numpy as np >>> Producer = get_role("Producer") >>> prod = Producer( ... price=np.array([1.0, 1.2]), ... production=np.array([100.0, 120.0]), ... inventory=np.array([0.0, 10.0]), ... labor_productivity=np.array([2.0, 2.0]), ... )
Use in simulation:
>>> import bamengine as bam >>> sim = bam.Simulation.init(n_firms=100, seed=42) >>> Producer = get_role("Producer") >>> assert isinstance(sim.prod, Producer)
Handle missing role:
>>> try: ... get_role("NonExistent") ... except KeyError as e: ... print(e) Role 'NonExistent' not found in registry. Available roles: ...
See also
list_roles()Get list of all registered role names
get_event()Retrieve event class from registry