<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
B
    Re2                 @   s   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	d
 ZG dd deZdS )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             C   s   |  ddS )Nzutf-8surrogateescape)encode)s r   /builddir/build/BUILDROOT/alt-python37-setuptools-58.3.0-4.el8.x86_64/opt/alt/python37/lib/python3.7/site-packages/setuptools/command/upload_docs.py_encode   s    r   c               @   s   e Zd ZdZdZdddej fddgZejZdd	 Zd
efgZ	dd Z
dd Zdd Zdd Zedd Zedd Zdd ZdS )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             C   s$   | j d kr xtddD ]}dS W d S )Nzdistutils.commandsbuild_sphinxT)
upload_dirr   )selfepr   r   r   
has_sphinx-   s    
zupload_docs.has_sphinxr   c             C   s   t |  d | _d | _d S )N)r   initialize_optionsr   
target_dir)r   r   r   r   r   4   s    
zupload_docs.initialize_optionsc             C   s   t |  | jd krV|  r8| d}t|jd | _qh| d}tj	
|jd| _n| d | j| _d| jkr|td | d| j  d S )	Nr   htmlbuildZ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dictZbuilder_target_dirsr   ospathjoin
build_baseensure_dirname
repositoryr   warnannounce)r   r   r   r   r   r   r   9   s    






zupload_docs.finalize_optionsc             C   s   t |d}z| | j xt| jD ]|\}}}|| jkrR|sRd}t|| j xP|D ]H}tj||}|t	| jd  
tjj}	tj|	|}
|||
 qXW q(W W d |  X d S )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destr   r   r   create_zipfileI   s    
zupload_docs.create_zipfilec          	   C   sl   x|   D ]}| | q
W t }| jj }tj	|d| }z| 
| | | W d t| X d S )Nz%s.zip)get_sub_commandsrun_commandtempfilemkdtempdistributionmetadataget_namer   r   r   r8   upload_fileshutilrmtree)r   cmd_nameZtmp_dirr4   r/   r   r   r   runY   s    
zupload_docs.runc             c   s   | \}}d| }t |ts |g}xn|D ]f}t |trN|d|d  7 }|d }nt|}|V  t|V  dV  |V  |r&|dd  dkr&dV  q&W d S )	Nz*
Content-Disposition: form-data; name="%s"z; filename="%s"r   r   s   

      
)
isinstancelisttupler   )itemsep_boundarykeyvaluestitlevaluer   r   r   _build_partg   s    




zupload_docs._build_partc             C   sn   d}d| d }|d }|df}tj| j|d}t|| }tj|}t||}	d| }
d	|	|
fS )	z=
        Build up the MIME payload for the POST data
        z3--------------GHSKFJDLGDS7543FJKLFHRE75642756743254s   
--asciis   --rG   )rL   z multipart/form-data; boundary=%s    )
r	   	functoolspartialrQ   mapitems	itertoolschainfrom_iterabler   )clsdataboundaryrL   Zend_boundaryZ	end_itemsZbuilderZpart_groupspartsZ
body_itemscontent_typer   r   r   _build_multipart{   s    zupload_docs._build_multipartc          
   C   s>  t |d}| }W d Q R X | jj}d| tj||fd}t| j	d | j
 }t|d}d| }| |\}}	d| j }
| |
tj tj| j\}}}}}}|s|s|rt|dkrtj|}n"|d	krtj|}ntd
| d}yZ|  |d| |	}|d| |dtt| |d| |  | | W n8 t!j"k
r } z| t|tj# d S d }~X Y nX |$ }|j%dkrd|j%|j&f }
| |
tj nb|j%dkr|'d}|d krd|  }d| }
| |
tj nd|j%|j&f }
| |
tj# | j(r:t)d| d d S )NrbZ
doc_upload)z:actionr4   content:rR   zBasic zSubmitting documentation to %shttphttpszunsupported schema  POSTzContent-typezContent-lengthAuthorization   zServer response (%s): %si-  ZLocationzhttps://pythonhosted.org/%s/zUpload successful. Visit %szUpload failed (%s): %szK---------------------------------------------------------------------------)*openreadr=   r>   r?   r   r   basenamer   usernamepasswordr   decoder`   r!   r#   r   INFOurllibparseurlparseAssertionErrorrd   clientHTTPConnectionHTTPSConnectionconnect
putrequest	putheaderstrr)   
endheaderssendsocketerrorERRORgetresponsestatusreason	getheadershow_responseprint)r   r.   frb   metar\   credentialsauthbodyctmsgZschemanetlocurlparamsquery	fragmentsconnr_   er   locationr   r   r   r@      s\    


zupload_docs.upload_fileN)__name__
__module____qualname__DEFAULT_REPOSITORYdescriptionr   user_optionsboolean_optionsr   sub_commandsr   r   r8   rD   staticmethodrQ   classmethodr`   r@   r   r   r   r   r      s    

r   )__doc__base64r   	distutilsr   distutils.errorsr   r   r~   r%   r;   rA   rX   rT   http.clientrd   urllib.parserq   pkg_resourcesr   r   r   r   r   r   r   r   <module>   s    