
    !h}                       S r SSKJr  SSKrSSK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
KJr  SSKJr  SSKJr  SS jr        SS jr    SS jr    SS jrSS jr\" \" \R:                  5      \\R<                  5      r\" \" \R@                  5      \\R<                  5      r!\" \" \R:                  5      \RD                  \R<                  5      r#\" \" \R@                  5      \RD                  \R<                  5      r$\" \5      r%\" \!5      r&\" \#5      r'\" \$5      r(\" \RR                  5      r)\" \RT                  5      r*g)z
Scheduler queues
    )annotationsN)Path)TYPE_CHECKINGAny)queue)request_from_dict)Callable)PathLike)Self)Request)Crawlerc                     " S SU 5      nU$ )Nc                  ,   ^  \ rS rSrSU 4S jjrSrU =r$ )'_with_mkdir.<locals>.DirectoriesCreated   c                   > [        U5      R                  nUR                  5       (       d  UR                  SSS9  [        TU ]  " U/UQ70 UD6  g )NT)parentsexist_ok)r   parentexistsmkdirsuper__init__)selfpathargskwargsdirname	__class__s        U/root/1688_scrapy/alibaba-scraper/venv/lib/python3.13/site-packages/scrapy/squeues.pyr   0_with_mkdir.<locals>.DirectoriesCreated.__init__   sF    4j''G>>##dT:GT3D3F3     )r   zstr | PathLiker   r   r   r   )__name__
__module____qualname____firstlineno__r   __static_attributes____classcell__r   s   @r    DirectoriesCreatedr      s    	4 	4r"   r+   r#   )queue_classr+   s     r    _with_mkdirr-      s    4[ 4 r"   c                (   ^^  " UU4S jSU 5      nU$ )Nc                  T   >^  \ rS rSrSU U4S jjrSU U4S jjrSU U4S jjrSrU =r$ )._serializable_queue.<locals>.SerializableQueue+   c                4   > T" U5      n[         TU ]  U5        g N)r   push)r   objsr   	serializes      r    r4   3_serializable_queue.<locals>.SerializableQueue.push,   s    #AGLOr"   c                @   > [         TU ]  5       nU(       a  T" U5      $ g r3   )r   pop)r   r6   r   deserializes     r    r:   2_serializable_queue.<locals>.SerializableQueue.pop0   s    A"1~%r"   c                ~   >  [         TU ]  5       nU(       a  T" U5      $ g! [         a  n[        S5      UeSnAff = fReturns the next object to be returned by :meth:`pop`,
but without removing it from the queue.

Raises :exc:`NotImplementedError` if the underlying queue class does
not implement a ``peek`` method, which is optional for queues.
z4The underlying queue class does not implement 'peek'Nr   peekAttributeErrorNotImplementedError)r   r6   exr   r;   s      r    rA   3_serializable_queue.<locals>.SerializableQueue.peek6   sJ    GLN
 "1~% " )Js   ! 
<7<r#   )r5   r   returnNonerF   z
Any | None)	r$   r%   r&   r'   r4   r:   rA   r(   r)   )r   r;   r7   s   @r    SerializableQueuer0   +   s!    	 		 		 	r"   rI   r#   )r,   r7   r;   rI   s    `` r    _serializable_queuerJ   &   s    
 K 8 r"   c                     " S SU 5      nU$ )Nc                     ^  \ rS rSrSU 4S jjr\          S	S j5       rS
