File: //usr/share/dh-python/dhpython/__pycache__/pydist.cpython-310.pyc
o
O�Ib�_ � @ s� d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlmZm Z m
Z
d dlmZm
Z
edkrEd dlZej�ej�e
ej�e�d��� d dlmZmZmZmZmZ d dlmZmZ d d lmZ d d
l m!Z!m"Z" e�#d�Z$e�%dej&�Z'e�%d
ej&�Z(e�%dej&�Z)e�%dej&�Z*ddddd�Z+dd� Z,edd� �Z- d9dd�Z.dd� Z/ d:dd�Z0 d:d d!�Z1d"d#� Z2d$d%� Z3d&d'� Z4e�%d(�Z5e�%d)�Z6d*d+� Z7d,d-� Z8d.d/� Z9d0d1� Z:edk�rFej;�<d2d3�Z=ej>d4d� D ]ZZ?ej�@e?��rzeAd5�
e0e=e?�d6 �� W q� eB�y ZC z
e$�Dd7e?eC� W Y dZC[Cq�dZC[Cww zeAe.e=e?��p(d8� W q� eB�yE ZC z
e$�Dd7e?eC� W Y dZC[Cq�dZC[Cww dS dS );� N)�partial)�exists�isdir�join)�PIPE�Popen�__main__z..)�PKG_PREFIX_MAP�
PUBLIC_DIR_RE�PYDIST_DIRS�PYDIST_OVERRIDES_FNAMES�PYDIST_DPKG_SEARCH_TPLS)�ComplexEnvironmentMarker�parse_environment_marker)�memoize)�get_requested_versions�Version�dhpythona�
(?P<name>[A-Za-z][A-Za-z0-9_.-]*) # Python distribution name
\s*
(?P<vrange>(?:-?\d\.\d+(?:-(?:\d\.\d+)?)?)?) # version range
\s*
(?P<dependency>(?:[a-z][^;]*)?) # Debian dependency
(?: # optional upstream version -> Debian version translator
;\s*
(?P<standard>PEP386)? # PEP-386 mode
\s*
(?P<rules>(?:s|tr|y).*)? # translator rules
)?
a�
(?P<name>[A-Za-z][A-Za-z0-9_.-]*) # Python distribution name
\s*
(?P<enabled_extras>(?:\[[^\]]*\])?) # ignored for now
\s*
\(? # optional parenthesis
(?: # optional minimum/maximum version
(?P<operator><=?|>=?|==|!=|~=)
\s*
(?P<version>(\w|[-.*])+)
(?: # optional interval minimum/maximum version
\s*
,
\s*
(?P<operator2><=?|>=?|==|!=)
\s*
(?P<version2>(\w|[-.])+)
)?
)?
\)? # optional closing parenthesis
\s*
(?:; # optional environment markers
(?P<environment_marker>.+)
)?
zx
;
\s*
extra
\s*
==
\s*
(?P<quote>['"])
(?P<section>[a-zA-Z0-9-_.]+)
(?P=quote)
z�
^
\[
(?P<section>[a-zA-Z0-9-_.]+)?
\s*
(?::
(?P<environment_marker>.+)
)?
\]
\s*
$
�=�<<z>>�>=)�==�<�>�~=c C s� t | dd��5}|D ])}|�� }|�d�s|sq t�|�s2t�d| �dd�d |� W d � d S q W d � d
S 1 s>w Y d
S )z Check if pydist file looks good.�utf-8��encoding�#z"invalid pydist data in file %s: %s�/� ���NFT)�open�strip�
startswith� PYDIST_RE�match�log�error�rsplit)�fpath�fp�line� r- �'/usr/share/dh-python/dhpython/pydist.py�validatep s"