当前位置: 首页>>代码示例>>Python>>正文


Python Experiment._last_instance方法代码示例

本文整理汇总了Python中experiment.Experiment._last_instance方法的典型用法代码示例。如果您正苦于以下问题:Python Experiment._last_instance方法的具体用法?Python Experiment._last_instance怎么用?Python Experiment._last_instance使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在experiment.Experiment的用法示例。


在下文中一共展示了Experiment._last_instance方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: _ParallelWithPrevious

# 需要导入模块: from experiment import Experiment [as 别名]
# 或者: from experiment.Experiment import _last_instance [as 别名]
def _ParallelWithPrevious(name=None, parallel_name=None, blocking=True):
    # get the exp reference
    from experiment import Experiment
    try:
        exp = Experiment._last_instance()
    except AttributeError:
        raise StateConstructionError(
            "You must first instantiate an Experiment.")

    # find the parent
    parent = exp._parents[-1]

    # find the previous child state (-1 because this is not a state)
    try:
        prev_state = parent._children[-1]
        parallel_parent = parent
    except IndexError:
        prev_state = parent
        if parent._parent is None:
            parallel_parent = parent._exp
        else:
            parallel_parent = parent._parent

    # build the new Parallel state
    with Parallel(name=parallel_name, parent=parallel_parent,
                  blocking=blocking) as p:
        p.override_instantiation_context(3)
        p.claim_child(prev_state)
        with Serial(name=name) as s:
            s.override_instantiation_context(3)
            yield p
开发者ID:beegica,项目名称:smileDocs,代码行数:33,代码来源:state.py

示例2: Else

# 需要导入模块: from experiment import Experiment [as 别名]
# 或者: from experiment.Experiment import _last_instance [as 别名]
def Else(name="ELSE BODY"):
    """State to attach to the else of an If state.

    """
    # get the exp reference
    from experiment import Experiment
    try:
        exp = Experiment._last_instance()
    except AttributeError:
        raise StateConstructionError(
            "You must first instantiate an Experiment.")

    # find the parent
    parent = exp._parents[-1]

    # find the previous child state (-1 because this is not a state)
    try:
        prev_state = parent._children[-1]
    except IndexError:
        raise StateConstructionError("No previous state for Else.")
    
    # make sure it's the If
    if not isinstance(prev_state, If):
        raise StateConstructionError(
            "The previous state must be an If or Elif state.")

    # return the false_state (the last out_state)
    false_state = prev_state._out_states[-1]
    false_state._name = name
    false_state.override_instantiation_context()
    return false_state
开发者ID:beegica,项目名称:smileDocs,代码行数:33,代码来源:state.py

示例3: MousePos

# 需要导入模块: from experiment import Experiment [as 别名]
# 或者: from experiment.Experiment import _last_instance [as 别名]
def MousePos(widget=None):
    pos = Experiment._last_instance()._app.mouse_pos_ref
    if widget is None:
        return pos
    else:
        return Ref.cond(MouseWithin(widget),
                        Ref(map, operator.sub, pos, widget.pos),
                        None)
开发者ID:beegica,项目名称:smile,代码行数:10,代码来源:mouse.py

示例4: MouseButton

# 需要导入模块: from experiment import Experiment [as 别名]
# 或者: from experiment.Experiment import _last_instance [as 别名]
def MouseButton(widget=None):
    """Returns a Reference to the next mouse button to be pressed.

    If given a widget, it will only return the mouse button pressed if it was pressed
    while the mouse was within the widget. If not given a widget, it will return a
    reference to the next button to be pressed on the mouse.  """
    button = Experiment._last_instance()._app.mouse_button_ref
    if widget is None:
        return button
    else:
        return Ref.cond(MouseWithin(widget), button, None)
开发者ID:axc494,项目名称:smile,代码行数:13,代码来源:mouse.py

示例5: Key

# 需要导入模块: from experiment import Experiment [as 别名]
# 或者: from experiment.Experiment import _last_instance [as 别名]
def Key(name):
    """Acceptable Keys

    ['A','B','C','D','E','F','G','H','I','J','K',
     'L','M','N','O','P','Q','R','S','T','U','V',
     'W','X','Y','Z','0','1','2','3','4','5','6',
     '7','8','9','LSHIFT','RSHIFT','SPACEBAR','ENTER',
     'LCTRL','RCTRL','ESC']

    """
    exp = Experiment._last_instance()
    return exp.screen._get_key_ref(name.upper())
