a
    a+	                     @   sP   d dl Z d dlZd dlZd dlZddlmZ G dd deZG dd deZdS )    N   )Distributionc                   @   s*   e Zd ZdddZedd Zdd ZdS )	SDistNc                 C   s   || _ || _|   d S N)filenamemetadata_versionZextractMetadataselfr   r    r
   ,lib/python3.9/site-packages/pkginfo/sdist.py__init__
   s    zSDist.__init__c                    s   t j|std| t|rBt|   } fdd}n8t	|rntj
|   } fdd}ntd|  ||fS )NNo such file: %sc                    s
     | S r   )readnamearchiver
   r   	read_file   s    z%SDist._get_archive.<locals>.read_filec                    s     |  S r   )Zextractfiler   r   r   r
   r   r      s    zNot a known archive format: %s)ospathexists
ValueErrorzipfile
is_zipfileZipFileZnamelisttarfileZ
is_tarfileZTarFileopenZgetnames)clsfqnnamesr   r
   r   r   _get_archive   s    


zSDist._get_archivec           
      C   s   t jt j| j}| |\}}}zldd |D }tdd |D }dd |D D ]0}d|}||}	d|	v rV|	  W |  S qVW |  n
|  0 t	d| d S )Nc                 S   s   g | ]}d |v r| dqS )PKG-INFO/)split.0xr
   r
   r   
<listcomp>+       zSDist.read.<locals>.<listcomp>c                 S   s   g | ]}t ||fqS r
   )lenr$   r
   r
   r   r'   ,   r(   c                 S   s   g | ]}|d  qS )r   r
   r$   r
   r
   r   r'   -   r(   r"   s   Metadata-VersionzNo PKG-INFO in archive: %s)
r   r   abspathnormpathr   r    sortedjoincloser   )
r	   r   r   r   r   ZtuplesZschwarzr   	candidatedatar
   r
   r   r   $   s     
z
SDist.read)N)__name__
__module____qualname__r   classmethodr    r   r
   r
   r
   r   r      s   

r   c                       s&   e Zd Zd fdd	Zdd Z  ZS )UnpackedSDistNc                    sL   t j|rn&t j|r(t j|}ntd| tt| j||d d S )Nr   )r   )	r   r   isdirisfiledirnamer   superr5   r   r   	__class__r
   r   r   9   s    
zUnpackedSDist.__init__c              
   C   s   zLt j| jd}tj|dd}| W  d    W S 1 s@0    Y  W n6 ty } ztd| j|f W Y d }~n
d }~0 0 d S )Nr!   ignore)errorsz*Could not load %s as an unpacked sdist: %s)	r   r   r-   r   ior   r   	Exceptionr   )r	   Zpkg_infofer
   r
   r   r   D   s    ,zUnpackedSDist.read)N)r1   r2   r3   r   r   __classcell__r
   r
   r:   r   r5   8   s   r5   )r>   r   r   r   Zdistributionr   r   r5   r
   r
   r
   r   <module>   s   0