
    ǆi                         S r SSKJr  SSKJr  SSKJr  SSKrSSKrSSK	r	SSK
r
SSKrSSKrSSKrSSKrSSKJr  SSKJr  S	S
KJr  S r " S S\5      rg)z|upload_docs

Implements a Distutils 'upload_docs' subcommand (upload documentation to
sites other than PyPi such as devpi).
    )standard_b64encode)log)DistutilsOptionErrorN   )metadata)SetuptoolsDeprecationWarning   )uploadc                 &    U R                  SS5      $ )Nzutf-8surrogateescape)encode)ss    n/home/dmtnaga/Documents/work/airagagent/rag_env/lib/python3.13/site-packages/setuptools/command/upload_docs.py_encoder      s    88G.//    c                       \ rS rSrSrSrSSS\R                  -  4SS/r\R                  rS	 r	S
\	4/r
S rS rS rS r\S 5       r\S 5       rS rSrg)upload_docs   zhttps://pypi.python.org/pypi/z;Upload documentation to sites other than PyPi such as devpizrepository=rzurl of repository [default: %s])zshow-responseNz&display full response text from server)zupload-dir=Nzdirectory to uploadc                 h    [        U R                  S L =(       a    [        R                  " SSS95      $ )Nzdistutils.commandsbuild_sphinx)groupname)bool
upload_dirr   entry_pointsselfs    r   
has_sphinxupload_docs.has_sphinx/   s2    OOt# W%%,@~V
 	
r   r   c                 L    [         R                  " U 5        S U l        S U l        g )N)r
   initialize_optionsr   
target_dirr   s    r   r"   upload_docs.initialize_options7   s    !!$'r   c                     [         R                  " S5        [        R                  " U 5        U R                  c  U R                  5       (       a/  U R                  S5      n[        UR                  5      S   U l	        OcU R                  S5      n[        R                  R                  UR                  S5      U l	        O"U R                  S5        U R                  U l	        U R                  SU R                  -  5        g )NzWUpload_docs command is deprecated. Use Read the Docs (https://readthedocs.org) instead.r   htmlbuilddocsr   zUsing upload directory %s)r   warnr
   finalize_optionsr   r   get_finalized_commanddictbuilder_target_dirsr#   ospathjoin
build_baseensure_dirnameannounce)r   r   r'   s      r   r*   upload_docs.finalize_options<   s    1	
 	%??"  #99.I"&|'G'G"H"P227;"$'',,u/?/?"H-"ooDO1DOOCDr   c                    [         R                  " US5      n U R                  U R                  5        [        R
                  " U R                  5       H  u  p4nX0R                  :X  a   U(       d  Sn[        X`R                  -  5      eU H  n[        R                  R                  X75      nU[        U R                  5      S  R                  [        R                  R                  5      n	[        R                  R                  X5      n
UR                  X5        M     M     UR                  5         g ! UR                  5         f = f)Nwz'no files found in upload directory '%s')zipfileZipFilemkpathr#   r.   walkr   r/   r0   lenlstripsepwriteclose)r   filenamezip_filerootdirsfilestmplr   fullrelativedests              r   create_zipfileupload_docs.create_zipfileN   s    ??8S1	KK(%'WWT__%=!E??*5DD.too/EFF!D77<<3D#C$8$:;BB277;;OH77<<7DNN4.	 "	 &> NNHNNs   DD5 5Ec                    [         R                  " SSSS9  U R                  5        H  nU R                  U5        M     [        R
                  " 5       nU R                  R                  R                  5       n[        R                  R                  USU-  5      n U R                  U5        U R                  U5        [        R                  " U5        g ! [        R                  " U5        f = f)NzDeprecated commanda  
            upload_docs is deprecated and will be removed in a future version.
            Instead, use tools like devpi and Read the Docs; or lower level tools like
            httpie and curl to interact directly with your hosting service API.
            )i  	      )due_datez%s.zip)r   emitget_sub_commandsrun_commandtempfilemkdtempdistributionr   get_namer.   r/   r0   rI   upload_fileshutilrmtree)r   cmd_nametmp_dirr   rA   s        r   runupload_docs.run^   s    $)) 
 #	
 --/HX& 0 ""$  ))22477<<D9	#)X&MM'"FMM'"s   "C C-c              #   $  #    U u  p#SU-  n[        U[        5      (       d  U/nU He  n[        U[        5      (       a  USUS   -  -  nUS   nO[        U5      nUv   [        U5      v   Sv   Uv   U(       d  MV  USS  S:X  d  Ma  Sv   Mg     g 7f)	Nz*
