ó
¦V]c           @@  so  d  d l  m Z d e f d „  ƒ  YZ e Z e Z e Z d[ Z
 e Z e Z e Z d[ Z e Z e Z e Z e Z e Z e Z e Z e Z d[ Z e d ƒ Z e Z d Z d Z d „  Z i9 e d 6e d 6e d	 6e d
 6e d 6d[ d 6e d 6e d 6e d 6e d 6e d 6e d 6e d 6e d 6d d 6e d 6e d 6e d 6e d 6e d 6d[ d 6e d 6e d 6e d 6e d  6d[ d! 6e d" 6e d# 6e d$ 6e d% 6d& d' 6d d( 6e d) 6e d* 6e d 6e d+ 6e d, 6d[ d- 6d[ d. 6e d/ 6e d0 6e d1 6e d2 6e d3 6e d4 6e d5 6e d6 6e d7 6e d8 6e d9 6e d: 6d d; 6e d< 6g  d= 6g  d> 6d[ d? 6e d@ 6Z i e d1 6e d0 6e d2 6Z dA „  Z dB „  Z  i e! d! 6e" d 6e# dC 6e" dD 6e" d 6e" dE 6e" d 6e" d? 6d[ dF 6d[ dG 6d[ dH 6d[ dI 6d[ dJ 6e" dK 6e" dL 6e$ dM 6e$ dN 6e! d- 6e% dO 6e d& dP dQ dR ƒ d' 6e  d( 6Z& x9 e j' ƒ  D]+ \ Z( Z) e( e& k r*e$ e) ƒ e& e( <q*q*Wi d\ d 6d] dD 6d^ d 6d_ dH 6d` dF 6da dG 6db dM 6dc dN 6dd dC 6de dI 6df dK 6dg dL 6dh dE 6di dJ 6dj d 6dk d  6dl d 6dm d- 6dn d= 6do d> 6dp dO 6dq d 6dr d 6ds d' 6dt d( 6du d) 6dv d! 6dw d 6dx d+ 6dy d, 6dz d% 6Z* e dW „ Z+ e e d[ dX „ Z, dY „  Z- d[ dZ „ Z. d[ S({   i    (   t   absolute_importt   ShouldBeFromDirectivec           B@  sA   e  Z g  Z d e d  „ Z d „  Z d „  Z d „  Z d „  Z	 RS(   c         C@  s5   | |  _  | p | |  _ | |  _ |  j j |  ƒ d  S(   N(   t   options_namet   directive_namet   disallowt   known_directivest   append(   t   selfR   R   R   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Options.pyt   __init__   s    		c         C@  s   |  j  ƒ  d  S(   N(   t   _bad_access(   R   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Options.pyt   __nonzero__   s    c         C@  s   |  j  ƒ  d  S(   N(   R	   (   R   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Options.pyt   __int__   s    c         C@  s   t  t |  ƒ ƒ ‚ d  S(   N(   t   RuntimeErrort   repr(   R   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Options.pyR	      s    c         C@  s   d |  j  |  j f S(   NsE   Illegal access of '%s' from Options module rather than directive '%s'(   R   R   (   R   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Options.pyt   __repr__   s    N(
   t   __name__t
   __module__R   t   Nonet   FalseR   R
   R   R	   R   (    (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Options.pyR      s   			t   old_style_globalsi   c          C@  s‰   x‚ t  j D]w }  t ƒ  j |  j ƒ } |  j t k s: t ‚ t | t  ƒ s
 |  j	 rq t
 d |  j |  j f ƒ ‚ q | t |  j <q
 q
 Wt S(   Ns+   Option '%s' must be set from directive '%s'(   R   R   t   globalst   getR   R   t   _directive_defaultst   AssertionErrort
   isinstanceR   R   t   option_name(   t
   old_optiont   value(    (    s6   lib/python2.7/site-packages/Cython/Compiler/Options.pyt   get_directive_defaultsš   s    	t   boundscheckt	   nonecheckt   initializedcheckt   embedsignaturet
   auto_cpdeft   auto_picklet	   cdivisiont   cdivision_warningst   overflowchecks   overflowcheck.foldt   always_allow_keywordst   allow_none_for_extension_argst
   wraparoundt   ccomplext    t   callspect   nogilt   profilet	   linetracet   emit_code_commentst   annotation_typingt   infer_typess   infer_types.verboset   autotestdicts   autotestdict.cdefs   autotestdict.allt   language_levelt   fast_getattrt
   py2_importt   preliminary_late_includes_cy28t   iterable_coroutinet   bytest   c_string_typet   c_string_encodingt   type_version_tagt   unraisable_tracebackst
   np_pythrant   fast_gilt   set_initial_patht   warns   warn.undeclareds   warn.unreachables   warn.maybe_uninitializeds   warn.unuseds   warn.unused_args   warn.unused_results   warn.multiple_declaratorss   optimize.inline_defnode_callss   optimize.unpack_method_callss&   optimize.unpack_method_calls_in_pyinits   optimize.use_switcht   remove_unreachables   control_flow.dot_outputs   control_flow.dot_annotate_defst   test_assert_path_existst   test_fail_if_path_existst   bindingt   formal_grammarc          @  s   ‡  f d †  } | S(   Nc         @  s0   | ˆ  k r( t  d |  ˆ  | f ƒ ‚ n | Sd  S(   Ns(   %s directive must be one of %s, got '%s'(   t
   ValueError(   t   nameR   (   t   args(    s6   lib/python2.7/site-packages/Cython/Compiler/Options.pyt   validateþ   s    (    (   RH   RI   (    (   RH   s6   lib/python2.7/site-packages/Cython/Compiler/Options.pyt   one_ofý   s    c         C@  sˆ   | s
 d S| j  ƒ  d k r& | j  ƒ  Sd d l } y | j | ƒ } Wn t k
 rY | SXx' d D] } | j | ƒ | k ra | Sqa W| S(	   s…  
    >>> normalise_encoding_name('c_string_encoding', 'ascii')
    'ascii'
    >>> normalise_encoding_name('c_string_encoding', 'AsCIi')
    'ascii'
    >>> normalise_encoding_name('c_string_encoding', 'us-ascii')
    'ascii'
    >>> normalise_encoding_name('c_string_encoding', 'utF8')
    'utf8'
    >>> normalise_encoding_name('c_string_encoding', 'utF-8')
    'utf8'
    >>> normalise_encoding_name('c_string_encoding', 'deFAuLT')
    'default'
    >>> normalise_encoding_name('c_string_encoding', 'default')
    'default'
    >>> normalise_encoding_name('c_string_encoding', 'SeriousLyNoSuch--Encoding')
    'SeriousLyNoSuch--Encoding'
    R*   t   defaultt   asciit   utf8i    N(   RK   RL   RM   (   RL   RM   (   t   lowert   codecst
   getdecodert   LookupError(   R   t   encodingRO   t   decoderRG   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Options.pyt   normalise_encoding_name  s    
t   localst   finalt   internalt   cfunct   ccallt   inlinet   staticmethodt   cclasst   no_gc_cleart   no_gct   returnst	   exceptvalt   freelistt	   bytearrayt   strt   unicodet   modulet   functions   with statementt   classc         C@  s+  t  j |  ƒ } | s d	 S| } | t k r¥ t | ƒ } | d k rG t S| d k rW t S| rŒ | j ƒ  } | d
 k ry t S| d k rŒ t Sn  t d |  | f ƒ ‚ n‚ | t	 k rì y t	 | ƒ SWq't k
 rè t d |  | f ƒ ‚ q'Xn; | t k rt | ƒ St
 | ƒ r| |  | ƒ St s't ‚ d	 S(   s  
    Parses value as an option value for the given name and returns
    the interpreted value. None is returned if the option does not exist.

    >>> print(parse_directive_value('nonexisting', 'asdf asdfd'))
    None
    >>> parse_directive_value('boundscheck', 'True')
    True
    >>> parse_directive_value('boundscheck', 'true')
    Traceback (most recent call last):
       ...
    ValueError: boundscheck directive must be set to True or False, got 'true'

    >>> parse_directive_value('c_string_encoding', 'us-ascii')
    'ascii'
    >>> parse_directive_value('c_string_type', 'str')
    'str'
    >>> parse_directive_value('c_string_type', 'bytes')
    'bytes'
    >>> parse_directive_value('c_string_type', 'bytearray')
    'bytearray'
    >>> parse_directive_value('c_string_type', 'unicode')
    'unicode'
    >>> parse_directive_value('c_string_type', 'unnicode')
    Traceback (most recent call last):
    ValueError: c_string_type directive must be one of ('bytes', 'bytearray', 'str', 'unicode'), got 'unnicode'
    t   TrueR   t   truet   yest   falset   nos3   %s directive must be set to True or False, got '%s's0   %s directive must be set to an integer, got '%s'N(   Ri   Rj   (   Rk   Rl   (   t   directive_typesR   R   t   boolRc   Rh   R   RN   RF   t   intt   callableR   (   RG   R   t   relaxed_boolt   typet
   orig_value(    (    s6   lib/python2.7/site-packages/Cython/Compiler/Options.pyt   parse_directive_valuem  s:    
c         C@  s`  | d	 k r i  } n | } x>|  j d ƒ D]-} | j ƒ  } | sI q+ n  d | k rh t d | ƒ ‚ n  g  | j ƒ  j d d ƒ D] }  |  j ƒ  ^ q \ } } | t k r9t } | j d ƒ r| d  }	 xH t D]= }
 |
 j |	 ƒ rÑ t } t	 |
 | d | ƒ} | | |
 <qÑ qÑ Wn  | rX| rXt d | ƒ ‚ qXq+ t	 | | d | ƒ} | | | <q+ W| S(
   sJ  
    Parses a comma-separated list of pragma options. Whitespace
    is not considered.

    >>> parse_directive_list('      ')
    {}
    >>> (parse_directive_list('boundscheck=True') ==
    ... {'boundscheck': True})
    True
    >>> parse_directive_list('  asdf')
    Traceback (most recent call last):
       ...
    ValueError: Expected "=" in option "asdf"
    >>> parse_directive_list('boundscheck=hey')
    Traceback (most recent call last):
       ...
    ValueError: boundscheck directive must be set to True or False, got 'hey'
    >>> parse_directive_list('unknown=True')
    Traceback (most recent call last):
       ...
    ValueError: Unknown option: "unknown"
    >>> warnings = parse_directive_list('warn.all=True')
    >>> len(warnings) > 1
    True
    >>> sum(warnings.values()) == len(warnings)  # all true.
    True
    t   ,t   =s   Expected "=" in option "%s"i   s   .alliýÿÿÿRq   s   Unknown option: "%s"N(
   R   t   splitt   stripRF   R   R   t   endswitht
   startswithRh   Rt   (   t   sRq   t   ignore_unknownt   current_settingst   resultt   itemRG   R   t   foundt   prefixt	   directivet   parsed_value(    (    s6   lib/python2.7/site-packages/Cython/Compiler/Options.pyt   parse_directive_list©  s0    	7
c         C@  sr   |  d k r t  S|  d k r  t S|  d k r0 d S|  j ƒ  rF t |  ƒ Sy t |  ƒ }  Wn t k
 ri n X|  Sd S(   sƒ  
    Parses value as an option value for the given name and returns
    the interpreted value.

    >>> parse_variable_value('True')
    True
    >>> parse_variable_value('true')
    'true'
    >>> parse_variable_value('us-ascii')
    'us-ascii'
    >>> parse_variable_value('str')
    'str'
    >>> parse_variable_value('123')
    123
    >>> parse_variable_value('1.23')
    1.23

    Rh   R   R   N(   Rh   R   R   t   isdigitRo   t   floatt	   Exception(   R   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Options.pyt   parse_variable_valueâ  s    
c         C@  s±   | d k r i  } n | } x |  j d ƒ D]~ } | j ƒ  } | sI q+ n  d | k rh t d | ƒ ‚ n  g  | j d d ƒ D] }  |  j ƒ  ^ q{ \ } } t | ƒ | | <q+ W| S(   s  
    Parses a comma-separated list of pragma options. Whitespace
    is not considered.

    >>> parse_compile_time_env('      ')
    {}
    >>> (parse_compile_time_env('HAVE_OPENMP=True') ==
    ... {'HAVE_OPENMP': True})
    True
    >>> parse_compile_time_env('  asdf')
    Traceback (most recent call last):
       ...
    ValueError: Expected "=" in option "asdf"
    >>> parse_compile_time_env('NUM_THREADS=4') == {'NUM_THREADS': 4}
    True
    >>> parse_compile_time_env('unknown=anything') == {'unknown': 'anything'}
    True
    Ru   Rv   s   Expected "=" in option "%s"i   N(   R   Rw   Rx   RF   Rˆ   (   R{   R}   R~   R   RG   R   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Options.pyt   parse_compile_time_env  s    	1N(   Re   R\   (   R\   Rf   (   Rf   s   with statement(   Rf   (   Rf   s   with statement(   Rf   s   with statement(   Rf   (   Rf   (   Rf   (   Rf   (   R\   (   R\   (   R\   (   Rg   R\   s   with statement(   Re   (   Re   (   Re   (   Re   (   Rf   Rg   R\   (   Rf   Rg   R\   (   R\   (   Re   (   Re   (   Re   (   Re   (   Re   R\   (   Re   (   Re   (   Re   (   Re   (   Re   Rf   (/   t
   __future__R    t   objectR   Rh   t
   docstringsR   t   embed_pos_in_docstringR/   R   t
   pre_importt   generate_cleanup_codet   clear_to_nonet   annotatet   annotate_coverage_xmlt	   fast_failt   warning_errorst   error_on_unknown_namest   error_on_uninitializedt   convert_ranget   cache_builtinst   gcc_branch_hintst   lookup_module_cpdeft   embedR   t   cimport_from_pyxt   buffer_max_dimst   closure_freelist_sizeR   R   t   extra_warningsRJ   RT   Rc   Rn   t   dictRr   Ro   Rm   t   itemst   keyt   valt   directive_scopesRt   R„   Rˆ   R‰   (    (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Options.pyt   <module>   s*  &
	
	

	
	#

<8	$