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
def 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¶
def 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:
None
: 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:
None
: ValueError, if the item is not an internal message
get¶
Inaccessible get method.
Arguments:
block
: whether to block or nottimeout
: timeout on block
Raises:
None
: ValueError, access not permitted.
get_
nowait¶
Inaccessible get_nowait method.
Raises:
None
: ValueError, access not permitted.
protected_
get¶
def 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:
None
: 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