Skip to content

aea.skills.behaviours

This module contains the classes for specific behaviours.

SimpleBehaviour Objects

class SimpleBehaviour(Behaviour,  ABC)

This class implements a simple behaviour.

__init__

 | __init__(act: Optional[Callable[[], None]] = None, **kwargs: Any) -> None

Initialize a simple behaviour.

Arguments:

  • act: the act callable.
  • kwargs: the keyword arguments to be passed to the parent class.

setup

 | setup() -> None

Set the behaviour up.

act

 | act() -> None

Do the action.

teardown

 | teardown() -> None

Tear the behaviour down.

CompositeBehaviour Objects

class CompositeBehaviour(Behaviour,  ABC)

This class implements a composite behaviour.

CyclicBehaviour Objects

class CyclicBehaviour(SimpleBehaviour,  ABC)

This behaviour is executed until the agent is stopped.

__init__

 | __init__(**kwargs: Any) -> None

Initialize the cyclic behaviour.

number_of_executions

 | @property
 | number_of_executions() -> int

Get the number of executions.

act_wrapper

 | act_wrapper() -> None

Wrap the call of the action. This method must be called only by the framework.

is_done

 | is_done() -> bool

Return True if the behaviour is terminated, False otherwise.

The user should implement it properly to determine the stopping condition.

Returns:

bool indicating status

OneShotBehaviour Objects

class OneShotBehaviour(SimpleBehaviour,  ABC)

This behaviour is executed only once.

__init__

 | __init__(**kwargs: Any) -> None

Initialize the cyclic behaviour.

is_done

 | is_done() -> bool

Return True if the behaviour is terminated, False otherwise.

act_wrapper

 | act_wrapper() -> None

Wrap the call of the action. This method must be called only by the framework.

TickerBehaviour Objects

class TickerBehaviour(SimpleBehaviour,  ABC)

This behaviour is executed periodically with an interval.

__init__

 | __init__(tick_interval: float = 1.0, start_at: Optional[datetime.datetime] = None, **kwargs: Any) -> None

Initialize the ticker behaviour.

Arguments:

  • tick_interval: interval of the behaviour in seconds.
  • start_at: whether to start the behaviour with an offset.
  • kwargs: the keyword arguments.

tick_interval

 | @property
 | tick_interval() -> float

Get the tick_interval in seconds.

start_at

 | @property
 | start_at() -> datetime.datetime

Get the start time.

last_act_time

 | @property
 | last_act_time() -> datetime.datetime

Get the last time the act method has been called.

act_wrapper

 | act_wrapper() -> None

Wrap the call of the action. This method must be called only by the framework.

is_time_to_act

 | is_time_to_act() -> bool

Check whether it is time to act, according to the tick_interval constraint and the 'start at' constraint.

Returns:

True if it is time to act, false otherwise.

SequenceBehaviour Objects

class SequenceBehaviour(CompositeBehaviour,  ABC)

This behaviour executes sub-behaviour serially.

__init__

 | __init__(behaviour_sequence: List[Behaviour], **kwargs: Any) -> None

Initialize the sequence behaviour.

Arguments:

  • behaviour_sequence: the sequence of behaviour.
  • kwargs: the keyword arguments

current_behaviour

 | @property
 | current_behaviour() -> Optional[Behaviour]

Get the current behaviour.

If None, the sequence behaviour can be considered done.

Returns:

current behaviour or None

act

 | act() -> None

Implement the behaviour.

is_done

 | is_done() -> bool

Return True if the behaviour is terminated, False otherwise.

State Objects

class State(SimpleBehaviour,  ABC)

A state of a FSMBehaviour.

A State behaviour is a simple behaviour with a special property 'event' that is opportunely set by the implementer. The event is read by the framework when the behaviour is done in order to pick the transition to trigger.

__init__

 | __init__(**kwargs: Any) -> None

Initialize a state of the state machine.

event

 | @property
 | event() -> Optional[str]

Get the event to be triggered at the end of the behaviour.

is_done

 | @abstractmethod
 | is_done() -> bool

Return True if the behaviour is terminated, False otherwise.

reset

 | reset() -> None

Reset initial conditions.

FSMBehaviour Objects

class FSMBehaviour(CompositeBehaviour,  ABC)

This class implements a finite-state machine behaviour.

__init__

 | __init__(**kwargs: Any) -> None

Initialize the finite-state machine behaviour.

is_started

 | @property
 | is_started() -> bool

Check if the behaviour is started.

register_state

 | register_state(name: str, state: State, initial: bool = False) -> None

Register a state.

Arguments:

  • name: the name of the state.
  • state: the behaviour in that state.
  • initial: whether the state is an initial state.

Raises:

  • ValueError: if a state with the provided name already exists.

register_final_state

 | register_final_state(name: str, state: State) -> None

Register a final state.

Arguments:

  • name: the name of the state.
  • state: the state.

Raises:

  • ValueError: if a state with the provided name already exists.

unregister_state

 | unregister_state(name: str) -> None

Unregister a state.

Arguments:

  • name: the state name to unregister.

Raises:

  • ValueError: if the state is not registered.

states

 | @property
 | states() -> Set[str]

Get all the state names.

initial_state

 | @property
 | initial_state() -> Optional[str]

Get the initial state name.

initial_state

 | @initial_state.setter
 | initial_state(name: str) -> None

Set the initial state.

final_states

 | @property
 | final_states() -> Set[str]

Get the final state names.

get_state

 | get_state(name: str) -> Optional[State]

Get a state from its name.

act

 | act() -> None

Implement the behaviour.

is_done

 | is_done() -> bool

Return True if the behaviour is terminated, False otherwise.

register_transition

 | register_transition(source: str, destination: str, event: Optional[str] = None) -> None

Register a transition.

No sanity check is done.

Arguments:

  • source: the source state name.
  • destination: the destination state name.
  • event: the event.

Raises:

  • ValueError: if a transition from source with event is already present.

unregister_transition

 | unregister_transition(source: str, destination: str, event: Optional[str] = None) -> None

Unregister a transition.

Arguments:

  • source: the source state name.
  • destination: the destination state name.
  • event: the event.

Raises:

  • ValueError: if a transition from source with event is not present.