
    eo                         d Z ddlmZ ddlZddlZddlZddlmZ ddlmZm	Z	 ddl
Z
ddlmZ ddlmZ dd	lmZ d
dlmZ  ej        d          ZddZd Zd Zd Zd Z G d de          ZdS )z

    conda repo upload CONDA_PACKAGE_1.bz2

##### See Also

  * [Uploading a Conda Package](https://team-docs.anaconda.com/en/latest/user/package.html#upload-pack)


    )unicode_literalsN)glob)basenamejoin   )errors)PACKAGE_TYPES)detect_package_type   )SubCommandBaserepo_cliTc                 \    t          j        | d          }|r|                                }|S )Nunknown)r	   getlower)pkg_type	lowercaseverbose_types      8lib/python3.11/site-packages/repo_cli/commands/upload.pyverbose_package_typer      s3     $Xy99L ,#))++    c                    |j         r|j         }nyt                              d           t          |           }|3d| z  }t                              |           t          j        |          t                              d|           |S )zd
    return the file type from the inspected package or from the
    -t/--package-type argument
    zDetecting file type...Nz_Could not detect package type of file %r please specify package type with option --package-typezFile type is "%s")package_typeloggerinfor
   errorr   RepoCLIError)filenameargsr   messages       r   determine_package_typer!   $   s    
  7(,---*84424<=  LL!!!%g...'666r   c                     t          | dd          }t                              d|            t          j        |d| i|          }|S )Naccountmez+[UPLOAD] Getting user default channel from X-Auth)headersverify)r   r   debugrequestsr   )base_urltoken
verify_sslurlresponses        r   get_default_channelr/   =   sP    
xD
)
)C
LLDsDDEEE|C(uJ)?
SSSHOr   c                 \   t          | d|d          }t          j        |          }t          |          }t                              d| d|             |t          |d          fdd |j        fd}t                              d| d	           t          j
        ||d
| i|          }	|	S )Nchannels	artifactsz[UPLOAD] Using token z on rb)Nconda1)contentfiletypesizezUploading to z...r%   )filesr&   r'   )r   osstatr   r   r(   openst_sizer   r)   post)
r*   r+   filepathchannelr,   r-   statinfor   multipart_form_datar.   s
             r   upload_filerB   D   s    
xWk
:
:Cwx  H!!H
LL>>>H>>???d8T223$x'( 
 KK(((()))}!e:&	  H Or   c                 N    t           j        dk    rd| v rt          |           S | gS )Nnt*)r9   namer   )items    r   windows_globrH   X   s(    	w$3$;;Dzzvr   c                       e Zd ZdZd Zd ZdS )
SubCommanduploadc                    | j         st          j        | j        j        }|s6| j                                        g}|d         st          j        d          | j        j        D ]#}|D ]}|D ]}t          
                    d| j                     t          || j                  }| j                            |||          }|j        dv rXt                              d| d| j        j         d| d|j                    t          
                    d	|j                    |j        d
k    rt          j                    d| d| j        j         d| d|j         d|j         d}t                              |           %d S )Nr   zZUser default channel is not specified. Please set it in the user account or use -c option.zUsing token )      zFile z successfully uploaded to z/repoz with response zServer responded with i  zError uploading z to z::z$. Server responded with status code z.
Error details: 
)access_tokenr   Unauthorizedr   r1   apir/   NoDefaultChannelr8   r   r(   r!   rB   status_coder   r*   r5   r   )selfr1   r>   fpr?   r   respmsgs           r   mainzSubCommand.mainb   s      	&%%9% 	 44667HA; -p   	 	. 	.H . .' . .GLL!C0A!C!CDDD#9"di#H#HL8//G\JJD':55 EB  E  E$(BS  E  EZa  E  Erv  sC  E  E   %Ldl%L%LMMMM+s22"("5"7"77!C2 !C !C48;L !C !CPW !C !CEIEU!C !C26,!C !C !C  
 #LL----%..	. 	.r   c                    d}|                     dt          j        ||t                    x| _        }|                    dddg t                     |                    dd	d
g dd           |                    ddd           |                    d          }t          j	                    }d
                    t          |                                                    }|                    ddd                    |                     |                                }|                    dddddd           |                    | j                   d S ) Nz2Upload packages to your Anaconda Server repositoryrK   )formatter_classhelpdescriptionepilogr8   +zDistributions to upload)nargsr\   defaulttypez-cz	--channelappendCHANNELSr1   )actionra   metavardestz--no-progresszDon't show upload progress
store_true)r\   re   zmetadata optionsz, z-tz--package-typez2Set the package type [{0}]. Defaults to autodetect)r\   z-iz--interactivestore_constz5Run an interactive prompt if any packages are missingmodeinteractive)re   r\   rg   const)rY   )
add_parserargparseRawDescriptionHelpFormatter__doc__	subparseradd_argumentrH   add_argument_groupr	   copyr   listkeysformatadd_mutually_exclusive_groupset_defaultsrY   )rU   
subparsersr]   parsermgrouppkgs	pkg_typesgroups           r   rm   zSubCommand.add_parser   s   J","7"7$@# #8 #
 #
 	
 	* 	 	
 	
 	
 	 	 	
 	
 	
 	">| 	 	
 	
 	
 **+=>> !## IId499;;//00	ELLYWW 	 	
 	
 	
 3355 H 	 	
 	
 	
 	+++++r   N)__name__
__module____qualname__rF   rY   rm    r   r   rJ   rJ   _   s8        D$. $. $.L:, :, :, :, :,r   rJ   )T)rp   
__future__r   rn   loggingr9   r   os.pathr   r   r)    r   utils.configr	   utils.detectr
   baser   	getLoggerr   r   r!   r/   rB   rH   rJ   r   r   r   <module>r      sY  	 	 ( ' ' ' ' '   				       " " " " " " " "        ( ( ( ( ( ( . . . . . .            		:	&	&     2    (  c, c, c, c, c, c, c, c, c, c,r   