Source code for mapof.marriages.objects.MarriagesFamily
import copy
from mapof.core.objects.Family import Family
from mapof.core.utils import *
import mapof.core.features.mallows as core_mallows
from mapof.marriages.objects.Marriages import Marriages
[docs]
class MarriagesFamily(Family):
def __init__(self,
culture_id: str = None,
family_id='none',
params: dict = None,
size: int = 1,
label: str = "none",
color: str = "black",
alpha: float = 1.,
ms: int = 20,
show=True,
marker='o',
starting_from: int = 0,
single: bool = False,
num_agents: int = None):
super().__init__(culture_id=culture_id,
family_id=family_id,
params=params,
size=size,
label=label,
color=color,
alpha=alpha,
ms=ms,
show=show,
marker=marker,
starting_from=starting_from,
single=single)
self.num_agents = num_agents
def prepare_family(self,
experiment_id=None,
is_exported=True):
instances = {}
_keys = []
for j in range(self.size):
params = copy.deepcopy(self.params)
if params is not None and 'norm-phi' in params:
params['phi'] = core_mallows.phi_from_normphi(
self.num_agents,
normphi=params['norm-phi']
)
instance_id = get_instance_id(self.single, self.family_id, j)
instance = Marriages(experiment_id,
instance_id,
culture_id=self.culture_id,
num_agents=self.num_agents,
label=self.label,
is_imported=False,
**params)
instance.prepare_instance(is_exported=is_exported)
instances[instance_id] = instance
_keys.append(instance_id)
self.instance_ids = _keys
return instances