o
    Žqi   ã                   @   s&   d a G dd„ deƒZG dd„ dƒZd S )Nc                   @   sN   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	ddd„Z
dS )ÚInstructionStreamc                 C   s   t ƒ | _d | _d S ©N)ÚlistÚinstructionsÚprevious_stream©Úself© r   úK/home/app/PyTorch/test/pytorch/third_party/python-peachpy/peachpy/stream.pyÚ__init__   s   
zInstructionStream.__init__c                 C   s   t | _| a | S r   ©Úactive_streamr   r   r   r   r	   Ú	__enter__   ó   zInstructionStream.__enter__c                 C   ó   | j ad | _ d S r   ©r   r   ©r   Úexc_typeÚ	exc_valueÚ	tracebackr   r   r	   Ú__exit__   ó   
zInstructionStream.__exit__c                 C   ó
   t | jƒS r   )Úiterr   r   r   r   r	   Ú__iter__   ó   
zInstructionStream.__iter__c                 C   r   r   )Úlenr   r   r   r   r	   Ú__len__   r   zInstructionStream.__len__c                 C   s"   z| j | W S  ty   Y d S w r   )r   Ú
IndexError)r   Úir   r   r	   Ú__getitem__   s
   ÿzInstructionStream.__getitem__c                 C   s   |d ur| j  |¡ d S d S r   )r   Úappend)r   Zinstructionr   r   r	   Úadd_instruction#   s   ÿz!InstructionStream.add_instructioné   c                 C   s*   t |ƒD ]}| jrt | j d¡¡ qd S )Né    )Úranger   r   r!   Úpop)r   Úcountr   r   r   r	   Úissue'   s
   €þzInstructionStream.issueN)r"   )Ú__name__Ú
__module__Ú__qualname__r
   r   r   r   r   r   r!   r'   r   r   r   r	   r      s    r   c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )Ú
NullStreamc                 C   s
   d | _ d S r   )r   r   r   r   r	   r
   .   r   zNullStream.__init__c                 C   s   t | _d a | S r   r   r   r   r   r	   r   1   r   zNullStream.__enter__c                 C   r   r   r   r   r   r   r	   r   7   r   zNullStream.__exit__N)r(   r)   r*   r
   r   r   r   r   r   r	   r+   -   s    r+   )r   Úobjectr   r+   r   r   r   r	   Ú<module>   s   &