File: //usr/local/lib/python3.7/site-packages/pip/_vendor/distlib/__pycache__/util.cpython-37.pyc
B
L��g� � @ s� d dl Z d dlmZ d dlZd dlZd dlmZ d dlZd dl Z d dl
Z
d dlZd dlZd dl
Z
d dlZyd dlZW n ek
r� dZY nX d dlZd dlZd dlZd dlZd dlZyd dlZW n ek
r� d dlZY nX d dlZddlmZ ddlmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/ e
�0e1�Z2e
�3d�Z4e
�3d�Z5e
�3d �Z6e
�3d
�Z7e
�3d�Z8e
�3d�Z9e
�3d
�Z:e
�3d�Z;dd� Z<dd� Z=dd� Z>dd� Z?dd� Z@d�dd�ZAdd� ZBdd� ZCdd � ZDejEd!d"� �ZFejEd#d$� �ZGejEd�d&d'��ZHG d(d)� d)eI�ZJd*d+� ZKG d,d-� d-eI�ZLd.d/� ZMG d0d1� d1eI�ZNe
�3d2e
jO�ZPd3d4� ZQd�d5d6�ZRd7d8� ZSd9d:� ZTd;d<� ZUd=d>� ZVd?d@� ZWe
�3dAe
jX�ZYe
�3dB�ZZd�dCdD�Z[e
�3dE�Z\dFdG� Z]dHdI� Z^dJdK� Z_dLZ`dMdN� ZadOdP� ZbG dQdR� dReI�ZcG dSdT� dTeI�ZdG dUdV� dVeI�ZedWZfd�dYdZ�Zgd[d\� Zhd]ZiG d^d_� d_eI�Zje
�3d`�Zke
�3da�Zle
�3db�Zmdcdd� Zdedf� Zne�r�ddglmoZpmqZqmrZr G dhdi� die$js�ZsG djdk� dkep�ZoG dldm� dmeoe&�ZtG dndo� doe%ju�Zue�r�G dpdq� dqe%jv�ZvG drds� dse%jw�Zwdtdu� ZxG dvdw� dweI�ZyG dxdy� dyey�ZzG dzd{� d{ey�Z{G d|d}� d}e'�Z|G d~d� deI�Z}d�d�� Z~G d�d�� d�eI�Zd�d�� Z�d�d�� Z�d�d�� Z�d�d�d�d��Z�d�d�� Z�dS )�� N)�deque)�iglob� )�DistlibException)�string_types� text_type�shutil� raw_input�StringIO�cache_from_source�urlopen�urljoin�httplib� xmlrpclib�HTTPHandler�BaseConfigurator�valid_ident� Container�configparser�URLError�ZipFile�fsdecode�unquote�urlparsez^([\w\.-]+)\s*z^([\w\.*+-]+)\s*z^(<=?|>=?|={2,3}|[~!]=)\s*z*^((<=?)|(>=?)|={2,3}|[~!]=|in|not\s+in)\s*z^or\b\s*z ^and\b\s*z(\S+)\s*z(([\s\w\.{}()*+#:;,/?!~`@$%^&=|<>\[\]-]+)c s6 dd� �� �fdd���fdd���fdd�� � | �S ) ae
Parse a marker string and return a dictionary containing a marker expression.
The dictionary will contain keys "op", "lhs" and "rhs" for non-terminals in
the expression grammar, or strings. A string contained in quotes is to be
interpreted as a literal string, and a string not contained in quotes is a
variable (such as os_name).
c S s0 t �| �}|r,|�� d }| |�� d � } n�| s:td��n�| d }|dkrVtd| ��d�|d�}| dd � } |g}x�| r�| d |kr�P qv| d |kr�|�|� | dd � } qvt�| �}|s�td| ��|�|�� d � | |�� d � } qvW d�|�}td| ��|�|� d�|�}| dd � � � } || fS ) Nr zunexpected end of inputz'"zinvalid expression: %s� r zerror in string literal: %szunterminated string: %s)
�
IDENTIFIER�match�groups�end�SyntaxError�replace�append�STRING_CHUNK�join�lstrip)� remaining�m�result�q�oq�parts�s� r, �</tmp/pip-unpacked-wheel-hv55ucu3/pip/_vendor/distlib/util.py�
marker_varB s<