Source code for egttools.behaviors.CPR.abstract_cpr_strategy
from abc import ABC, abstractmethod
[docs]
class AbstractCPRStrategy(ABC):
[docs]
@staticmethod
@abstractmethod
def get_payoff(a: float, b: float, extraction: float, group_extraction: float, fine: float = 0,
cost: float = 0, commitment: bool = False) -> float:
pass
[docs]
@abstractmethod
def would_like_to_commit(self) -> bool:
pass
[docs]
@abstractmethod
def proposes_commitment(self) -> bool:
pass
[docs]
@abstractmethod
def is_commitment_validated(self, nb_committers: int) -> bool:
pass
[docs]
@abstractmethod
def type(self) -> str:
pass
[docs]
def __str__(self) -> str:
return "AbstractCPRStrategy"