Ë
    ˜šãj2  ã                   ó¨   — d Z ddlmZ ddlmZ ddlmZ ddlZddlZddl	Z	ddl
Z
ddlZddlZddlZddlZddlZddlmZ ddlmZ d	„ Z G d
„ de«      Zy)z|upload_docs

Implements a Distutils 'upload_docs' subcommand (upload documentation to
sites other than PyPi such as devpi).
é    )Ústandard_b64encode)Úlog)ÚDistutilsOptionErrorN)Úiter_entry_pointsé   )Úuploadc                 ó&   — | j                  dd«      S )Nzutf-8Úsurrogateescape)Úencode)Úss    úi/var/www/html/python-recuperauto-other/env/lib/python3.12/site-packages/setuptools/command/upload_docs.pyÚ_encoder      s   € Ø�8‰8�GÐ.Ó/Ð/ó    c                   ó¤   — e Zd ZdZdZdddej                  z  fddgZej                  Zd„ Zd	efgZ	d
„ Z
d„ Zd„ Zd„ Zed„ «       Zed„ «       Zd„ Zy)Úupload_docsz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                 óB   — | j                   €t        dd«      D ]  } y y y )Nzdistutils.commandsÚbuild_sphinxT)Ú
upload_dirr   )ÚselfÚeps     r   Ú
has_sphinxzupload_docs.has_sphinx-   s+   € Ø�?‰?Ð"Ü'Ð(<¸nÓMò �Ùñð #r   r   c                 óJ   — t        j                  | «       d | _        d | _        y )N)r   Úinitialize_optionsr   Ú
target_dir)r   s    r   r   zupload_docs.initialize_options4   s   € Ü×!Ñ! $Ô'ØˆŒØˆ�r   c                 ó  — t        j                  | «       | j                  €€| j                  «       r/| j	                  d«      }t        |j                  «      d   | _        nc| j	                  d«      }t        j                  j                  |j                  d«      | _        n"| j                  d«       | j                  | _        d| j                  v rt        j                  d«       | j!                  d| j                  z  «       y )	Nr   ÚhtmlÚbuildÚdocsr   zpypi.python.orgz<Upload_docs command is deprecated for PyPi. Use RTD instead.zUsing upload directory %s)r   Úfinalize_optionsr   r   Úget_finalized_commandÚdictÚbuilder_target_dirsr   ÚosÚpathÚjoinÚ
build_baseÚensure_dirnameÚ
repositoryr   ÚwarnÚannounce)r   r   r   s      r   r    zupload_docs.finalize_options9   s¿   € Ü×Ñ Ô%Ø�?‰?Ð"Ø�‰Ô Ø#×9Ñ9¸.ÓI�Ü"& |×'GÑ'GÓ"HÈÑ"P�•à×2Ñ2°7Ó;�Ü"$§'¡'§,¡,¨u×/?Ñ/?ÀÓ"H�•à×Ñ Ô-Ø"Ÿo™oˆDŒOØ §¡Ñ/Ü�H‰HÐSÔTØ�‰Ð1°D·O±OÑCÕDr   c                 óŠ  — t        j                  |d«      }	 | j                  | j                  «       t	        j
                  | j                  «      D ]É  \  }}}|| j                  k(  r|sd}t        || j                  z  «      ‚|D ]“  }t        j                  j                  ||«      }|t        | j                  «      d  j                  t        j                  j                  «      }	t        j                  j                  |	|«      }
