
    3 d                     X    d dl Z d dlmZ d dlmZ d dlmZ d dlmZ  G d d          Z	dS )    N)Path)signals)NotConfigured)job_dirc                   X    e Zd ZdZd	dZed             Zd Zd Ze	de
fd            ZdS )
SpiderStatez1Store and load spider state during a scraping jobNc                     || _         d S N)jobdir)selfr   s     =lib/python3.11/site-packages/scrapy/extensions/spiderstate.py__init__zSpiderState.__init__   s        c                    t          |j                  }|st           | |          }|j                            |j        t          j                   |j                            |j        t          j                   |S )N)signal)r   settingsr   r   connectspider_closedspider_opened)clscrawlerr   objs       r   from_crawlerzSpiderState.from_crawler   st    )** 	 c&kk 1':OPPP 1':OPPP
r   c                     | j         r^t          | j                                      d          5 }t	          j        |j        |d           d d d            d S # 1 swxY w Y   d S d S )Nwb   )protocol)r   r   statefnopenpickledumpstater   spiderfs      r   r   zSpiderState.spider_closed   s    ; 	9dl##((.. 9!FL!a88889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9	9 	9s   AA Ac                 $   | j         rt          | j                                                  r[t          | j                                      d          5 }t          j        |          |_        d d d            d S # 1 swxY w Y   d S i |_        d S )Nrb)r   r   r   existsr   r    loadr"   r#   s      r   r   zSpiderState.spider_opened   s    ; 	4--4466 	dl##((.. .!%{1~~. . . . . . . . . . . . . . . . . . FLLLs   A<<B B returnc                 F    t          t          | j        d                    S )Nzspider.state)strr   r   )r   s    r   r   zSpiderState.statefn&   s    4^44555r   r
   )__name__
__module____qualname____doc__r   classmethodr   r   r   propertyr,   r    r   r   r   r   	   s        ;;      [9 9 9
   6 6 6 6 X6 6 6r   r   )
r    pathlibr   scrapyr   scrapy.exceptionsr   scrapy.utils.jobr   r   r3   r   r   <module>r8      s                 + + + + + + $ $ $ $ $ $6 6 6 6 6 6 6 6 6 6r   