+
    '(j                        ^ RI Ht ^ RIt^ RIt^ RIt^ RIHtHt ^ RIH	t	 ^RI
HtHt ^RIHt ] ! R R4      4       tR	 R
 ltR R ltRR R llt]! 0 Rm4      tRR R lltR R ltR# )    )annotationsN)	dataclassfield)Session)SUPPORTED_METHODSprocess_url)_execute_requestc                  b    ] tR t^t$ RtRtR]R&   RtR]R&   ]! ]	R7      t
R]R	&   RtR]R
&   RtR# )HttpFileRequestz+A single request parsed from an .http file.GETstrmethod url)default_factoryzdict[str, str]headersbody N)__name__
__module____qualname____firstlineno____doc__r   __annotations__r   r   dictr   r   __static_attributes__r       F/home/ubuntu/cf-venv/lib/python3.14/site-packages/curl_cffi/cli/run.pyr   r      s0    5FCCM#D9G^9D#Nr   r   c                    V ^8  d   QhRRRR/# )   textr   returnzlist[HttpFileRequest]r   )formats   "r   __annotate__r$      s      # "7 r   c                r   . p. pV P                  4        FX  pVP                  4       P                  R4      '       d    V'       d   VP                  V4       . pKE  KG  VP                  V4       KZ  	  V'       d   VP                  V4       . pV F%  p\	        V4      pVf   K  VP                  V4       K'  	  V# )ztParse an .http file into a list of requests.

Supports the HTTP Request in Editor spec:
- Requests separated by ###
z###)
splitlinesstrip
startswithappend_parse_http_block)r!   blockscurrent_lineslinerequestsblock_linesreqs   &      r   parse_http_filer1      s     F!M!::<""5))m, "    & " m$H,?OOC   Or   c                    V ^8  d   QhRRRR/# )r    linesz	list[str]r"   zHttpFileRequest | Noner   )r#   s   "r   r$   r$   8   s     K KY K+A Kr   c                6   RpRpRp/ p. pV  EF  pVP                  4       pVP                  R4      '       g   VP                  R4      '       d   KD  T;R8X  d    V'       g   KW  VP                  4       pV^ ,          P                  4       \        9   g   V^ ,          P                  4       R8X  d4   V^ ,          P                  4       p\        V4      ^8  d
   V^,          MRpM	V^ ,          pRpK  ;R8X  db    V'       g   RpK  R	V9   d8   VP                  R	4      w  rpVP                  4       WIP                  4       &   EK5  RpVP                  V4       EKK  R8X  g   EKT  VP                  R
4      '       g   VP                  R4      '       d    MVP                  R4      '       db   VP                  4       w  rVP                  4       p \        V4      ;_uu_ 4       pVP                  VP                  4       4       RRR4       EK  VP                  V4       EK  	  V'       g   R# \        VVVRP                  V4      P                  4       R7      #   + '       g   i     EKZ  ; i  \         d$    \        RT 2\        P                  R7        EK  i ; i)zParse a single request block from an .http file.

