
    =eQ                     j    d dl Z d dlZd dlZd dlmZ d dlmZ  G d d          Z G d d          ZdS )    N)SpooledTemporaryFile)BinstarErrorc                       e Zd Zd Z e            fdZd Zd Zed             Z	ed             Z
d Zed             Zed	             Zed
             Zd ZdS )CondaProjectc                 *   || _         d | _        d | _        d | _        g | _        |                    dd           |                    dd           |                    dd           d| _        d | j                                        D             | _        d S )Nsummarydescriptionversion)r   r	   r
   c                     i | ]
\  }}|||S  r   ).0keyvalues      Dlib/python3.11/site-packages/binstar_client/utils/projects/models.py
<dictcomp>z)CondaProject.__init__.<locals>.<dictcomp>   s4     
 
 
U

 
 
    )project_path_name_tar_sizepfilesgetmetadataitems)selfr   argskwargss       r   __init__zCondaProject.__init__   s    (
	
zz)T22!::mT::zz)T22
 


 
"m1133
 
 
r   c                     t          j        d|          5 }| j        D ]#}|                    |j        |j                   $	 d d d            n# 1 swxY w Y   |                    d           || _        |S )Nw)modefileobj)arcnamer   )tarfileopenr   addfullpathrelativepathseekr   )r   filetarpfiles       r   tar_itzCondaProject.tar_it   s    \sD111 	DS D D0BCCCCD	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 			!	s   ,AAAc                     | j         d| j                            dd          | j                            dd          ddS )Npublicr	    r   )r	   r   )nameaccessprofile)r1   r   r   r   s    r   to_project_creationz CondaProject.to_project_creation&   sM    I#}00CC=,,Y;; 
 
 	
r   c                      | j         | j        dS )Nbasenameconfigurationr7   r4   s    r   to_stagezCondaProject.to_stage0   s    !/
 
 	
r   c                 F    | j         |                                  | j         S N)r   r-   r4   s    r   r+   zCondaProject.tar6   s    9KKMMMyr   c                     | j                             di           }|                    | j        |                                 d           |S )Nr9   )sizenum_of_files)r   r   updater>   get_file_count)r   outputs     r   r9   zCondaProject.configuration<   sT    ""?B77I //11
 
 	 	 	 r   c                 v    t           j                            | j                  rdS t	          | j                  S )N   )ospathisfiler   lenr   r4   s    r   rA   zCondaProject.get_file_countE   s0    7>>$+,, 	14;r   c                     | j          dS )Nz.tar)r1   r4   s    r   r8   zCondaProject.basenameJ   s    )!!!!r   c                    | j         y| j                                        }| j                            dt          j                   | j                                        |z
  | _         | j                            |           | j         S Nr   )r   r   tellr)   rE   SEEK_END)r   sposs     r   r>   zCondaProject.sizeN   sg    :9>>##DINN1bk***))D0DJINN4   zr   c                 P    | j         |                                 | _         | j         S r<   )r   _get_project_namer4   s    r   r1   zCondaProject.nameW   s%    ://11DJzr   c                 Z   t           j                            | j                  rAt           j                            t           j                            | j                            S t           j                            t           j                            | j                            d         S rK   )rE   rF   isdirr   r8   abspathsplitextr4   s    r   rP   zCondaProject._get_project_name]   sq    7==*++ 	H7##BGOOD4E$F$FGGGw 0 01B C CDDQGGr   N)__name__
__module____qualname__r   r   r-   r5   r:   propertyr+   r9   rA   r8   r>   r1   rP   r   r   r   r   r   
   s       
 
 
$ /.00    
 
 

 
 
   X
   X     
 " " X"   X   X
H H H H Hr   r   c                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )
PFilec                    |                     dd           | _        |                     dd           | _        |                     dd           | _        |                     dd           | _        |                                  d S )Nr'   r8   r(   r>   )r   r'   r8   r(   r>   populate)r   r   s     r   r   zPFile.__init__d   sh    

:t44

:t44"JJ~t<<JJvt,,	r   c                 \    |                                  r| j        S d| j         d| j         S )N[z] )is_dirr(   r>   r4   s    r   __str__zPFile.__str__k   s6    ;;== 	%$$34933 1333r   c                 *    |                                  S r<   )r`   r4   s    r   __repr__zPFile.__repr__p   s    ||~~r   c                 "    | j         |j         k    S r<   )r'   )r   others     r   __eq__zPFile.__eq__s   s    }..r   c                 J    t           j                            | j                  S r<   )rE   rF   rR   r'   r4   s    r   r_   zPFile.is_dirv   s    w}}T]+++r   c                     t          j        |          r || j        | j        | j                  S t          j        |          r  ||                       S t          d|           )N)r8   r(   r'   zInvalid validator )inspect
isfunctionr8   r(   r'   isclassr   )r   	validators     r   validatezPFile.validatey   s~    i(( 	59dm*.*;&*m5 5 5 5 ?9%% 	%"99T??$$$;	;;<<<r   c                     | j         #t          j        | j                  j        | _         | j        +t          j                            | j                  | _        d S d S r<   )r>   rE   statr'   st_sizer8   rF   r4   s    r   r\   zPFile.populate   sM    9..6DI= G,,T];;DMMM ! r   c                 ,    | j         | j        | j        dS )Nr8   r>   r(   rq   r4   s    r   to_dictzPFile.to_dict   s!    I -
 
 	
r   N)rU   rV   rW   r   r`   rb   re   r_   rl   r\   rr   r   r   r   rZ   rZ   c   s          4 4 4
  / / /, , ,= = =< < <
 
 
 
 
r   rZ   )	rh   rE   r$   tempfiler   binstar_client.errorsr   r   rZ   r   r   r   <module>ru      s     				  ) ) ) ) ) ) . . . . . .VH VH VH VH VH VH VH VHr+
 +
 +
 +
 +
 +
 +
 +
 +
 +
r   