Actors are PyExp objects which can receive requests and process them or transmit them to other actors, eventually modifying requests (action itself, of just paramters). Each actor is identified by an unique name, using that name the actor can completly be built from its description in the experiment configuration.

Actors can be:

Users and high level scripts deal normally with physical elements, which are the natural way to consider the experiment.

Slots and links

Slots are named connection points on actors. We distinguish two kind of slots, upslots and downslots. Upslots are used to receive requests and return values back. Downslots are used to transmit requests and to retrieve values.
Slots names are unique on their respective actors, we cant have same name for an upslot and for a downslot of the same actor.
Slot names use lowercase alphabetical chars and numbers only. They must be kept short, but with meaning. They are a-priori free... but PyExp define names corresponding to functionnalities (see later).
Example of slot names: "value", "axis3", "counter2".
Links are established between downslots and upslots, going from a downslot of an actor to an upslot of another actor. We have generally only one link from a downslot, but there can be multiple links to an upslot.


Actions are verbs representing actions to do. They are written using single words in uppercase, short if possible but with meaning. Example of actions: "SET", "GET", "MEASURE".

Value Names

Values names are names of attributes reprensenting identified values to maniulate. They are written using single words in uppercase, short if possible but with meaning. Example of valnames: "VALUE", "SPEED", "RANGE".


Routing is a dynamic processing in PyExp used to find the most specialized method to apply. It cumulate standard Python class inheriting mechanism and dynamic built of method names based on actions, slots, and valnames. Routing is explained with more details in the page about requests execution.

Hosted by Logo