Naming.py 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. #
  2. # C naming conventions
  3. #
  4. #
  5. # Prefixes for generating C names.
  6. # Collected here to facilitate ensuring uniqueness.
  7. #
  8. from .. import __version__
  9. pyrex_prefix = "__pyx_"
  10. cyversion = __version__.replace('.', '_')
  11. codewriter_temp_prefix = pyrex_prefix + "t_"
  12. temp_prefix = u"__cyt_"
  13. builtin_prefix = pyrex_prefix + "builtin_"
  14. arg_prefix = pyrex_prefix + "arg_"
  15. funcdoc_prefix = pyrex_prefix + "doc_"
  16. enum_prefix = pyrex_prefix + "e_"
  17. func_prefix = pyrex_prefix + "f_"
  18. func_prefix_api = pyrex_prefix + "api_f_"
  19. pyfunc_prefix = pyrex_prefix + "pf_"
  20. pywrap_prefix = pyrex_prefix + "pw_"
  21. genbody_prefix = pyrex_prefix + "gb_"
  22. gstab_prefix = pyrex_prefix + "getsets_"
  23. prop_get_prefix = pyrex_prefix + "getprop_"
  24. const_prefix = pyrex_prefix + "k_"
  25. py_const_prefix = pyrex_prefix + "kp_"
  26. label_prefix = pyrex_prefix + "L"
  27. pymethdef_prefix = pyrex_prefix + "mdef_"
  28. method_wrapper_prefix = pyrex_prefix + "specialmethod_"
  29. methtab_prefix = pyrex_prefix + "methods_"
  30. memtab_prefix = pyrex_prefix + "members_"
  31. objstruct_prefix = pyrex_prefix + "obj_"
  32. typeptr_prefix = pyrex_prefix + "ptype_"
  33. prop_set_prefix = pyrex_prefix + "setprop_"
  34. type_prefix = pyrex_prefix + "t_"
  35. typeobj_prefix = pyrex_prefix + "type_"
  36. var_prefix = pyrex_prefix + "v_"
  37. varptr_prefix = pyrex_prefix + "vp_"
  38. varptr_prefix_api = pyrex_prefix + "api_vp_"
  39. wrapperbase_prefix= pyrex_prefix + "wrapperbase_"
  40. pybuffernd_prefix = pyrex_prefix + "pybuffernd_"
  41. pybufferstruct_prefix = pyrex_prefix + "pybuffer_"
  42. vtable_prefix = pyrex_prefix + "vtable_"
  43. vtabptr_prefix = pyrex_prefix + "vtabptr_"
  44. vtabstruct_prefix = pyrex_prefix + "vtabstruct_"
  45. opt_arg_prefix = pyrex_prefix + "opt_args_"
  46. convert_func_prefix = pyrex_prefix + "convert_"
  47. closure_scope_prefix = pyrex_prefix + "scope_"
  48. closure_class_prefix = pyrex_prefix + "scope_struct_"
  49. lambda_func_prefix = pyrex_prefix + "lambda_"
  50. module_is_main = pyrex_prefix + "module_is_main_"
  51. defaults_struct_prefix = pyrex_prefix + "defaults"
  52. dynamic_args_cname = pyrex_prefix + "dynamic_args"
  53. interned_prefixes = {
  54. 'str': pyrex_prefix + "n_",
  55. 'int': pyrex_prefix + "int_",
  56. 'float': pyrex_prefix + "float_",
  57. 'tuple': pyrex_prefix + "tuple_",
  58. 'codeobj': pyrex_prefix + "codeobj_",
  59. 'slice': pyrex_prefix + "slice_",
  60. 'ustring': pyrex_prefix + "ustring_",
  61. 'umethod': pyrex_prefix + "umethod_",
  62. }
  63. ctuple_type_prefix = pyrex_prefix + "ctuple_"
  64. args_cname = pyrex_prefix + "args"
  65. generator_cname = pyrex_prefix + "generator"
  66. sent_value_cname = pyrex_prefix + "sent_value"
  67. pykwdlist_cname = pyrex_prefix + "pyargnames"
  68. obj_base_cname = pyrex_prefix + "base"
  69. builtins_cname = pyrex_prefix + "b"
  70. preimport_cname = pyrex_prefix + "i"
  71. moddict_cname = pyrex_prefix + "d"
  72. dummy_cname = pyrex_prefix + "dummy"
  73. filename_cname = pyrex_prefix + "filename"
  74. modulename_cname = pyrex_prefix + "modulename"
  75. filetable_cname = pyrex_prefix + "f"
  76. intern_tab_cname = pyrex_prefix + "intern_tab"
  77. kwds_cname = pyrex_prefix + "kwds"
  78. lineno_cname = pyrex_prefix + "lineno"
  79. clineno_cname = pyrex_prefix + "clineno"
  80. cfilenm_cname = pyrex_prefix + "cfilenm"
  81. local_tstate_cname = pyrex_prefix + "tstate"
  82. module_cname = pyrex_prefix + "m"
  83. moddoc_cname = pyrex_prefix + "mdoc"
  84. methtable_cname = pyrex_prefix + "methods"
  85. retval_cname = pyrex_prefix + "r"
  86. reqd_kwds_cname = pyrex_prefix + "reqd_kwds"
  87. self_cname = pyrex_prefix + "self"
  88. stringtab_cname = pyrex_prefix + "string_tab"
  89. vtabslot_cname = pyrex_prefix + "vtab"
  90. c_api_tab_cname = pyrex_prefix + "c_api_tab"
  91. gilstate_cname = pyrex_prefix + "state"
  92. skip_dispatch_cname = pyrex_prefix + "skip_dispatch"
  93. empty_tuple = pyrex_prefix + "empty_tuple"
  94. empty_bytes = pyrex_prefix + "empty_bytes"
  95. empty_unicode = pyrex_prefix + "empty_unicode"
  96. print_function = pyrex_prefix + "print"
  97. print_function_kwargs = pyrex_prefix + "print_kwargs"
  98. cleanup_cname = pyrex_prefix + "module_cleanup"
  99. pymoduledef_cname = pyrex_prefix + "moduledef"
  100. pymoduledef_slots_cname = pyrex_prefix + "moduledef_slots"
  101. pymodinit_module_arg = pyrex_prefix + "pyinit_module"
  102. pymodule_create_func_cname = pyrex_prefix + "pymod_create"
  103. pymodule_exec_func_cname = pyrex_prefix + "pymod_exec"
  104. optional_args_cname = pyrex_prefix + "optional_args"
  105. import_star = pyrex_prefix + "import_star"
  106. import_star_set = pyrex_prefix + "import_star_set"
  107. outer_scope_cname= pyrex_prefix + "outer_scope"
  108. cur_scope_cname = pyrex_prefix + "cur_scope"
  109. enc_scope_cname = pyrex_prefix + "enc_scope"
  110. frame_cname = pyrex_prefix + "frame"
  111. frame_code_cname = pyrex_prefix + "frame_code"
  112. binding_cfunc = pyrex_prefix + "binding_PyCFunctionType"
  113. fused_func_prefix = pyrex_prefix + 'fuse_'
  114. fused_dtype_prefix = pyrex_prefix + 'fused_dtype_'
  115. quick_temp_cname = pyrex_prefix + "temp" # temp variable for quick'n'dirty temping
  116. tp_dict_version_temp = pyrex_prefix + "tp_dict_version"
  117. obj_dict_version_temp = pyrex_prefix + "obj_dict_version"
  118. type_dict_guard_temp = pyrex_prefix + "type_dict_guard"
  119. cython_runtime_cname = pyrex_prefix + "cython_runtime"
  120. global_code_object_cache_find = pyrex_prefix + 'find_code_object'
  121. global_code_object_cache_insert = pyrex_prefix + 'insert_code_object'
  122. genexpr_id_ref = 'genexpr'
  123. freelist_name = 'freelist'
  124. freecount_name = 'freecount'
  125. line_c_macro = "__LINE__"
  126. file_c_macro = "__FILE__"
  127. extern_c_macro = pyrex_prefix.upper() + "EXTERN_C"
  128. exc_type_name = pyrex_prefix + "exc_type"
  129. exc_value_name = pyrex_prefix + "exc_value"
  130. exc_tb_name = pyrex_prefix + "exc_tb"
  131. exc_lineno_name = pyrex_prefix + "exc_lineno"
  132. parallel_exc_type = pyrex_prefix + "parallel_exc_type"
  133. parallel_exc_value = pyrex_prefix + "parallel_exc_value"
  134. parallel_exc_tb = pyrex_prefix + "parallel_exc_tb"
  135. parallel_filename = pyrex_prefix + "parallel_filename"
  136. parallel_lineno = pyrex_prefix + "parallel_lineno"
  137. parallel_clineno = pyrex_prefix + "parallel_clineno"
  138. parallel_why = pyrex_prefix + "parallel_why"
  139. exc_vars = (exc_type_name, exc_value_name, exc_tb_name)
  140. api_name = pyrex_prefix + "capi__"
  141. h_guard_prefix = "__PYX_HAVE__"
  142. api_guard_prefix = "__PYX_HAVE_API__"
  143. api_func_guard = "__PYX_HAVE_API_FUNC_"
  144. PYX_NAN = "__PYX_NAN()"
  145. def py_version_hex(major, minor=0, micro=0, release_level=0, release_serial=0):
  146. return (major << 24) | (minor << 16) | (micro << 8) | (release_level << 4) | (release_serial)