
    !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
r
S SKJr  S SKJrJr  S SKJr  \(       a
  S SKrS SKJr   " S	 S
\5      r " S S5      r " S S\
R.                  5      rg)    )annotationsN)TYPE_CHECKINGAny)	urlencode)ScrapyCommand)ResponseTextResponse)LinkExtractor)AsyncIteratorc                  4    \ rS rSrSSSS.rS
S jrSS jrSrg	)Command   INFO   
   )	LOG_LEVELLOGSTATS_INTERVALCLOSESPIDER_TIMEOUTc                    g)NzRun quick benchmark test )selfs    \/root/1688_scrapy/alibaba-scraper/venv/lib/python3.13/site-packages/scrapy/commands/bench.py
short_descCommand.short_desc   s    )    c                    [        5          U R                  (       d   eU R                  R                  [        SS9  U R                  R	                  5         S S S 5        g ! , (       d  f       g = f)Ni )total)_BenchServercrawler_processcrawl_BenchSpiderstart)r   argsoptss      r   runCommand.run   sK    ^''''  &&|6&B  &&( ^^s   AA  
A.r   N)returnstr)r#   z	list[str]r$   zargparse.Namespacer'   None)__name__
__module____qualname____firstlineno__default_settingsr   r%   __static_attributes__r   r   r   r   r      s    !*)r   r   c                  (    \ rS rSrSS jrSS jrSrg)r   $   c                   SSK Jn  [        R                  SSS/n[        R
                  " U[        R                  U" 5       S9U l        U R                  R                  (       d   eU R                  R                  R                  5         g )Nr   )get_testenvz-uz-mzscrapy.utils.benchserver)stdoutenv)
scrapy.utils.testr3   sys
executable
subprocessPopenPIPEprocr4   readline)r   r3   pargss      r   	__enter___BenchServer.__enter__%   sb    1t-GH$$*//{}
	 yy		!!#r   c                    U R                   R                  5         U R                   R                  5         [        R                  " S5        g )Ng?)r<   killwaittimesleep)r   exc_type	exc_value	tracebacks       r   __exit___BenchServer.__exit__/   s)    				

3r   )r<   N)r'   r)   )r*   r+   r,   r-   r?   rI   r/   r   r   r   r   r   $   s    $r   r   c                  J    \ rS rSrSrSrSrSrSr\	" 5       r
SS jrSS jrS	rg
)r!   5   zA spider that follows all linksfollowi'     zhttp://localhost:8998c                  #    U R                   U R                  S.nU R                   S[        USS9 3n[        R
                  " USS97v   g 7f)N)r   show?T)doseq)dont_filter)r   rP   baseurlr   scrapyRequest)r   qargsurls      r   r"   _BenchSpider.start>   sD     **dii8a	%t <=>nnSd33s   AAc              #     #    [        U[        5      (       d   eU R                  R                  U5       H.  n[        R
                  " UR                  U R                  S9v   M0     g 7f)N)callback)
isinstancer	   link_extractorextract_linksrU   rV   rX   parse)r   responselinks      r   r_   _BenchSpider.parseC   sM     (L1111''55h?D..DJJ?? @s   A&A(r   N)r'   zAsyncIterator[Any])r`   r   r'   r   )r*   r+   r,   r-   __doc__namer   rP   rT   r
   r]   r"   r_   r/   r   r   r   r!   r!   5   s+    )DED%G"_N4
@r   r!   )
__future__r   r9   r7   rD   typingr   r   urllib.parser   rU   scrapy.commandsr   scrapy.httpr   r	   scrapy.linkextractorsr
   argparsecollections.abcr   r   r   Spiderr!   r   r   r   <module>rn      sT    "  
  % "  ) . /-)m )" "@6== @r   