§
    º³Ùgs	  ã                  ób   — d Z ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
  G d„ de¦  «        Zd	S )
zOAn instruction for blocking time on a channel; useful for scheduling alignment.é    )Úannotations)ÚParameterExpression)ÚChannel)ÚInstruction)Údeprecate_pulse_funcc                  ó€   ‡ — e Zd ZdZe	 ddˆ fd	„¦   «         Zedd„¦   «         Zedd„¦   «         Zedd„¦   «         Z	ˆ xZ
S )ÚDelaya  A blocking instruction with no other effect. The delay is used for aligning and scheduling
    other instructions.

    Example:

        To schedule an instruction at time = 10, on a channel assigned to the variable ``channel``,
        the following could be used::

            sched = Schedule(name="Delay instruction example")
            sched += Delay(10, channel)
            sched += Gaussian(duration, amp, sigma, channel)

        The ``channel`` will output no signal from time=0 up until time=10.
    NÚdurationúint | ParameterExpressionÚchannelr   Únameú
str | Nonec                óR   •— t          ¦   «                              ||f|¬¦  «         dS )a1  Create a new delay instruction.

        No other instruction may be scheduled within a ``Delay``.

        Args:
            duration: Length of time of the delay in terms of dt.
            channel: The channel that will have the delay.
            name: Name of the delay for display purposes.
        )Úoperandsr   N)ÚsuperÚ__init__)Úselfr
   r   r   Ú	__class__s       €úU/granary/edev/quantum/lib/python3.11/site-packages/qiskit/pulse/instructions/delay.pyr   zDelay.__init__&   s-   ø€ õ  	‰Œ×Ò 8¨WÐ"5¸DÐÑAÔAÐAÐAÐAó    Úreturnc                ó   — | j         d         S )zmReturn the :py:class:`~qiskit.pulse.channels.Channel` that this instruction is
        scheduled on.
        é   ©r   ©r   s    r   r   zDelay.channel8   s   € ð
 Œ}˜QÔÐr   útuple[Channel]c                ó   — | j         fS )z-Returns the channels that this schedule uses.)r   r   s    r   ÚchannelszDelay.channels?   s   € ð ”ˆÐr   c                ó   — | j         d         S )zDuration of this instruction.r   r   r   s    r   r
   zDelay.durationD   s   € ð Œ}˜QÔÐr   )N)r
   r   r   r   r   r   )r   r   )r   r   )r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   Úpropertyr   r   r
   Ú__classcell__)r   s   @r   r	   r	      sÅ   ø€ € € € € ðð ð ð
  ð	Bð Bð Bð Bð Bð Bñ ÔðBð" ð ð  ð  ñ „Xð ð ðð ð ñ „Xðð ð ð  ð  ñ „Xð ð  ð  ð  ð  r   r	   N)r#   Ú
__future__r   Úqiskit.circuitr   Úqiskit.pulse.channelsr   Ú%qiskit.pulse.instructions.instructionr   Úqiskit.utils.deprecate_pulser   r	   © r   r   ú<module>r,      sœ   ðð VÐ UØ "Ð "Ð "Ð "Ð "Ð "à .Ð .Ð .Ð .Ð .Ð .Ø )Ð )Ð )Ð )Ð )Ð )Ø =Ð =Ð =Ð =Ð =Ð =Ø =Ð =Ð =Ð =Ð =Ð =ð1 ð 1 ð 1 ð 1 ð 1 ˆKñ 1 ô 1 ð 1 ð 1 ð 1 r   