Source code for egttools.behaviors.CPR.abstract_cpr_strategy

from abc import ABC, abstractmethod


[docs]class AbstractCPRStrategy(ABC):
[docs] @abstractmethod def get_extraction(self, a: float, b: float, group_size: int, commitment: bool = False) -> float: pass
[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"