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=None, 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)[source]#

Bases: ChainTrialMaker

A TrialMaker class for imitation chains; see the documentation for ChainTrialMaker for usage instructions.