Edit File: markers.pyc
� ��abc�����������@���s����d��Z��d�d�l�Z�d�d�l�Z�d�d�l�Z�d�d�l�Z�d�d�l�m�Z�m�Z�d�d�l�m �Z �d�g�Z �d�e�f�d�������YZ�d�d ���Z�d�S( ���sE���Parser for the environment markers micro-language defined in PEP 345.i����Ni���(���t���python_implementationt���string_types(���t���in_venvt ���interprett ���Evaluatorc�����������B���s^��e��Z�d��Z�i �d����d�6d����d�6d����d�6d����d�6d ����d �6d����d�6d ����d�6d����d�6d����d�6Z�i �e�j�d�6d�e�j�d� d�6e�j�j�d�d���d�d�6e �j �d�6e�e������d�6e�j ����d�6e�j����d�6e�j����d�6e����d �6Z�d,�d!���Z�d"����Z�d#����Z�d,�d$���Z�d%����Z�d&����Z�d'����Z�d(����Z�d)����Z�d*����Z�d+����Z�RS(-���s5��� A limited evaluator for Python expressions. c���������C���s ���|��|�k�S(���N(����(���t���xt���y(����(����s?���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/markers.pyt���<lambda>���t����t���eqc���������C���s ���|��|�k�S(���N(����(���R���R���(����(����s?���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/markers.pyR������R���t���gtc���������C���s ���|��|�k�S(���N(����(���R���R���(����(����s?���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/markers.pyR������R���t���gtec���������C���s ���|��|�k�S(���N(����(���R���R���(����(����s?���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/markers.pyR������R���t���inc���������C���s ���|��|�k��S(���N(����(���R���R���(����(����s?���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/markers.pyR������R���t���ltc���������C���s ���|��|�k�S(���N(����(���R���R���(����(����s?���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/markers.pyR������R���t���ltec���������C���s���|��S(���N(����(���R���(����(����s?���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/markers.pyR��� ���R���t���notc���������C���s ���|��|�k�S(���N(����(���R���R���(����(����s?���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/markers.pyR���!���R���t���noteqc���������C���s ���|��|�k�S(���N(����(���R���R���(����(����s?���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/markers.pyR���"���R���t���notint���sys_platforms���%s.%si���t���python_versiont��� i���i����t���python_full_versiont���os_namet���platform_in_venvt���platform_releaset���platform_versiont���platform_machinet���platform_python_implementationc���������C���s���|�p �i��|��_��d�|��_�d�S(���su��� Initialise an instance. :param context: If specified, names are looked up in this mapping. N(���t���contextt���Nonet���source(���t���selfR���(����(����s?���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/markers.pyt���__init__3���s����c���������C���sH���d�}�d�|��j��|�|�|�!}�|�|�t�|��j����k��rD�|�d�7}�n��|�S(���sH��� Get the part of the source which is causing a problem. i ���s���%rs���...(���R���t���len(���R���t���offsett���fragment_lent���s(����(����s?���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/markers.pyt���get_fragment<���s ���� c���������C���s���t��|��d�|�d���S(���s@��� Get a handler for the specified AST node type. s���do_%sN(���t���getattrR���(���R���t ���node_type(����(����s?���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/markers.pyt���get_handlerF���s����c���������C���s��t��|�t���r��|�|��_�i�d�d�6}�|�r8�|�|�d�<n��y�t�j�|�|���}�Wq��t�k �r��}�|��j�|�j���}�t�d�|�����q��Xn��|�j�j �j ����}�|��j�|���}�|�d�k�r��|��j�d�k�r��d�}�n�|��j�|�j ���}�t�d�|�|�f�����n��|�|���S(���sf��� Evaluate a source string or node, using ``filename`` when displaying errors. t���evalt���modet���filenames���syntax error %ss���(source not available)s ���don't know how to evaluate %r %sN(���t ���isinstanceR���R���t���astt���parset���SyntaxErrorR%���R"���t ���__class__t���__name__t���lowerR(���R���t ���col_offset(���R���t���nodeR+���t���kwargst���eR$���R'���t���handler(����(����s?���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/markers.pyt���evaluateL���s&���� c���������C���s5���t��|�t�j���s�t�d�����d�|�j�j�|�j�f�S(���Ns���attribute node expecteds���%s.%s(���R,���R-���t ���Attributet���AssertionErrort���valuet���idt���attr(���R���R4���(����(����s?���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/markers.pyt���get_attr_keyf���s����c���������C���s����t��|�j�t�j���s�t�}�n-�|��j�|���}�|�|��j�k�pH�|�|��j�k�}�|�sd�t�d�|�����n��|�|��j�k�r��|��j�|�}�n �|��j�|�}�|�S(���Ns���invalid expression: %s( ���R,���R;���R-���t���Namet���FalseR>���R���t���allowed_valuesR/���(���R���R4���t���validt���keyt���result(����(����s?���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/markers.pyt���do_attributej���s���� c���������C���s����|��j��|�j�d���}�|�j�j�t�j�k�}�|�j�j�t�j�k�}�|�sR�|�sR�t���|�r^�|�sk�|�r��|�r��xD�|�j�d�D]2�}�|��j��|���}�|�r��|�s��|�ry�|�ry�Pqy�qy�Wn��|�S(���Ni����i���(���R8���t���valuest���opR0���R-���t���Ort���AndR:���(���R���R4���RD���t���is_ort���is_andt���n(����(����s?���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/markers.pyt ���do_boolopx���s����c��� ���������s���������f�d����}����j��}���j�|���}�t�}�x��t����j����j���D]��\�}�}�|�|�|���|�j�j�j����}�|���j �k�r��t �d�|�����n����j�|���}���j �|�|�|���}�|�s��Pn��|�}�|�}�qF�W|�S(���Nc������������sb���t��}�t�|��t�j���r3�t�|�t�j���r3�t�}�n��|�s^���j����j���}�t�d�|�����n��d��S(���Ns���Invalid comparison: %s(���t���TrueR,���R-���t���StrR@���R%���R3���R/���(���t���lhsnodet���rhsnodeRB���R$���(���R4���R���(����s?���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/markers.pyt���sanity_check����s����$ s���unsupported operation: %r(���t���leftR8���RN���t���zipt���opst���comparatorsR0���R1���R2���t ���operatorsR/���( ���R���R4���RR���RP���t���lhsRD���RG���RQ���t���rhs(����(���R4���R���s?���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/markers.pyt ���do_compare����s ���� " c���������C���s���|��j��|�j���S(���N(���R8���t���body(���R���R4���(����(����s?���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/markers.pyt ���do_expression����s����c���������C���s|���t��}�|�j�|��j�k�r1�t�}�|��j�|�j�}�n+�|�j�|��j�k�r\�t�}�|��j�|�j�}�n��|�sx�t�d�|�j�����n��|�S(���Ns���invalid expression: %s(���R@���R<���R���RN���RA���R/���(���R���R4���RB���RD���(����(����s?���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/markers.pyt���do_name����s����c���������C���s���|�j��S(���N(���R$���(���R���R4���(����(����s?���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/markers.pyt���do_str����s����N(���R1���t ���__module__t���__doc__RW���t���syst���platformt���version_infot���versiont���splitt���ost���namet���strR���t���releaset���machineR����RA���R���R ���R%���R(���R8���R>���RE���RM���RZ���R\���R]���R^���(����(����(����s?���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/markers.pyR������s@��� c���������C���s���t��|���j�|��j������S(���s���� Interpret a marker and return a result depending on environment. :param marker: The marker to interpret. :type marker: str :param execution_context: The context used for name lookup. :type execution_context: mapping (���R���R8���t���strip(���t���markert���execution_context(����(����s?���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/markers.pyR�������s���� (���R`���R-���Rf���Ra���Rb���t���compatR����R���t���utilR���t���__all__t���objectR���R���R���(����(����(����s?���/usr/lib/python2.7/site-packages/pip/_vendor/distlib/markers.pyt���<module>���s��� �