
    !hZ                        S SK Jr  S SKrS SKJr  S SKJr  S SKJrJ	r	  S SK
Jr  S SKJr  \(       a  S SKJr  S S	KJr   " S
 S5      rg)    )annotationsN)Path)TYPE_CHECKING)Spidersignals)NotConfigured)job_dir)Self)Crawlerc                  b    \ rS rSrSrS
SS jjr\SS j5       rSS jrSS jr	\
SS j5       rS	rg)SpiderState   z1Store and load spider state during a scraping jobNc                    Xl         g Njobdir)selfr   s     d/root/1688_scrapy/alibaba-scraper/venv/lib/python3.13/site-packages/scrapy/extensions/spiderstate.py__init__SpiderState.__init__   s    "(    c                "   [        UR                  5      nU(       d  [        eU " U5      nUR                  R	                  UR
                  [        R
                  S9  UR                  R	                  UR                  [        R                  S9  U$ )N)signal)r	   settingsr   r   connectspider_closedspider_opened)clscrawlerr   objs       r   from_crawlerSpiderState.from_crawler   so    ))*&k 1 1':O:OP 1 1':O:OP
r   c                
   U R                   (       aa  [        U R                  5      R                  S5       n[	        US5      (       d   e[
        R                  " UR                  USS9  S S S 5        g g ! , (       d  f       g = f)Nwbstate   )protocol)r   r   statefnopenhasattrpickledumpr%   r   spiderfs      r   r   SpiderState.spider_closed#   s]    ;;dll#((.!vw////FLL!a8 /. ..s   4A44
Bc                8   U R                   (       aq  [        U R                  5      R                  5       (       aI  [        U R                  5      R	                  S5       n[
        R                  " U5      Ul        S S S 5        g 0 Ul        g ! , (       d  f       g = f)Nrb)r   r   r(   existsr)   r+   loadr%   r-   s      r   r   SpiderState.spider_opened)   sb    ;;4-4466dll#((.!%{{1~ /. FL /.s   B
Bc                f    U R                   (       d   e[        [        U R                   S5      5      $ )Nzspider.state)r   strr   )r   s    r   r(   SpiderState.statefn0   s$    {{{4^455r   r   r   )r   z
str | None)r   r   returnr
   )r.   r   r9   None)r9   r7   )__name__
__module____qualname____firstlineno____doc__r   classmethodr!   r   r   propertyr(   __static_attributes__ r   r   r   r      s<    ;)  9 6 6r   r   )
__future__r   r+   pathlibr   typingr   scrapyr   r   scrapy.exceptionsr   scrapy.utils.jobr	   typing_extensionsr
   scrapy.crawlerr   r   rC   r   r   <module>rL      s-    "     " + $&&!6 !6r   