/home/lnzliplg/public_html/python3.3.tar
site-packages/_markerlib/markers.py 0000644 00000007613 15173346347 0013435 0 ustar 00 # -*- coding: utf-8 -*-
"""Interpret PEP 345 environment markers.
EXPR [in|==|!=|not in] EXPR [or|and] ...
where EXPR belongs to any of those:
python_version = '%s.%s' % (sys.version_info[0], sys.version_info[1])
python_full_version = sys.version.split()[0]
os.name = os.name
sys.platform = sys.platform
platform.version = platform.version()
platform.machine = platform.machine()
platform.python_implementation = platform.python_implementation()
a free string, like '2.6', or 'win32'
"""
__all__ = ['default_environment', 'compile', 'interpret']
import ast
import os
import platform
import sys
import weakref
_builtin_compile = compile
try:
from platform import python_implementation
except ImportError:
if os.name == "java":
# Jython 2.5 has ast module, but not platform.python_implementation() function.
def python_implementation():
return "Jython"
else:
raise
# restricted set of variables
_VARS = {'sys.platform': sys.platform,
'python_version': '%s.%s' % sys.version_info[:2],
# FIXME parsing sys.platform is not reliable, but there is no other
# way to get e.g. 2.7.2+, and the PEP is defined with sys.version
'python_full_version': sys.version.split(' ', 1)[0],
'os.name': os.name,
'platform.version': platform.version(),
'platform.machine': platform.machine(),
'platform.python_implementation': python_implementation(),
'extra': None # wheel extension
}
for var in list(_VARS.keys()):
if '.' in var:
_VARS[var.replace('.', '_')] = _VARS[var]
def default_environment():
"""Return copy of default PEP 385 globals dictionary."""
return dict(_VARS)
class ASTWhitelist(ast.NodeTransformer):
def __init__(self, statement):
self.statement = statement # for error messages
ALLOWED = (ast.Compare, ast.BoolOp, ast.Attribute, ast.Name, ast.Load, ast.Str)
# Bool operations
ALLOWED += (ast.And, ast.Or)
# Comparison operations
ALLOWED += (ast.Eq, ast.Gt, ast.GtE, ast.In, ast.Is, ast.IsNot, ast.Lt, ast.LtE, ast.NotEq, ast.NotIn)
def visit(self, node):
"""Ensure statement only contains allowed nodes."""
if not isinstance(node, self.ALLOWED):
raise SyntaxError('Not allowed in environment markers.\n%s\n%s' %
(self.statement,
(' ' * node.col_offset) + '^'))
return ast.NodeTransformer.visit(self, node)
def visit_Attribute(self, node):
"""Flatten one level of attribute access."""
new_node = ast.Name("%s.%s" % (node.value.id, node.attr), node.ctx)
return ast.copy_location(new_node, node)
def parse_marker(marker):
tree = ast.parse(marker, mode='eval')
new_tree = ASTWhitelist(marker).generic_visit(tree)
return new_tree
def compile_marker(parsed_marker):
return _builtin_compile(parsed_marker, '<environment marker>', 'eval',
dont_inherit=True)
_cache = weakref.WeakValueDictionary()
def compile(marker):
"""Return compiled marker as a function accepting an environment dict."""
try:
return _cache[marker]
except KeyError:
pass
if not marker.strip():
def marker_fn(environment=None, override=None):
""""""
return True
else:
compiled_marker = compile_marker(parse_marker(marker))
def marker_fn(environment=None, override=None):
"""override updates environment"""
if override is None:
override = {}
if environment is None:
environment = default_environment()
environment.update(override)
return eval(compiled_marker, environment)
marker_fn.__doc__ = marker
_cache[marker] = marker_fn
return _cache[marker]
def interpret(marker, environment=None):
return compile(marker)(environment)
site-packages/_markerlib/__pycache__/__init__.cpython-33.pyc 0000644 00000002412 15173346350 0017773 0 ustar 00 �
�Re( c @ s� y, d d l Z d d l m Z m Z m Z WnQ e k
r d e � k rQ � n d d � Z d d � Z d d d d � Z Yn Xd S(
i N( u default_environmentu compileu interpretu astc C s i S( N( ( ( ( u, /tmp/pip-k8wh6o-build/_markerlib/__init__.pyu default_environment s u default_environmentc s% d d � f d d � } � | _ | S( Nc s � j � S( N( u strip( u environmentu override( u marker( u, /tmp/pip-k8wh6o-build/_markerlib/__init__.pyu marker_fn
s u compile.<locals>.marker_fn( u Noneu __doc__( u markeru marker_fn( ( u markeru, /tmp/pip-k8wh6o-build/_markerlib/__init__.pyu compile s u compilec C s
t | � � S( N( u compile( u markeru environmentu override( ( u, /tmp/pip-k8wh6o-build/_markerlib/__init__.pyu interpret s u interpret( u astu _markerlib.markersu default_environmentu compileu interpretu ImportErroru globalsu None( ( ( u, /tmp/pip-k8wh6o-build/_markerlib/__init__.pyu <module> s
site-packages/_markerlib/__pycache__/markers.cpython-33.pyc 0000644 00000013114 15173346350 0017701 0 ustar 00 �
�Re� c @ s� d Z d d d g Z d d l Z d d l Z d d l Z d d l Z d d l Z e Z y d d l m Z Wn3 e
k
r� e j d k r� d d � Z n � Yn Xi e j d
6d e j d d � d
6e j
j d d � d d 6e j d 6e j
� d 6e j � d 6e � d 6d d 6Z xC e e j � � D]/ Z d e k r+e e e e j d d � <q+q+Wd d � Z Gd d � d e j � Z d d � Z d d � Z e j � Z d d � Z d d d � Z d S(! u� Interpret PEP 345 environment markers.
EXPR [in|==|!=|not in] EXPR [or|and] ...
where EXPR belongs to any of those:
python_version = '%s.%s' % (sys.version_info[0], sys.version_info[1])
python_full_version = sys.version.split()[0]
os.name = os.name
sys.platform = sys.platform
platform.version = platform.version()
platform.machine = platform.machine()
platform.python_implementation = platform.python_implementation()
a free string, like '2.6', or 'win32'
u default_environmentu compileu interpreti N( u python_implementationu javac C s d S( Nu Jython( ( ( ( u+ /tmp/pip-k8wh6o-build/_markerlib/markers.pyu python_implementation! s u python_implementationu sys.platformu %s.%si u python_versionu i u python_full_versionu os.nameu platform.versionu platform.machineu platform.python_implementationu extrau .u _c C s
t t � S( u2 Return copy of default PEP 385 globals dictionary.( u dictu _VARS( ( ( u+ /tmp/pip-k8wh6o-build/_markerlib/markers.pyu default_environment8 s c B s� | Ee Z d Z d d � Z e j e j e j e j e j e j
f Z e e j e j
f 7Z e e j e j e j e j e j e j e j e j e j e j f
7Z d d � Z d d � Z d S( u ASTWhitelistc C s
| | _ d S( N( u statement( u selfu statement( ( u+ /tmp/pip-k8wh6o-build/_markerlib/markers.pyu __init__= s u ASTWhitelist.__init__c C sL t | | j � s9 t d | j d | j d f � � n t j j | | � S( u- Ensure statement only contains allowed nodes.u) Not allowed in environment markers.
%s
%su u ^( u
isinstanceu ALLOWEDu SyntaxErroru statementu
col_offsetu astu NodeTransformeru visit( u selfu node( ( u+ /tmp/pip-k8wh6o-build/_markerlib/markers.pyu visitF s
u ASTWhitelist.visitc C s8 t j d | j j | j f | j � } t j | | � S( u&