B
    `$              	   @   s  d dl mZmZmZ d dlZd dlZd dlZd dlZd dlm	Z	m
Z
mZmZmZmZmZmZmZ ddlmZ ddlmZ ddlmZmZ erd dlmZmZmZmZmZm Z m!Z! ee"e"ge#f Z$d	d
dddgZ%G dd	 d	e&Z'G dd
 d
e&Z(G dd de&Z)G dd de*Z+G dd de+Z,G dd de+Z-G dd de+Z.ededB edB edB edB edB edB ed B ed!B ed"B ed#B ed$B ed%B ed&B ed'B ed(B ed)B ed*B Z/d#d"ddddd+Z0e/1d,d-  ed.ed/B ed0B ed1B ed2B ed3B ed4B ed5B Z2e2ed6B ed7B Z3e31d8d-  ed9ed:B Z4e41d;d-  ed<ed=B Z5e/e4B Z6e
e6e3 e6 Z7e71d>d-  ed?8 Z9ed@8 Z:e	 Z;e7e
e9e; e: B Z<e;e<ee5e;  >  ee; e Z=dAdB Z>dUdDdEZ?dFd- dGd- ej@ejAejBejCejDejEdHZFdIdJ ZGG dKdL dLe*ZHeH ZIdMdN ZJdOdP ZKdQdR ZLdSd ZMG dTd de*ZNdS )V    )absolute_importdivisionprint_functionN)	ForwardGroupLiteralParseExceptionParseResultsQuotedString
ZeroOrMore	stringEndstringStart   )string_types)TYPE_CHECKING)InvalidSpecifier	Specifier)AnyCallableDictListOptionalTupleUnionInvalidMarkerUndefinedComparisonUndefinedEnvironmentNameMarkerdefault_environmentc               @   s   e Zd ZdZdS )r   zE
    An invalid marker was found, users should refer to PEP 508.
    N)__name__
__module____qualname____doc__ r#   r#   Y/home/kop/projects/devel/pgwui/test_venv/lib/python3.7/site-packages/packaging/markers.pyr   *   s   c               @   s   e Zd ZdZdS )r   zP
    An invalid operation was attempted on a value that doesn't support it.
    N)r   r    r!   r"   r#   r#   r#   r$   r   0   s   c               @   s   e Zd ZdZdS )r   z\
    A name was attempted to be used that does not exist inside of the
    environment.
    N)r   r    r!   r"   r#   r#   r#   r$   r   6   s   c               @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
Nodec             C   s
   || _ d S )N)value)selfr&   r#   r#   r$   __init__>   s    zNode.__init__c             C   s
   t | jS )N)strr&   )r'   r#   r#   r$   __str__B   s    zNode.__str__c             C   s   d | jjt| S )Nz<{0}({1!r})>)format	__class__r   r)   )r'   r#   r#   r$   __repr__F   s    zNode.__repr__c             C   s   t d S )N)NotImplementedError)r'   r#   r#   r$   	serializeJ   s    zNode.serializeN)r   r    r!   r(   r*   r-   r/   r#   r#   r#   r$   r%   =   s   r%   c               @   s   e Zd Zdd ZdS )Variablec             C   s   t | S )N)r)   )r'   r#   r#   r$   r/   P   s    zVariable.serializeN)r   r    r!   r/   r#   r#   r#   r$   r0   O   s   r0   c               @   s   e Zd Zdd ZdS )Valuec             C   s
   d | S )Nz"{0}")r+   )r'   r#   r#   r$   r/   V   s    zValue.serializeN)r   r    r!   r/   r#   r#   r#   r$   r1   U   s   r1   c               @   s   e Zd Zdd ZdS )Opc             C   s   t | S )N)r)   )r'   r#   r#   r$   r/   \   s    zOp.serializeN)r   r    r!   r/   r#   r#   r#   r$   r2   [   s   r2   implementation_versionplatform_python_implementationimplementation_namepython_full_versionplatform_releaseplatform_versionplatform_machineplatform_systempython_versionsys_platformos_namezos.namezsys.platformzplatform.versionzplatform.machinezplatform.python_implementationpython_implementationextra)zos.namezsys.platformzplatform.versionzplatform.machinezplatform.python_implementationr>   c             C   s   t t|d |d S )Nr   )r0   ALIASESget)sltr#   r#   r$   <lambda>}       rE   z===z==z>=z<=z!=z~=><znot ininc             C   s   t |d S )Nr   )r2   )rB   rC   rD   r#   r#   r$   rE      rF   '"c             C   s   t |d S )Nr   )r1   )rB   rC   rD   r#   r#   r$   rE      rF   andorc             C   s   t |d S )Nr   )tuple)rB   rC   rD   r#   r#   r$   rE      rF   ()c             C   s    t | trdd | D S | S d S )Nc             S   s   g | ]}t |qS r#   )_coerce_parse_result).0ir#   r#   r$   
<listcomp>   s    z(_coerce_parse_result.<locals>.<listcomp>)
isinstancer	   )resultsr#   r#   r$   rQ      s    
rQ   Tc             C   s   t | tttfstt | trHt| dkrHt | d ttfrHt| d S t | trdd | D }|rnd|S dd| d S n"t | trddd	 | D S | S d S )
Nr   r   c             s   s   | ]}t |d dV  qdS )F)firstN)_format_marker)rR   mr#   r#   r$   	<genexpr>   s    z!_format_marker.<locals>.<genexpr> rO   rP   c             S   s   g | ]}|  qS r#   )r/   )rR   rY   r#   r#   r$   rT      s    z"_format_marker.<locals>.<listcomp>)rU   listrN   r   AssertionErrorlenrX   join)markerrW   innerr#   r#   r$   rX      s    



rX   c             C   s   | |kS )Nr#   )lhsrhsr#   r#   r$   rE      rF   c             C   s   | |kS )Nr#   )rb   rc   r#   r#   r$   rE      rF   )rI   znot inrH   z<=z==z!=z>=rG   c             C   sl   yt d| |g}W n tk
r.   Y nX || S t| }|d krbtd|| ||| |S )N z#Undefined {0!r} on {1!r} and {2!r}.)	r   r_   r/   r   contains
_operatorsrA   r   r+   )rb   oprc   specoperr#   r#   r$   _eval_op   s    
rj   c               @   s   e Zd ZdS )	UndefinedN)r   r    r!   r#   r#   r#   r$   rk      s   rk   c             C   s(   |  |t}t|tr$td||S )Nz/{0!r} does not exist in evaluation environment.)rA   
_undefinedrU   rk   r   r+   )environmentnamer&   r#   r#   r$   _get_env   s
    
ro   c       	      C   s   g g}x| D ]}t |tttfs$tt |trD|d t|| qt |tr|\}}}t |trvt||j	}|j	}n|j	}t||j	}|d t
||| q|dkst|dkr|g  qW tdd |D S )N)rL   rM   rM   c             s   s   | ]}t |V  qd S )N)all)rR   itemr#   r#   r$   rZ     s    z$_evaluate_markers.<locals>.<genexpr>)rU   r\   rN   r   r]   append_evaluate_markersr0   ro   r&   rj   any)	markersrm   groupsr`   rb   rg   rc   	lhs_value	rhs_valuer#   r#   r$   rt      s"    




