
    3 d                     0    d Z ddlmZ  G d d          ZdS )zY
Download timeout middleware

See documentation in docs/topics/downloader-middleware.rst
    )signalsc                   8    e Zd ZddZed             Zd Zd ZdS )DownloadTimeoutMiddleware   c                     || _         d S )N)_timeout)selftimeouts     Llib/python3.11/site-packages/scrapy/downloadermiddlewares/downloadtimeout.py__init__z"DownloadTimeoutMiddleware.__init__   s        c                      | |j                             d                    }|j                            |j        t          j                   |S )NDOWNLOAD_TIMEOUT)signal)settingsgetfloatr   connectspider_opened)clscrawleros      r   from_crawlerz&DownloadTimeoutMiddleware.from_crawler   sH    C ))*<==>>8MNNNr   c                 <    t          |d| j                  | _        d S Ndownload_timeout)getattrr   )r	   spiders     r   r   z'DownloadTimeoutMiddleware.spider_opened   s    (:DMJJr   c                 X    | j         r"|j                            d| j                    d S d S r   )r   meta
setdefault)r	   requestr   s      r   process_requestz)DownloadTimeoutMiddleware.process_request   s:    = 	GL##$6FFFFF	G 	Gr   N)r   )__name__
__module____qualname__r   classmethodr   r   r"    r   r   r   r   
   si                  [
K K KG G G G Gr   r   N)__doc__scrapyr   r   r'   r   r   <module>r*      s_          G G G G G G G G G Gr   