|j                  ||
«       Œ• ŒË 	 |j                  «        y # |j                  «        w xY w)NÚwz'no files found in upload directory '%s')ÚzipfileÚZipFileÚmkpathr   r$   Úwalkr   r%   r&   ÚlenÚlstripÚsepÚwriteÚclose)r   ÚfilenameÚzip_fileÚrootÚdirsÚfilesÚtmplÚnameÚfullÚrelativeÚdests              r   Úcreate_zipfilezupload_docs.create_zipfileI   sö   € Ü—?‘? 8¨SÓ1ˆð	Ø�K‰K˜Ÿ™Ô(Ü%'§W¡W¨T¯_©_Ó%=ò /Ñ!��d˜EØ˜4Ÿ?™?Ò*±5ØD�DÜ.¨t°d·o±oÑ/EÓFÐFØ!ò /�DÜŸ7™7Ÿ<™<¨¨dÓ3�DØ#¤C¨¯©Ó$8Ð$9Ð:×AÑAÄ"Ç'Á'Ç+Á+ÓN�HÜŸ7™7Ÿ<™<¨°$Ó7�DØ—N‘N 4¨Õ.ñ	/ñ	/ð �N‰NÕøˆH�N‰NÕús   ˜DD0 Ä0Ec                 óª  — | j                  «       D ]  }| j                  |«       Œ t        j                  «       }| j                  j
                  j                  «       }t        j                  j                  |d|z  «      }	 | j                  |«       | j                  |«       t        j                  |«       y # t        j                  |«       w xY w)Nz%s.zip)Úget_sub_commandsÚrun_commandÚtempfileÚmkdtempÚdistributionÚmetadataÚget_namer$   r%   r&   rA   Úupload_fileÚshutilÚrmtree)r   Úcmd_nameÚtmp_dirr=   r8   s        r   Úrunzupload_docs.runY   s¤   € à×-Ñ-Ó/ò 	'ˆHØ×Ñ˜XÕ&ð	'ô ×"Ñ"Ó$ˆØ× Ñ ×)Ñ)×2Ñ2Ó4ˆÜ—7‘7—<‘< ¨°D©Ó9ˆð	#Ø×Ñ Ô)Ø×Ñ˜XÔ&ä�M‰M˜'Õ"øŒF�M‰M˜'Õ"ús   Â"B; Â;Cc              #   óþ   K  — | \  }}d|z  }t        |t        «      s|g}|D ]W  }t        |t        «      r|d|d   z  z  }|d   }nt        |«      }|–— t        |«      –— d–— |–— |sŒK|dd  dk(  sŒTd–— ŒY y ­w)	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_partzupload_docs._build_partg   s˜   è ø€ à‰ˆˆVØ=ÀÑCˆä˜&¤$Ô'Ø�XˆFØò 	ˆEÜ˜%¤Ô'ØÐ*¨U°1©XÑ5Ñ5�Ø˜a™‘ä ›�ØÒÜ˜%“.Ò ØŠMØŠKÚ˜˜r˜s˜ uÓ,Ø“ñ	ùs   ‚A*A=Á-A=Á6A=c                 óP  — d}d|j                  d«      z   }|dz   }|df}t        j                  | j                  |¬«      }t	        ||j                  «       «      }t        j                  j                  |«      }t        j                  ||«      }	d|z  }
dj                  |	«      |
fS )	z=
        Build up the MIME payload for the POST data
        z3--------------GHSKFJDLGDS7543FJKLFHRE75642756743254s   
--Úasciis   --rS   )rX   z multipart/form-data; boundary=%sr   )
r   Ú	functoolsÚpartialr]   ÚmapÚitemsÚ	itertoolsÚchainÚfrom_iterabler&   )ÚclsÚdataÚboundaryrX   Úend_boundaryÚ	end_itemsÚbuilderÚpart_groupsÚpartsÚ
body_itemsÚcontent_types              r   Ú_build_multipartzupload_docs._build_multipart{   s¡   € ð
 IˆØ §¡°Ó!9Ñ9ˆØ# eÑ+ˆØ  %Ð(ˆ	Ü×#Ñ#Ø�O‰OØ%ô
ˆô ˜' 4§:¡:£<Ó0ˆÜ—‘×-Ñ-¨kÓ:ˆÜ—_‘_ U¨IÓ6ˆ
Ø9¸HÑDˆØ�x‰x˜
Ó# \Ð1Ð1r   c                 ó  — t        |d«      5 }|j                  «       }d d d «       | j                  j                  }d|j	                  «       t
        j                  j                  |«      fdœ}t        | j                  dz   | j                  z   «      }t        |«      j                  d«      }d|z   }| j                  |«      \  }}	d| j                  z  }
