Base Classes

class ambr.base.AttrDict[source]

Bases: dict

Dictionary that allows attribute-style access to its keys.

This provides AgentPy compatibility where parameters are accessed as:

self.p.param_name instead of self.p[‘param_name’]

class ambr.base.BaseAgent(model: BaseModel, agent_id: int)[source]

Bases: object

Base class for all agents in the simulation, using DataFrames for data storage.

class ambr.base.BaseModel(parameters: Dict[str, Any])[source]

Bases: object

Base class for all simulation models, using DataFrames for data storage.

The base module provides abstract base classes for creating custom models and agents.

BaseModel

class ambr.BaseModel(parameters: Dict[str, Any])[source]

Bases: object

Base class for all simulation models, using DataFrames for data storage.

Abstract base class for all models. Inherit from this to create custom model types:

from ambr.base import BaseModel

class CustomModel(BaseModel):
    def __init__(self, parameters):
        super().__init__(parameters)
        # Custom initialization

    def setup(self):
        # Model setup logic
        pass

    def step(self):
        # Step logic
        pass

BaseAgent

class ambr.BaseAgent(model: BaseModel, agent_id: int)[source]

Bases: object

Base class for all agents in the simulation, using DataFrames for data storage.

Abstract base class for all agents. Inherit from this to create custom agent types:

from ambr.base import BaseAgent

class CustomAgent(BaseAgent):
    def __init__(self, model, agent_id):
        super().__init__(model, agent_id)
        # Custom initialization
        self.custom_property = "value"

    def step(self):
        # Agent behavior logic
        pass

    def custom_method(self):
        # Custom agent methods
        return self.custom_property

Key Features:

  • Automatic parameter access via self.p

  • Model reference via self.model

  • Unique ID management

  • Integration with data collection system