Source code for scml.oneshot.adapter

from typing import List, Optional, TYPE_CHECKING

from negmas import Breach, Contract

from .helper import AWIHelper
from .sysagents import DefaultOneShotAdapter

if TYPE_CHECKING:
    from scml.scml2020.agent import SCML2020Agent


[docs] class OneShotSCML2020Adapter(DefaultOneShotAdapter): """Base class for adapters allowing SCML std agents to run as Oneshot agents in SCML2020Oneshot worlds""" def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs)
[docs] self._obj: SCML2020Agent # type: ignore
[docs] def reset(self): pass
[docs] def is_clean(self) -> bool: # only needed for compatibility with oneshot return True
[docs] def on_negotiation_failure(self, partners, annotation, mechanism, state): return self._obj.on_negotiation_failure(partners, annotation, mechanism, state)
[docs] def on_negotiation_success(self, contract, mechanism): return self._obj.on_negotiation_success(contract, mechanism)
[docs] def on_contract_executed(self, contract: Contract) -> None: return self._obj.on_contract_executed(contract)
[docs] def on_contract_breached( self, contract: Contract, breaches: List[Breach], resolution: Optional[Contract] ) -> None: return self._obj.on_contract_breached(contract, breaches, resolution)
[docs] def init(self): self._obj._awi = AWIHelper(owner=self) super().init()
[docs] def before_step(self): if hasattr(self._obj, "before_step"): self._obj.before_step()
[docs] def to_dict(self): return self._obj.to_dict()
[docs] def _respond_to_negotiation_request( self, initiator, partners, issues, annotation, mechanism, role, req_id, ): return self._obj._respond_to_negotiation_request( initiator, partners, issues, annotation, mechanism, role, req_id, )
[docs] def set_renegotiation_agenda(self, contract, breaches): return None
[docs] def respond_to_renegotiation_request(self, contract, breaches, agenda): return None
[docs] def on_neg_request_rejected(self, req_id, by): return self._obj.on_neg_request_rejected(req_id, by)
[docs] def on_neg_request_accepted(self, req_id, mechanism): return self._obj.on_neg_request_rejected(req_id, mechanism) # type: ignore