开发者ID:compmem,项目名称:smile,代码行数:14,代码来源:keyboard.py

示例6: MousePos

# 需要导入模块: from experiment import Experiment [as 别名]
# 或者: from experiment.Experiment import _last_instance [as 别名]
def MousePos(widget=None):
    """Returns the position of the mouse.

    If given a widget, this function will return the position of the mouse in
    reference to the position of the widget. If widget is set to None, then
    this function will return the mouse position in relation to the experiment
    window. """
    pos = Experiment._last_instance()._app.mouse_pos_ref
    if widget is None:
        return pos
    else:
        return Ref.cond(MouseWithin(widget),
                        Ref(map, operator.sub, pos, widget.pos),
                        None)
开发者ID:axc494,项目名称:smile,代码行数:16,代码来源:mouse.py

示例7: enter

# 需要导入模块: from experiment import Experiment [as 别名]
# 或者: from experiment.Experiment import _last_instance [as 别名]
    def enter(self, start_time):
        self.claim_exceptions()
        self._start_time = start_time
        self._enter_time = clock.now()
        self._leave_time = None
        self._finalize_time = None
        self.__original_state.__most_recently_entered_clone = self

        # say we're active
        self._active = True
        self._following_may_run = False

        if self._parent:
            clock.schedule(partial(self._parent.child_enter_callback, self))

        # if we don't have the exp reference, get it now
        if self._exp is None:
            from experiment import Experiment
            self._exp = Experiment._last_instance()

        for name, value in self.__dict__.items():
            if name[:6] == "_init_":
                setattr(self, name[5:], val(value))

        if self._duration is None:
            self._end_time = None
        else:
            self._end_time = self._start_time + self._duration

        # custom enter code
        self._enter()

        if self.__tracing:
            call_time = self._enter_time - self._exp._root_state._start_time
            call_duration = clock.now() - self._enter_time
            start_time = self._start_time - self._exp._root_state._start_time
            self.print_trace_msg(
                "ENTER time=%fs, duration=%fs, start_time=%fs" %
                (call_time, call_duration, start_time))
开发者ID:beegica,项目名称:smileDocs,代码行数:41,代码来源:state.py

示例8: MouseWithin

# 需要导入模块: from experiment import Experiment [as 别名]
# 或者: from experiment.Experiment import _last_instance [as 别名]
def MouseWithin(widget):
    """An easy shortcut to wait for a mouse to be within a widget.

    This function returns True if the mouse position is within a given widget.
    When used in conjunction with the *Wait* state, it can wait until the mouse
    is within a widget.

    Parameters
    ----------
    widget : Kivy Widget (Any WidgetState)
        This parameter is whatever widget you would like to check and see if
        the mouse is within it.

    Example
    -------

    ::

        rec = Rectangle(height=10, width=10, color='RED')
        with UntilDone():
            with Parallel():
                MouseCursor(duration=10)
                with Serial():
                    Wait(until=MouseWithin(rec))
                    Label(text='You got the cursor into the square!',
                          color='GREEN', center_y=exp.screen.center_y/2,
                          duration=5)

    This example will draw a rectangle and wait until you put the cursor within
    the rectangle. Once that happens, a *Label* will appear telling the
    participant that they did the correct thing.

    """
    pos = Experiment._last_instance().screen.mouse_pos
    return ((pos[0] >= widget.x) & (pos[1] >= widget.y) &
            (pos[0] <= widget.right) & (pos[1] <= widget.top))
开发者ID:compmem,项目名称:smile,代码行数:38,代码来源:mouse.py

示例9: Key

# 需要导入模块: from experiment import Experiment [as 别名]
# 或者: from experiment.Experiment import _last_instance [as 别名]
def Key(name):
    exp = Experiment._last_instance()
    return exp._app.get_key_ref(name.upper())
开发者ID:beegica,项目名称:smileDocs,代码行数:5,代码来源:keyboard.py

示例10: __init__

