
    \d                     d    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
 dZ G d d	          Zd
S )zd
Cross-platform process-related functionality used by different
L{IReactorProcess} implementations.
    )Optional)getWarningMethod)Failure)err)qualzUSince Twisted 8.2, IProcessProtocol.processExited is required.  %s must implement it.c                   d    e Zd ZU dZee         ed<   dZee         ed<   dZdZ	d Z
d Zd Zd ZdS )	BaseProcessNpidstatusr   c                     || _         d S )N)proto)selfprotocols     =lib/python3.11/site-packages/twisted/internet/_baseprocess.py__init__zBaseProcess.__init__   s    


    c                 L   t                      }t          | j        d|          }||u rA t                      t          t          | j        j                  fz  t          d           d S 	  |t          |                     d S # t          $ r t          d d           Y d S w xY w)NprocessExitedr   )
stacklevelz!unexpected error in processExited)objectgetattrr   r   _missingProcessExitedr   	__class__DeprecationWarningr   BaseExceptionr   )r   reasondefaultr   s       r   _callProcessExitedzBaseProcess._callProcessExited    s    ((
OWEEG##%dj.B)C)C(EE"     ?gfoo.....  ? ? ?D=>>>>>>?s   +B B#"B#c                     || _         | xj        dz  c_        d| _        |                     |                     |                     |                                  dS )z;
        This is called when the child terminates.
           N)r   lostProcessr
   r   
_getReasonmaybeCallProcessEnded)r   r   s     r   processEndedzBaseProcess.processEnded/   s^     A 7 7888""$$$$$r   c                     | j         n|                     | j                  }| j         }d| _         	 |                    t	          |                     dS # t
          $ r t          dd           Y dS w xY wdS )zD
        Call processEnded on protocol after final cleanup.
        Nz unexpected error in processEnded)r   r"   r   r$   r   r   r   )r   r   r   s      r   r#   z!BaseProcess.maybeCallProcessEnded9   s     :!__T[11FJEDJ>""76??33333  > > >D<======> "!s   "A A32A3)__name__
__module____qualname__r
   r   int__annotations__r   r!   r   r   r   r$   r#    r   r   r	   r	      s         C# FHSM   KE  ? ? ?% % %> > > > >r   r	   N)__doc__typingr   twisted.python.deprecater   twisted.python.failurer   twisted.python.logr   twisted.python.reflectr   r   r	   r+   r   r   <module>r2      s   
 
       5 5 5 5 5 5 * * * * * * " " " " " " ' ' ' ' ' '* -> -> -> -> -> -> -> -> -> ->r   