File: //opt/cloudlinux/venv/lib64/python3.11/site-packages/distlib/__pycache__/util.cpython-311.opt-1.pyc
�
    � h� �                   �  � d dl Z d dlmZ d dlZd dlZd dlmZ d dlZd dl	Z	d dl
Z
d dlZd dlZd dl
Z
d dlZ	 d dlZn
# e$ r dZY nw xY wd dlZd dlZd dlZd dlZd dlZ	 d dlZn# e$ r d dlZY nw xY wd 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
j0        e1�  �        Z2 e
j3        d�  �        Z4 e
j3        d�  �        Z5 e
j3        d	�  �        Z6 e
j3        d
�  �        Z7 e
j3        d�  �        Z8 e
j3        d�  �        Z9 e
j3        d
�  �        Z: e
j3        d�  �        Z;d� Z<d� Z=d� Z>d� Z?d� Z@dkd�ZAd� ZBd� ZCd� ZDejE        d� �   �         ZFejE        d� �   �         ZGejE        dld��   �         ZH G d� deI�  �        ZJd� ZK G d� d eI�  �        ZLd!� ZM G d"� d#eI�  �        ZN e
j3        d$e
jO        �  �        ZPd%� ZQdmd&�ZRd'� ZSd(� ZTd)� ZUd*� ZVd+� ZW e
j3        d,e
jX        �  �        ZY e
j3        d-�  �        ZZdmd.�Z[ e
j3        d/�  �        Z\d0� Z]d1� Z^d2� Z_d3Z`d4� Zad5� Zb G d6� d7eI�  �        Zc G d8� d9eI�  �        Zd G d:� d;eI�  �        Zed<Zfdnd>�Zgd?� Zhd@Zi G dA� dBeI�  �        Zj e
j3        dC�  �        Zk e
j3        dD�  �        Zl e
j3        dE�  �        ZmdF� ZdG� Zner:ddHlmoZpmqZqmrZr  G dI� dJe$js        �  �        Zs G dK� dLep�  �        Zo G dM� dNeoe&�  �        Zt G dO� dPe%ju        �  �        Zuer G dQ� dRe%jv        �  �        Zv G dS� dTe%jw        �  �        ZwdU� Zx G dV� dWeI�  �        Zy G dX� dYey�  �        Zz G dZ� d[ey�  �        Z{ G d\� d]e'�  �        Z| G d^� d_eI�  �        Z}d`� Z~ G da� dbeI�  �        Zdc� Z�dd� Z�de� Z�dfdgdhdi�Z�dj� Z�dS )o�    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                 �F   ����� d� ���fd���fd���fd�� �| �  �        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                 �  � t           �                    | �  �        }|r8|�                    �   �         d         }| |�                    �   �         d �         } �ns| st	          d�  �        �| d         }|dvrt	          d| z  �  �        �d�                    |d�  �        }| dd �         } |g}| r�| d         |k    rn�| d         |k    r |�                    |�  �         | dd �         } nwt          �                    | �  �        }|st	          d| z  �  �        �|�                    |�                    �   �         d         �  �         | |�                    �   �         d �         } | ��d�                    |�  �        }t	          d|z  �  �        �|�                    |�  �         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�ss          �A/opt/cloudlinux/venv/lib/python3.11/site-packages/distlib/util.py�
marker_varz parse_marker.<locals>.marker_varB   s�  � ����Y�'�'��� 	/��X�X�Z�Z��]�F�!�!�%�%�'�'�(�(�+�I�I�� 	/��7�8�8�8��!��A���~�~�!�":�Y�"F�G�G�G����q�"�%�%�B�!�!�"�"�
�I��C�E�� 
A��Q�<�1�$�$���q�\�R�'�'��L�L��$�$�$� )�!�"�"�
�I�I�$�*�*�9�5�5�A�� 5�)�*G�*3�+4� 5� 5� 5��L�L������A��/�/�/� )�!�%�%�'�'�(�(� 3�I� � 
A� �G�G�E�N�N��!�";�a�"?�@�@�@��L�L��O�O�O��W�W�U�^�^�F�!�!�"�"�
�,�,�.�.�I��y� � �    c                 ��  �� | ro| d         dk    rc �| dd �         �                     �   �         �  �        \  }} | d         dk    rt          d| z  �  �        �| dd �         �                     �   �         } n{ �| �  �        \  }} | rit          �                    | �  �        }|snL|�                    �   �         d         }| |�                    �   �         d �         }  �| �  �        \  }} |||d�}| �i|}|| fS )Nr   �(r   �)�unterminated parenthesis: %s��op�lhs�rhs)r'