zKc@sddlmZmZmZddlZddlZddlZddlmZmZm Z m Z m Z m Z m Z ddlmZmZmZmZdfdYZdfdYZd efd YZd efd YZd efdYZdefdYZdefdYZdefdYZdefdYZdefdYZdefdYZdefdYZdS(i(twarningterrort InternalErrorN(tpy_object_typet py_type_typet c_int_typetc_char_array_typet CEnumTypetCStructOrUnionTypetPyExtensionType(tpyfunction_signaturetpymethod_signaturetget_special_method_signaturetget_property_accessor_signaturetEntrycBseZdZdZdZdZdZdZdZ dZ dZ dZ dZ dZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"dZ#dZ$dZ%dddZ&dZ'RS(ittprivatecCs1||_||_||_||_||_dS(N(tnametcnamettypetpostinit(tselfRRRRR((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyt__init__ls     cCs(t|d|jt|jddS(Ns('%s' does not match previous declarationsPrevious declaration is here(RRR(RR((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyt redeclaredssN((t__name__t __module__tborrowedRt visibilitytNonetctypet is_builtint is_cglobalt is_pyglobalt is_variablet is_cfunctiont is_cmethodtis_builtin_methodtis_typetis_constt is_propertyt doc_cnamet getter_cnamet setter_cnamet is_self_argtis_declared_generict is_readonlyt func_cnametdoct init_to_nonet as_variabletxdecref_cleanupt in_cincludet as_modulet is_inheritedtpystring_cnamet is_internedtusedt is_specialtdefined_in_pxdtapit utility_codeRR(((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyRsJ6tScopecBseZdZdZdZdZdZd&ZdZ dZ dZ dZ d&dZ dZdZdZd Zd&d Zd&d d d Zd&d dZd&d dZdZdZd dZd&d ddZdZdZdZd&d ddddZd dZdZdZ dZ!dZ"dZ#dZ$dZ%d Z&d!Z'd"Z(d#Z)d$Z*d%Z+RS('iRcCs||_||_||_dt||f}|j}|rh|j||_|j||_n||_||_i|_g|_ g|_ g|_ g|_ g|_ g|_g|_g|_g|_i|_g|_g|_d|_i|_d|_dS(Ns%d%s_ii(Rt outer_scopet parent_scopetlentqualifying_scopet qualify_nametqualified_namet scope_prefixtentriest const_entriest type_entriest sue_entriest arg_entriest var_entriestpyfunc_entriest cfunc_entriestc_class_entriestdefined_c_classestimported_c_classest temp_entriestfree_temp_entriest temp_countertcname_to_entrytpow_function_used(RRR?R@t mangled_namet qual_scope((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyRs4                     cCsd|jj|jfS(Ns<%s %s>(t __class__RRD(R((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyt__str__scCs|jS(N(R@(R((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyRBscCs4|rd||j|fS|jj||jSdS(Ns%s%s%s(RER@tmangleR(RtprefixR((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyRZscCs dtj|f}|j|S(Ns%s%s_(tNamingt pyrex_prefixRZ(RRR[((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pytmangle_internalscCs |jjS(N(R?t global_scope(R((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyR_scCs|j}|r2|j|r2t|d|nt|||d|}|j|_|r{|j||_||||j||||}d|_||_|jj||S(Ni(RcR#RRMRg(RRRRRRRb((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyRzs   c CsUtd|jdtd|jd|jj}d|_d|_d|_||_ dS(NRRRRi( RRRRRt typeptr_cnameR"R R.R2(RRbt var_entry((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pytattach_var_entry_to_c_classs    cCs.|j|}|r|St|d|dS(Ns'%s' is not declared(tlookupR(RRRRb((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pytfindscCsd|}xW|D]O}|j||}|s/dS|jrD|j}q t|d|jdSq W|S(Ns'%s' is not a cimported module(RRR5RRD(RtpathRRsRRb((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pytfind_imported_modules   cCs}|\}}|j||}|ry|j|}|sud|}|red|dj|f}nt||n|SdS(Ns'%s' is not declareds%s in module '%s't.(RRptjoinR(Rtmodule_and_nameRt module_pathRRsRbtmess((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pytfind_qualified_names  cCs.|j|p-|jr*|jj|p-dS(N(RpR?RR(RR((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyRscCs|jj|dS(N(RFtgetR(RR((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyRpscCs1|j|}|s-|j|td}n|S(N(RpRRR(RRRb((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyt lookup_targetscCsx7|jD],}|j|kr |jj||jSq W|j}|d|_dtj|f}td||}d|_|j rd|_ n||j |j<|j j ||jS(Nis%s%dRt0(RRRtremoveRRSR\R]RR9t is_pyobjectRRTRQRg(RRRbtnR((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyt allocate_temps      cCs |jtS(N(RR(R((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pytallocate_temp_pyobjectscCsM|s dS|j|}||jkr9td|n|jj|dS(Ns-Temporary variable %s released more than once(RTRRRRg(RRRb((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyt release_temps  cCs)g|jD]}||jkr |^q S(N(RQRR(RRb((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyt temps_in_usescCsdS(N((Rtcode((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyt&generate_library_function_declarationsscCs(x!|D]}||jkrdSqWdS(Nii(RF(RtnamesR((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyt defines_anys N(,RRtis_py_class_scopetis_c_class_scopeRER4tnogilRt return_typet reraise_usedRRYRBRZR^R_RcRCRfRiRoRyRtRuR~RRRRRRRRRRRRpRRRRRRR(((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyR>xsT                        -    t BuiltinScopecBsPeZdZdZddZdZdddZdZdZ RS(cCs#tj|dddi|_dS(Nt __builtin__(R>RRt type_names(R((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyR-scCs%|j||t|}d|_|S(Ni(RcRR(RRRRb((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyR1s cCsI|j|||d}|r*||_nd|_d|_d|_|S(Ni(RcRRR"R R.(RRRRRRb((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pytdeclare_builtin_constant6s    cCs)|j||dd}d|j|<|S(NRi(RiRR(RRRRb((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pytdeclare_builtin_c_type?s cCsp|j||d|}||_|rl|dkr<|}nt||t}d|_d|_||_n|S(Nt*i(RRR=RRR"RR2(RRRRt python_equivR=RbR((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pytdeclare_builtin_cfunctionDs      c Cst|dddd}d|_d||_||_d|_td|d|dd }|j||j||d ddd d d }|j |d|j |<|S( NRxiRnRs(&%s)RR?RRRRhi( R Rt module_nameRtobjstruct_cnameRt CClassScopeRvRiRR(RRRt typeobj_cnameRRsRb((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pytdeclare_builtin_classSs        cCs|j|}|jS(N(RpR(RRRb((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyt find_typeasN( RRRRRRRRRR(((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyR(s     t ModuleScopec BseZdZdZdZdZdZdZdZdZ dddd Z d Z d Z ddddddddd Zd ZdZdZRS(icCs|jd}tj||||||_||_tj|_tj|_tj |_ d|_ ddg|_ g|_ |jjj|_d|_g|_i|_g|_dS(NRRsPython.hsstructmember.hi(tfind_submoduleR>RRtcontextR\t module_cnamet moddict_cnametmodule_dict_cnametmethtable_cnametmethod_table_cnameR0tpython_include_filest include_filesR?Rtcopytpxd_file_loadedtcimported_modulesttypes_importedtpyrex_include_files(RRt parent_moduleRR?((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyRys          cCs|S(N((R((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyR_scCstj|||}|S(N(R>R(RRRRb((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyRscCs5||jkr1||jkr1|jj|ndS(N(RRRg(Rtfilename((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pytadd_include_filescCs&||jkr"|jj|ndS(N(RRg(RRs((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pytadd_imported_modulescCs4||jkr||j|RRRtis_extension_typeRR!Rtnamespace_cnameR RKRg(RRRRRRRRb((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyRs    cCs/|j|}|s+|j|t|ndS(N(RpRR(RRRRb((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pytdeclare_globalscCsKdtj|jf}|jd7_td||}|jj||S(Ns%s%diR(R\tdefault_prefixtdefault_counterRtdefault_entriesRg(RRRRb((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pytadd_default_values c  Cs||j|} | r| j} | jo-| js9d} q| j} | oN| j}|pa|oa| }|j| |||s|r| jr|| jk rt |dn|| _qn| st |||} |dkr|| _ n |j | _ |j tj|| _|j|| |d|dd} | rM| jrM| j| _n4| jsq|j tj|| _nt | jd|j| |jj| n| j} | s,|s|rtd|d|d|d | j} |r| j|jn| j| |jj| q{|j||nO|rO| jrOt |d |n#|rr| jrrt |d |n|| _ |rd | _!n|r|| _n|d kr| j"|krt |d|| j"fn| rd | _#n| rx| jr2| jr#| j| jkr#t |dn| j| _n| j$rx| j$rf| j$| j$krft |dn| j$| _$qxn| S(Ns-Base type does not match previous declarationRRRhis5Object name required for 'public' or 'extern' C classRR?tno_gcsC class '%s' already defineds C class '%s' already implementediRs&Class '%s' previously declared as '%s's4Object struct name differs from previous declarations2Type object name differs from previous declaration(%RpRR&RRRstdefinedRtRnRR RRDRZR\ttypeptr_prefixRRiRR4tobjstruct_prefixRRRNRgRRtdeclare_inherited_c_attributesRvRHRwt implementedR?R;RR<R(RRRRht implementingRRnRRxR<toptionsRbRRsRt definitive((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pytdeclare_c_classs~                     cCs$|r |j r t|dndS(Ns7Forward-referenced type must use 'cdef', not 'ctypedef'(R4R(RRxR((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyRwMscCs|j}|jr=|jjr=dtj|jjf|_n$|jra|jjratj|_n|jr|jtj|j |_ |jtj |j |_ ndS(Ns%s.%s( RRntvtabslot_cnameR\tobj_base_cnameRsRMRZtvtabstruct_prefixRtvtabstruct_cnametvtabptr_prefixt vtabptr_cname(RRbR((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pytallocate_vtable_namesQs  cCsHd}|rdG|jGHnx&|jD]}|r\dG|jG|GHdG|jGHdG|jGHn|j}|j}|j}|jst|jd|n|dkr|j r|j t j ||_n|jrxE|jj D]4}|j r|j rt|jd|jqqWn|jr%|j t j|j|_q%q%WdS( Nis%Scope.check_c_classes: checking scopes...entrys ......type =s......visibility =s(C class '%s' is declared but not definedRs)C method '%s' is declared but not defined(RDRNRRRRsRRRRZR\ttypeobj_prefixRMR6R/Rt vtable_prefixt vtable_cname(Rtdebug_check_c_classesRbRRRt method_entry((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pytcheck_c_classesas,        N(RRtgil_usedRR_RRRRRRRRRRRwRR(((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyRgs"          V  tDefinitionScopecBs,eZdZdZdZdZRS(cCs,tj||||||_i|_dS(N(RRRtmodule_entries(RRRR((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyRs cCs%|jjj|d|jd|S(Nt relative_toR(R_Rt find_moduleR(RRR((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyRscCsD|j|}|s@t|d|d|j}||j|RpR(RRRb((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyRpscCs|jj||S(N(RR(RRR((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyRscCs|jjtj|dS(N(RRR(R((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyRs (RRRRpRR(((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyRs   t LocalScopecBsAeZdZdZddZddddZdZRS(cCstj||||dS(N(R>R(RRR?((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyRscCs||S(N((RR[R((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyRZsicCsh|jtj|}|j||||}d|_||_|jrTd|_n|jj ||S(NiR( RZR\RRcR"R.RRRJRg(RRRRtreadonlyRRb((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyt declare_args    RcCsa|dkr t|d|ntj|||||||}|j|_|jj||S(NRjRs$Local variable cannot be declared %s(spublicsreadonly(RR>RRR1RKRg(RRRRRRRRb((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyRs  cCsE|j|rt|dn"|jj|}||j|RRt base_scopestis_cplustextendtcplus_constructors(RRRt constructorstbase((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyRs   cCsLtj||}|sHx-|jD]}|j|}|r"Pq"q"Wn|S(N(R>RpR(RRRbR((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyRps RcKs}|s|}n|j||||}d|_|jj||jrYt|dn|dkryt|d|n|S(Nis/C struct/union member cannot be a Python objectRs+C struct/union member cannot be declared %s(RcR"RKRgRR(RRRRRRtkwdsRb((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyR"s     cKs\|jst|dn)|dkrB||_|jj|dS|j||||dS(Ns*C struct/union member cannot be a functionR(RRRRRgR(RRRRR((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyR2s   N(RRtFalseRRpRRR(((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyR s t ClassScopecBseZdZdZRS(cCs,tj||||||_d|_dS(N(R>Rt class_nameRR0(RRR?((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyRIs cCs|jj|S(N(R?tadd_string_const(RRe((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyRNs(RRRR(((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyR@s t PyClassScopecBs;eZdZddddZdZdZdZRS(iRicCs:tj|||||||}d|_|j|_|S(Ni(R>RR!tclass_obj_cnameR(RRRRRRRRb((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyRZs   cCs|jj|S(N(R?R(RR((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyRescCs|jj|dS(N(R?R(RR((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyRhscCs|jj|S(N(R?R(RR((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyRnsN(RRRRRRRR(((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyRRs   RcBseZdZddZdZdZddddZdZdZ d Z d Z dddddd Z d Z d ZdZRS(iicCstj||||dkrj|jtj||_|jtj||_|jtj||_ nd|_ g|_ g|_ g|_ g|_d|_d|_||_dS(NRi(RRRZR\tmethtab_prefixRt memtab_prefixtmember_table_cnamet gstab_prefixtgetset_table_cnamethas_pyobject_attrstpyattr_entriestpublic_attr_entriestproperty_entriestinherited_var_entriesRRR(RRR?RR((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyRs        cCs(|jp'|jjo'|jjjjS(N(Rt parent_typeRnRstneeds_gc(R((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyRs  cCs+|j||p||d}d|_|S(Ni(RcRR"(RRRRRb((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pytdeclare_builtin_vars RcCsT|jrt|dnt|r9t|d|n|sH|}n|j||||}||_d|_|jj||jr|dkrd|_ |j j|n|d krt|d|n|d kr+|j r|j j||dkr(t|d q(q+t|d |n|dkrP|j rPt|d n|S(NsEC attributes cannot be added in implementation part of extension types/The name '%s' is reserved for a special method.it __weakref__RRjRs1Attribute of extension type cannot be declared %ss9Special attribute __weakref__ cannot be exposed to Pythons7C attribute of type '%s' cannot be accessed from PythonsFNon-generic Python attribute cannot be exposed for writing from Python(sprivatespublicsreadonly(spublicsreadonly(RRR RcRR"RKRgRRRtpymemberdef_typecodeRR(RRRRRRRRb((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyRs<             cCs|dkr"t|dd}n|j|}|rS|jrS|j||n|j||t|}t|}|rd|_||_nt |_|j j ||S(Nt__new__sk__new__ method of extension type will change semantics in a future version of Pyrex. Use __cinit__ instead.t __cinit__i( RRpR%toverriding_builtin_methodRcRR R:RR RLRg(RRRRbt special_sig((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyRs       cCs$t|d||jjjfdS(Ns1Cannot override builtin method '%s' of class '%s'(RRRnR(RRR((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyRs cCs%|dkrd}ntj||S(NRR(RRp(RR((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyRps  cCs(tj|||d|}d|_|S(Ni(RRRR%(RRRRRb((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pytdeclare_builtin_methods c Csot|rt|dn|j} | s;t|dn)| djj|jsdt|dn|j|} | r | js| j|qJ| j r|j ||qJ|r| j rt|d|n| jj|ddsJt|dt| j d qJn>|j r)t|d |n|j||||pA||} |rk|jtj|| _ n| S( Ns7Special methods must be declared with 'def', not 'cdef'sC method has no self argumentis4Self argument of C method does not match parent types'%s' already definedt as_cmethodis-Signature does not match previous declarationsPrevious declaration is heresJC method '%s' not previously declared in definition part of extension type(R RtargsRRRRpR#RR%RR/RRRRZR\R( RRRRRRRhR<RRRb((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyRs4       !cCs+tj||||||}d|_|S(Ni(RRR$(RRRRRRRb((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyRs cCsn|j||t|}d|_||_t|d|jd||_|j|j_|jj ||S(NiR?R@( RcRR(R0t PropertyScopeR_RsRRRg(RRR0RRb((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pytdeclare_property s   csfd}xX|j|jD]F|jj|jjd}d|_|jj|q Wxo|j D]dj}j r|j jRRRRRRRRRR(((s9/usr/lib/python2.7/site-packages/Pyrex/Compiler/Symtab.pyts&   4"g?)"0)6