
    !hP                        S r SSKJr  SSKrSSKJrJr  SSKJr  \(       a(  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Jr  SSKJr  \R.                  " \5      r " S S\5      rg)zQ
Depth Spider Middleware

See documentation in docs/topics/spider-middleware.rst
    )annotationsN)TYPE_CHECKINGAny)BaseSpiderMiddleware)AsyncIteratorIterable)Self)Spider)Crawler)RequestResponse)StatsCollectorc                     ^  \ rS rSr% S\S'     S       SS jjr\SS j5       r        SU 4S jjr        SU 4S jjr	SS jr
      SS	 jrS
rU =r$ )DepthMiddleware   r   crawlerc                4    Xl         X l        X0l        X@l        g N)maxdepthstatsverbose_statsprio)selfr   r   r   r   s        e/root/1688_scrapy/alibaba-scraper/venv/lib/python3.13/site-packages/scrapy/spidermiddlewares/depth.py__init__DepthMiddleware.__init__    s     !
*	    c                    UR                   nUR                  S5      nUR                  S5      nUR                  S5      nUR                  (       d   eU " X1R                  XE5      nXl        U$ )NDEPTH_LIMITDEPTH_STATS_VERBOSEDEPTH_PRIORITY)settingsgetintgetboolr   r   )clsr   r"   r   verboser   os          r   from_crawlerDepthMiddleware.from_crawler,   sa    ##??=1""#89/0}}}--7	r   c              #  d   >#    U R                  X5        [        TU ]	  XU5       S h  vN   g  N7fr   )_init_depthsuperprocess_spider_output)r   responseresultspider	__class__s       r   r-   %DepthMiddleware.process_spider_output7   s+      	*706JJJs   %0.0c               v   >#    U R                  X5        [        TU ]	  XU5        S h  vN nU7v   M   N
 g 7fr   )r+   r,   process_spider_output_async)r   r.   r/   r0   r'   r1   s        r   r4   +DepthMiddleware.process_spider_output_async=   s9      	*w:8VT 	!G	Ts   "9757979c                    SUR                   ;  a<  SUR                   S'   U R                  (       a  U R                  R                  SUS9  g g g )Ndepthr   zrequest_depth_count/0r0   )metar   r   	inc_value)r   r.   r0   s      r   r+   DepthMiddleware._init_depthD   sG    (--'%&HMM'"!!

$$%<V$L " (r   c                Z   Uc  U$ UR                   S   S-   nX1R                   S'   U R                  (       a!  U=R                  X0R                  -  -  sl        U R                  (       aR  X0R                  :  aC  [        R                  SU R                  UR                  S.SU R                  R                  0S9  g U R                  (       a1  U R                  R                  SU 3U R                  R                  S9  U R                  R                  S	X0R                  R                  S9  U$ )
Nr7      z1Ignoring link (depth > %(maxdepth)d): %(requrl)s )r   requrlr0   )extrazrequest_depth_count/r8   request_depth_max)r9   r   priorityr   loggerdebugurlr   r0   r   r   r:   	max_value)r   requestr.   r7   s       r   get_processed_request%DepthMiddleware.get_processed_requestK   s     Ng&* %W99		 11==U]]2LLC!]]gkkB!4!45  
 JJ  &ug.t||7J7J !  	

0%@S@STr   )r   r   r   r   )Fr=   )r   intr   r   r   boolr   rI   )r   r   returnr	   )r.   r   r/   Iterable[Any]r0   r
   rK   rL   )r.   r   r/   AsyncIterator[Any]r0   r
   rK   rM   )r.   r   r0   r
   rK   None)rF   r   r.   zResponse | NonerK   zRequest | None)__name__
__module____qualname____firstlineno____annotations__r   classmethodr(   r-   r4   r+   rG   __static_attributes____classcell__)r1   s   @r   r   r      s     $

 
 	

 
  K K*7KAGK	K *<FL	M*9	 r   r   )__doc__
__future__r   loggingtypingr   r   scrapy.spidermiddlewares.baser   collections.abcr   r   typing_extensionsr	   scrapyr
   scrapy.crawlerr   scrapy.httpr   r   scrapy.statscollectorsr   	getLoggerrO   rB   r    r   r   <module>rd      sP    #  % >7 '&-5 
		8	$D* Dr   