Each block contains:
- Request line: [METHOD] URL [HTTP/version]
- Headers: Name: Value
- Body after blank line
- Comments with # or //
- File references: < filepath
requestr   r   #z//CONNECTr   r   :z> z<> z< Nz"Error: referenced file not found: file
)r   r   r   r   )r'   r(   splitupperr   len	partitionr)   openreadFileNotFoundErrorprintsysstderrr   join)r3   stater   r   r   
body_linesr-   strippedpartsname_valuefilepathfs   &             r   r*   r*   8   s    EF
C GJ::< s##x':':4'@'@x (!HNN$(99Qx~~'94"1X^^-F&)%j1n%("C(C!x"EH_%-%7%7%<NDU,1KKMGJJL)"E%%d+&&t,,0C0CE0J0J&&t,,"*.."2KA'~~/H!(^^q&--affh7 ,^ %%d+a d YYz"((*	  ,^^, @
K!$ s0   I* I>I*I' I*'I**)JJc               (    V ^8  d   QhRRRRRRRR/# 	r    argsargparse.Namespacer!   r   sessionzSession | Noner"   intr   )r#   s   "r   r$   r$      s,      
$'2@r   c           
        \        V4      pV'       g2   \        R\        P                  R7       \        P                  ! ^4       ^ p\        V^4       F  w  rV\        RV RVP                   RVP                   2\        P                  R7       \        VP                  4      p\        T VP                  TVP                  VP                  ;'       g    RVR7      pV^ 8w  g   K  V^,          pK  	  V# )z0Execute requests parsed from .http file content.z!Error: no requests found in file.r9   --- []  Nr   datarT   )r1   rC   rD   rE   exit	enumerater   r   r   r	   r   r   )	rR   r!   rT   r.   failedir0   r   rcs	   &&&      r   _run_http_filera      s    
 t$H1

CFHa(aS3::,ay1

C#''"JJKK!!T
 7aKF )  Mr   c               (    V ^8  d   QhRRRRRRRR/# rQ   r   )r#   s   "r   r$   r$      s,     0 0
0$'02@00r   c           
     ^    \         P                  ! V4      pXP                  R/ 4      P                  R. 4      pV'       g2   \        R\        P
                  R7       \        P                  ! ^4       ^ p\        V^4       EFP  w  rxVP                  R/ 4      p	V	P                  RR	4      P                  4       p
V	P                  R
R4      pV'       g"   \        RV R2\        P
                  R7       Ks  \        RV RV
 RV 2\        P
                  R7       / pV	P                  R. 4       FD  pVP                  RR4      pVP                  4       \        9  g   K0  VP                  RR4      W&   KF  	  T;'       g    RpV	P                  R4      pV'       d   VP                  RR4      MRp\        V V
VVVVR7      pV^ 8w  g   EKG  V^,          pEKS  	  V#   \         P                   d@   p\        RT 2\        P
                  R7       \        P                  ! ^4        Rp?ELRp?ii ; i)z.Execute requests parsed from HAR file content.zError: invalid HAR JSON: r9   Nlogentriesz$Error: no entries found in HAR file.r5   r   r   r   r   rW   z] skipping entry with no URLrX   rY   r   rK   rM   postDatar!   rZ   )jsonloadsJSONDecodeErrorrC   rD   rE   r\   getr]   r=   lower_SKIP_HAR_HEADERSr	   )rR   r!   rT   harexcre   r^   r_   entryr0   r   r   r   hrK   	post_datar[   r`   s   &&&               r   _run_har_filerr      s   jj
 ggeR $$Y3G43::FFgq)ii	2&5)//1ggeR E!89

KaS6(!C5)

;B'A55$Dzz|#44 !gr 2 ( //TGGJ'	,5y}}VR(4
 7aKF= *@ MU  )#/cjjAs   G H,-4H''H,c                    V ^8  d   QhRRRR/# )r    rR   rS   r"   Noner   )r#   s   "r   r$   r$      s      ' D r   c                p   V P                   p \        V4      ;_uu_ 4       pVP                  4       pRRR4       \        T RR4      pT'       d   \        T P                  R7      MRp TP                  R4      '       d   \        T XTR7      pMZTP                  R	4      '       d   \        T XTR7      pM4\	        R
T 2\
        P                  R7       \
        P                  ! ^4       T'       d   TP                  4        X^ 8  d8   \	        RT R2\
        P                  R7       \
        P                  ! ^4       R# R#   + '       g   i     EL; i  \         d9    \	        RT 2\
        P                  R7       \
        P                  ! ^4        EL\i ; i  T'       d   TP                  4        i i ; i)zExecute batch requests.NzError: file not found: r9   rT   T)impersonatez.har)rT   z.httpz Error: unsupported file format: r;   z request(s) failed.)r:   r@   rA   rB   rC   rD   rE   r\   getattrr   rv   endswithrr   ra   close)rR   rN   rO   r!   use_sessionrT   r^   s   &      r   
handle_runr{      s;   yyH(^^q668D  $	40K7Bg$"2"23G
V$$"4w?Fw''#D$@F4XJ?cjjQHHQKMMOz6(-.SZZ@ + ^^ 'z2D  MMO sF   E E E (F ?%F %AF  E	E E ?FFF5)N>   :path:method:scheme
:authoritycontent-lengthtransfer-encoding)
__future__r   argparserg   rD   dataclassesr   r   curl_cffi.requestsr   parser   r   r5   r	   r   r1   r*   ra   	frozensetrl   rr   r{   r   r   r   <module>r      se    "   
 ( & 1 %   4K\D 	 0pr   