
V]c        %   @@  s+  d  d l  m Z d  d l Z d  d l Z d  d l Z y d  d l Z Wn e k
 rc d  d l Z n Xd d l m	 Z	 m
 Z
 m Z d d l m Z d d l m Z m Z d d l m Z d d l m Z m Z d d	 l m Z m Z m Z m Z m Z d d
 l m Z d d l m Z e d d d d d d d d d d d d d d d d d d d d d  d! d" d# d$ d% d& d' d( d) d* d+ d, d- d. d/ g$  Z d0   Z d1 e f d2     YZ  d3 e f d4     YZ! d5 e! f d6     YZ" d7 e f d8     YZ# d9 e# f d:     YZ$ d; e# f d<     YZ% d Z& d= e# f d>     YZ' d? e# f d@     YZ( dA e# f dB     YZ) dC e( f dD     YZ* dE e# f dF     YZ+ dG e# f dH     YZ, dI e, f dJ     YZ- dK e, f dL     YZ. dM e# f dN     YZ/ dO e# f dP     YZ0 dQ e# f dR     YZ1 dS e# f dT     YZ2 d S(U   i    (   t   absolute_importNi   (   t   warningt   errort   InternalError(   t   EncodedString(   t   Optionst   Naming(   t
   PyrexTypes(   t   py_object_typet   unspecified_type(   t   pyfunction_signaturet   pymethod_signaturet   richcmp_special_methodst   get_special_method_signaturet   get_property_accessor_signature(   t   Future(   t   Codet   autot   breakt   caset   chart   constt   continuet   defaultt   dot   doublet   elset   enumt   externt   floatt   fort   gotot   ift   intt   longt   registert   returnt   shortt   signedt   sizeoft   statict   structt   switcht   typedeft   uniont   unsignedt   voidt   volatilet   whilet   _Bools   _Complex, _Imaginaryt   inlinet   restrictc         C@  sO   |  d  d k r/ |  j  t j  p+ |  d k s; |  t k rK t j |  }  n  |  S(   Ni   t   __t   __weakref__t   __dict__(   R5   R6   (   t
   startswithR   t   pyrex_prefixt   iso_c99_keywords(   t   cname(    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   c_safe_identifier%   s
    "t	   BufferAuxc           B@  s    e  Z e Z d    Z d   Z RS(   c         C@  s   | |  _  | |  _ d  S(   N(   t   buflocal_nd_vart	   rcbuf_var(   t   selfR=   R>   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   __init__1   s    	c         C@  s   d |  j  S(   Ns   <BufferAux %r>(   R6   (   R?   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   __repr__5   s    (   t   __name__t
   __module__t   Falset   writable_neededR@   RA   (    (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR<   .   s   	t   Entryc           B@  s  e  Z e Z d  Z d Z d
 Z d Z d  Z	 d  Z
 d  Z d  Z d  Z d  Z d  Z d  Z e Z d  Z d  Z d  Z d  Z d  Z d  Z d  Z d  Z d  Z d
 Z d
 Z d
 Z d  Z d  Z d  Z  d  Z! d  Z" d  Z# d  Z$ d  Z% d
 Z& d
 Z' g  Z( d
 Z) d
 Z* d
 Z+ d  Z, d  Z- d
 Z. d  Z/ d
 Z0 d  Z1 d  Z2 d  Z3 d  Z4 d  Z5 d  Z6 d  Z7 d
 Z8 d  Z9 d
 Z: d
 Z; d  Z< d
 Z= e Z> d
 Z? e Z@ d  ZA d
 ZB e ZC eD ZE d
 ZF d
 d
 d  ZG d   ZH d   ZI d   ZJ d   ZK d   ZL d	   ZM RS(   i    t    t   privatec         C@  s^   | |  _  | |  _ | |  _ | |  _ | |  _ g  |  _ g  |  _ g  |  _ g  |  _ |  |  _	 d  S(   N(
   t   nameR:   t   typet   post   initt   overloaded_alternativest   cf_assignmentst   cf_referencest   inner_entriest   defining_entry(   R?   RI   R:   RJ   RK   RL   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR@      s    									c         C@  s)   d t  |   j t |   |  j |  j  f S(   Ns   %s(<%x>, name=%s, type=%s)(   RJ   RB   t   idRI   (   R?   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyRA      s    c         C@  s   t  |  j d  d  S(   Ns   Previous declaration is here(   R   RK   (   R?   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   already_declared_here   s    c         C@  s"   t  | d |  j  |  j   d  S(   Ns(   '%s' does not match previous declaration(   R   RI   RS   (   R?   RK   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt
   redeclared   s    c         C@  s   |  g |  j  S(   N(   RM   (   R?   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   all_alternatives   s    c         C@  s   |  g |  j  S(   N(   RP   (   R?   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   all_entries   s    c         C@  sH   t  |  t  r@ t  | t  r@ |  j |  j f | j | j f k  St Sd  S(   N(   t
   isinstanceRF   RI   R:   t   NotImplemented(   t   leftt   right(    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   __lt__   s    "N(N   RB   RC   RD   t   inline_func_in_pxdt   borrowedRL   t   Nonet
   annotationt
   visibilityt
   is_builtint
   is_cglobalt   is_pyglobalt	   is_membert   is_pyclass_attrt   is_variablet   is_cfunctiont
   is_cmethodt   is_builtin_cmethodt   is_unbound_cmethodt   is_final_cmethodt   is_inline_cmethodt   is_anonymoust   is_typet	   is_cclasst   is_cpp_classt   is_constt   is_propertyt	   doc_cnamet   getter_cnamet   setter_cnamet   is_self_argt   is_argt   is_localt
   in_closuret   from_closuret   in_subscopet   is_declared_generict   is_readonlyt   pyfunc_cnamet
   func_cnamet   func_modifierst   final_func_cnamet   doct   as_variablet   xdecref_cleanupt   in_cincludet	   as_modulet   is_inheritedt   pystring_cnamet   is_identifiert   is_internedt   usedt
   is_specialt   defined_in_pxdt   is_implementedt   apit   utility_codet   is_overridablet
   buffer_auxt
   prev_entryt   might_overflowt   fused_cfunctiont   is_fused_specializedt   utility_code_definitiont   needs_propertyt   in_with_gil_blockt   from_cython_utility_codet   error_on_uninitializedt   Truet   cf_usedt   outer_entryR@   RA   RS   RT   RU   RV   R[   (    (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyRF   9   s   S					t
   InnerEntryc           B@  s/   e  Z d  Z e Z d   Z d   Z d   Z RS(   sK   
    An entry in a closure scope that represents the real outer Entry.
    c         C@  s   t  j |  | j | j | j | j  | |  _ | |  _ | } x | j rU | j } q@ W| |  _ | j	 |  _	 | j
 |  _
 | j |  _ | j |  _ |  j	 j |   d  S(   N(   RF   R@   RI   R:   RJ   RK   R   t   scopeRQ   RP   RN   RO   RM   t   append(   R?   R   R   t   outermost_entry(    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR@      s    
			c         C@  s.   | j  d  r t |   n  t |  j |  S(   NR4   (   R7   t   AttributeErrort   getattrRQ   (   R?   RI   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   __getattr__  s    c         C@  s   |  j  j   S(   N(   RQ   RV   (   R?   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyRV     s    (   RB   RC   t   __doc__R   Rz   R@   R   RV   (    (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR      s
   		t   Scopec        	   B@  s  e  Z d  Z d  Z d  Z d  Z d  Z d  Z d  Z d  Z	 d  Z
 d  Z d Z d  Z d  Z d4 Z d4 Z d   Z d   Z e d4 d  Z d   Z d   Z d4 d  Z d   Z d	   Z d4 d
  Z d   Z d   Z d   Z d  d  d  d  Z d   Z  d4 d d  d  d  Z! d4 d d  d d  d  d  Z" d4 d d  d  Z# d4 d d  e$ d  Z% d4 d5 d d4 d  Z& d   Z' d   Z( d d  d  d  Z) d   Z* d4 d d  d  d  d  Z+ d   Z, d d4 d  Z- e$ d d  Z. d    Z/ d!   Z0 d"   Z1 d4 d d  d  d  d6 d4 e$ d#  Z2 e$ d$  Z3 d%   Z4 d&   Z5 d'   Z6 d(   Z7 d)   Z8 d*   Z9 d+   Z: d,   Z; d-   Z< d.   Z= d/   Z> d0   Z? d1   Z@ d2   ZA d4 e$ d3  ZB RS(7   i    RG   c         C@  sG  | |  _  | |  _ | |  _ d t |  | j d d  f } |  j   } | rt | j |  |  _ | j | |  _ n t	 |  |  _ | |  _ i  |  _
 t   |  _ g  |  _ g  |  _ g  |  _ g  |  _ g  |  _ g  |  _ g  |  _ g  |  _ g  |  _ i  |  _ i  |  _ i  |  _ i  |  _ i  |  _ i  |  _ g  |  _ g  |  _ i  |  _ d  S(   Ns   %d%s_t   .t   _dot_(   RI   t   outer_scopet   parent_scopet   lent   replacet   qualifying_scopet   qualify_namet   qualified_namet   scope_prefixR   t   entriest   sett	   subscopest   const_entriest   type_entriest   sue_entriest   arg_entriest   var_entriest   pyfunc_entriest   cfunc_entriest   c_class_entriest   defined_c_classest   imported_c_classest   cname_to_entryt   string_to_entryt   identifier_to_entryt   num_to_entryt   obj_to_entryt   buffer_entriest   lambda_defst   id_counters(   R?   RI   R   R   t   mangled_namet
   qual_scope(    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR@   C  s<    			"																			c         C@  s   |  S(   N(    (   R?   t   memo(    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   __deepcopy__f  s    c   
      C@  s   g  } xX | j  j   D]G \ } } | s5 | | k r | j sD | r] | j | | f  q] q q W|  j  j |  x{ d
 D]s } t |  |  } t d	   | D  }	 xE t | |  D]4 } | j s | r | j |	 k r | j |  q q Wqx Wd  S(   NR   R   R   R   R   R   R   R   c         s@  s   |  ] } | j  Vq d  S(   N(   RI   (   t   .0t   e(    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pys	   <genexpr>|  s    (   R   R   R   R   R   R   R   R   (   R   t   itemsR   R   t   updateR   R   RI   (
   R?   t   othert   merge_unusedt	   whitelistR   RI   t   entryt   attrt   self_entriest   names(    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   merge_ini  s&          
c         C@  s   d |  j  j |  j f S(   Ns   <%s %s>(   t	   __class__RB   R   (   R?   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   __str__  s    c         C@  s   |  j  S(   N(   R   (   R?   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR     s    c         C@  s4   | r d | |  j  | f S|  j j | |  j  Sd  S(   Ns   %s%s%s(   R   R   t   mangleRI   (   R?   t   prefixRI   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR     s    c         C@  s    d t  j | f } |  j |  S(   Ns   %s%s_(   R   R8   R   (   R?   RI   R   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   mangle_internal  s    c         C@  s   |  j  r |  j  j |  S| S(   N(   R   t   mangle_class_private_name(   R?   RI   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR     s    	c         C@  so   |  j    j } y | | d } Wn t k
 r: d } n X| | | <| rc | sU | Sd | | f Sd | Sd  S(   Ni   i    s   %s%ds   %d(   t   global_scopeR   t   KeyError(   R?   RI   t   counterst   count(    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   next_id  s    

c         C@  s   |  j  j   S(   s6    Return the module-level scope containing this scope. (   R   R   (   R?   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR     s    c         C@  s   |  j  j   S(   s6    Return the module-level scope containing this scope. (   R   t   builtin_scope(   R?   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR     s    c         c@  sC   |  V|  j  r? x. t |  j  d t j d  D] } | Vq- Wn  d  S(   Nt   keyR   (   R   t   sortedt   operatort
   attrgetter(   R?   R   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   iter_local_scopes  s    	%c	         C@  s%  | j  r) t |  t  r) t | d  n  |  j rb | rb t j d |  rb t | d | d  n  |  j }	 | r| |	 k r| r|	 | }
 t	 } | j
 r|
 j j
 r|  j   rxO |
 j   D]8 } | | j k r | d k r | j r t } n  Pq q Wt } n  | rq|  j r)|	 | j r)q| d k r[t | d | |  j rQd n d	  q| d
 k rt | d |  |	 | j   qn  t | | | d | } |  j | _ | | _ | r|  j |  | _ | s| |	 | <qn  | j rd d l m } | j | _ n  |  | _ | | _ | S(   Ns5   Buffer types only allowed as function local variabless
   ^_[_A-Z]+$s   '%s' is a reserved name in C.is   <init>R   s   '%s' redeclared i   i    t   ignoreRK   (   t
   MemoryView(   t	   is_bufferRW   t
   LocalScopeR   R   t   ret   matchR   R   RD   Rg   RJ   t   is_cppRU   t   argsR   t   is_cpp_class_scopeR   RS   RF   t   create_wrapperR   R   t   is_memoryviewsliceRG   R   t   memslice_entry_initRL   R   R`   (   R?   RI   R:   RJ   RK   R`   t   shadowRn   R   R   t	   old_entryt   cpp_override_allowedt	   alt_entryR   R   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   declare  sJ    "	
!		&				c         C@  s   t  d |  j | f  S(   Ns   %s.%s(   R   R   (   R?   RI   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR     s    RH   c	   
      C@  sy   | sB |  j  s! | d k s! | r* | } qB |  j t j |  } n  |  j | | | | | d | }	 d |	 _ | |	 _ |	 S(   Nt   publicR   i   (   R   R   R   t   enum_prefixR   Rq   t
   value_node(
   R?   RI   RJ   t   valueRK   R:   R`   R   R   R   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   declare_const  s    	!		i   c
      	   C@  st   | s | } n  |  j  | | | | | | d t }
 d |
 _ | |
 _ | r^ |  j j |
  n  |	 sp |
 | _ n  |
 S(   NRn   i   (   R   R   Rn   R   R   R   R   (   R?   RI   RJ   RK   R:   R`   R   t   definingR   t   templateR   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   declare_type   s    				c      	   C@  s   | sB |  j  s! | d k s! | r* | } qB |  j t j |  } n  yO |  j ri |  j j |  j  j } n d  } t
 j | | | | d k |  } Wn0 t k
 r }	 t | |	 j d  t
 j } n X|  j | | | | d | d | }
 |
 j | _ |
 S(   NRH   R   i    R`   R   (   R   R   R   t   type_prefixR   R   t   lookupRI   RJ   R^   R   t   create_typedef_typet
   ValueErrorR   R   t
   error_typeR   R   (   R?   RI   t	   base_typeRK   R:   R`   R   t	   namespaceRJ   R   R   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   declare_typedef  s$    			c
         C@  s  | sB |  j  s! | d k s! | r* | } qB |  j t j |  } n  |  j |  }
 |
 s t j | | | | | |	  } |  j | | | | d | d | d | d  k	 }
 |  j	 j
 |
  |
 | _ n |
 j o |
 j j o |
 j j | k s t | d | d  nt | r(|
 j j r(t | d | d  nK |  j |
 | |  |  j |
 | |  | rs| |
 j _ |  j j
 |
  n  |  j r|  j j |  j  j |
 j _ n  |
 S(   NR   R`   R   R   s   '%s' redeclared  i    s2   '%s' already defined  (ignoring second definition)(   R   R   R   R  t   lookup_hereR   t   CStructOrUnionTypeR   R^   R   R   R   Rn   RJ   t   is_struct_or_uniont   kindR   R   t   check_previous_typedef_flagt   check_previous_visibilityR   R   R   R  RI   R  (   R?   RI   R  R   t   typedef_flagRK   R:   R`   R   t   packedR   RJ   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   declare_struct_or_union*  s4    		!R   c   
   
   @  sU  | d  k rB |  j s! | d k r* | } qB |  j t j |  } n  t |  } |  j |  } | s t j | | | | d | }	 |  j	 | |	  | d | d | d  k	 } |  j
 j |  n| j o | j j s t  d |  | j   d  S| r| j j rt  d | d  n% | r@| | j _ |  j j |  n  | r| j j r~| j j | k r~t  d  | j   q| | j _ n  | s| j j r| | j j k rt  d	  | j   qn     f d
     | r'  | |  | j d d d d d t j | j  d | j  n  |  j rQ|  j j |  j  j | j _ n  | S(   NRH   t	   templatesR`   R   s   '%s' redeclared s2   '%s' already defined  (ignoring second definition)i    s-   Base type does not match previous declarations5   Template parameters do not match previous declarationc         @  sl   xe | D]] } | t  j k r" q n  | j d  k rA t  d  q   |  | j  |  j j j |  q Wd  S(   Ns#   Cannot inherit from incomplete type(   R   R  R   R^   R   t   base_classesRJ   t    declare_inherited_cpp_attributes(   R   R  t
   base_class(   t   declare_inherited_attributesRK   (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR  s  s    RI   t   thisR:   RJ   RK   (   R^   R   R   R   R  t   listR	  R   t   CppClassTypeR   R   R   Rn   RJ   Rp   R   RS   R   R   R   R  R  t   declare_vart   CPtrTypeRK   R   R   R  RI   R  (
   R?   RI   R   RK   R:   R  R`   R  R   RJ   (    (   R  RK   s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   declare_cpp_classM  sJ    	
	4	!c         C@  s=   | | j  j k r9 t | d | j d | j  j f  n  d  S(   Ns#   '%s' previously declared using '%s't   cdeft   ctypedef(   R  R  (   RJ   R  R   RI   (   R?   R   R  RK   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR    s    	c         C@  s3   | j  | k r/ t | d | j | j  f  n  d  S(   Ns    '%s' previously declared as '%s'(   R`   R   RI   (   R?   R   R`   RK   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR    s    	c      
   C@  s   | r | sT |  j  s3 | d k s3 | d k s3 | r< | } qT |  j t j |  } n  |  j rx |  j j |  j  j } n d  } t
 j | | | |  }	 n	 t
 j }	 |  j | |	 | d | d | d | }
 | |
 _ g  |
 _ |  j j |
  |
 S(   NR   R   R:   R`   R   (   R   R   R   R  R   R   R  RI   RJ   R^   R   t	   CEnumTypet   c_anon_enum_typeR   R   t   enum_valuesR   R   (   R?   RI   RK   R:   R  R`   R   R   R  RJ   R   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   declare_enum  s"    					c         C@  s   |  j  j | |  S(   N(   R   t   declare_tuple_type(   R?   RK   t
   components(    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR#    s    c	   
      C@  s   | s9 | d k s | r! | } q9 |  j  t j |  } n  | j r^ | d k r^ | j |  n  |  j | | | | |  }	 d |	 _ | r | d k r d |	 _ d |	 _ n  | r d |	 _	 d |	 _ n  |	 S(   NRH   R   i   (
   R   R   t
   var_prefixRp   t   check_nullary_constructorR   Rf   R   R   R   (
   R?   RI   RJ   RK   R:   R`   R   t   in_pxdt   is_cdefR   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR    s    				c         C@  s   |  j  j | |  S(   N(   R   t   declare_builtin(   R?   RI   RK   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR)    s    c         C@  so   | r7 | j  j r7 t | d |  t | j d  n  |  j | t | d | } t | _ |  j j	 |  | S(   Ns   '%s' already declareds   Previous declaration is hereR`   (
   RJ   Rg   R   RK   R  R   R
   t	   signatureR   R   (   R?   RI   RK   R`   R   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   _declare_pyfunction  s    	c         C@  s   |  j  |  } | s1 |  j | | d | d | S| r} | j j rO t | _ q | j t k	 r |  j | | d | d | Sn |  j | t | d | |  j d  t | d | d d } t |  | _ |  j	 |  | _
 t | _ t | _ | S(   NR`   R   R:   RH   (   R	  R+  RJ   t   is_unspecifiedR   R  R^   R   RI   R   R   R
   R*  R   Rm   (   R?   RI   RK   t   allow_redefineR`   R   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   declare_pyfunction  s     		c         C@  s   |  j  t j d |  } |  j  t j d |  } |  j |  } |  j d  | t | d  } | | _ | | _ | | _	 | | _
 t | _ t | _ | S(   Nu   funcdef_u   methdef_RH   (   R   R   t   lambda_func_prefixR   R   R^   R   RI   R   t   pymethdef_cnameR   R
   R*  R   Rm   (   R?   t   lambda_nameRK   R   R0  R   R   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   declare_lambda_function  s    						c         C@  s   |  j  j |  d  S(   N(   R   R   (   R?   t   def_node(    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   add_lambda_def  s    c         C@  s   |  j  j |  d  S(   N(   R   R   (   R?   R   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   register_pyfunction  s    c         C@  sy  | s9 | d k s | r! | } q9 |  j  t j |  } n  |  j |  } | rF| r | | j k r | d k r t } | j } | | _ | | _ n  | d k r | | j k r t | d | | j | f d  n  | | j	 k r
t | d | | r d n d f d  n  | j
 j |  r7| j
 j | j  | _
 qv| d k r| j d k rt } |  j   rmt } nC | rx: | j   D]# } | j s| | j k rPqqWt } n  | r|  j | | | | | |	  } | j   | _ | } qCt | d d  | | _
 qv| r6| j r6| j | j
  r6| | _
 qvt | d  n0 |  j | | | | | |	  } | | _ | | _	 | r| d k rd | _ n  | rd | _ n  | r| r| d k rt | d	 |  n  | rt | _ n  |	 r|	 | _ n  |
 r*| j st d
 | | f   |
 | _ n  | rlt | | t  } d | _ d | _ | j | _ | | _  n  | | _! | S(   NRH   R   s6   Function '%s' previously declared as '%s', now as '%s'i   s)   Function '%s' previously declared as '%s't   cpdefR  s6   Function signature does not match previous declarations3   Non-extern C function '%s' declared but not defineds2   duplicate utility code definition in entry %s (%s)("   R   R   t   func_prefixR	  R`   R   R:   R   R   R   RJ   t   same_ast   with_with_gilt   with_gilRD   R   RU   t   add_cfunctionRM   R   t   compatible_signature_withR   R   R   R   R   t   AssertionErrorRF   R   Rf   Rc   R   R   R   (   R?   RI   RJ   RK   R:   R`   R   R'  R   t	   modifiersR   t   overridableR   t   can_overrideR   t   tempt	   var_entry(    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   declare_cfunction  sx    	"		#	 			"		 			c         C@  s   |  j  | | | | |  } d | _ | r6 | | _ n  | sE | j rX |  j j |  n` t |  j  }	 x; t |  j  D]* }
 |
 j s |
 j	 j r Pn  |	 d 8}	 qw W|  j j
 |	 |  | S(   Ni   (   R   Rg   R   t   is_fusedR   R   R   t   reversedR   RJ   t   insert(   R?   RI   RJ   RK   R:   R`   R>  t	   inheritedR   t   it   cfunc_entry(    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR;  @  s    	c         C@  s.   |  j  |  } | r | St | d |  d  S(   Ns   '%s' is not declared(   R  R   (   R?   RI   RK   R   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   findS  s    c         C@  sj   |  } x] | D]U } | j  | |  } | s/ d  S| j rD | j } q t | d d j |   d  Sq W| S(   Ns   '%s' is not a cimported moduleR   (   RJ  R^   R   R   t   join(   R?   t   pathRK   R   RI   R   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   find_imported_module[  s    	c         C@  s.   |  j  |  p- |  j r* |  j j |  p- d  S(   N(   R	  R   R  R^   (   R?   RI   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR  j  s    c         C@  s   |  j  j | d   S(   N(   R   t   getR^   (   R?   RI   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR	  q  s    c         C@  s1   |  j  |  } | s- |  j | t d   } n  | S(   N(   R	  R  R   R^   (   R?   RI   R   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   lookup_targetu  s    c         C@  sQ   |  j  |  } | rM | j rM | j j rF |  j rF | j j |  j  S| j Sd  S(   N(   R  Rn   RJ   RD  t   fused_to_specifict
   specialize(   R?   RI   R   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   lookup_type}  s
    c         C@  s  | d j  j r | d j  } | j j d |  } | d  k	 r g  | d D] } | j  ^ qJ } t j g  | d D] } | j  ^ qp | j    } | d  k	 r | Sq n  |  j d |  } g  }	 | d  k	 r | j   }	 n  g  }
 t |  d k rbxl t	 d  D][ } | | j  j r | | j  } | j j d |  } | d  k	 r[|
 | j   7}
 q[q q Wn  |
 rt|	 rtd  St
 t |
 |	   } t j g  | D] } | j  ^ q|  S(   Ni    s
   operator%si   i   (   RJ   Rp   R   R  R^   R   t
   best_matchRU   R   t   rangeR  R   (   R?   R   t   operandst   obj_typet   methodt   argt	   arg_typest   rest   functiont   function_alternativest   method_alternativest   nRU   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   lookup_operator  s4     #
c         C@  s[   d d l  m } d | f d     Y} g  | D] } | | d | ^ q- } |  j | |  S(   Ni   (   t   Nodet   FakeOperandc           B@  s   e  Z RS(    (   RB   RC   (    (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyRa    s   RJ   (   t   NodesR`  R_  (   R?   RK   R   t   typesR`  Ra  RJ   RU  (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   lookup_operator_for_types  s    %c         C@  s   |  j    j |  d  S(   N(   R   t   use_utility_code(   R?   t   new_code(    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyRe    s    c         C@  s   |  j    j |  d  S(   N(   R   t   use_entry_utility_code(   R?   R   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyRg    s    c         C@  s(   x! | D] } | |  j  k r d Sq Wd S(   Ni   i    (   R   (   R?   R   RI   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   defines_any  s    c         C@  s8   x1 | D]) } | |  j  k r |  j  | j r d Sq Wd S(   Ni   i    (   R   R   (   R?   R   RI   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   defines_any_special  s    c         C@  s$   d d l  m } |   j |   d  S(   Ni   (   t   get_type_inferer(   t   TypeInferenceRj  t   infer_types(   R?   Rj  (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyRl    s    c         C@  s'   |  j  } | d  k r t S| j   Sd  S(   N(   R   R^   RD   R   (   R?   t   outer(    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR     s    	c         C@  s   |  j  j | | |  d  S(   N(   R   t   add_include_file(   R?   t   filenamet   verbatim_includet   late(    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyRn    s    N(    (    (C   RB   RC   t   is_builtin_scopet   is_py_class_scopet   is_c_class_scopet   is_closure_scopet   is_genexpr_scopet   is_passthroughR   t   is_property_scopet   is_module_scopet   is_internalR   R   t   nogilR^   RP  t   return_typeR@   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R  RD   R  R  R  R  R"  R#  R  R)  R+  R.  R2  R4  R5  RC  R;  RJ  RM  R  R	  RO  RR  R_  Rd  Re  Rg  Rh  Ri  Rl  R   Rn  (    (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR     s   	#								:	!4								M							"							t   PreImportScopec           B@  s#   e  Z e j Z d    Z d   Z RS(   c         C@  s   t  j |  t j d  d   d  S(   N(   R   R@   R   t
   pre_importR^   (   R?   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR@     s    c         C@  s1   |  j  | | t | d  } t | _ t | _ | S(   NRH   (   R   R   R   Rf   Rc   (   R?   RI   RK   R   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR)    s    		(   RB   RC   R   t   preimport_cnamet   namespace_cnameR@   R)  (    (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR}    s   		t   BuiltinScopec           B@  sS  e  Z e Z d    Z d, d, d  Z d   Z d, d, d  Z d, d, d  Z	 d   Z
 i d e g d 6d e g d	 6d
 e g d 6d e g d 6d e g d 6d e g d 6d e g d 6d e g d 6d e g d 6d e g d 6d e g d 6d e g d 6d e g d 6d  e g d! 6d" e g d# 6d$ e g d% 6d& e g d' 6d( e g d) 6d* e g d+ 6Z RS(-   c         C@  s   t  j d  k r( t j |  d d  d   n t j |  d t   d   i  |  _ xE t |  j j	    D]. \ } } | \ } } |  j
 | | d  |  q` Wd  S(   Nt   __builtin__(   R   R~  R^   R   R@   R}  t
   type_namesR   t   builtin_entriesR   R  (   R?   RI   t
   definitionR:   RJ   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR@     s    	"c         C@  sI   | d k r9 | d  k r' | d k } n  | s9 d } q9 n  t j |  |  S(   Nt   stri   t   unicode(   Ni   (   R^   R   R  (   R?   RI   t   language_levelt
   str_is_str(    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR    s    c         C@  si   t  t |  se |  j d  k	 r1 |  j j | |  St j rN t | d |  qe t | d | d  n  d  S(   Ns   undeclared name not builtin: %si   (	   t   hasattrt   builtinsR   R^   R)  R   t   error_on_unknown_namesR   R   (   R?   RI   RK   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR)    s    	c      	   C@  s   t  |  } |  j | | d  | d d d | } | r | d k rK | } n t  |  } t | | t  } d | _ d | _ | | _ | j | _ | | _	 n  | S(   NR`   R   R   t   *i   (
   R   RC  R^   RF   R   Rf   Ra   R   R   R   (   R?   RI   RJ   R:   t   python_equivR   R   RB  (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   declare_builtin_cfunction  s    					c   	   	   C@  s)  t  |  } t j | | |  } t | d d  d d } i  | _ | d k rZ t | _ n  | j |  d |  j	 | <|  j
 | | d  d d } | | _ t d | j d |  j d  j d | j d	 | j j  } d | _ d | _ d | _ d | _ | | _ |  | _ t j rt | _ n  | | _ | S(
   NR   R`   R   t   booli   RI   RJ   RK   R:   (   R   R   t   BuiltinObjectTypet   CClassScopeR^   t
   directivesR   t   is_final_typet	   set_scopeR  R   R   RF   RI   R  RJ   RK   t   typeptr_cnameRf   Rb   R}   Ra   R   R   t   cache_builtinsRq   R   (	   R?   RI   R:   R   t   objstruct_cnameRJ   R   R   RB  (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   declare_builtin_type  s0    											c         C@  s   |  S(   N(    (   R?   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR   0  s    s   ((PyObject*)&PyType_Type)RJ   s   ((PyObject*)&PyBool_Type)R  s   ((PyObject*)&PyInt_Type)R!   s   ((PyObject*)&PyLong_Type)R"   s   ((PyObject*)&PyFloat_Type)R   s   ((PyObject*)&PyComplex_Type)t   complexs   ((PyObject*)&PyBytes_Type)t   bytess   ((PyObject*)&PyByteArray_Type)t	   bytearrays   ((PyObject*)&PyString_Type)R  s   ((PyObject*)&PyUnicode_Type)R  s   ((PyObject*)&PyTuple_Type)t   tuples   ((PyObject*)&PyList_Type)R  s   ((PyObject*)&PyDict_Type)t   dicts   ((PyObject*)&PySet_Type)R   s   ((PyObject*)&PyFrozenSet_Type)t	   frozensets   ((PyObject*)&PySlice_Type)t   slicet   Py_NoneR^   t   Py_FalseRD   t   Py_TrueR   N(   RB   RC   R   Rr  R@   R^   R  R)  R  R  R   R   R  (    (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR    s6   			
	t   ModuleScopec           B@  sy  e  Z d  Z d Z d Z d Z d   Z d   Z d   Z d  d  d  Z
 d   Z d   Z d d	  Z d
   Z d   Z d  e d  Z d   Z d   Z d   Z d   Z d  d d d d d  Z d  d d d d d! d  e d  Z d   Z d   Z d   Z d d d  d  d  d  d  d d d d  d  d d  Z d   Z d   Z d   Z d   Z d   Z  d   Z! d   Z" d   Z# RS("   i   i    c      	   C@  s  d d l  m } | |  _ | j } t j |  | | |  | d k r\ | j |  _ t |  _ n | |  _ t	 |  _ t
 |  j  |  _ | |  _ t j |  _ t j |  _ t j |  _ d |  _ t j |  _ g  |  _ i  |  _ i  |  _ t | j  |  _ d |  _ g  |  _ t   |  _ g  |  _ d |  _ g  |  _  g  |  _! |  j |  _" i  |  _# xB d d d d	 d
 d d d d g	 D] } |  j$ t
 |  t% d   qhW|  j' t( j) d d t  d  S(   Ni   (   t   BuiltinR@   RG   i    t   __builtins__RB   t   __file__R   t   __path__t   __spec__t
   __loader__t   __package__t
   __cached__s   Python.ht   initial(*   RG   R  t   parent_moduleR   R   R@   t   module_nameR   t
   is_packageRD   R   t   contextR   t   module_cnamet   moddict_cnamet   module_dict_cnamet   methtable_cnamet   method_table_cnameR   t   moddoc_cnameRs   t   utility_code_listt   module_entriest
   c_includesR  R  t   pxd_file_loadedt   cimported_modulesR   t   types_importedt   included_filest   has_extern_classt   cached_builtinst   undeclared_cached_builtinsR  t   _cached_tuple_typesR  R   R^   t   process_includeR   t   IncludeCode(   R?   RI   R  R  R  R   t   var_name(    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR@   p  sB    																c         C@  s   |  j  S(   N(   R  (   R?   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR     s    c         C@  s   |  S(   N(    (   R?   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR     s    c         C@  s   |  j  |  } | d  k	 r | S| d  k rO |  j d  k	 rF |  j j n d } n  | d  k r | d k p |  j d  k	 o t j |  j j k } n  |  j j | d | d | S(   Ni   i   R  R  (	   R	  R^   R  R  R   t   unicode_literalst   future_directivesR   R  (   R?   RI   R  R  R   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR    s    $'c   
   
   C@  s  t  |  } y |  j | } Wn+ t k
 rJ t j |  } |  j | <n X| j } |  j |  } | st |  } x: t |  D], \ } } | j	 d d | d | d |  q W|  j
 | d d | d t d | d | }	 |  j j |	  |	 | _ |  j | | | |  } n  | | _ | S(	   NRI   s   f%sRJ   RK   t   _structR)   R  R:   (   R  R  R   R   t   c_tuple_typeR:   R	  t   StructOrUnionScopet	   enumerateR  R  R   R   t   removet   struct_entryR   R   (
   R?   RK   R$  t   ttypeR:   R   R   t   ixt	   componentR  (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR#    s$    	$%		c         C@  s  t  t |  r | t j k r | t j k r |  j rP |  j | t |  } | St j	 rm t
 | d |  n t | d | d  |  j | d  t | d  } d | _ | Sn  t j r x' |  j D] } | j | k r | Sq Wn  | d k r|  j r|  j j d  S|  j d  d  t | d  } t j r| t j k rd | _ d | _ | | _ t j | | _ |  j j |  |  j j |  n d | _ | | _ | S(   Ns   undeclared name not builtin: %si   RH   i   t   globalst   __Pyx_Globals(   R  R  R   t   non_portable_builtins_mapt   uncachable_builtinst   has_import_starR  R   R   R  R   R   R   R^   Ra   R  R  RI   t   old_style_globalsR   R  Rq   R   t   builtin_prefixR:   R   R  (   R?   RI   RK   R   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR)    s:    									ic         C@  s   d  } t } | d  k	 rY | d k rY |  } xJ | d k rU | rU | j } | d 8} q- Wn | d k rw |  j } t } n  |  j   } | j j | d | d | d | S(   Ni    i   t   relative_toRK   t   absolute_fallback(   R^   RD   R  R   R   R  t   find_module(   R?   R  RK   t   relative_levelR  R  t   module_scope(    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR    s    				c         C@  s   d | k r' | j  d d  \ } } n d  } |  j |  } | sm t | d |  d |  j } | |  j | <n  | r | j |  } n  | S(   NR   i   R  R  (   t   splitR^   t   lookup_submoduleR  R  R  t   find_submodule(   R?   RI   t	   submoduleR   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR    s    c         C@  sj   d | k r' | j  d d  \ } } n d  } |  j j | d   } | rf | d  k	 rf | j |  } n  | S(   NR   i   (   R  R^   R  RN  R  (   R?   RI   R  t   module(    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR    s    c         C@  s)   t  j | | d | } |  j |  d S(   s   
        Add `filename` as include file. Add `verbatim_include` as
        verbatim text in the C file.
        Both `filename` and `verbatim_include` can be `None` or empty.
        Rq  N(   R   R  R  (   R?   Ro  Rp  Rq  t   inc(    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyRn    s    c         C@  sK   | j    } | d k r' | j   } n  | j |  j |  |  j | } d S(   s  
        Add `inc`, which is an instance of `IncludeCode`, to this
        `ModuleScope`. This either adds a new element to the
        `c_includes` dict or it updates an existing entry.

        In detail: the values of the dict `self.c_includes` are
        instances of `IncludeCode` containing the code to be put in the
        generated C file. The keys of the dict are needed to ensure
        uniqueness in two ways: if an include file is specified in
        multiple "cdef extern" blocks, only one `#include` statement is
        generated. Second, the same include might occur multiple times
        if we find it through multiple "cimport" paths. So we use the
        generated code (of the form `#include "header.h"`) as dict key.

        If verbatim code does not belong to any include file (i.e. it
        was put in a `cdef extern from *` block), then we use a unique
        dict key: namely, the `sortkey()`.

        One `IncludeCode` object can contain multiple pieces of C code:
        one optional "main piece" for the include file and several other
        pieces for the verbatim code. The `IncludeCode.dict_update`
        method merges the pieces of two different `IncludeCode` objects
        if needed.
        N(   t	   mainpieceR^   t   sortkeyt   dict_updateR  (   R?   R  R   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR    s
    c         C@  sn   | |  j  k rj x$ | j j   D] } |  j |  q W|  j  j |  x! | j  D] } |  j |  qP Wn  d  S(   N(   R  R  t   valuesR  R   t   add_imported_module(   R?   R   R  t   m(    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR  :  s    c         C@  sL   | j  r t | _ n  | |  j k r4 | |  j | <n t | d | d  d  S(   Ns   '%s' redeclared  i    (   Rc   R   Rf   R   R   (   R?   RI   R   RK   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   add_imported_entryB  s
    	c         C@  s   |  j  |  } | rK | j r1 | j | k r1 | S| j oA | j si | Sn |  j | t |  } d | _ | | _ |  j |  | S(   Ni    (   R	  Rc   R   R  R   Rf   R  (   R?   RI   R   RK   R   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   declare_moduleK  s    		RH   c	         C@  s  | d k r  t  | d |  n  | s` | t k r; t } n  | j oK | j s` t d   q` n  | s | }	 | d k s | d k r |	 r | } q |  j t j |  } n  |  j	 |  }
 |
 r{|
 j
 r{|
 j j |  s| d k r|
 j d k rt | d | d  | |
 _ qn  |
 j d k rb|  j t j |  } |
 j | k rb| } | |
 _ qbn  |
 j s{t |
 _ |
 Sn  t j |  | | | d | d	 | d
 | d | d | }
 | rd |
 _ |
 j j r|
 j j |
 _ n  |  j j |
  n	 d |
 _ t j rd |
 _ n  |
 S(   NRH   R   R   s+   Module-level variable cannot be declared %ss7   Non-cdef global variable is not a generic Python objects6   Variable '%s' type does not match previous declarationi   R:   R`   R   R'  R(  (   RH   R   R   (   R   R	   R   t   is_pyobjectt   is_extension_typeR   R   R   R%  R	  R   RJ   R8  R`   R   R:   R   R   R   R  Rb   t   declaration_valueRL   R   R   Rc   R   t   cimport_from_pyxR   (   R?   RI   RJ   RK   R:   R`   R   R'  R(  R   R   t   mangled_cname(    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR  d  sN    							c         C@  sN  | r& d |	 k r& t  | d d  n  | sk | d k sJ | d k rS | rS | } qk |  j t j |  } n  | d k r | j r t | d  n  |  j |  } | r| j r| j d k r|  j t j	 |  } | j
 | k r | } | | _
 | | _ q qn  t j |  | | | d | d	 | d
 | d | d | d |	 d |
 d | } | S(   NR2   s+   Declarations should not be declared inline.i   R   R   s6   Extern functions cannot have default arguments values.RH   R:   R`   R   R'  R   R>  R   R?  (   R   R   R   R7  t   optional_arg_countR   R	  R   R`   R%  R:   R   R   RC  (   R?   RI   RJ   RK   R:   R`   R   R'  R   R>  R   R?  R   R  (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyRC    s,    			c         C@  s/   |  j  |  } | s+ |  j | t |  n  d  S(   N(   R	  R  R   (   R?   RI   RK   R   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   declare_global  s    c         C@  s#   | d  k	 r |  j j |  n  d  S(   N(   R^   R  R   (   R?   Rf  (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyRe    s    c         C@  sR   | d  k r d  S| j r/ |  j j | j  n  | j rN |  j j | j  n  d  S(   N(   R^   R   R  R   R   (   R?   R   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyRg    s    		c      
   C@  sH  | rF |
 d k rF |
 d k p! | s7 t  | d d  n  | } d } n d  } |  j |  } | r&| r&| j } | j o | j s d  } q&| j } | r | s | j r |  j | | |  n  | r | j s | r| j	 r| r| | j	 k	 rt
 | d  qn  | r&| j	 r&| | _	 q&n  | s3| ret j | | | |
 d k d | } | | _ | | _ | d  k	 r| | _ n  |
 d k r| | _ n |  j | _ |	 r|	 | _ n |  j t j |  | _ |  j | | | d |
 d	 d d
 | } t | _ | r| | _ n4 | j s5|  j t j |  | _ n t
 | j d  |  j |  |  j j |  n  | j s| sz| r8t d | d |  d |
  } |  j  j!   | _  | r| j r| j" | j  n  | j# |  |  j$ j |  q8nL | r| j j rt
 | d |  n& | r8| j j% r8t
 | d |  n  | rJd | _& n  | r\| | _ n  |
 d k r| j' |
 k rt
 | d | | j' f  n  | rd | _( n  | r| j r| j | k rt
 | d  n  | | _ n  | r| j) r| j) | k rt
 | d  n  | | _) n  |  j  j* d  r;t | j _+ n  t | _, | S(   NR   R   s6   ctypedef only valid for 'extern' , 'public', and 'api'i   i    s-   Base type does not match previous declarationt
   check_sizeR`   R   R   s5   Object name required for 'public' or 'extern' C classRI   R   s   C class '%s' already defineds    C class '%s' already implementedi   RH   s&   Class '%s' previously declared as '%s's4   Object struct name differs from previous declarations2   Type object name differs from previous declarationt   final(-   R   R^   R	  RJ   Rn   R  R   t   definedR  R  R   R   t   PyExtensionTypeRK   t   buffer_defaultst   objtypedef_cnameR  R   R  R   R   t   typeptr_prefixR   R   Ro   R  R   t   objstruct_prefixt   attach_var_entry_to_c_classR   R   R  R  t   copyt   declare_inherited_c_attributesR  R   t   implementedR   R`   R   t   typeobj_cnameRN  R  R   (   R?   RI   RK   R   t   implementingR  R  R  R  R  R`   R  R   R  R  R   R  R   RJ   R   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   declare_c_class  s    													c         C@  s  | j  } | j r= | j j r= d t j | j j f | _ n | j r | j j r t | j j  } | j } xF | r | j s | t | j j  k r Pn  | j r d  S| j } qp Wt j | _ n  | j r|  j	 t j
 | j  | _ |  j	 t j | j  | _ n  d  S(   Ns   %s.%s(   RJ   R  t   vtabslot_cnameR   t   obj_base_cnameR   R   R   t   is_builtin_typeR   t   vtabstruct_prefixRI   t   vtabstruct_cnamet   vtabptr_prefixt   vtabptr_cname(   R?   R   RJ   t   entry_countR  (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   allocate_vtable_names:  s"    			"		c         C@  s>   x7 |  j  D], } | j j s
 t | j d | j  q
 q
 Wd  S(   Ns(   C class '%s' is declared but not defined(   R   RJ   R   R   RK   RI   (   R?   R   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   check_c_classes_pxdW  s    c         C@  s   | j  } | j } | j } | j s; t | j d |  n  | d k rl | j rl |  j t j	 |  | _ n  | j r xE | j j
 D]4 } | j r | j r t | j d | j  q q Wn  | j r |  j t j | j  | _ n  d  S(   Ns(   C class '%s' is declared but not definedR   s)   C method '%s' is declared but not defined(   RJ   RI   R`   R   R   RK   R  R   R   t   typeobj_prefixR   R   R   R  t   vtable_prefixt   vtable_cname(   R?   R   RJ   RI   R`   t   method_entry(    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   check_c_classg  s    						c         C@  sw   d } | r d |  j  GHn  xU |  j D]J } | rb d | j | f GHd | j f GHd | j f GHn  |  j |  q% Wd  S(   Ni    s&   Scope.check_c_classes: checking scope s   ...entry %s %ss   ......type = s   ......visibility = (   R   R   RI   RJ   R`   R  (   R?   t   debug_check_c_classesR   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   check_c_classes~  s    c         C@  s   x{ |  j  j   D]j \ } } | j r | j rz | j |  k rz | j d k rz | j rz | j rz t | j	 d |  qz q q Wd  S(   NR   s3   Non-extern C function '%s' declared but not defined(
   R   R   Rg   R   R   R`   R   R   R   RK   (   R?   RI   R   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   check_c_functions  s    		

c      	   C@  st   d d l  m } t d | j d | j d | j d | j j  } d | _ d | _	 d | _
 | j | _ | | _ d  S(   Ni   (   R  RI   RJ   RK   R:   (   RG   R  RF   RI   t	   type_typeRK   RJ   R  Rf   Rb   R}   R   R   (   R?   R   R  RB  (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR    s    					c         C@  s   |  j  S(   N(   t   cpp(   R?   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR     s    c         C@  s$   d d l  m } |   j |   d  S(   Ni   (   t   PyObjectTypeInferer(   Rk  R  Rl  (   R?   R  (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyRl    s    N(    ($   RB   RC   Ry  R  t   is_cython_builtinR  R@   R   R   R^   R  R#  R)  R  R  R  RD   Rn  R  R  R  R  R  RC  R  Re  Rg  R   R	  R
  R  R  R  R  R   Rl  (    (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR  R  sL   	&				$								7						l							R   c           B@  sn   e  Z e Z e Z d
 d   Z d   Z d   Z d
 d d d d d  Z	 d   Z
 d   Z d   Z d	   Z RS(   c         C@  s/   | d  k r | } n  t j |  | | |  d  S(   N(   R^   R   R@   (   R?   RI   R   R   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR@     s    	c         C@  s   | | S(   N(    (   R?   R   RI   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR     s    c         C@  sk   |  j  t j |  } |  j | | | | d  } d | _ | j rN d | _ n  d | _ |  j j	 |  | S(   NRH   i   t   0(
   R   R   R%  R   Rf   R  RL   Rw   R   R   (   R?   RI   RJ   RK   R:   R   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   declare_arg  s    			RH   i    c	   
      C@  s   | d
 k r  t  | d |  n  t j |  | | | d | d | d | d | d | }	 |	 j j rt |	 j j |	 _ n  d	 |	 _ |  j |	 _ |  j	 j
 |	  |	 S(   NR   t   readonlys$   Local variable cannot be declared %sR:   R`   R   R'  R(  i   (   R   R  (   R   R   R  RJ   R  RL   Rx   t   _in_with_gil_blockR   R   R   (
   R?   RI   RJ   RK   R:   R`   R   R'  R(  R   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR    s    	c         C@  sH   |  j  |  r" t | d d  n" |  j   j |  } | |  j | <d  S(   Ns   '%s' redeclared  i    (   R	  R   R   RO  R   (   R?   RI   RK   R   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR    s    c         C@  s   |  j  |  } | rL | j |  k rL | j rL t | d |  | j   n9 |  j |  } | d  k sq | j r t | d |  n  d  S(   Ns   '%s' redeclared as nonlocals"   no binding for nonlocal '%s' found(   R	  R   Rz   R   RS   R  R^   (   R?   RI   RK   t
   orig_entryR   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   declare_nonlocal  s    c         C@  s   t  j |  |  } | d  k	 r | j } x | j r? | j } q* W| |  k	 r | j r t | j d  rv t d   n  t	 | _
 t | |   } t	 | _ | |  j | <| Sn  | S(   Nt   scope_classs#   lookup() after scope class created.(   R   R  R^   R   Rv  R   Ru  R  R   R   Ry   R   Rf   R   (   R?   RI   R   t   entry_scopet   inner_entry(    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR    s    			c         C@  s   x |  j    D] } x | j j   D] } | j r | j j } |  j rS | | _ q | j t j	  r | t
 t j	  d } n  d | | f | _ q# | j r# | j | _ d t j	 | j f | _ q# q# Wq Wd  S(   Ni   s   %s->%s(   R   R   R  Rz   R   R:   Rw  R7   R   t   cur_scope_cnameR   Ry   t   original_cname(   R?   t   outer_scope_cnameR   R   R:   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   mangle_closure_cnames  s    			N(   RB   RC   RD   t   has_with_gil_blockR  R^   R@   R   R  R  R  R  R  R#  (    (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR     s   					t   GeneratorExpressionScopec           B@  s\   e  Z d  Z e Z d   Z d   Z d	 d d d e d  Z e	 d  Z
 d   Z d   Z RS(
   s   Scope for generator expressions and comprehensions.  As opposed
    to generators, these can be easily inlined in some cases, so all
    we really need is a scope that holds the loop variable(s).
    c         C@  s   | } x | j  r | j } q	 W| j   j t j  } t j |  | | |  | j |  _ d t j	 t
 |  | f |  _ x( | j  s | j s | j r | j } q{ W| j |  _ | j j |   d  S(   Ns   %s%d%s(   Rv  R   R   R   R   t   genexpr_id_refR   R@   R  R8   R   t   genexp_prefixRt  Rs  R   R   R   t   add(   R?   R   R   RI   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR@   '  s    c         C@  s    d |  j  |  j j | |  f S(   Ns   %s%s(   R'  R   R   (   R?   R   RI   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR   8  s    RH   i    c	         C@  s   | t  k r< |  j j |  }	 |	 r< |	 j r< |	 j } q< n  d |  j |  j j t j	 | pc |  j
    f } |  j | | | | |  }
 t |
 _ |  j j r t |
 _ n	 t |
 _ t |
 _ |  j j |
  |
 |  j | <|
 S(   Ns   %s%s(   R	   R   R  Rf   RJ   R'  R   R   R   R%  R   R   R   Ry  Rb   Rx   R{   R   R   R   (   R?   RI   RJ   RK   R:   R`   R   R'  R(  R   R   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR  ;  s    1			c         C@  s   |  j  j | | |  S(   N(   R   R.  (   R?   RI   RK   R-  (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR.  Q  s    	c         C@  s   |  j  j | |  S(   N(   R   R2  (   R?   R   RK   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR2  U  s    c         C@  s   |  j  j |  S(   N(   R   R4  (   R?   R3  (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR4  X  s    N(   RB   RC   R   R   Rv  R@   R   R^   R  RD   R.  R2  R4  (    (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR%     s   			t   ClosureScopec           B@  s&   e  Z e Z d d   Z e d  Z RS(   c         C@  s0   t  j |  | | |  d t j | f |  _ d  S(   Ns   %s%s(   R   R@   R   t   closure_scope_prefixt   closure_cname(   R?   RI   t
   scope_nameR   R   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR@   `  s    c         C@  s   t  j |  | | | d d S(   NR`   RH   (   R   R.  (   R?   RI   RK   R-  (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR.  m  s    N(   RB   RC   R   Ru  R^   R@   RD   R.  (    (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR)  \  s   R  c           B@  sP   e  Z d  d  Z d d d d d e e d  Z d d d d d d e d  Z RS(   t   ?c         C@  s   t  j |  | d  d   d  S(   N(   R   R@   R^   (   R?   RI   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR@   t  s    RH   i    c         C@  s   | s* | } | d k r* t  |  } q* n  | j rE t j |  } n  |  j | | | | |  } d | _ |  j j |  | j r |	 r t	 | d  n  | j
 r |
 r t	 | d  n  | d k r t	 | d |  n  | S(   NRH   i   s/   C struct/union member cannot be a Python objects-   C struct/union member cannot be a memory views+   C struct/union member cannot be declared %s(   R;   Rg   R   R  R   Rf   R   R   R  R   R   (   R?   RI   RJ   RK   R:   R`   R   R'  R(  t   allow_pyobjectt   allow_memoryviewR   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR  w  s     		c         C@  s5   |
 r t  | d  n  |  j | | | d | d | S(   Ns0   C struct/union member cannot be declared 'cpdef'R:   R`   (   R   R  (   R?   RI   RJ   RK   R:   R`   R   R'  R   R>  R?  (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyRC    s    N(    (   RB   RC   R@   R^   RD   R  RC  (    (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR  q  s   	t
   ClassScopec           B@  s   e  Z d    Z d   Z RS(   c         C@  s,   t  j |  | | |  | |  _ d  |  _ d  S(   N(   R   R@   t
   class_nameR^   R   (   R?   RI   R   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR@     s    	c      	   C@  s   t  j |  |  } | r | S| d k r t d d t j t t j d t d   g d d   } t j	 j
 d d  | _ |  j |  d | _ n  | S(   Nt   classmethodt   __Pyx_Method_ClassMethodRG   i    t   ClassMethods   CythonFunction.ci   (   R   R  RF   R   t	   CFuncTypeR   t   CFuncTypeArgR^   R   t   UtilityCodet   load_cachedR   Rg  Rg   (   R?   RI   R   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR    s    $(   RB   RC   R@   R  (    (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR0    s   		t   PyClassScopec           B@  s\   e  Z d  Z d   Z d   Z d   Z d
 d d d d d  Z d   Z d   Z	 d	   Z
 RS(   i   c         C@  s   |  j  |  S(   N(   t   mangle_special_name(   R?   RI   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR     s    c         C@  sN   | rJ | j  d  rJ | j d  rJ t d |  j j d  | f  } n  | S(   NR4   s   _%s%st   _(   R7   t   endswithR   R1  t   lstrip(   R?   RI   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR:    s    %%c         C@  s   |  j  |  } t j |  |  S(   N(   R:  R0  R	  (   R?   RI   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR	    s    RH   i    c	   
      C@  sp   |  j  |  } | t k r$ t } n  t j |  | | | d | d | d | d | d | }	 d |	 _ d |	 _ |	 S(   NR:   R`   R   R'  R(  i   (   R:  R	   R   R   R  Rc   Re   (
   R?   RI   RJ   RK   R:   R`   R   R'  R(  R   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR    s    			c         C@  s   |  j  |  } | rL | j |  k rL | j rL t | d |  | j   n< |  j |  } | d  k r{ t | d |  n | |  j | <d  S(   Ns   '%s' redeclared as nonlocals"   no binding for nonlocal '%s' found(   R	  R   Rz   R   RS   R  R^   R   (   R?   RI   RK   R  R   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR    s    c         C@  sH   |  j  |  r" t | d d  n" |  j   j |  } | |  j | <d  S(   Ns   '%s' redeclared  i    (   R	  R   R   RO  R   (   R?   RI   RK   R   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR    s    c         C@  s   |  j  j |  S(   N(   R   t   add_default_value(   R?   RJ   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR>    s    N(   RB   RC   Rs  R   R:  R	  R^   R  R  R  R>  (    (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR9    s   					R  c        	   B@  s   e  Z d  Z e Z e Z e Z e Z e Z e Z	 e Z
 d   Z d   Z d   Z e e d  Z d d d d d d  Z e d  Z d	   Z d d d d d d d e d
  Z e d  Z d d  Z d   Z d   Z RS(   i   c         C@  sh   t  j |  | |  | d k rR | j t j |  |  _ | j t j |  |  _ n  g  |  _ g  |  _	 d  S(   NR   (
   R0  R@   R   R   t   methtab_prefixR  t   gstab_prefixt   getset_table_cnamet   property_entriest   inherited_var_entries(   R?   RI   R   R`   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR@     s    	c         C@  sl   |  j  r# |  j j d t  r# t S|  j j } | rQ | j d  k	 rQ | j j	   S|  j j
 rh |  j j St S(   Nt   no_gc(   t   has_cyclic_pyobject_attrsR  RN  RD   R   t   parent_typeR  R   R^   t   needs_gcR  t   is_gc_simple(   R?   R  (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyRG    s    c         C@  s    |  j    o |  j j d t  S(   s   
        Do we need to generate an implementation for the tp_clear slot? Can
        be disabled to keep references for the __dealloc__ cleanup function.
        t   no_gc_clear(   RG  R  RN  RD   (   R?   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   needs_tp_clear%  s    c         C@  s   g  } g  } g  } x |  j  D] } | j j ru | sL |  j sL | j d k r | s_ | j j rr | j |  qr q q | j t j k r | j |  q | j j	 r | j |  q q W| p | p | } | | | | f f S(   NR5   (
   R   RJ   R  t   is_closure_class_scopeRI   RH  R   R   t   c_py_buffer_typeR   (   R?   t   include_weakreft   include_gc_simplet   py_attrst
   py_bufferst   memoryview_slicesR   t   have_entries(    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   get_refcounted_entries,  s    RH   i    c	   
      C@  st  | r|  j  r t | d  n  |  j rI t |  rI t | d |  n  | ss | } | d k rs t |  } qs n  | j r | d k r | j |  |  j t j	 d   n  |  j
 | | | | |  }	 d |	 _ |  j j |	  | j r t |  _ nn | j rt |  _ nY | j re|  j s*| d k ret |  _ | j sV| j sV| j j   ret |  _ qen  | d k rt | d
 |  n  | d k rt |	 _ |  j r| d k rt | d  n  | j p| j |   st | d |  qn	 t |	 _ |	 S| t k rt } n  t j |  | | | d | d | d | d | d | }	 d |	 _ d |	 _  d |  j! j" |  _# |	 Sd  S(   NsV   C attributes cannot be added in implementation part of extension type defined in a pxds/   The name '%s' is reserved for a special method.RH   R   s   #include <new>i   R5   R   R  s1   Attribute of extension type cannot be declared %ss9   Special attribute __weakref__ cannot be exposed to Pythons7   C attribute of type '%s' cannot be accessed from PythonR:   R`   R   R'  R(  s   (PyObject *)%s(   RH   R   R  (   R   R  ($   R  R   RK  R   R;   Rp   R&  Re  R   R7  R   Rf   R   R   R   R   t   has_memoryview_attrst   has_cpp_class_attrsR  t   has_pyobject_attrsR  R   RG  RE  R   t   can_coerce_to_pyobjectRD   R	   R   R   R  Rd   Rc   RF  R  R  (
   R?   RI   RJ   RK   R:   R`   R   R'  R(  R   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR  ?  s^    	
				
					c         C@  s   | t  k r2 |  j d  ru t | d |  qu nC | d k ru x4 t  D]) } |  j |  rE t | d |  qE qE Wn  | d k r t | d  n  |  j | t | d d } t |  } | r | | _ d | _ n t | _ d | _ |  j	 j
 |  | S(	   Nt   __richcmp__s$   Cannot define both % and __richcmp__t   __new__sv   __new__ method of extension type will change semantics in a future version of Pyrex and Cython. Use __cinit__ instead.R`   R   i   i    (   R   R	  R   R  R   R   R*  R   R   R   R   (   R?   RI   RK   R-  R^  R   t   special_sig(    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR.  }  s&    				c         C@  sl   |  j  r% | d k r% t d  } n  t j |  |  } | rh | j rh |  j j sh |  j j se d  Sqh n  | S(   NRY  t	   __cinit__(	   RK  R   R0  R	  Ri   RF  R  R  R^   (   R?   RI   R   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR	    s    
c      	   C@  s  t  |  r) |  j j r) t | d  n  | j } | j s | sQ t | d  q |  j j | d j  s t | d | d j | |  j f  q n  |  j |  } | d  k r t
 |  } n  | rG| j s t | d | d  q| r| j rt | d |  n  | j r)| j r)t | d  q| j | j d d	 rq| j | j j k rq| j j | j  | _ q| j | j d d	 r'| j | j j k r'|  j r | r | j | j d d	 d
 d	 r t | d | |  j f d  t | j d d  n  |  j | | | | d d d |	 } qt | d  t | j d  nD |  j rmt | d | |  j f  n  |  j | | | | | |	  } | r|  j t j |  | _ n  |
 | _ | | _ d |	 k rt | _  n  |  j j! s| j  s|  j" j# d  rt | _ | j | _$ n  | S(   Ns7   Special methods must be declared with 'def', not 'cdef's   C method has no self argumenti    sC   Self argument (%s) of C method '%s' does not match parent type (%s)s   '%s' redeclared  s   '%s' already defineds'   Overriding final methods is not allowedt
   as_cmethodi   t   as_pxd_definitions   Compatible but non-identical C method '%s' not redeclared in definition part of extension type '%s'.  This may cause incorrect vtables to be generated.i   s   Previous declaration is hereR`   R   R>  s2   Signature not compatible with previous declarationsO   C method '%s' not previously declared in definition part of extension type '%s'u   inlineR  (%   R   RF  R  R   R   t   is_static_methodt   assignable_fromRJ   R	  R^   R;   Rg   R   R   Rk   R   t   same_c_signature_asR{  R9  R:  R<  R  t!   same_c_signature_as_resolved_typeR1  RK   R;  R   R   R7  R   R   R   Rl   R  R  RN  R   (   R?   RI   RJ   RK   R:   R`   R   R'  R   R>  R   R?  R   R   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyRC    s^    			!	--'				c   
   
   C@  sL   |  j  |  } t j |  | | | | | | d | }	 d |	 _ | |	 _ |	 S(   NRG  i   (   R	  R0  R;  Rh   R   (
   R?   RI   RJ   RK   R:   R`   R>  RG  R   R   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR;    s    		c      	   C@  sv   t  |  } |  j | | d  | d d d | } t | | t  } d | _ d | _ | | _ | j | _ | | _	 | S(   NR`   R   R   i   (
   R   RC  R^   RF   R   Rf   Ra   R   R   R   (   R?   RI   RJ   R:   R   R   RB  (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR    s    					c         C@  s   |  j  |  } | d  k r9 |  j | | t | d  } n  d | _ | | _ t | d |  j   d |  | _ |  j	 | j _	 |  j
 j |  | S(   NRH   i   R   R   (   R	  R^   R   R   Rr   R   t   PropertyScopeR   R   RF  RB  R   (   R?   RI   R   RK   R   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   declare_property  s    			c      
   @  s    f d   } | j  | j } xQ | D]I   |  j   j |   j    j d  d  } d | _ |  j  j |  q& Wx. | j	 D]"     j j
 r~   j j   q~ q~ Wx| j	 D]     j }   j } | o | j } | s | |  } n  |  j   j   j   j |   j   j d t } d | _   j rqt | _   j | _ |  j | j k s_| j rq  j | _ qqn  | rt | _ | | _ n    j r   j | _ q q Wd  S(   Nc         @  s   d t  j   j f S(   Ns   %s.%s(   R   R  R:   (   R:   (   t
   base_entry(    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   adapt	  s    RH   i   RG  (   RC  R   R   RI   R:   RJ   R^   Rf   R   R   RD  t"   get_all_specialized_function_typesR   Ra   R;  RK   R`   R   R   R   Rk   Rl   R   R   Ri   R   (   R?   t
   base_scopeRe  R   R   R:   RB  Ra   (    (   Rd  s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR  	  s@    										N(    (   RB   RC   Rt  RD   RK  RV  RT  RU  RE  R  R  R@   RG  RJ  R   RS  R^   R  R.  R	  RC  R;  R  Rc  R  (    (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR    s.   			<	<		t   CppClassScopec        	   B@  st   e  Z d  Z d Z d Z d d  Z d d d d d d d  Z d d d d d d	 d e d  Z	 d   Z
 d   Z RS(
   i   c         C@  s|   t  j |  | | d   | j |  _ g  |  _ | d  k	 rx x> | D]3 } |  j | | t j |  d  d  } d | _ q> Wn  d  S(   NR   i   (	   R   R@   R^   R  RC  R   R   t   TemplatePlaceholderTypeRn   (   R?   RI   R   R  t   Tt   template_entry(    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR@   =	  s    	R   i    c
         C@  s0  | s | } n  |  j  |  }
 |	 r |
 d  k	 r |
 j j |  r] |
 j j | j  |
 _ q | j r | j |
 j  r | |
 _ q t | d  n |  j	 | | | | |  }
 d |
 _
 | j r |  j r |  j j   s d |  j j   | f |
 _ q n  | d k r,|	 s| d k r,|  j j |
  n  |
 S(   Ns6   Function signature does not match previous declarationi   s   %s::%sR  s   <init>(   R	  R^   RJ   R8  R9  R:  Rg   R<  R   R   Rf   t   get_fused_typest   empty_declaration_codeR   R   R   (   R?   RI   RJ   RK   R:   R`   R   R'  R(  R   R   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR  G	  s"    		"c      
   C@  s  |  j  j d  d } | | d f k r | d  k r d t j | f } d } t j   | _ | j | _	 d   } g  | j D] } | |  ^ q{ | _ nC | d k r | d  k r d t j | f } d	 } t j   | _ n  | d k rP| j
 rPx\ |  j j D]K } | j j |  } | r | j j
 r t | d
  t | j d  q q Wn  |  j |  } |  j | | | d | d | d | } | r| r| j   | _ n  |
 | _ | | _ | S(   Ns   ::iR@   s   %s__init__%ss   <init>c         S@  sF   |  j  j r> |  j  j r> t j |  j t j |  j   |  j  S|  Sd  S(   N(   RJ   Rp   t   is_referenceR   R6  RI   t
   c_ref_typeRK   (   RX  (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt	   maybe_refk	  s    t   __dealloc__s   %s__dealloc__%ss   <del>sd   Constructor cannot be called without GIL unless all base constructors can also be called without GILs   Base constructor defined here.R   R:   R`   (   s   <init>s   <del>(   RI   R  R^   R   R7  R   t	   CVoidTypeR|  R   t   original_argsR{  RJ   R  R   R  R   RK   R	  R  RU   RM   R   R   (   R?   RI   RJ   RK   R:   R`   R   R'  R   R>  R   R?  R1  Rp  RX  t   baseRd  R   R   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyRC  `	  s6    	(		c         C@  s  | j  } | } x t | d d   r0 | j } q Wt | d d   re g  | j D] } | j ^ qM } n d } x | j | j D]} } | j d k r q| n  | j |  j k r | j n  |  j	 | j | j
 | j d  d  } d | _ d | _ |  j j |  q| Wx\ | j D]Q } |  j | j | j | j | j
 | j d d d	 | j d
 | j } d | _ qWxV | j D]K } | j | k rf|  j | j | j | j | j
 | j  } d | _ qfqfWd  S(   Nt   template_typeR  s   <init>s   <del>R   i   R   i    R>  R   (    (   s   <init>s   <del>(   R   R   R^   Ru  R  RI   RC  R   R   R   R:   RJ   Rf   R   R   R   RC  RK   R`   R   R   R   R   (   R?   R  Rg  Ru  Rj  t   base_templatesRd  R   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR  	  s>    	"
			c      	   C@  s  t  |  j |  j  } | | _ x |  j j   D] } | j rq | j | j | j j |  | j	 | j
 d d q. | j j r x| | j   D]: } | j | j | j j |  | j	 | j
 d | j q Wq. | j | j | j j |  | j	 | j
 | j  q. W| S(   NR   i   R   (   Rh  RI   R   RJ   R   R  Rn   R   RQ  RK   R:   Rg   RU   RC  R   R  R`   (   R?   R  t
   type_entryR   R   R   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyRQ  	  s,    			
	N(    (   RB   RC   R   R^   t   default_constructorRJ   R@   R  RD   RC  R  RQ  (    (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyRh  5	  s   $	'Rb  c           B@  s   e  Z d  Z e d  Z RS(   i   c         C@  sX   t  |  } | rC |  j | | t | d  } d | _ | | _ | St | d  d  Sd  S(   NRH   i   sK   Only __get__, __set__ and __del__ methods allowed in a property declaration(   R   R   R   R   R*  R   R^   (   R?   RI   RK   R-  R*  R   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR.  	  s    		(   RB   RC   Rx  RD   R.  (    (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyRb  	  s   t   CConstScopec           B@  s   e  Z d    Z d   Z RS(   c         C@  s0   t  j |  d | j | j | j  | |  _ d  S(   Nt   const_(   R   R@   RI   R   R   t   const_base_type_scope(   R?   R{  (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR@   	  s    

c         C@  sJ   |  j  j |  } | d  k	 rF t j |  } t j | j  | _ | Sd  S(   N(   R{  R	  R^   R  R   t   c_const_typeRJ   (   R?   RI   R   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR	  	  s
    (   RB   RC   R@   R	  (    (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyRy  	  s   	t   TemplateScopec           B@  s   e  Z d    Z RS(   c         C@  s&   t  j |  | | d   | j |  _ d  S(   N(   R   R@   R^   R  (   R?   RI   R   (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR@   	  s    (   RB   RC   R@   (    (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyR}  	  s   (3   t
   __future__R    R   R  R   R  R  t   ImportErrort   ErrorsR   R   R   t   StringEncodingR   RG   R   R   R   R   R	   t	   TypeSlotsR
   R   R   R   R   R   R   R   R9   R;   t   objectR<   RF   R   R   R}  R  t   const_counterR  R   R%  R)  R  R0  R9  R  Rh  Rb  Ry  R}  (    (    (    s5   lib/python2.7/site-packages/Cython/Compiler/Symtab.pyt   <module>   s^   (		#  r  ld<&#< @