# 需要导入模块: from experiment import Experiment [as 别名]
# 或者: from experiment.Experiment import _last_instance [as 别名]
    def __init__(self, parent=None, duration=None, save_log=True, name=None,
                 blocking=True):
        # Weak value dictionary to track Refs issued by this state.  Necessary
        # because those Refs need to be notified when their dependencies
        # change.  This is first so that __setattr__ will work.
        self.__issued_refs = weakref.WeakValueDictionary()

        # If true, we write a log entry every time this state finalizes.
        self.__save_log = save_log

        # The custom name for this state.
        self._name = name

        # Whether or not this state blocks in the context of a Parallel parent.
        self._blocking = blocking

        # This is a convenience argument for automatically setting the end time
        # relative to the start time.  If it evaluates to None, it has no
        # effect.
        self._init_duration = duration

        # Start and end time for the state.  Start time is set at enter time.
        # End time must be set before leave time.  End time will be set
        # automatically at enter time if a duration is provided.
        self._start_time = None
        self._end_time = None

        # Record of enter time, leave time, and finalize time at and after the
        # most recent enter.
        self._enter_time = None
        self._leave_time = None
        self._finalize_time = None

        # This flag is set True at enter time and False at finalize time.  It
        # indicates that it is not safe to enter this instance for a new
        # execution of the state.  If the instance is active a new clone of the
        # state can be constructed and that one entered instead.
        self._active = False

        # This flag is set False at enter time and True at leave time.
        # It indicates that it is safe for subsequent states in a series to
        # enter.
        self._following_may_run = False

        # This indicates the correct indentation level for this state in trace
        # output.
        self.__depth = 0

        # This flag indicates that trace output should be generated.
        self.__tracing = False

        # Record which source file and line number this constructor was called
        # from.
        self.set_instantiation_context()

        # Associate this state with the most recently instantiated Experiment.
        from experiment import Experiment
        try:
            self._exp = Experiment._last_instance()
        except AttributeError:
            self._exp = None

        # Determine the parent for this state...
        if parent is None:
            if self._exp is None:
                # If there is no explicit parent and no associated experiment,
                # set parent to None.
                self._parent = None
            else:
                # If there is not explicit parent, use the state at the top of
                # the associated experiment's parent stack.
                self._parent = self._exp._parents[-1]
        elif parent is self._exp:
            # If the associated experment is passed in as the parent, set this
            # state as the associated experiment's root state.
            self._parent = None
            self._exp._root_state = self
        else:
            self._parent = parent

        # Raise an error if we are non-blocking, but not the child of a
        # Parallel...
        #TODO: check this any time self._blocking is assigned!
        if not self._blocking and not isinstance(self._parent, Parallel):
            raise StateConstructionError(
                "A state which is not a child of a Parallel cannot be "
                "non-blocking.")

        # If this state has a parent, add this state to its parent's children.
        if self._parent:
            self._parent._children.append(self)

        # These are the names of attributes (minus leading underscores) which
        # will be logged at finalization time.  Subclasses should extend this
        # list to cause additional attributes to be logged.
        self._log_attrs = ['instantiation_filename', 'instantiation_lineno',
                           'name', 'start_time', 'end_time', 'enter_time',
                           'leave_time', 'finalize_time']

        # Concerning state cloning...
#.........这里部分代码省略.........
开发者ID:beegica,项目名称:smileDocs,代码行数:103,代码来源:state.py

示例11: MouseButton

# 需要导入模块: from experiment import Experiment [as 别名]
# 或者: from experiment.Experiment import _last_instance [as 别名]
def MouseButton(widget=None):
    button = Experiment._last_instance()._app.mouse_button_ref
    if widget is None:
        return button
    else:
        return Ref.cond(MouseWithin(widget), button, None)
开发者ID:beegica,项目名称:smile,代码行数:8,代码来源:mouse.py

示例12: MouseWithin

# 需要导入模块: from experiment import Experiment [as 别名]
# 或者: from experiment.Experiment import _last_instance [as 别名]
def MouseWithin(widget):
    pos = Experiment._last_instance()._app.mouse_pos_ref
    return (pos[0] >= widget.x & pos[1] >= widget.y &
            pos[0] <= widget.right & pos[1] <= widget.top)
开发者ID:beegica,项目名称:smile,代码行数:6,代码来源:mouse.py


注:本文中的experiment.Experiment._last_instance方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。