
    d                         d dl Z d dlmZ d ZeZd Zd Zd Zd ZdZ	e	d	z   Z
e
d
z   ZeZedz   Zedz   Ze	e
eeeedZ G d de          ZdS )    N)Parserc                     t          |           t          u r;	 |                     d          S # t          $ r |                     d          cY S w xY w| S )Nzutf-8latin1)typebytesdecodeUnicodeDecodeError)values    4lib/python3.11/site-packages/pkginfo/distribution.py_must_decoder      sd    E{{e *	*<<(((! 	* 	* 	*<<)))))	*Ls   - AAc                 D    t                                          |           S N)r   parse)fps    r   r   r      s    88>>"    c                 H    t          ||                     |                    S r   )_collapse_leading_wsgetmsgheaders     r   r   r      s    888r   c                 F    fd|                                D             S )Nc                 0    g | ]}t          |          S  )r   ).0xr   s     r   
<listcomp>zget_all.<locals>.<listcomp>   s$    III ++IIIr   )get_allr   s    `r   r   r      s)    IIIIS[[5H5HIIIIr   c                    |                                  dk    rCd                    d |                                                                D                       S d                    d |                                D                       S )zL
    ``Description`` header must preserve newlines; all others need not
    description
c                 P    g | ]#}|                     d           r
|dd         n|$S )z           N)
startswithr   r   s     r   r   z(_collapse_leading_ws.<locals>.<listcomp>   sE     = = = $%<<#8#8?!ABB%%a = = =r    c                 6    g | ]}|                                 S r   )stripr%   s     r   r   z(_collapse_leading_ws.<locals>.<listcomp>   s     ===q===r   )lowerjoinr(   
splitlines)r   txts     r   r   r      s     ||~~& ?yy = =#&99;;#9#9#;#;= = = > > 	> xx==CNN,<,<===>>>r   ))Metadata-Versionmetadata_versionF)NamenameF)VersionversionF)Platform	platformsT)zSupported-Platformsupported_platformsT)SummarysummaryF)Descriptionr    F)KeywordskeywordsF)z	Home-Page	home_pageF)AuthorauthorF)zAuthor-emailauthor_emailF)LicenselicenseF))
ClassifierclassifiersT)zDownload-URLdownload_urlF)RequiresrequiresT)ProvidesprovidesT)	Obsoletes	obsoletesT))
Maintainer
maintainerF)zMaintainer-emailmaintainer_emailF)zRequires-Pythonrequires_pythonF)zRequires-Externalrequires_externalT)zRequires-Distrequires_distT)zProvides-Distprovides_distT)zObsoletes-Distobsoletes_distT)zProject-URLproject_urlsT))zProvides-Extraprovides_extrasT)zDescription-Content-Typedescription_content_typeF))DynamicdynamicT)z1.0z1.1z1.2z2.0z2.1z2.2c                       e Zd ZdZdZdZdZdZdZdZ	dZ
dZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZd Zd Z d Z!d Z"d Z#e#Z$dS )DistributionNr   c                 X    |                                  }|                     |           d S r   )readr   )selfdatas     r   extractMetadatazDistribution.extractMetadataz   s'    yy{{

4r   c                     t           r   )NotImplementedErrorr[   s    r   rZ   zDistribution.read~   s    !!r   c                 B    t                               | j        g           S r   )HEADER_ATTRSr   r.   r`   s    r   _getHeaderAttrszDistribution._getHeaderAttrs   s     5r:::r   c                    t          j        t          |                    }t          |          }d|v r | j        t          |d          }|x}| _        |                                 D ]\\  }}}|dk    r||v rK|r"t          ||          }	t          | ||	           5t          ||          }|dk    rt          | ||           ]|	                                }
|
rt          | d|
           d S d S )Nr-   r.   UNKNOWNr    )
ioStringIOr   r   r.   r   rc   r   setattrget_payload)r[   r\   r   r   r
   r.   header_name	attr_namemultiplevaluesbodys              r   r   zDistribution.parse   s-   [d++,,Bii$ 	=)> 	=/00E7<<t4040D0D0F0F 	8 	8,KH.. c! 8 8$S+66FD)V4444[11E	) 8i777   	/D-.....	/ 	/r   c              #   H   K   |                                  D ]
\  }}}|V  d S r   )rc   )r[   rj   rk   rl   s       r   __iter__zDistribution.__iter__   s=      040D0D0F0F 	 	,KHOOOO	 	r   )%__name__
__module____qualname__r.   r0   r2   r4   r5   r7   r    r:   r;   rC   r=   r>   r@   rB   rE   rG   rI   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rV   r]   rZ   rc   r   rp   iterkeysr   r   r   rX   rX   W   s        DGIGKHILFLGKHHIJOMMNLO#G  " " "; ; ;/ / /4   HHHr   rX   )rf   email.parserr   r   must_decoder   r   r   r   HEADER_ATTRS_1_0HEADER_ATTRS_1_1HEADER_ATTRS_1_2HEADER_ATTRS_2_0HEADER_ATTRS_2_1HEADER_ATTRS_2_2rb   objectrX   r   r   r   <module>r~      s)   				           9 9 9J J J? ? ?  $ '   $ 	' 	  $ # '  
 $ '  
  K K K K K6 K K K K Kr   