o
    Uhl                     @   s   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 G dd deZG dd deZ	G dd	 d	eZ
G d
d deZG dd deZG dd deZG dd deZdS )    N   )Distributionc                          e Zd Z fddZ  ZS )
NoSuchFilec                       || _ t d|  d S )NzNo such file: fqpsuper__init__selfr   	__class__ a/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/pkginfo/sdist.pyr
   
      zNoSuchFile.__init____name__
__module____qualname__r
   __classcell__r   r   r   r   r   	       r   c                       r   )UnknownArchiveFormatc                    r   )NzNot a known archive format: r   r   r   r   r   r
      r   zUnknownArchiveFormat.__init__r   r   r   r   r   r      r   r   c                       r   )InvalidPkgInfoc                    s$   || _ || _t d| d d S )NzInvalid PKG-INFO in archive: z (no "Metadata-Version" found))r   
candidatesr	   r
   )r   r   r   r   r   r   r
      s
   
zInvalidPkgInfo.__init__r   r   r   r   r   r      r   r   c                       r   )	NoPkgInfoc                    r   )NzNo PKG-INFO found in archive: r   r   r   r   r   r
      r   zNoPkgInfo.__init__r   r   r   r   r   r      r   r   c                       r   )InvalidUnpackedSDistc                    s"   || _ t d| d|  d S )NzCould not load z as an unpacked sdist: r   )r   r   raisedr   r   r   r
   "   s   zInvalidUnpackedSDist.__init__r   r   r   r   r   r   !   r   r   c                   @   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_versionextractMetadata)r   r    r!   r   r   r   r
   *   s   zSDist.__init__c                    sx   |   st| t| rtj|    } fdd}nt| r3t	|   
 } fdd}nt|  ||fS )Nc                    s     |  S r   )extractfilereadnamearchiver   r   	read_file7   s   z%SDist._get_archive.<locals>.read_filec                    s
     | S r   )r$   r%   r'   r   r   r)   <   s   
)existsr   tarfile
is_tarfileTarFileopengetnameszipfile
is_zipfileZipFilenamelistr   )r   namesr)   r   r'   r   _get_archive/   s   



zSDist._get_archivec           
      C   s   t | j }| |\}}}z6dd |D }tdd |D }dd |D D ]}d|}||}	d|	v r@|	  W |  S q(W |  n|  w t|dkrXt	| j|t
| j)Nc                 S   s   g | ]}d |v r| dqS )PKG-INFO/)split.0xr   r   r   
<listcomp>J   s    zSDist.read.<locals>.<listcomp>c                 S   s   g | ]}t ||fqS r   )lenr9   r   r   r   r<   K   s    c                 S   s   g | ]}|d  qS )r   r   r9   r   r   r   r<   L   s    r7   s   Metadata-Versionr   )pathlibPathr    resolver5   sortedjoincloser=   r   r   )
r   r   r(   r4   r)   tuplesschwarzpath	candidatedatar   r   r   r$   D   s"   


z
SDist.readr   )r   r   r   r
   staticmethodr5   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                    sD   t |}| r
n| r|j}nt|tt| j||d d S )N)r!   )	r>   r?   is_diris_fileparentr   r	   rJ   r
   )r   r    r!   	file_pathr   r   r   r
   [   s   


zUnpackedSDist.__init__c              
   C   st   z't j| jd}tj|dd}| W  d    W S 1 s w   Y  W d S  ty9 } zt| j|d }~ww )Nr6   ignore)errors)	osrF   rB   r    ior.   r$   	Exceptionr   )r   pkg_infofer   r   r   r$   h   s   (zUnpackedSDist.readr   )r   r   r   r
   r$   r   r   r   r   r   rJ   Z   s    rJ   )rR   rQ   r>   r+   r0   distributionr   
ValueErrorr   r   r   r   r   r   rJ   r   r   r   r   <module>   s    	2