a
    a5                     @   sP   d dl Z d dlZd dlZddlmZ ddlmZ ddlmZ G dd deZdS )    N   )Distribution)must_decode)parsec                       s.   e Zd ZdddZdd Z fddZ  ZS )	WheelNc                 C   s   || _ || _|   d S N)filenamemetadata_versionZextractMetadata)selfr   r	    r   ,lib/python3.9/site-packages/pkginfo/wheel.py__init__   s    zWheel.__init__c           	         s   t jt j| jt js.td dr^t	  
 } fdd} j}n@drfddt D }dd }d	d
 }ntd zhdd |D }tdd |D }dd |D D ].}d|}||}d|v r|  W |  S qW |  n|  0 td d S )NzNo such file: %sz.whlc                    s
     | S r   )read)name)archiver   r   	read_file   s    zWheel.read.<locals>.read_filez
.dist-infoc                    s   g | ]}t j |qS r   )ospathjoin).0p)fqnr   r   
<listcomp>!       zWheel.read.<locals>.<listcomp>c                 S   s:   t j| dd}| W  d    S 1 s,0    Y  d S )Nrb)mode)ioopenr   )r   infr   r   r   r   #   s    c                   S   s   d S r   r   r   r   r   r   <lambda>'   r   zWheel.read.<locals>.<lambda>z<Not a known wheel archive format or installed .dist-info: %sc                 S   s   g | ]}d |v r| dqS )ZMETADATA/)splitr   xr   r   r   r   .   r   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   0   r   r    s   Metadata-VersionzNo METADATA in archive: %s)r   r   abspathnormpathr   exists
ValueErrorendswithzipfileZipFileZnamelistcloselistdirsortedr   )	r
   namesr   r,   ZtuplesZschwarzr   	candidatedatar   )r   r   r   r      s6    




z
Wheel.readc                    s>   t t| | tt|}t|}| jd u r:| | _d S r   )superr   r   r   StringIOr   descriptionZget_payload)r
   r1   fpmsg	__class__r   r   r   :   s
    
zWheel.parse)N)__name__
__module____qualname__r   r   r   __classcell__r   r   r7   r   r      s   
(r   )r   r   r*   Zdistributionr   r   r   r   r   r   r   r   <module>   s   