MatrixABM API
=============

Agent
-----

.. automodule:: matrixabm.agent
    :members:

State Store
-----------

.. automodule:: matrixabm.state_store

.. autoclass:: matrixabm.state_store.StateStore
    :members:

.. autoclass:: matrixabm.sqlite3_state_store.SQLite3Store
    :members:

Population
----------

.. automodule:: matrixabm.population

.. autoclass:: matrixabm.population.Population
    :members:

Timestep Generator
------------------

.. automodule:: matrixabm.timestep_generator

.. autoclass:: matrixabm.timestep_generator.TimestepGenerator
    :members:

.. autoclass:: matrixabm.range_timestep_generator.RangeTimestepGenerator


Runner
------

.. automodule:: matrixabm.runner

.. autoclass:: matrixabm.runner.Runner
    :members:

Coordinator
-----------

.. automodule:: matrixabm.coordinator

.. autoclass:: matrixabm.coordinator.Coordinator
    :members:


Load Balancer
-------------

.. automodule:: matrixabm.load_balancer

.. autoclass:: matrixabm.load_balancer.LoadBalancer
    :members:

.. autoclass:: matrixabm.greedy_load_balancer.GreedyLoadBalancer

.. autoclass:: matrixabm.random_load_balancer.RandomLoadBalancer

Simulator
---------

.. automodule:: matrixabm.simulator

.. autoclass:: matrixabm.simulator.Simulator
    :members:


Datatypes
---------

.. autoclass:: matrixabm.datatypes.Timestep
.. autoclass:: matrixabm.datatypes.Constructor
.. autoclass:: matrixabm.datatypes.StateUpdate

