o
    ¯N i°  ã                   @   sT   d Z ddlmZ ddlmZ ddlZdadZdZdd„ Zd	d
„ Z	dd„ Z
dd„ ZdS )z<Utilities to paste over differences between Python versions.é    )Úabsolute_import)Úprint_functionNÚ	packagingÚpkg_resourcesc                  C   s^   t d urt S z	dd l} ta t W S  ty   Y nw z	dd l}ta t W S  ty.   Y tdƒ‚w )Nr   ztFailed to find a library for parsing packaging information. This should not happen. Please report a bug against pbr.)Ú_packaging_libr   ÚPACKAGING_LIB_PACKAGINGÚImportErrorr   ÚPACKAGING_LIB_LEGACYÚRuntimeError)r   r   © r   úI/home/ubuntu/.local/lib/python3.10/site-packages/pbr/_compat/packaging.pyÚ_get_packaging_lib   s&   ÿÿýr   c                 C   s~   t ƒ }|tkr&dd l}z|j | ¡}W n
 ty   Y d S w t dd|j¡S dd l	}z
|j 
| ¡}W |jS  ty>   Y d S w )Nr   z[^A-Za-z0-9.]+ú-)r   r   Úpackaging.requirementsÚrequirementsÚRequirementÚ
ValueErrorÚreÚsubÚnamer   ÚparseÚproject_name)Úrequirement_lineÚpackaging_libr   Úrequirementr   r   r   r   Úextract_project_name<   s    ÿþÿr   c                 C   s4   t ƒ }|tkrdd l}|j | ¡S dd l}| | ¡S ©Nr   )r   r   Úpackaging.versionÚversionÚVersionr   Úparse_version)r   r   r   r   r   r   r   r    U   s   
r    c              
   C   s`   t ƒ }|tkr'dd l}z	|j | ¡ ¡ W S  |jjy& } zt|ƒ‚d }~ww dd l}| 	| ¡S r   )
r   r   Úpackaging.markersÚmarkersÚMarkerÚevaluateÚInvalidMarkerÚSyntaxErrorr   Úevaluate_marker)Úmarkerr   r   Úer   r   r   r   r'   a   s   €ý
r'   )Ú__doc__Ú
__future__r   r   r   r   r   r	   r   r   r    r'   r   r   r   r   Ú<module>   s   "