
    !h                        S r SSKJr  SSKrSSKrSSKJrJr  \(       a  SSKJ	r	  SSK
Jr  \R                  " \5      r\\\4   r " S S5      r " S	 S
\5      r " S S\5      rg)z0
Scrapy extension for collecting scraping stats
    )annotationsN)TYPE_CHECKINGAny)Spider)Crawlerc                      \ rS rSrSS jr S       SS jjrSSS jjrSSS jjrSSS jjr S         SS jjr	SSS	 jjr
SSS
 jjrSSS jjrSS jrSS jrSS jrSrg)StatsCollector   c                R    UR                   R                  S5      U l        0 U l        g )N
STATS_DUMP)settingsgetbool_dump_stats)selfcrawlers     ]/root/1688_scrapy/alibaba-scraper/venv/lib/python3.13/site-packages/scrapy/statscollectors.py__init__StatsCollector.__init__   s!    "++33LA
     Nc                8    U R                   R                  X5      $ N)r   getr   keydefaultspiders       r   	get_valueStatsCollector.get_value   s     {{s,,r   c                    U R                   $ r   r   r   r   s     r   	get_statsStatsCollector.get_stats    s    {{r   c                     X R                   U'   g r   r!   r   r   valuer   s       r   	set_valueStatsCollector.set_value#   s     Cr   c                    Xl         g r   r!   r   statsr   s      r   	set_statsStatsCollector.set_stats&   s    r   c                H    U R                   nUR                  X5      U-   XQ'   g r   )r   
setdefault)r   r   countstartr   ds         r   	inc_valueStatsCollector.inc_value)   s"     KKc)E1r   c                h    [        U R                  R                  X5      U5      U R                  U'   g r   )maxr   r0   r&   s       r   	max_valueStatsCollector.max_value/   &    t{{55cA5ICr   c                h    [        U R                  R                  X5      U5      U R                  U'   g r   )minr   r0   r&   s       r   	min_valueStatsCollector.min_value2   r:   r   c                8    U R                   R                  5         g r   )r   clearr"   s     r   clear_statsStatsCollector.clear_stats5   s    r   c                    g r    r"   s     r   open_spiderStatsCollector.open_spider8       r   c                    U R                   (       a7  [        R                  S[        R                  " U R
                  5      -   SU0S9  U R                  U R
                  U5        g )NzDumping Scrapy stats:
r   )extra)r   loggerinfopprintpformatr   _persist_stats)r   r   reasons      r   close_spiderStatsCollector.close_spider;   sM    ::KK)FNN4;;,GG(   	DKK0r   c                    g r   rD   r+   s      r   rN   StatsCollector._persist_statsC   rG   r   )r   r   r   r   NNr   strr   r   r   Spider | Nonereturnr   r   )r   rX   rY   StatsTr   rW   r'   r   r   rX   rY   Noner,   rZ   r   rX   rY   r\      r   N
r   rW   r1   intr2   ra   r   rX   rY   r\   )r   rX   rY   r\   )r   r   rY   r\   )r   r   rO   rW   rY   r\   r,   rZ   r   r   rY   r\   )__name__
__module____qualname____firstlineno__r   r   r#   r(   r-   r4   r8   r=   rA   rE   rP   rN   __static_attributes__rD   r   r   r	   r	      s    !
 FJ--!$-5B-	-
! QU22"2/22@M2	2JJ1r   r	   c                  6   ^  \ rS rSrSU 4S jjrSS jrSrU =r$ )MemoryStatsCollectorG   c                2   > [         TU ]  U5        0 U l        g r   )superr   spider_stats)r   r   	__class__s     r   r   MemoryStatsCollector.__init__H   s    !/1r   c                4    XR                   UR                  '   g r   )rm   namer+   s      r   rN   #MemoryStatsCollector._persist_statsL   s    ).&++&r   )rm   rT   rb   )rc   rd   re   rf   r   rN   rg   __classcell__)rn   s   @r   ri   ri   G   s    2/ /r   ri   c                      \ rS rSr S
       SS jjrSSS jjrSSS jjr S         SS jjrSSS jjrSSS jjr	S	r
g)DummyStatsCollectorP   Nc                    U$ r   rD   r   s       r   r   DummyStatsCollector.get_valueQ   s	     r   c                    g r   rD   r&   s       r   r(   DummyStatsCollector.set_valueV   rG   r   c                    g r   rD   r+   s      r   r-   DummyStatsCollector.set_statsY   rG   r   c                    g r   rD   )r   r   r1   r2   r   s        r   r4   DummyStatsCollector.inc_value\   s     	r   c                    g r   rD   r&   s       r   r8   DummyStatsCollector.max_valuea   rG   r   c                    g r   rD   r&   s       r   r=   DummyStatsCollector.min_valued   rG   r   rD   rU   rV   r   r[   r]   r^   r`   )rc   rd   re   rf   r   r(   r-   r4   r8   r=   rg   rD   r   r   ru   ru   P   sw    EI!$5B	
 QU"/2@M	
 r   ru   )__doc__
__future__r   loggingrL   typingr   r   scrapyr   scrapy.crawlerr   	getLoggerrc   rJ   dictrW   rZ   r	   ri   ru   rD   r   r   <module>r      se    #   %& 
		8	$ 
c3h. .b/> /. r   