o
    Òó·i�  ã                   @   s\   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
 eƒ ZdZG dd	„ d	ƒZd
S )zd
Cross-platform process-related functionality used by different
L{IReactorProcess} implementations.
é    )ÚOptional)ÚLogger)ÚgetWarningMethod)ÚFailure)ÚqualzUSince Twisted 8.2, IProcessProtocol.processExited is required.  %s must implement it.c                   @   sV   e Zd ZU dZee ed< dZee ed< dZdZ	dd„ Z
dd„ Zd	d
„ Zdd„ ZdS )ÚBaseProcessNÚpidÚstatusr   c                 C   s
   || _ d S )N)Úproto)ÚselfÚprotocol© r   úcC:\Users\psant\Downloads\PAF backend\school\venv\Lib\site-packages\twisted/internet/_baseprocess.pyÚ__init__   s   
zBaseProcess.__init__c                 C   sz   t ƒ }t| jd|ƒ}||u rtƒ tt| jjƒf tdd� d S t 	d¡� |t
|ƒƒ W d   ƒ d S 1 s6w   Y  d S )NÚprocessExitedr   )Ú
stacklevelzwhile calling processExited:)ÚobjectÚgetattrr
   r   Ú_missingProcessExitedr   Ú	__class__ÚDeprecationWarningÚ_logÚfailuresHandledr   )r   ÚreasonÚdefaultr   r   r   r   Ú_callProcessExited"   s   
ý"ÿzBaseProcess._callProcessExitedc                 C   s6   || _ |  jd7  _d| _|  |  |¡¡ |  ¡  dS )z;
        This is called when the child terminates.
        é   N)r	   ÚlostProcessr   r   Ú
_getReasonÚmaybeCallProcessEnded)r   r	   r   r   r   ÚprocessEnded/   s
   zBaseProcess.processEndedc                 C   sd   | j dur0|  | j¡}| j }d| _ t d¡� | t|ƒ¡ W d  ƒ dS 1 s)w   Y  dS dS )zD
        Call processEnded on protocol after final cleanup.
        Nzwhile calling processEnded:)r
   r   r	   r   r   r    r   )r   r   r
   r   r   r   r   9   s   
"ÿüz!BaseProcess.maybeCallProcessEnded)Ú__name__Ú
__module__Ú__qualname__r   r   ÚintÚ__annotations__r	   r   r
   r   r   r    r   r   r   r   r   r      s   
 
r   N)Ú__doc__Útypingr   Ztwisted.loggerr   Ztwisted.python.deprecater   Ztwisted.python.failurer   Ztwisted.python.reflectr   r   r   r   r   r   r   r   Ú<module>   s   ÿ