aea.decision_
maker.base
This module contains the decision maker class.
OwnershipState Objects
Represent the ownership state of an agent (can proxy a ledger).
set
Set values on the ownership state.
Arguments:
kwargs
: the relevant keyword arguments
apply_
delta
Apply a state update to the ownership state.
This method is used to apply a raw state update without a transaction.
Arguments:
kwargs
: the relevant keyword arguments
is_
initialized
Get the initialization status.
is_
affordable_
transaction
Check if the transaction is affordable (and consistent).
Arguments:
terms
: the transaction terms
Returns:
True if the transaction is legal wrt the current state, false otherwise.
apply_
transactions
Apply a list of transactions to (a copy of) the current state.
Arguments:
list_of_terms
: the sequence of transaction terms.
Returns:
the final state.
__
copy__
Copy the object.
Preferences Objects
Class to represent the preferences.
set
Set values on the preferences.
Arguments:
kwargs
: the relevant key word arguments
is_
initialized
Get the initialization status.
Returns True if exchange_params_by_currency_id and utility_params_by_good_id are not None.
marginal_
utility
Compute the marginal utility.
Arguments:
ownership_state
: the ownership state against which to compute the marginal utility.kwargs
: optional keyword arguments
Returns:
the marginal utility score
utility_
diff_
from_
transaction
| @abstractmethod
| utility_diff_from_transaction(ownership_state: OwnershipState, terms: Terms) -> float
Simulate a transaction and get the resulting utility difference (taking into account the fee).
Arguments:
ownership_state
: the ownership state against which to apply the transaction.terms
: the transaction terms.
Returns:
the score.
__
copy__
Copy the object.
ProtectedQueue Objects
A wrapper of a queue to protect which object can read from it.
__
init__
Initialize the protected queue.
Arguments:
access_code
: the access code to read from the queue
put
| put(internal_message: Optional[Message], block: bool = True, timeout: Optional[float] = None) -> None
Put an internal message on the queue.
If optional args block is true and timeout is None (the default), block if necessary until a free slot is available. If timeout is a positive number, it blocks at most timeout seconds and raises the Full exception if no free slot was available within that time. Otherwise (block is false), put an item on the queue if a free slot is immediately available, else raise the Full exception (timeout is ignored in that case).
Arguments:
internal_message
: the internal message to put on the queueblock
: whether to block or nottimeout
: timeout on block :raises: ValueError, if the item is not an internal message
put_
nowait
Put an internal message on the queue.
Equivalent to put(item, False).
Arguments:
internal_message
: the internal message to put on the queue :raises: ValueError, if the item is not an internal message
get
Inaccessible get method.
Arguments:
block
: whether to block or nottimeout
: timeout on block :raises: ValueError, access not permitted.
get_
nowait
Inaccessible get_nowait method.
:raises: ValueError, access not permitted.
protected_
get
| protected_get(access_code: str, block: bool = True, timeout: Optional[float] = None) -> Optional[Message]
Access protected get method.
Arguments:
access_code
: the access codeblock
: If optional args block is true and timeout is None (the default), block if necessary until an item is available.timeout
: If timeout is a positive number, it blocks at most timeout seconds and raises the Empty exception if no item was available within that time. :raises: ValueError, if caller is not permitted
Returns:
internal message
DecisionMakerHandler Objects
This class implements the decision maker.
__
init__
Initialize the decision maker handler.
Arguments:
identity
: the identitywallet
: the walletconfig
: the user defined configuration of the handlerkwargs
: the key word arguments
agent_
name
Get the agent name.
identity
Get identity of the agent.
wallet
Get wallet of the agent.
config
Get user defined configuration
context
Get the context.
message_
out_
queue
Get (out) queue.
handle
Handle an internal message from the skills.
Arguments:
message
: the internal message
DecisionMaker Objects
This class implements the decision maker.
__
init__
Initialize the decision maker.
Arguments:
decision_maker_handler
: the decision maker handler
agent_
name
Get the agent name.
message_
in_
queue
Get (in) queue.
message_
out_
queue
Get (out) queue.
decision_
maker_
handler
Get the decision maker handler.
start
Start the decision maker.
stop
Stop the decision maker.
execute
Execute the decision maker.
Performs the following while not stopped:
- gets internal messages from the in queue and calls handle() on them
handle
Handle an internal message from the skills.
Arguments:
message
: the internal message