
    !ha                    0   S SK Jr  S SKrS SKrS SKJr  S SKJr  S SKJ	r	J
r
Jr  S SKJr  S SKJr  \	(       a  S SKJr   " S	 S
\R$                  5      r " S S\R(                  5      r\" 5       r\R/                  S5        \R/                  SSSSS9  \R/                  SSSS9  \R/                  SSSSS9  \R/                  SSSS\S9  \R/                  SSS S9  S!/S"S#/S$S%/S&S'//r\ H  r\R.                  " \S(S)06  M         S,S* jr S-     S.S+ jjrg)/    )annotationsN)SimpleCookie)split)TYPE_CHECKINGAnyNoReturn)urlparse)basic_auth_header)Sequencec                  6    \ rS rSr S         SS jjrSrg)
DataAction   Nc                h    [        U5      nUR                  S5      n[        X R                  U5        g )N$)strremoveprefixsetattrdest)selfparser	namespacevaluesoption_stringvalues         X/root/1688_scrapy/alibaba-scraper/venv/lib/python3.13/site-packages/scrapy/utils/curl.py__call__DataAction.__call__   s+     F""3'	99e,     )N)
r   zargparse.ArgumentParserr   argparse.Namespacer   zstr | Sequence[Any] | Noner   z
str | NonereturnNone)__name__
__module____qualname____firstlineno__r   __static_attributes__r   r   r   r   r      sA     %)	-'	- &	- +		-
 "	- 
	- 	-r   r   c                      \ rS rSrSS jrSrg)
CurlParser   c                "    SU 3n[        U5      e)Nz-There was an error parsing the curl command: )
ValueError)r   message	error_msgs      r   errorCurlParser.error   s    CG9M	##r   r   N)r-   r   r!   r   )r#   r$   r%   r&   r/   r'   r   r   r   r)   r)      s    $r   r)   urlz-Hz--headerheadersappend)r   actionz-Xz	--requestmethod)r   z-bz--cookiecookiesz-dz--dataz
--data-rawdataz-uz--userauthz--compressedz-sz--silentz-vz	--verbosez-#z--progress-barr4   
store_truec                   / n0 nU R                   =(       d    S H  nUR                  SS5      u  pEUR                  5       nUR                  5       nUR                  5       S:X  a2  [	        U5      R                  5        H  u  pFUR                  X$'   M     M}  UR                  XE45        M     U R                  =(       d    S H;  nSU;  a  M  [	        U5      R                  5        H  u  pFUR                  X$'   M     M=     U R                  (       a:  U R                  R                  SS5      u  pUR                  S[        X5      45        X4$ )Nr   :   Cookie=Authorization)r2   r   striptitler   itemsr   r3   r6   r8   r
   )
parsed_argsr2   r6   headernamevalmorselcookie_paramuserpasswords
             r   _parse_headers_and_cookiesrK   9   s"    (*G G%%++LLa(	zz|iik::<8# ,S 1 7 7 9 & !: NND;' , $++1r1 l"(6<<>LD"LLGM ? 2 $))//Q7):4)JKLr   c                \   [        U 5      nUS   S:w  a  [        S5      e[        R                  USS 5      u  p4U(       a=  SSR	                  U5       3nU(       a  [
        R                  " U5        O[        U5      eUR                  n[        U5      nUR                  (       d  SU-   nUR                  =(       d    S	nUR                  5       US
.n	[        U5      u  pU
(       a  XS'   U(       a  XS'   UR                  (       a%  UR                  U	S'   UR                  (       d  SU	S'   U	$ )am  Convert a cURL command syntax to Request kwargs.

:param str curl_command: string containing the curl command
:param bool ignore_unknown_options: If true, only a warning is emitted when
                                    cURL options are unknown. Otherwise
                                    raises an error. (default: True)
:return: dictionary of Request kwargs
r   curlz%A curl command must start with "curl"r<   NzUnrecognized options: z, zhttp://GET)r5   r1   r2   r6   bodyPOSTr5   )r   r,   curl_parserparse_known_argsjoinwarningswarnr1   r	   schemer5   upperrK   r7   )curl_commandignore_unknown_options	curl_argsrC   argvmsgr1   
parsed_urlr5   resultr2   r6   s               r   curl_to_request_kwargsr_   W   s    l#I|v@AA#44Yqr]CK&tyy&78!MM#S/!
//C #J#o(5F(.sCF1+>G#y#y$))v!!  &F8Mr   )rC   r    r!   z.tuple[list[tuple[str, bytes]], dict[str, str]])T)rX   r   rY   boolr!   zdict[str, Any])
__future__r   argparserT   http.cookiesr   shlexr   typingr   r   r   urllib.parser	   
w3lib.httpr
   collections.abcr   Actionr   ArgumentParserr)   rQ   add_argumentsafe_to_ignore_argumentsargumentrK   r_   r   r   r   <module>rn      sQ   "   %  / / ! ((
- 
-$(( $ l       z	(  K   {  :   z	(  K   xF:  V   xf  5  
:	;	  )Hh<|< )#3> 7;33/333r   