
    h                     j    S r SSKJr  SSKJr  SSKJr  SSKJr  SSK	J
r
  \" 5       rSr " S S	5      rg
)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                   ^    \ rS rSr% Sr\\   \S'   Sr\\   \S'   Sr	Sr
S rS rS rS	 rS
rg)BaseProcess   Npidstatusr   c                     Xl         g )N)proto)selfprotocols     d/root/1688_scrapy/alibaba-scraper/venv/lib/python3.13/site-packages/twisted/internet/_baseprocess.py__init__BaseProcess.__init__   s    
    c                 B   [        5       n[        U R                  SU5      nX2L a:  [        5       " [        [        U R                  R                  5      4-  [        SS9  g [        R                  S5         U" [        U5      5        S S S 5        g ! , (       d  f       g = f)NprocessExitedr   )
stacklevelzwhile calling processExited:)objectgetattrr   r   _missingProcessExitedr   	__class__DeprecationWarning_logfailuresHandledr   )r   reasondefaultr   s       r   _callProcessExitedBaseProcess._callProcessExited"   sv    (

OWE#%djj.B.B)C(EE" %%&DEgfo. FEEs   5B
Bc                     Xl         U =R                  S-  sl        SU l        U R                  U R	                  U5      5        U R                  5         g)z+
This is called when the child terminates.
   N)r   lostProcessr   r!   
_getReasonmaybeCallProcessEnded)r   r   s     r   processEndedBaseProcess.processEnded/   sD     A 78""$r   c                    U R                   bg  U R                  U R                  5      nU R                   nSU l         [        R	                  S5         UR                  [        U5      5        SSS5        gg! , (       d  f       g= f)z4
Call processEnded on protocol after final cleanup.
Nzwhile calling processEnded:)r   r&   r   r   r   r(   r   )r   r   r   s      r   r'   !BaseProcess.maybeCallProcessEnded9   si     ::!__T[[1FJJEDJ%%&CD""76?3 ED	 " EDs   A66
B)r   r   r   )__name__
__module____qualname____firstlineno__r   r   int__annotations__r   r%   r   r   r!   r(   r'   __static_attributes__ r   r   r	   r	      s<    C# FHSM KE/%	4r   r	   N)__doc__typingr   twisted.loggerr   twisted.python.deprecater   twisted.python.failurer   twisted.python.reflectr   r   r   r	   r3   r   r   <module>r:      s6   

  ! 5 * 'x* )4 )4r   