ó ǽKc@s_ddlZddlZddlmZddlmZmZmZddlm Z e Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlmZddlmZddlmZmZdejejfd „ƒYZd d gZd d gZddie jd6e jd6gZddede jƒgZdS(iÿÿÿÿN(tStringIO(tCPtrTypetpy_object_typettypecast(tset(terror(R(t open_new_filetreplace_suffixt ModuleNodecBs´eZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z d „Z d „Z d „Zd „Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„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.„Z0d/„Z1d0„Z2d1„Z3d2„Z4d3„Z5d4„Z6d5„Z7d6„Z8d7„Z9d8„Z:d9„Z;d:„Z<d;„Z=d<„Z>d=„Z?d>„Z@d?„ZAd@„ZBdA„ZCdB„ZDdC„ZEdD„ZFdE„ZGdF„ZHdG„ZIdH„ZJdI„ZKdJ„ZLdK„ZMRS(LcCs |j|_|jj|ƒdS(N(tdoctbodytanalyse_declarations(tselftenv((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyR $s cCsÏ|j|ƒ|jƒ|jj|ƒtj|_|j|ƒ|_|j ƒrs|j ƒ|_ |j |j ƒn|j s…|jr˜|j||ƒn|j||ƒ|j|||ƒ|j||ƒdS(N(R tcheck_c_classesR tanalyse_expressionst PyrexTypest c_void_typet return_typetfind_referenced_modulestreferenced_modulesthas_imported_c_functionstallocate_temp_pyobjecttmodule_temp_cnamet release_tempt timestampst recursivetgenerate_dep_filetgenerate_c_codetgenerate_h_codetgenerate_api_code(R R toptionstresult((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pytprocess_implementation(s    cCs9x2|jD]'}x|jD]}|jrdSqWq WdS(Nii(Rt cfunc_entriestdefined_in_pxd(R tmoduletentry((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyR7s   c Csý|j}t|jƒ}x/|D]'}x|jD]}|j|ƒq/WqWt|ƒdksb|rùt|ƒ}|jƒt|jdƒ}t |dƒ} zOx&|d D]}| j d|j ƒq§Wx|D]} | j d| ƒqÌWWd| j ƒXndS(Nis.deptwiÿÿÿÿs cimport %s s include %s ( RRtpyrex_include_filestaddtlentlisttsortRtc_filetopentwritetqualified_nametclose( R R R tmodulestincludesR$tincludet include_listtdep_filetftpath((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyR>s      cCsšd„}|j}||jƒ||jƒ}||jƒ||jƒ}||jƒ||jƒ}||jƒ||jƒ} |sš|sš|sš| r–t|jdƒ|_tj t |jƒƒ} |j rút|jdƒ|_ tj |j ƒ} nd} tj|jjddƒ} | j| ƒ|j| ƒ|j|| ƒ| jdƒ| jdtj|j|ƒƒ|r®| jdƒx$|D]} |j| | | ƒqŽWn|rè| jdƒx$|D]} |j| | | ƒqÈWn| r>| jdƒx@| D]5} |j| j| ƒ| r|j| j| ƒqqWn| jdƒ| jdƒ| jdƒ| jd |jƒ| jdƒ| jdƒndS( NcSs&g|D]}|jdkr|^qS(Ntpublic(t visibility(tentriesR%((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pytpubRs s.hs.pxit.t__ts #ifndef %ss#endifsPyMODINIT_FUNC init%s(void);(tdefinition_scopet type_entriest var_entriesR"tc_class_entriesRR,th_filetCodet CCodeWriterRt generate_pxiti_filetPyrexCodeWritertNonetNamingth_guard_prefixR/treplacet put_h_guardt"generate_extern_c_macro_definitiontgenerate_type_header_codetputlntapi_guard_prefixtapi_nametgenerate_public_declarationtgenerate_cclass_header_codettypetgenerate_cclass_include_codet module_name(R R RR R;tdenvth_typesth_varsth_funcsth_extension_typesth_codeti_codetguardR%((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyRQsN      !          cCsb|jdtj|jj|jddƒfƒ|r^|jd|jj|jddƒƒndS(Ns%s %s;t dll_linkaget DL_IMPORTscdef extern %stpyrexi(RPRJtextern_c_macroRUtdeclaration_codetcname(R R%R]R^((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyRS}s   cCs|jjddƒS(NR<R=(R/RL(R R ((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyRR†sc CsÃ|j}g}g}d}x*|jD]}|jr%|j|ƒq%q%Wx*|jD]}|jrR|j|ƒqRqRWxI|j|jD]7}|jdkr«|j|ƒn|jr†d}q†q†W|sÍ|r¿t|jdƒ|_t j t |jƒƒ}|j |ƒ} t j| } |j| ƒ|jdƒ|jr\|jdtjj|jƒƒnxU|D]M}|j} |jdƒ|jd| jƒ|jd | j| jfƒqcW|r|jdƒx=|D]2}t|jƒ} |jd | j|jƒƒqÎWn|jdƒ|jt jd ƒ|jtdƒ|jdƒ|jd ƒ|rz|jdƒ|jtdƒn|r¡|jdƒ|jtdƒn|jdƒ|jd | ƒ|jdƒ|jd|j ƒ|jdƒx=|D]5}|jj!ƒ} |jd|j"|j| fƒqôW|jdƒx$|D]}|j#|j|dƒqAW|jdƒ|jdƒ|jdƒ|jdƒ|jdƒ|jdƒ|jd ƒndS(NiR8is_api.hs#include "Python.h"s #include "%s"R>sstatic PyTypeObject *%s;s#define %s (*%s)s static %s;t import_modules#endifsstatic int import_%s(void) {sPyObject *module = 0;s"module = __Pyx_ImportModule("%s");sif (!module) goto bad;sHif (__Pyx_ImportFunction(module, "%s", (void**)&%s, "%s") < 0) goto bad;sPy_DECREF(module); module = 0;s goto bad;s return 0;sbad:sPy_XDECREF(module);s return -1;t}($R?R"tapitappendRBR9RR,tapi_fileRDRERRRRJRQRMRPRCtosR7tbasenameRUt typeptr_cnamet typeobj_cnameRRdRetapi_func_guardtputtimport_module_utility_codetfunction_import_utility_codettype_import_utility_codeR/tsignature_stringtnametgenerate_type_import_call( R R R RXt api_funcstpublic_extension_typesthas_api_extension_typesR%R]RuR_RUtsig((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyR‰sˆ          #      $                 cCs!|jdtj|jfƒdS(Ns%s DL_IMPORT(PyTypeObject) %s;(RPRJRcRn(R RUR]((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyRTÏs cCsŽ|jd|j|jfƒ|jƒ|jj}|rsxD|D],}|jd|jj|jddƒƒq@Wn |jdƒ|j ƒdS(Nscdef extern class %s.%s:scdef %sRbitpass( RPRWRutindenttscopeRARURdRetdedent(R RUR^RAR%((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyRVÕs     $ cCs tjtƒƒ}tjtƒƒ|_|jƒ|j}|j|||jƒ|jdƒ|jd|j ƒ|j j ||ƒ|j ||ƒ|j ||ƒ|j|ƒ|j|d ||ƒ|j|ƒ|j|ƒ|j}xT|D]L}|jjdƒ|jjd|j ƒ|j||jd||kƒqòW|jjdƒ|jjd|j ƒ|j||jddƒ|jj|jƒ|j||jƒt|jƒ}|j|jjjƒƒ|jdƒ|j|jjƒƒ|jƒd|_dS( NR>s/* Implementation of %s */iÿÿÿÿs/* Declarations from %s */timplementations,/* Declarations from implementation of %s */is (RDtMainCCodeWriterRREtht init_labelsRtgenerate_module_preambleRPR/R tgenerate_function_definitionstgenerate_typeobj_definitionstgenerate_method_tablet generate_filename_init_prototypetgenerate_module_init_functgenerate_filename_tabletgenerate_utility_functionsR?t generate_declarations_for_modulet global_statetgenerate_const_declarationst#generate_default_value_declarationsRR,R.R6tgetvalueR0tc_file_generated(R R R tcodeR1RXR$R6((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyRâs@            cst|j}g‰tƒ‰‡‡‡fd†‰‡fd†‰ˆj|ƒˆ|jƒˆ|jƒˆj|ƒˆS(Ncs:|ˆkr6ˆj|ƒˆ|jƒˆj|ƒndS(N(R(tcimported_modulesRi(R$(t add_modulest module_listt modules_seen(s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyt add_modules   csx|D]}ˆ|ƒqWdS(N((R1R$(R–(s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyR“s (R?RR(R’Ri(R R RX((R–R“R”R•s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyRs      cCsdGx|D] }|Gq WHdS(Ns!find_referenced_modules: result =((R R”tm((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pytprint_referenced_modules&s c Csšd}ts+d|tjtjƒf}n|jd|ƒ|jdƒ|jdƒx"|jD]}|jd|ƒq`W|jdƒ|jdƒ|jd ƒ|jd ƒ|jd ƒ|jd ƒ|jd ƒ|jdƒ|jdƒ|jd ƒ|jdƒ|jdƒ|jdƒ|jdƒ|jdƒ|jdƒ|jdƒ|jd ƒ|j|ƒ|jdƒ|j|||ƒ|jdƒ|j t j ƒ|jdƒ|jd|j ƒ|jdt jƒ|jdt jƒ|jdt jƒ|jdt jƒd}|jj}|j}|rZ|rZd||f}n |pc|}|r–|jdƒ|jd|j|fƒndS(NsGenerated by Pyrexs %s %s on %ss/* %s */R>s#define PY_SSIZE_T_CLEANs #include "%s"s#ifndef PY_LONG_LONGs #define PY_LONG_LONG LONG_LONGs#endifs#if PY_VERSION_HEX < 0x02050000s typedef int Py_ssize_t;s #define PY_SSIZE_T_MAX INT_MAXs #define PY_SSIZE_T_MIN INT_MINs0 #define PyInt_FromSsize_t(z) PyInt_FromLong(z)s, #define PyInt_AsSsize_t(o) PyInt_AsLong(o)s+#if !defined(WIN32) && !defined(MS_WINDOWS)s #ifndef __stdcalls #define __stdcalls #endifs #ifndef __cdecls #define __cdecls#include sstatic PyObject *%s;sstatic int %s;sstatic char *%s;sstatic char **%s;s%s\n%ssstatic char %s[] = "%s";(t testing_modetVersiontversionttimetasctimeRPtpython_include_filesRNtgenerate_includesRptNodest utility_function_predeclarationst module_cnameRJtbuiltins_cnamet lineno_cnametfilename_cnametfiletable_cnameRIR?R t doc_cname( R R R’R‘tcommenttfilenameR tdoc1tdoc2((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyRƒ,s\                             cCsVtj}|jdƒ|jd|ƒ|jdƒ|jd|ƒ|jdƒdS(Ns#ifdef __cpluspluss#define %s extern "C"s#elses#define %s externs#endif(RJRcRP(R R‘Ru((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyRN]s    cCstg}xE||gD]6}x-|jD]"}||kr$|j|ƒq$q$WqWx|D]}|jd|ƒqUWdS(Ns #include "%s"(t include_filesRiRP(R R R’R‘R2R$R©((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyRŸes  cCs|jj|ƒdS(N(RŒR‰(R R‘((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyR‰nscCsJ|j||ƒ|j||ƒ|j|||ƒ|j|||ƒdS(N(tgenerate_type_predeclarationstgenerate_type_definitionstgenerate_global_declarationst"generate_cfunction_predeclarations(R R R‘R((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyR‹qscCsdS(N((R R R‘((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyR­wscCsšx“|D]‹}|js|j}|jr;|j||ƒq’|jrW|j||ƒq’|jrs|j||ƒq’|jr’|j ||ƒq’qqWdS(N( t in_cincludeRUt is_typedeftgenerate_typedeftis_struct_or_uniont generate_struct_union_definitiontis_enumtgenerate_enum_definitiontis_extension_typetgenerate_obj_struct_definition(R R@R‘R%RU((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyROzs       cCsm|j}|j||ƒxM|jD]B}|js#|j||ƒ|j||ƒ|j||ƒq#q#WdS(N(R@RORBR±t"generate_typeobject_predeclarationtgenerate_exttype_vtable_structt$generate_exttype_vtabptr_declaration(R R R‘R@R%((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyR®‹s  cCs:|jj}|jdƒ|jd|j|jƒƒdS(NR>s typedef %s;(RUttypedef_base_typeRPRdRe(R R%R‘t base_type((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyR³•s  cCs@|jr d|}d|}nd||f}d}||fS(Ns typedef %s {s} %s;s%s %s {s};(t typedef_flag(R RUtkindRutheadertfooter((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pytsue_header_footeršs    c CsÅ|j}|j}|rÁ|j||j|jƒ\}}|jdƒ|j|ƒ|j}| r€|j r€t|j dƒnx.|D]&}|jd|jj |jƒƒq‡W|j|ƒndS(NR>sOEmpty struct or union definition not allowed outside a 'cdef extern from' blocks%s;( RUR}RÃRÀReRPRAR"RtposRd( R R%R‘RUR}RÁRÂRAtattr((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyRµ£s  !      c Csþ|j}|jp|jpd}|j|d|ƒ\}}|jdƒ|j|ƒ|j}|sxt|jdƒnu|d}xh|D]`} | j| jkr­| j} nd| j| jf} | |k rÜ| d7} n|j| ƒq‰W|j|ƒdS(NR>tenumsDEmpty enum definition not allowed outside a 'cdef extern from' blockiÿÿÿÿs%s = %st,( RUReRuRÃRPt enum_valuesRRÄtvalue( R R%R‘RURuRÁRÂRÈt last_entryt value_entryt value_code((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyR·¶s(            cCsˆ|jdƒ|jj}|r„|jdkrU|j rU|jdtj|fƒq„|jdkr„|jdtj|fƒq„ndS(NR>texterns%s DL_IMPORT(PyTypeObject) %s;R8s%s DL_EXPORT(PyTypeObject) %s;(RPRURnR9R±RJRc(R R%R‘Ru((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyRºÐs    cCsÌ|j}|j}|jrÈ|jdƒ|jd|jƒ|jrt|jjrt|jd|jjtjfƒnxA|jD]6}|js~|jd|jj d|j ƒƒq~q~W|jdƒndS(NR>s struct %s {s struct %s %s;s%s;s(*%s)s};( RUR}tvtabstruct_cnameRPR¾RJtobj_base_cnameR"t is_inheritedRdRu(R R%R‘RUR}t method_entry((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyR»Þs"        %cCs6|j}|jr2|jd|j|jfƒndS(Nsstatic struct %s *%s;(RUt vtabptr_cnameRPRÎ(R R%R‘RU((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyR¼òs    cCs|js dS|j|d|jƒ\}}|jdƒ|j|ƒ|j}|r~|jdd|j|jtjfƒn |jdƒ|jrÊ|jo¦|jj rÊ|jd|j |jfƒnx4|jj D]&}|jd|j j |j ƒƒq×W|j|ƒdS( NtstructR>s%s%s %s;sstruct t PyObject_HEADsstruct %s *%s;s%s;(sstruct R>(R}RÃtobjstruct_cnameRPR¾R¿RJRÏtvtabslot_cnameRÎRARURdRe(R RUR‘RÁRÂR¾RÅ((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyR¹ús0     cCsp|jdƒx:|jD]/}|s,|jr|jd|jjƒqqW|j|jddddd|ƒdS(NR>sstatic PyTypeObject *%s = 0;tstaticiR`t DL_EXPORTt definition(RPRBR#RURmtput_var_declarationsRA(R R R‘RR%((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyR¯s  cCs'|jdƒ|j|jddƒdS(NR>R×i(RPRÚtdefault_entries(R R R‘((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyRŽ"s c Cs´x­|jD]¢}|js |jd kr1d}nd}|j}|sUt|ƒ}n|j|jd|ƒ}|jdkrŒdtj }nd}|j d||fƒq q WdS( NR8RÍRØR`tprivates%s sstatic s%s%s; /*proto*/(spublicsextern( R"R±R9RIRURRdReRJRcRP( R R R‘RR%R`RURÁt storage_class((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyR°'s      cCs|j}|j}x÷|j|jD]å}|jdkr#|j}|j}|r|j||ƒ|j||ƒ|j||ƒ|j ||ƒ|j ||ƒ|j dgƒrÅ|j ||ƒn|j ddgƒrí|j ||ƒn|j ddgƒr|j||ƒn|j dgƒr:|j||ƒn|j dd gƒrb|j||ƒn|j d gƒr‡|j||ƒn|j d d gƒr¯|j||ƒn|j||ƒ|j||ƒ|j||ƒ|j||ƒ|j|||ƒqq#q#WdS( NRÍt __getitem__t __setitem__t __delitem__t __setslice__t __delslice__t __getattr__t __setattr__t __delattr__t__get__t__set__t __delete__(R/R?RBR9RUR}tgenerate_exttype_vtabletgenerate_new_functiontgenerate_dealloc_functiontgenerate_traverse_functiontgenerate_clear_functiont defines_anytgenerate_getitem_int_functiontgenerate_ass_subscript_functiontgenerate_ass_slice_functiontgenerate_getattro_functiontgenerate_setattro_functiontgenerate_descr_get_functiontgenerate_descr_set_functiontgenerate_property_accessorsR†tgenerate_member_tabletgenerate_getset_tabletgenerate_typeobj_definition(R R R‘tfull_module_nameRXR%RUR}((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyR…=s>    cCs6|j}|jr2|jd|j|jfƒndS(Nsstatic struct %s %s;(t parent_typet vtable_cnameRPRÎ(R R}R‘RU((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyRé`s    cCs6|j}|jd|jdƒ|jdƒfƒdS(Ns %s = (%s)o;tpR>(RûRPRd(R R}R‘RU((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pytgenerate_self_casths   cCsÛ|j}|j}g}x-|jD]"}|jjr"|j|ƒq"q"W|jpT|}|jdƒ|jd|jdƒƒ|r¤|jd|jj dƒƒn|rÁ|jd|j ƒn |jdƒ|jdƒ|rþ|jd |j d ƒƒn|jr-|jd |j |j|j fƒnxD|D]<}|jd kr`|jd |jƒq4|j|dƒq4W|jdƒ}|r½|jd|jƒ|jd tƒ|jdƒn|jdƒ|jdƒdS(NR>s@static PyObject *%s(PyTypeObject *t, PyObject *a, PyObject *k) {ttp_news%s;Rýs"PyObject *o = %s->tp_new(t, a, k);s#PyObject *o = (*t->tp_alloc)(t, 0);sif (!o) return 0;sp = %s;tos*(struct %s **)&p->%s = %s;t __weakref__s p->%s = 0;sp->%st__new__sif (%s(o, a, k) < 0) {Rgs return o;(RûR¾RARUt is_pyobjectRiRÖRPtmangle_internalRdRmt cast_codeRÎRÒRuRetput_init_var_to_py_nonet lookup_heret func_cnametput_decref_clearR(R R}R‘RUR¾tpy_attrsR%tneed_self_cast((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyRêos`         cCsê|jj}|jdƒ|jd|jdƒƒ|j}|rU|j||ƒn|j||ƒ|jdƒr„|jdƒnx(|D] }|jd|j |j ƒq‹W|rÌ|jd|j ƒn |jdƒ|jd ƒdS( NR>sstatic void %s(PyObject *o) {t tp_deallocRsPyObject_ClearWeakRefs(o);sp->%ss%s->tp_dealloc(o);s(*o->ob_type->tp_free)(o);Rg( RûR¾RPRtpyattr_entriesRþtgenerate_usr_dealloc_callRt put_xdecrefReRURm(R R}R‘R¾R R%((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyRë¥s*    cCs˜|jdƒ}|r”|jdƒ|jdƒ|jdƒ|jdƒ|jd|jƒ|jdƒ|jdƒ|jd ƒ|jd ƒndS( Nt __dealloc__t{sPyObject *etype, *eval, *etb;s!PyErr_Fetch(&etype, &eval, &etb);s++o->ob_refcnt;s%s(o);s/if (PyErr_Occurred()) PyErr_WriteUnraisable(o);s--o->ob_refcnt;s PyErr_Restore(etype, eval, etb);Rg(RRPR(R R}R‘R%((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyRÁs* cCs*|j}|r&|jj}|jdƒ|jd|jdƒƒ|jdƒ|j||ƒ|r£|jdƒ|jd|jƒ|jdƒ|jdƒnxc|D][}d |j}|jd |ƒ|jj rçd |}n|jd |ƒ|jdƒqªW|jd ƒ|jdƒndS(NR>s2static int %s(PyObject *o, visitproc v, void *a) {t tp_traversesint e;straverseproc t;sif ((t = %s->tp_traverse)) {s e = t(o, v, a); if (e) return e;Rgsp->%ss if (%s) {s((PyObject*)%s)s!e = (*v)(%s, a); if (e) return e;s return 0;( R RûR¾RPRRþRmReRUR¸(R R}R‘R R¾R%tvar_code((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyRìØsH          cCs|j}|r|jj}|jdƒ|jd|jdƒƒ|j||ƒ|jdƒ|r£|jdƒ|jd|jƒ|jdƒ|jdƒnxX|D]P}d |j}|jd tt |j |ƒƒ|j |d ƒ|jd ƒqªW|jd ƒ|jdƒndS( NR>sstatic int %s(PyObject *o) {ttp_clears PyObject *t;s inquiry c;sif ((c = %s->tp_clear)) {sc(o);Rgsp->%sst = %s; sPy_XDECREF(t);s return 0;( R RûR¾RPRRþRmReRRRUR(R R}R‘R R¾R%Ru((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyRíþs@        cCsl|jd|jdƒƒ|jdƒ|jdƒ|jdƒ|jdƒ|jdƒ|jdƒdS( Ns0static PyObject *%s(PyObject *o, Py_ssize_t i) {tsq_items PyObject *r;s4PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0;s2r = o->ob_type->tp_as_mapping->mp_subscript(o, x);s Py_DECREF(x);s return r;Rg(RPR(R R}R‘((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyRï!scCsP|jj}|jdƒ}|jdƒ}|jdƒ|jd|jdƒƒ|jdƒ|r{|jd|jƒn@|j|ddd |ƒ|jd ƒ|jd ƒ|jd ƒ|jd ƒ|jdƒ|rò|jd|jƒn@|j|ddd |ƒ|jd ƒ|jdƒ|jd ƒ|jd ƒ|jd ƒdS(NRßRàR>s6static int %s(PyObject *o, PyObject *i, PyObject *v) {tmp_ass_subscriptsif (v) {sreturn %s(o, i, v);t tp_as_mappingso, i, vs'PyErr_Format(PyExc_NotImplementedError,sC "Subscript assignment not supported by %s", o->ob_type->tp_name);s return -1;Rgselse {sreturn %s(o, i);sA "Subscript deletion not supported by %s", o->ob_type->tp_name);(RûR¾RRPRRtgenerate_guarded_basetype_call(R R}R‘R¾t set_entryt del_entry((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyRð5sR  cCs|r‰|j}|rU|jd|||||fƒ|jd||||fƒq‰|jd||fƒ|jd|||fƒndS(Nsif (%s->%s && %s->%s->%s)s return %s->%s->%s(%s);s if (%s->%s)s return %s->%s(%s);(RmRP(R R¾t substructuretslottargsR‘t base_tpname((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyRes cCsP|jj}|jdƒ}|jdƒ}|jdƒ|jd|jdƒƒ|jdƒ|r{|jd|jƒn@|j|ddd |ƒ|jd ƒ|jd ƒ|jd ƒ|jd ƒ|jdƒ|rò|jd|jƒn@|j|ddd |ƒ|jd ƒ|jdƒ|jd ƒ|jd ƒ|jd ƒdS(NRáRâR>sEstatic int %s(PyObject *o, Py_ssize_t i, Py_ssize_t j, PyObject *v) {t sq_ass_slicesif (v) {sreturn %s(o, i, j, v);ttp_as_sequences o, i, j, vs'PyErr_Format(PyExc_NotImplementedError,sI "2-element slice assignment not supported by %s", o->ob_type->tp_name);s return -1;Rgselse {sreturn %s(o, i, j);sG "2-element slice deletion not supported by %s", o->ob_type->tp_name);(RûR¾RRPRRR(R R}R‘R¾RR((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyRñxsR  cCsœ|jdƒ}|jdƒ|jd|jdƒƒ|jdƒ|jdƒ|jdƒ|jd|jƒ|jd ƒ|jd ƒ|jd ƒdS( NRãR>s/static PyObject *%s(PyObject *o, PyObject *n) {t tp_getattros,PyObject *v = PyObject_GenericGetAttr(o, n);s9if (!v && PyErr_ExceptionMatches(PyExc_AttributeError)) {sPyErr_Clear();s v = %s(o, n);Rgs return v;(RRPRR(R R}R‘R%((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyRò¨s(  cCs|jj}|jdƒ}|jdƒ}|jdƒ|jd|jdƒƒ|jdƒ|r{|jd|jƒn&|j|ddd|ƒ|jd ƒ|jd ƒ|jd ƒ|rØ|jd |jƒn&|j|ddd|ƒ|jd ƒ|jd ƒ|jd ƒdS(NRäRåR>s6static int %s(PyObject *o, PyObject *n, PyObject *v) {t tp_setattrosif (v) {sreturn %s(o, n, v);so, n, vs(return PyObject_GenericSetAttr(o, n, v);Rgselse {sreturn %s(o, n);s(return PyObject_GenericSetAttr(o, n, 0);(RûR¾RRPRRRRI(R R}R‘R¾RR((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyRóÁsB  cCs|jdƒ}|jdƒ|jd|jdƒƒ|jdƒ|jdƒ|jdƒ|jd|jƒ|jd ƒ|jd ƒdS( NRæR>s<static PyObject *%s(PyObject *o, PyObject *i, PyObject *c) {t tp_descr_getsPyObject *r = 0;sif (!i) i = Py_None;sif (!c) c = Py_None;sr = %s(o, i, c);s return r;Rg(RRPRR(R R}R‘tuser_get_entry((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyRôés$  cCs6|jj}|jdƒ}|jdƒ}|jdƒ|jd|jdƒƒ|jdƒ|r{|jd|jƒn3|j|ddd|ƒ|jd ƒ|jd ƒ|jd ƒ|jd ƒ|rå|jd |jƒn3|j|ddd|ƒ|jdƒ|jd ƒ|jd ƒ|jd ƒdS(NRçRèR>s6static int %s(PyObject *o, PyObject *i, PyObject *v) {t tp_descr_setsif (v) {sreturn %s(o, i, v);so, i, vs6PyErr_SetString(PyExc_NotImplementedError, "__set__");s return -1;Rgselse {sreturn %s(o, i);s9PyErr_SetString(PyExc_NotImplementedError, "__delete__");(RûR¾RRPRRRRI(R R}R‘R¾tuser_set_entrytuser_del_entry((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyRõsJ  cCsnxg|jD]\}|j}|jdgƒr>|j||ƒn|jddgƒr |j||ƒq q WdS(NRæRçt__del__(tproperty_entriesR}Rîtgenerate_property_get_functiontgenerate_property_set_function(R t cclass_scopeR‘R%tproperty_scope((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyRö1s  cCs||j}|jjtj|jƒ|_|jdƒ}|jdƒ|jd|jƒ|jd|j ƒ|jdƒdS(NRæR>s+static PyObject *%s(PyObject *o, void *x) {s return %s(o);Rg( R}t parent_scopetmangleRJtprop_get_prefixRut getter_cnameRRPR(R tproperty_entryR‘R-t get_entry((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyR*9s     cCs|j}|jjtj|jƒ|_|jdƒ}|jdƒ}|jdƒ|jd|jƒ|jdƒ|r|jd|j ƒn|jdƒ|jdƒ|jd ƒ|jd ƒ|rá|jd |j ƒn|jd ƒ|jdƒ|jd ƒ|jd ƒdS( NRçR(R>s2static int %s(PyObject *o, PyObject *v, void *x) {sif (v) {sreturn %s(o, v);s6PyErr_SetString(PyExc_NotImplementedError, "__set__");s return -1;Rgselse {s return %s(o);s6PyErr_SetString(PyExc_NotImplementedError, "__del__");( R}R.R/RJtprop_set_prefixRut setter_cnameRRPR(R R2R‘R-RR((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyR+HsF    c Cs|j}|j}x!tjD]}|j||ƒqW|jdƒ|jdkr[d}nd}|j||jƒ|jdƒ|jdƒ|jd||jfƒ|j r¾|j }n d|j }|jd |ƒ|jd ƒx!tj D]} | j ||ƒqóW|jd ƒdS( NR>R8sDL_EXPORT(PyTypeObject) %s = {sPyTypeObject %s = {sPyObject_HEAD_INIT(0)s0, /*ob_size*/s"%s.%s", /*tp_name*/s struct %sssizeof(%s), /*tp_basicsize*/s0, /*tp_itemsize*/s};( RUR}t TypeSlotst substructurestgenerate_substructureRPR9Rnt class_nameR¿RÕt slot_tabletgenerate( R tmodnameR%R‘RUR}tsuiteRÁt objstructR((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyRùos8       cCsc|jdƒ|jd|jƒx!|jD]}|j|dƒq+W|jdƒ|jdƒdS(NR>s"static struct PyMethodDef %s[] = {RÇs {0, 0, 0, 0}s};(RPtmethod_table_cnametpyfunc_entriestput_pymethoddef(R R R‘R%((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyR†s  cCsá|jrÝ|jdƒ|jd|jƒ|j}|jrH|j}n d|j}xh|jD]]}|jj}|jdkr‰d}nd}|jd|j |d||j f|fƒq_W|jd ƒ|jd ƒndS( NR>s"static struct PyMemberDef %s[] = {s struct %streadonlytREADONLYt0s{"%s", %s, %s, %s, 0},soffsetof(%s, %s)s{0, 0, 0, 0, 0}s};( tpublic_attr_entriesRPtmember_table_cnameRûR¿RÕRUtpymemberdef_typecodeR9RuRe(R R R‘RUR>R%t type_codetflags((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyR÷œs.          cCsµ|jr±|jdƒ|jd|jƒxg|jD]\}|jrX|j|jƒ}nd}|jd|j|jpyd|jp…d|fƒq4W|jdƒ|jdƒndS(NR>s"static struct PyGetSetDef %s[] = {RDs{"%s", %s, %s, %s, 0},s{0, 0, 0, 0, 0}s};(R)RPtgetset_table_cnameR tget_string_constRuR1R5(R R R‘R%tdoc_code((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyRø¸s&      cCsd|jdƒ|jdtjƒx"|D]}|jd|jƒq(W|jdƒ|jdƒdS(NR>sstatic PyObject **%s[] = {s&%s,RDs};(RPRJtintern_tab_cnametpy_cname(R tinterned_stringsR‘ts((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pytgenerate_interned_name_tableÎs   cCs%|jdƒ|jdtjƒdS(NR>sstatic void %s(void); /*proto*/(RPRJtfileinit_cname(R R‘((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyR‡Øs cCs¼|j}|jdƒd|j}|jd|ƒ|jd|ƒ|j|jƒ|jrˆ|jdƒ|jdƒ|jdƒn|j|ƒ|j|ƒ|j||ƒ|j ||ƒ|j ||ƒ|j ||ƒ|j ||ƒx!|D]}|j |||ƒqùW|j||ƒx!|D]}|j|||ƒq-W|jj|ƒ|jdƒ|j|jƒ|j|jƒ|jd |jƒ|jtjƒ|jd ƒdS( NR>sPyMODINIT_FUNC init%s(void)s %s; /*proto*/s%s {s7#if PY_VERSION_HEX < 0x02040000 && defined(WITH_THREAD)s PyEval_InitThreads();s#endifsreturn;s__Pyx_AddTraceback("%s");Rg(R?RPRWRÚt temp_entriestgil_usedt&generate_library_function_declarationstgenerate_filename_init_calltgenerate_module_creation_codetgenerate_string_init_codetgenerate_global_init_codet!generate_pxd_function_export_codet!generate_api_function_export_codet*generate_c_function_import_code_for_moduletgenerate_type_init_codet$generate_type_import_code_for_moduleR tgenerate_execution_codet put_labelt error_labeltput_var_xdecrefsR/tuse_utility_codeR ttraceback_utility_code(R timported_modulesR R‘RXRÁR$((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyRˆÜs:           cCs|jdtjƒdS(Ns%s();(RPRJRR(R R‘((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyRVscCså|jr|j}nd}|jd|j|j|j|fƒ|jd|j|j|jƒfƒ|jd|jƒ|jdtj ƒ|jdtj |j|jƒfƒ|jd|jtj |j|jƒfƒdS(NRDs9%s = Py_InitModule4("%s", %s, %s, 0, PYTHON_API_VERSION);s if (!%s) %s;sPy_INCREF(%s);s'%s = PyImport_AddModule("__builtin__");s;if (PyObject_SetAttrString(%s, "__builtins__", %s) < 0) %s;( R R§RPR¢RWR?t error_gotoRÄRJR£(R R R‘R ((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyRWs8     cCs:|jtjƒ|jdtj|j|jƒfƒdS(Ns"if (__Pyx_InitStrings(%s) < 0) %s;(RcR tinit_string_tab_utility_codeRPRJtstringtab_cnameRfRÄ(R R R‘((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyRX6s cCsFx?|jD]4}|jdkr |jjr>|j|ƒq>q q WdS(NRÍ(RAR9RURR(R R R‘R%((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyRY=s cCsF|j}x6|jD]+}|jdkr|j|||ƒqqWdS(NRÍ(R?R"R9tgenerate_c_function_export_code(R R R‘RXR%((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyRZEs cCs7x0|jD]%}|jr |j|||ƒq q WdS(N(R"RhRi(R R R‘R%((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyR[Ks cCsO|jtƒ|jjƒ}|jd|j|j||j|jƒfƒdS(Ns7if (__Pyx_ExportFunction("%s", (void*)%s, "%s") < 0) %s( Rctfunction_export_utility_codeRURtRPRuReRfRÄ(R R R%R‘t signature((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyRiPs  cCs@x9|jD].}|jr |j||j|j|ƒq q WdS(N(RBR#tgenerate_type_import_codeRURÄ(R R$R R‘R%((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyR^Ys c Csòg}x*|jD]}|jr|j|ƒqqW|rî|jtƒ|jtƒ|j}|jd||j||j |j ƒfƒxI|D]A}|jd||j |j |j jƒ|j |j ƒfƒqW|jd||fƒndS(Ns*%s = __Pyx_ImportModule("%s"); if (!%s) %ss=if (__Pyx_ImportFunction(%s, "%s", (void**)&%s, "%s") < 0) %ssPy_DECREF(%s); %s = 0;(R"R#RiRcRqRrRRPR/RfRÄRuReRURt(R R$R R‘R:R%ttemp((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyR\bs.      cCsœ|j}xŒ|j|jD]z}|jdkrN|j||j|j|ƒq|j|||ƒ|j||ƒ|j|||ƒ|j ||ƒqWdS(NRÍ( R?RBR9RlRURÄtgenerate_base_type_import_codet!generate_exttype_vtable_init_codetgenerate_type_ready_codet generate_typeptr_assignment_code(R R R‘RXR%((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyR]|s cCsD|jj}|r@|j|jkr@|j|||j|ƒndS(N(RUR¾RWR/RlRÄ(R R R%R‘R¾((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyRnŠs cCs*ddl}|jtƒ|jtƒdS(Niÿÿÿÿ(t ExprNodesRcRsRq(R R‘Rr((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pytuse_type_import_utility_codes  cCs½|j r¹||jkr¹|jr.|j}n d|j}|j|||j|ƒƒ|j|ƒ|jr©|jd|j |j|j|ƒfƒ|j t j ƒnd|j|tp_dict, &%s) < 0) %si( t is_builtinttypes_importedR¿RÕRvRfRsRÒRPRmRcR tget_vtable_utility_code(R R RURÄR‘R>((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyRl”s     cCsU|jr|j}n d|j}|jd|j|j|j||j|fƒdS(Ns struct %ss:%s = __Pyx_ImportType("%s", "%s", sizeof(%s)); if (!%s) %s(R¿RÕRPRmRWRu(R RUR‘t error_codeR>((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyRv©s    c Cs\|j}|j}|j}|rX|jdkrXx!tjD]}|j||ƒq:W|jd||j|j ƒfƒ|j r¼|jd||j |j|j ƒfƒ|j t jƒn|jdtj|j||j|j ƒfƒ|jdƒ}|rU|jtkr?d|} |jd| | |j|jfƒqRt|j dƒqUqXndS( NRÍsif (PyType_Ready(&%s) < 0) %ss+if (__Pyx_SetVtable(%s.tp_dict, %s) < 0) %ss=if (PyObject_SetAttrString(%s, "%s", (PyObject *)&%s) < 0) %sRs%s.tp_weaklistoffsets*if (%s == 0) %s = offsetof(struct %s, %s);s)__weakref__ slot must be of type 'object'(RURnR}R9R6R:tgenerate_dynamic_init_codeRPRfRÄRüRÒRcR tset_vtable_utility_codeRJR¢R9RRRÕReR( R R R%R‘RURnR}Rt weakref_entryttp_weaklistoffset((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyRp¶sD      cCsº|j}|jr¶|jd|j|jfƒ|jrm|jjrm|jd|jtj|jjfƒnxF|jjD]5}|j rz|jd|j|j |j fƒqzqzWndS(Ns %s = &%s;s %s.%s = *%s;s,*(void(**)(void))&%s.%s = (void(*)(void))%s;( RURüRPRÒR¾RJRÏR}R"RRe(R R%R‘RUt meth_entry((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyRoÝs&   cCs6|j}|jr2|jd|j|jfƒndS(Ns %s = &%s;(RURnRPRm(R R%R‘RU((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyRqôs   cCs|jj|ƒdS(N(RŒRŠ(R R‘((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyRŠýs(Nt__name__t __module__R R!RRRRSRRRRTRVRRR˜RƒRNRŸR‰R‹R­ROR®R³RÃRµR·RºR»R¼R¹R¯RŽR°R…RéRþRêRëRRìRíRïRðRRñRòRóRôRõRöR*R+RùR†R÷RøRQR‡RˆRVRWRXRYRZR[RiR^R\R]RnRsRlRvRpRoRqRŠ(((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyRs˜     ,  F  .   1               #   6   & #  0  0  (  ,   ' !    6  !          '  s< static PyObject *__Pyx_ImportModule(char *name); /*proto*/ s@ #ifndef __PYX_HAVE_RT_ImportModule #define __PYX_HAVE_RT_ImportModule static PyObject *__Pyx_ImportModule(char *name) { PyObject *py_name = 0; py_name = PyString_FromString(name); if (!py_name) goto bad; return PyImport_Import(py_name); bad: Py_XDECREF(py_name); return 0; } #endif sc static PyTypeObject *__Pyx_ImportType(char *module_name, char *class_name, long size); /*proto*/ s¦ #ifndef __PYX_HAVE_RT_ImportType #define __PYX_HAVE_RT_ImportType static PyTypeObject *__Pyx_ImportType(char *module_name, char *class_name, long size) { PyObject *py_module = 0; PyObject *result = 0; py_module = __Pyx_ImportModule(module_name); if (!py_module) goto bad; result = PyObject_GetAttrString(py_module, class_name); if (!result) goto bad; if (!PyType_Check(result)) { PyErr_Format(PyExc_TypeError, "%s.%s is not a type object", module_name, class_name); goto bad; } #ifdef __PYX_CHECK_IMPORTED_TYPES if (((PyTypeObject *)result)->tp_basicsize != size) { PyErr_Format(PyExc_ValueError, "%s.%s does not appear to be the correct type object", module_name, class_name); goto bad; } #endif return (PyTypeObject *)result; bad: Py_XDECREF(result); return 0; } #endif sG static int __Pyx_ExportFunction(char *n, void *f, char *s); /*proto*/ sl static int __Pyx_ExportFunction(char *n, void *f, char *s) { PyObject *d = 0; PyObject *p = 0; d = PyObject_GetAttrString(%(MODULE)s, "%(API)s"); if (!d) { PyErr_Clear(); d = PyDict_New(); if (!d) goto bad; Py_INCREF(d); if (PyModule_AddObject(%(MODULE)s, "%(API)s", d) < 0) goto bad; } p = PyCObject_FromVoidPtrAndDesc(f, s, 0); if (!p) goto bad; if (PyDict_SetItemString(d, n, p) < 0) goto bad; Py_DECREF(p); Py_DECREF(d); return 0; bad: Py_XDECREF(p); Py_XDECREF(d); return -1; } tMODULEtAPIsc static int __Pyx_ImportFunction(PyObject *module, char *funcname, void **f, char *sig); /*proto*/ sÕ #ifndef __PYX_HAVE_RT_ImportFunction #define __PYX_HAVE_RT_ImportFunction static int __Pyx_ImportFunction(PyObject *module, char *funcname, void **f, char *sig) { PyObject *d = 0; PyObject *cobj = 0; char *desc; d = PyObject_GetAttrString(module, "%(API)s"); if (!d) goto bad; cobj = PyDict_GetItemString(d, funcname); if (!cobj) { PyErr_Format(PyExc_ImportError, "%%s does not export expected C function %%s", PyModule_GetName(module), funcname); goto bad; } desc = (char *)PyCObject_GetDesc(cobj); if (!desc) goto bad; if (strcmp(desc, sig) != 0) { PyErr_Format(PyExc_TypeError, "C function %%s.%%s has wrong signature (expected %%s, got %%s)", PyModule_GetName(module), funcname, sig, desc); goto bad; } *f = PyCObject_AsVoidPtr(cobj); Py_DECREF(d); return 0; bad: Py_XDECREF(d); return -1; } #endif ( RkRœt cStringIORRRRRt Pyrex.UtilsRtFalseR™RDRJR tOptionsR6RštErrorsRRRtNodet BlockNodeRRqRsR¢RRRjtdictRr(((s=/usr/lib/python2.7/site-packages/Pyrex/Compiler/ModuleNode.pyts8       ÿÿÿÿÿñ # !#