U 4S jjrSU 4S jjrSU 4S jjr	Sr
U =r$ )7_scrapy_serialization_queue.<locals>.ScrapyRequestQueueM   c                F   > UR                   U l         [        TU ]	  U5        g r3   )spiderr   r   )r   crawlerkeyr   s      r    r   @_scrapy_serialization_queue.<locals>.ScrapyRequestQueue.__init__N   s    !..DKGS!r"   c                    U " X5      $ r3   r#   )clsrQ   rR   r   r   s        r    from_crawlerD_scrapy_serialization_queue.<locals>.ScrapyRequestQueue.from_crawlerR   s     w$$r"   c                V   > UR                  U R                  S9n[        TU ]  U5        g NrP   )to_dictrP   r   r4   )r   requestrequest_dictr   s      r    r4   <_scrapy_serialization_queue.<locals>.ScrapyRequestQueue.pushX   s#    "??$++?>LGL&r"   c                V   > [         TU ]  5       nU(       d  g [        XR                  S9$ rY   )r   r:   r   rP   r   r\   r   s     r    r:   ;_scrapy_serialization_queue.<locals>.ScrapyRequestQueue.pop\   s#    gkmG$W[[AAr"   c                V   > [         TU ]  5       nU(       d  g[        XR                  S9$ )r?   NrZ   )r   rA   r   rP   r`   s     r    rA   <_scrapy_serialization_queue.<locals>.ScrapyRequestQueue.peekb   s%     glnG$W[[AAr"   rZ   )rQ   r   rR   str)
rQ   r   rR   rd   r   r   r   r   rF   r   )r\   r   rF   rG   )rF   zRequest | None)r$   r%   r&   r'   r   classmethodrV   r4   r:   rA   r(   r)   r*   s   @r    ScrapyRequestQueuerM   M   s[    	" 
	%!	%(+	%47	%CF	%	% 
	%
	'	B
	B 
	Br"   rf   r#   r,   rf   s     r    _scrapy_serialization_queuerh   J   s    B[ BB r"   c                     " S SU 5      nU$ )Nc                  @   ^  \ rS rSr\SS j5       rSU 4S jjrSrU =r$ );_scrapy_non_serialization_queue.<locals>.ScrapyRequestQueuet   c                    U " 5       $ r3   r#   )rU   rQ   r   r   s       r    rV   H_scrapy_non_serialization_queue.<locals>.ScrapyRequestQueue.from_crawleru   s	    5Lr"   c                b   >  [         TU ]  5       nU$ ! [         a  n[        S5      UeSnAff = fr>   r@   )r   r6   rD   r   s      r    rA   @_scrapy_non_serialization_queue.<locals>.ScrapyRequestQueue.peeky   s?    GLN
 H	 " )Js    
.).r#   )rQ   r   r   r   r   r   rF   r   rH   )	r$   r%   r&   r'   re   rV   rA   r(   r)   r*   s   @r    rf   rk   t   s    		 
		 	r"   rf   r#   rg   s     r    _scrapy_non_serialization_queuerq   q   s    [ ( r"   c                     [         R                  " U SS9$ ! [         R                  [        [        4 a  n[        [        U5      5      UeS nAff = f)N   )protocol)pickledumpsPicklingErrorrB   	TypeError
ValueErrorrd   )r5   es     r    _pickle_serializer{      sH    (||C!,,   .)< (Q a'(s    AAA)r,   type[queue.BaseQueue]rF   r|   )r,   r|   r7   zCallable[[Any], bytes]r;   zCallable[[bytes], Any]rF   r|   )r5   r   rF   bytes)+__doc__
__future__r   marshalru   pathlibr   typingr   r   queuelibr   scrapy.utils.requestr   collections.abcr	   osr
   typing_extensionsr   scrapyr   scrapy.crawlerr   r-   rJ   rh   rq   r{   FifoDiskQueueloads!_PickleFifoSerializationDiskQueueLifoDiskQueue!_PickleLifoSerializationDiskQueuerv   "_MarshalFifoSerializationDiskQueue"_MarshalLifoSerializationDiskQueuePickleFifoDiskQueuePickleLifoDiskQueueMarshalFifoDiskQueueMarshalLifoDiskQueueFifoMemoryQueueLifoMemoryQueuer#   r"   r    <module>r      s   #    %  2( '&!&!%! (! 	!H$&$$N&4( %8##$
LL% !
 %8##$
LL% !
 &9##$MMMM& "
 &9##$MMMM& " 22ST 12ST 23UV 23UV 1%2G2GH1%2G2GHr"   