| j                  |
t         j"                  «       t$        j&                  j)                  | j                  «      \  }}}}}}|s|s|rJ ‚|dk(  r t*        j,                  j/                  |«      }n3|d	k(  r t*        j,                  j1                  |«      }nt3        d
|z   «      ‚d}	 |j5                  «        |j7                  d|«       |	}|j9                  d|«       |j9                  dt;        t=        |«      «      «       |j9                  d|«       |j?                  «        |jA                  |«       |jI                  «       }|jJ                  dk(  r=d|jJ                  ›d|jL                  ›�}
| j                  |
t         j"                  «       n—|jJ                  dk(  rL|jO                  d«      }|€d|j	                  «       z  }d|z  }
| j                  |
t         j"                  «       n<d|jJ                  ›d|jL                  ›�}
| j                  |
t         jF                  «       | jP                  rtS        d|j                  «       d«       y y # 1 sw Y   �ŒxY w# tB        jD                  $ r3}| j                  t;        |«      t         jF                  «       Y d }~y d }~ww xY w)NÚrbÚ
doc_upload)z:actionr=   Úcontentú:r_   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ÚreadrG   rH   rI   r$   r%   Úbasenamer   ÚusernameÚpasswordr   Údecoderq   r)   r+   r   ÚINFOÚurllibÚparseÚurlparserw   ÚclientÚHTTPConnectionÚHTTPSConnectionÚAssertionErrorÚconnectÚ
putrequestÚ	putheaderÚstrr2   Ú
endheadersÚsendÚsocketÚerrorÚERRORÚgetresponseÚstatusÚreasonÚ	getheaderÚshow_responseÚprint)r   r7   Úfru   Úmetarh   ÚcredentialsÚauthÚbodyÚctÚmsgÚschemaÚnetlocÚurlÚparamsÚqueryÚ	fragmentsÚconnrp   Úer   Úlocations                         r   rJ   zupload_docs.upload_fileŽ   sÌ  € Ü�(˜DÓ!ð 	 QØ—f‘f“hˆG÷	à× Ñ ×)Ñ)ˆà#Ø—M‘M“OÜŸ™×(Ñ(¨Ó2°GÐ<ñ
ˆô ˜dŸm™m¨cÑ1°D·M±MÑAÓBˆÜ(¨Ó5×<Ñ<¸WÓEˆØ˜+Ñ%ˆà×(Ñ(¨Ó.‰ˆˆbà.°$·/±/ÑBˆØ�‰�cœ3Ÿ8™8Ô$ô �L‰L×!Ñ! $§/¡/Ó2ñ 	6ˆ�˜˜V U¨Iá¡%±	Ð9Ð9Ø�VÒÜ—;‘;×-Ñ-¨fÓ5‰DØ�wÒÜ—;‘;×.Ñ.¨vÓ6‰Dä Ð!6¸Ñ!?Ó@Ð@àˆð	Ø�L‰LŒNØ�O‰O˜F CÔ(ØˆLØ�N‰N˜>¨<Ô8Ø�N‰NÐ+¬S´°T³«^Ô<Ø�N‰N˜?¨DÔ1Ø�O‰OÔØ�I‰I�dŒOð
 ×ÑÓˆØ�8‰8�s‹?Ø01·³¸!¿(º(ÐCˆCØ�M‰M˜#œsŸx™xÕ(Ø�X‰X˜Š_Ø—{‘{ :Ó.ˆHØÐØ9¸D¿M¹M»OÑK�Ø/°(Ñ:ˆCØ�M‰M˜#œsŸx™xÕ(ð ð /0¯h«h¸¿ºÐAˆCØ�M‰M˜#œsŸy™yÔ)Ø×ÒÜ�(˜AŸF™F›H hÕ/ð ÷u	ñ 	ûôR �|‰|ò 	Ø�M‰Mœ#˜a›&¤#§)¡)Ô,Üûð	ús$   �L2Æ	BL? Ì2L<Ì?NÍ)N Î NN)Ú__name__Ú
__module__Ú__qualname__ÚDEFAULT_REPOSITORYÚdescriptionr   Úuser_optionsÚboolean_optionsr   Úsub_commandsr   r    rA   rO   Ústaticmethodr]   Úclassmethodrq   rJ   © r   r   r   r      sœ   „ ð 9ÐàO€Kð 
˜Ø	*¨V×-FÑ-FÑ	Fð	Hð	3à4ð€Lð ×,Ñ,€Oòð
 $ ZÐ0Ð1€Lòò
Eò ò #ð ñó ðð& ñ2ó ð2ó$<0r   r   )Ú__doc__Úbase64r   Ú	distutilsr   Údistutils.errorsr   r$   r’   r.   rE   rK   rd   r`   Úhttp.clientrw   Úurllib.parser…   Úpkg_resourcesr   r   r   r   rµ   r   r   ú<module>r½      sI   ðñõ &Ý Ý 1Û 	Û Û Û Û Û Û Û Û å +Ý ò0ôm0�&õ m0r   