Content-Disposition: form-data; name="%s"z; filename="%s"r   r	   s   

      
)
isinstancelisttupler   )itemsep_boundarykeyvaluestitlevalues         r   _build_partupload_docs._build_partv   s     =C&$''XFE%''*U1X55a%. MKursu, s   A6B<B	Bc                 J   SnSUR                  S5      -   nUS-   nUS4n[        R                  " U R                  US9n[	        XaR                  5       5      n[        R                  R                  U5      n[        R                  " X5      n	SU-  n
SR                  U	5      U
4$ )	z-
Build up the MIME payload for the POST data
z3--------------GHSKFJDLGDS7543FJKLFHRE75642756743254s   
--asciis   --r`   )re   z multipart/form-data; boundary=%sr   )
r   	functoolspartialrj   mapitems	itertoolschainfrom_iterabler0   )clsdataboundaryre   end_boundary	end_itemsbuilderpart_groupsparts
body_itemscontent_types              r   _build_multipartupload_docs._build_multipart   s    
 I!99#e+
	 ##OO%
 '::<0--k:__U6
9HDxx
#\11r   c                 <   [        US5       nUR                  5       nS S S 5        U R                  R                  nSUR	                  5       [
        R                  R                  U5      W4S.n[        U R                  S-   U R                  -   5      n[        U5      R                  S5      nSU-   nU R                  U5      u  pSU R                  -  n
U R                  U
[         R"                  5        [$        R&                  R)                  U R                  5      u  ppnnU(       d  U(       d  U(       a   eUS:X  a   [*        R,                  R/                  U5      nO4US	:X  a   [*        R,                  R1                  U5      nO[3        S
U-   5      eSn UR5                  5         UR7                  SU5        U	nUR9                  SU5        UR9                  S[;        [=        U5      5      5        UR9                  SU5        UR?                  5         URA                  U5        URG                  5       nURH                  S:X  a?  SURH                  < SURJ                  < 3n
U R                  U
[         R"                  5        OURH                  S:X  aM  URM                  S5      nUc  SUR	                  5       -  nSU-  n
U R                  U
[         R"                  5        O>SURH                  < SURJ                  < 3n
U R                  U
[         RD                  5        U RN                  (       a  [Q        SUR                  5       S5        g g ! , (       d  f       GN5= f! [B         a3  nU R                  [;        U5      [         RD                  5         S nAg S nAff = f)Nrb
doc_upload)z:actionr   content:rm   zBasic zSubmitting documentation to %shttphttpszunsupported schema  POSTzContent-typezContent-lengthAuthorization   zServer response (z): i-  Locationzhttps://pythonhosted.org/%s/zUpload successful. Visit %szUpload failed (zK---------------------------------------------------------------------------))openreadrT   r   rU   r.   r/   basenamer   usernamepasswordr   decoder   
repositoryr3   r   INFOurllibparseurlparser   clientHTTPConnectionHTTPSConnectionAssertionErrorconnect
putrequest	putheaderstrr;   
endheaderssendOSErrorERRORgetresponsestatusreason	getheadershow_responseprint)r   r@   fr   metarv   credentialsauthbodyctmsgschemanetlocurlparamsquery	fragmentsconnr~   er   locations                         r   rV   upload_docs.upload_file   s   (D!QffhG "  ))#MMO((2G<
 dmmc1DMMAB(5<<WE+%((..$//Bc388$
 9?8M8MOO9
5UI %	99V;;--f5Dw;;..v6D !6!?@@	LLNOOFC(LNN><8NN+ST^<NN?D1OOIIdO
 88s?01!((CCMM#sxx(XX_{{:.H9DMMOK/(:CMM#sxx(  /0hhACMM#syy)(AFFHh/ w "!T  	MM#a&#)),	s$   MBM 
M
N()NN)r#   r   N)__name__
__module____qualname____firstlineno__DEFAULT_REPOSITORYdescriptionr
   user_optionsboolean_optionsr   sub_commandsr"   r*   rI   r[   staticmethodrj   classmethodr   rV   __static_attributes__ r   r   r   r      s     9OK -0I0II	

 	J4L ,,O
 $Z01L
E$ #0  & 2 2*=0r   r   )__doc__base64r   	distutilsr   distutils.errorsr   r.   r7   rR   rW   rr   rn   http.clientr   urllib.parser   
_importlibr   warningsr   r
   r   r   r   r   r   <module>r      sI    &  1 	        ! 3 0@0& @0r   