관리-도구
편집 파일: util.cpython-36.pyc
3 �Pfi� � @ s> d dl Z d dlmZ d dlZd dlZd dlmZ d dlZd dl Z d dl Z d dlZd dlZd dl Z d dlZd 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 j0e1�Z2dZ3e j4e3�Z5dZ6d e6 d Z7e6d Z8dZ9d e9 d e8 d e3 d e9 d e8 d Z:dZ;de: d e; d e: d Z<e7d e3 e7 d Z=de= d Z>de6 d e> d e< d Z?e j4e?�Z@de9 d e8 d ZAe j4eA�ZBdd � ZCd!d"� ZDd#d$� ZEd%d&� ZFd�d'd(�ZGd)d*� ZHd+d,� ZId-d.� ZJejKd/d0� �ZLejKd1d2� �ZMejKd�d4d5��ZNG d6d7� d7eO�ZPd8d9� ZQG d:d;� d;eO�ZRd<d=� ZSG d>d?� d?eO�ZTe j4d@e jU�ZVdAdB� ZWd�dCdD�ZXdEdF� ZYdGdH� ZZdIdJ� Z[dKdL� Z\dMdN� Z]e j4dOe j^�Z_e j4dP�Z`d�dQdR�Zae j4dS�ZbdTdU� ZcdVdW� ZddXdY� ZedZZfd[d\� Zgd]d^� ZhG d_d`� d`eO�ZiG dadb� dbeO�ZjG dcdd� ddeO�Zkd�Zld�dmdn�Zmdodp� Znd�ZoG dwdx� dxeO�Zpe j4dy�Zqe j4dz�Zre j4d{�Zsd|d}� Zd~d� Zte�r\dd�lmuZvmwZwmxZx G d�d�� d�e$jy�ZyG d�d�� d�ev�ZuG d�d�� d�eue'�Zzej{dd�� Z|e|d�k�r�G d�d�� d�e$j}�Z}e�r�G d�d�� d�e$j~�Z~G d�d�� d�e%j�Ze�r�G d�d�� d�e%j��Z�G d�d�� d�e%j��Z�d�d�� Z�G d�d�� d�eO�Z�G d�d�� d�e��Z�G d�d�� d�e��Z�G d�d�� d�e(�Z�G d�d�� d�eO�Z�d�d�� Z�dS )�� N)�deque)�iglob� )�DistlibException)�string_types� text_type�shutil� raw_input�StringIO�cache_from_source�urlopen�urljoin�httplib� xmlrpclib� splittype�HTTPHandler�BaseConfigurator�valid_ident� Container�configparser�URLError�ZipFile�fsdecode�unquotez\s*,\s*z (\w|[.-])+z(\*|:(\*|\w+):|�)z\*?z([<>=!~]=)|[<>]�(z)?\s*(z)(z)\s*(z))*z(from\s+(?P<diref>.*))z\(\s*(?P<c1>�|z)\s*\)|(?P<c2>z\s*)z)*z\[\s*(?P<ex>z)?\s*\]z(?P<dn>z \s*)?(\s*z)?$z(?P<op>z)\s*(?P<vn>c s� dd� � d }t j| �}|r�|j� }|d }|d p8|d }|d sHd }nd }|d j� }|snd }d}|d }nL|d d kr�d | }tj|�} � fdd�| D �}d |djdd� |D ��f }|d s�d } ntj|d �} t ||| || |d�}|S )Nc S s | j � }|d |d fS )N�opZvn)� groupdict)�m�d� r! �/usr/lib/python3.6/util.py�get_constraintY s z)parse_requirement.<locals>.get_constraintZdnZc1Zc2Zdiref� r z<>!=z~=c s g | ]}� |��qS r! r! )�.0r )r# r! r"