rt   c             C   s2   d | }| j}|dkr.||d t| j 7 }|S )Nz{0.major}.{0.minor}.{0.micro}finalr   )r+   releaselevelr)   serial)infoversionkindr#   r#   r$   format_full_version  s
    
r   c              C   sr   t tdr ttjj} tjj}nd} d}|| tjt t	 t
 t t t dt d d tjdS )Nimplementation0rd   .   )r5   r3   r=   r9   r7   r:   r8   r6   r4   r;   r<   )hasattrsysr   r   r~   rn   osplatformmachinereleasesystemr;   r>   r_   python_version_tuple)iverr5   r#   r#   r$   r     s     

c               @   s.   e Zd Zdd Zdd Zdd Zd
dd	ZdS )r   c          
   C   s`   yt t|| _W nF tk
rZ } z(d|||j|jd  }t|W d d }~X Y nX d S )Nz+Invalid marker: {0!r}, parse error at {1!r}   )rQ   MARKERparseString_markersr   r+   locr   )r'   r`   eerr_strr#   r#   r$   r(   0  s    zMarker.__init__c             C   s
   t | jS )N)rX   r   )r'   r#   r#   r$   r*   :  s    zMarker.__str__c             C   s   d t| S )Nz<Marker({0!r})>)r+   r)   )r'   r#   r#   r$   r-   >  s    zMarker.__repr__Nc             C   s$   t  }|dk	r|| t| j|S )a$  Evaluate a marker.

        Return the boolean from evaluating the given marker against the
        environment. environment is an optional argument to override all or
        part of the determined environment.

        The environment is determined from the current Python process.
        N)r   updatert   r   )r'   rm   current_environmentr#   r#   r$   evaluateB  s    

zMarker.evaluate)N)r   r    r!   r(   r*   r-   r   r#   r#   r#   r$   r   /  s   
)T)O
__future__r   r   r   operatorr   r   r   	pyparsingr   r   r   Lr   r	   r
   r   r   r   _compatr   _typingr   
specifiersr   r   typingr   r   r   r   r   r   r   r)   boolOperator__all__
ValueErrorr   r   r   objectr%   r0   r1   r2   VARIABLEr@   setParseActionVERSION_CMP	MARKER_OPMARKER_VALUEBOOLOP
MARKER_VARMARKER_ITEMsuppressLPARENRPARENMARKER_EXPRMARKER_ATOMr   rQ   rX   ltleeqnegegtrf   rj   rk   rl   ro   rt   r   r   r   r#   r#   r#   r$   <module>   s   ,$@

	