ImitationChain¶
- class psynet.trial.imitation_chain.ImitationChainNetwork(*args, **kwargs)[source]¶
Bases:
ChainNetwork
A Network class for imitation chains.
- creation_time¶
the time at which the Network was created.
- details¶
a generic column for storing structured JSON data
- failed¶
boolean indicating whether the Network has failed which prompts Dallinger to ignore it unless specified otherwise. Objects are usually failed to indicate something has gone wrong.
- failed_reason¶
an optional reason the object was failed. If the object is failed as part of a cascading failure triggered from another object, the chain of objects will be captured in this field.
- full¶
Whether the network is currently full
- id¶
a unique number for every entry. 1, 2, 3 and so on…
- make_definition()[source]¶
Derives the definition for the network. This definition represents some collection of attributes that is shared by all nodes/trials in a network, but that may differ between networks.
Suppose one wishes to have multiple networks in the experiment, each characterised by a different value of an attribute (e.g. a different color). One approach would be to sample randomly; however, this would not guarantee an even distribution of attribute values. In this case, a better approach is to use the
psynet.trial.chain.ChainNetwork.balance_across_networks()
method, as follows:colors = ["red", "green", "blue"] return { "color": self.balance_across_networks(colors) }
See
psynet.trial.chain.ChainNetwork.balance_across_networks()
for details on how this balancing works.- Returns:
object – By default this returns an empty dictionary, but this can be customised by subclasses. The object should be suitable for serialisation to JSON.
- max_size¶
How big the network can get, this number is used by the full() method to decide whether the network is full
- property1¶
a generic column that can be used to store experiment-specific details in String form.
- property2¶
a generic column that can be used to store experiment-specific details in String form.
- property3¶
a generic column that can be used to store experiment-specific details in String form.
- property4¶
a generic column that can be used to store experiment-specific details in String form.
- property5¶
a generic column that can be used to store experiment-specific details in String form.
- role¶
The role of the network. By default dallinger initializes all networks as either “practice” or “experiment”
- time_of_death¶
the time at which failing occurred
- type¶
A String giving the name of the class. Defaults to “network”. This allows subclassing.
- vars¶
- class psynet.trial.imitation_chain.ImitationChainNode(*args, **kwargs)[source]¶
Bases:
ChainNode
A Node class for imitation chains.
- create_definition_from_seed(seed, experiment, participant)[source]¶
(Built-in) In an imitation chain, the next node in the chain is a faithful reproduction of the previous iteration.
- Parameters:
seed – The seed being passed to the node.
experiment – An instantiation of
psynet.experiment.Experiment
, corresponding to the current experiment.participant – Current participant, if relevant.
- Returns:
object – The node’s new definition, which is a faithful reproduction of the seed that it was passed.
- creation_time¶
the time at which the Network was created.
- details¶
a generic column for storing structured JSON data
- failed¶
boolean indicating whether the Network has failed which prompts Dallinger to ignore it unless specified otherwise. Objects are usually failed to indicate something has gone wrong.
- failed_reason¶
an optional reason the object was failed. If the object is failed as part of a cascading failure triggered from another object, the chain of objects will be captured in this field.
- id¶
a unique number for every entry. 1, 2, 3 and so on…
- network¶
the network the node is in
- network_id¶
the id of the network that this node is a part of
- participant¶
the participant the node is associated with
- participant_id¶
the id of the participant whose node this is
- property1¶
a generic column that can be used to store experiment-specific details in String form.
- property2¶
a generic column that can be used to store experiment-specific details in String form.
- property3¶
a generic column that can be used to store experiment-specific details in String form.
- property4¶
a generic column that can be used to store experiment-specific details in String form.
- property5¶
a generic column that can be used to store experiment-specific details in String form.
- summarize_trials(trials, experiment, participant)[source]¶
(Abstract method, to be overridden) This method should summarize the answers to the provided trials. A default method is implemented for cases when there is just one trial per node; in this case, the method extracts and returns the trial’s answer, available in
trial.answer
. The method must be extended if it is to cope with multiple trials per node, however.- Parameters:
trials (
list
) – Trials to be summarized. By default only trials that are completed (i.e. have received a response) and processed (i.e. aren’t waiting for an asynchronous process) are provided here.experiment – An instantiation of
psynet.experiment.Experiment
, corresponding to the current experiment.participant – The participant who initiated the creation of the node.
- Returns:
object – The derived seed. Should be suitable for serialisation to JSON.
- time_of_death¶
the time at which failing occurred
- type¶
A String giving the name of the class. Defaults to
node
. This allows subclassing.
- vars¶
- class psynet.trial.imitation_chain.ImitationChainTrial(*args, **kwargs)[source]¶
Bases:
ChainTrial
A Trial class for imitation chains.
- complete¶
whether the info is ‘complete’, i.e. has received its contents
- creation_time¶
the time at which the Network was created.
- details¶
a generic column for storing structured JSON data
- failed¶
boolean indicating whether the Network has failed which prompts Dallinger to ignore it unless specified otherwise. Objects are usually failed to indicate something has gone wrong.
- failed_reason¶
an optional reason the object was failed. If the object is failed as part of a cascading failure triggered from another object, the chain of objects will be captured in this field.
- id¶
a unique number for every entry. 1, 2, 3 and so on…
- make_definition(experiment, participant)[source]¶
(Built-in) In an imitation chain, the trial’s definition equals the definition of the node that created it.
- Parameters:
experiment – An instantiation of
psynet.experiment.Experiment
, corresponding to the current experiment.participant – Optional participant with which to associate the trial.
- Returns:
object – The trial’s definition, equal to the node’s definition.
- network¶
the network the info is in
- network_id¶
the id of the network the info is in
- origin¶
the Node that created the info.
- origin_id¶
the id of the Node that created the info
- property1¶
a generic column that can be used to store experiment-specific details in String form.
- property2¶
a generic column that can be used to store experiment-specific details in String form.
- property3¶
a generic column that can be used to store experiment-specific details in String form.
- property4¶
a generic column that can be used to store experiment-specific details in String form.
- property5¶
a generic column that can be used to store experiment-specific details in String form.
- time_of_death¶
the time at which failing occurred
- type¶
a String giving the name of the class. Defaults to “info”. This allows subclassing.
- vars¶
- class psynet.trial.imitation_chain.ImitationChainTrialMaker(*, id_, trial_class, node_class, network_class=None, chain_type, expected_trials_per_participant, max_trials_per_participant=<class 'psynet.utils.NoArgumentProvided'>, max_trials_per_block=None, max_nodes_per_chain=None, chains_per_participant=None, chains_per_experiment=None, trials_per_node=1, n_repeat_trials=0, target_n_participants=None, balance_across_chains=False, start_nodes=None, check_performance_at_end=False, check_performance_every_trial=False, recruit_mode='n_participants', fail_trials_on_premature_exit=False, fail_trials_on_participant_performance_check=False, propagate_failure=True, wait_for_networks=False, allow_revisiting_networks_in_across_chains=False, assets=None, choose_participant_group=None, sync_group_type=None, sync_group_max_wait_time=45.0)[source]¶
Bases:
ChainTrialMaker
A TrialMaker class for imitation chains; see the documentation for
ChainTrialMaker
for usage instructions.