
    !h)	                        S SK Jr  S SKrS SKrS SKrS SKJrJr  S SKJ	r	  S SK
Jr  S SKJr  S SKJr  \(       a  S SKJr  S S	KJr  \R(                  " S
\5         " S S5      r " S S\5      rg)    )annotationsN)TYPE_CHECKINGcast)Deferred)ProcessTerminated)ProcessProtocol)ScrapyDeprecationWarning)Iterable)Failurez/The scrapy.utils.testproc module is deprecated.c                      \ rS rSr% SrS\S'   \R                  SS/r\	R                  " 5       r  S
       SS jjr        SS jrS	rg)ProcessTest   N
str | Nonecommandz-mzscrapy.cmdlinec                j   SSK Jn  [        R                  R	                  5       nUb  X5S'   U R
                  (       d   e/ U R                  QU R
                  PUQn[        5       nUR                  R                  U R                  Xb5        UR                  XvS   XeU R                  S9  UR                  $ )Nr   )reactorSCRAPY_SETTINGS_MODULE)envpath)twisted.internetr   osenvironcopyr   prefixTestProcessProtocoldeferredaddCallback_process_finishedspawnProcesscwd)selfargs
check_codesettingsr   r   cmdpps           \/root/1688_scrapy/alibaba-scraper/venv/lib/python3.13/site-packages/scrapy/utils/testproc.pyexecuteProcessTest.execute   s     	-jjoo,4()|||11T\\1D1 "
 6 6HRQDHHE{{    c                X   UR                   (       ai  U(       ab  SU SUR                    3nUSUR                  R                  5        3-  nUS-  nUSUR                  R                  5        3-  n[	        U5      e[        [        UR                   5      UR                  UR                  4$ )Nzprocess z exit with code z
>>> stdout <<<

z
>>> stderr <<<
)exitcodeoutdecodeerrRuntimeErrorr   int)r!   r&   r%   r#   msgs        r'   r   ProcessTest._process_finished1   s     ;;:SE!1"++?C''899C4KC''899Cs##C%rvvrvv55r*    )TN)r"   zIterable[str]r#   boolr$   r   returnzDeferred[TestProcessProtocol])r&   r   r%   z	list[str]r#   r6   r7   ztuple[int, bytes, bytes])__name__
__module____qualname____firstlineno__r   __annotations__sys
executabler   r   getcwdr    r(   r   __static_attributes__r5   r*   r'   r   r      s    GZnnd$45F
))+C
  #	  	
 
'$	6%	6,5	6CG	6	!	6r*   r   c                  <    \ rS rSrSS jrS	S jrS	S jrS
S jrSrg)r   =   c                L    [        5       U l        SU l        SU l        S U l        g )Nr*   )r   r   r.   r0   r-   )r!   s    r'   __init__TestProcessProtocol.__init__>   s     7?z$(r*   c                .    U =R                   U-  sl         g N)r.   r!   datas     r'   outReceivedTestProcessProtocol.outReceivedD       Dr*   c                .    U =R                   U-  sl         g rG   )r0   rH   s     r'   errReceivedTestProcessProtocol.errReceivedG   rL   r*   c                    [        [        UR                  5      R                  U l        U R
                  R                  U 5        g rG   )r   r   valueexitCoder-   r   callback)r!   statuss     r'   processEnded TestProcessProtocol.processEndedJ   s-    .=FFt$r*   )r   r0   r-   r.   N)r7   None)rI   bytesr7   rW   )rT   r   r7   rW   )	r8   r9   r:   r;   rD   rJ   rN   rU   r@   r5   r*   r'   r   r   =   s    )%r*   r   )
__future__r   r   r=   warningstypingr   r   twisted.internet.deferr   twisted.internet.errorr   twisted.internet.protocolr   scrapy.exceptionsr	   collections.abcr
   twisted.python.failurer   warnr   r   r5   r*   r'   <module>rc      sT    " 	 
  & + 4 5 6(. 	5 6  6F%/ %r*   