disable coercion from str->bytes, fix coercion from str->object
[cython.git] / Cython / Compiler / Naming.py
1 #
2 #   Pyrex - C naming conventions
3 #
4 #
5 #   Prefixes for generating C names.
6 #   Collected here to facilitate ensuring uniqueness.
7 #
8
9 pyrex_prefix    = "__pyx_"
10
11
12 codewriter_temp_prefix = pyrex_prefix + "t_"
13
14 temp_prefix       = u"__cyt_"
15
16 builtin_prefix    = pyrex_prefix + "builtin_"
17 arg_prefix        = pyrex_prefix + "arg_"
18 funcdoc_prefix    = pyrex_prefix + "doc_"
19 enum_prefix       = pyrex_prefix + "e_"
20 func_prefix       = pyrex_prefix + "f_"
21 pyfunc_prefix     = pyrex_prefix + "pf_"
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 methtab_prefix    = pyrex_prefix + "methods_"
29 memtab_prefix     = pyrex_prefix + "members_"
30 interned_str_prefix = pyrex_prefix + "n_"
31 interned_num_prefix = pyrex_prefix + "int_"
32 objstruct_prefix  = pyrex_prefix + "obj_"
33 typeptr_prefix    = pyrex_prefix + "ptype_"
34 prop_set_prefix   = pyrex_prefix + "setprop_"
35 type_prefix       = pyrex_prefix + "t_"
36 typeobj_prefix    = pyrex_prefix + "type_"
37 var_prefix        = pyrex_prefix + "v_"
38 bufstruct_prefix  = pyrex_prefix + "bstruct_"
39 bufstride_prefix  = pyrex_prefix + "bstride_"
40 bufshape_prefix   = pyrex_prefix + "bshape_"
41 bufsuboffset_prefix  = pyrex_prefix + "boffset_"
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 module_is_main   = pyrex_prefix + "module_is_main_"
48
49 args_cname       = pyrex_prefix + "args"
50 pykwdlist_cname  = pyrex_prefix + "pyargnames"
51 obj_base_cname   = pyrex_prefix + "base"
52 builtins_cname   = pyrex_prefix + "b"
53 preimport_cname  = pyrex_prefix + "i"
54 moddict_cname    = pyrex_prefix + "d"
55 dummy_cname      = pyrex_prefix + "dummy"
56 filename_cname   = pyrex_prefix + "filename"
57 modulename_cname = pyrex_prefix + "modulename"
58 filetable_cname  = pyrex_prefix + "f"
59 filenames_cname  = pyrex_prefix + "filenames"
60 fileinit_cname   = pyrex_prefix + "init_filenames"
61 intern_tab_cname = pyrex_prefix + "intern_tab"
62 kwds_cname       = pyrex_prefix + "kwds"
63 lineno_cname     = pyrex_prefix + "lineno"
64 clineno_cname    = pyrex_prefix + "clineno"
65 cfilenm_cname    = pyrex_prefix + "cfilenm"
66 module_cname     = pyrex_prefix + "m"
67 moddoc_cname     = pyrex_prefix + "mdoc"
68 methtable_cname  = pyrex_prefix + "methods"
69 retval_cname     = pyrex_prefix + "r"
70 reqd_kwds_cname  = pyrex_prefix + "reqd_kwds"
71 self_cname       = pyrex_prefix + "self"
72 stringtab_cname  = pyrex_prefix + "string_tab"
73 vtabslot_cname   = pyrex_prefix + "vtab"
74 c_api_tab_cname  = pyrex_prefix + "c_api_tab"
75 gilstate_cname   = pyrex_prefix + "state"
76 skip_dispatch_cname = pyrex_prefix + "skip_dispatch"
77 empty_tuple      = pyrex_prefix + "empty_tuple"
78 empty_bytes      = pyrex_prefix + "empty_bytes"
79 print_function   = pyrex_prefix + "print"
80 print_function_kwargs   = pyrex_prefix + "print_kwargs"
81 cleanup_cname    = pyrex_prefix + "module_cleanup"
82 pymoduledef_cname = pyrex_prefix + "moduledef"
83 optional_args_cname = pyrex_prefix + "optional_args"
84 import_star      = pyrex_prefix + "import_star"
85 import_star_set  = pyrex_prefix + "import_star_set"
86 cur_scope_cname  = pyrex_prefix + "cur_scope"
87 enc_scope_cname  = pyrex_prefix + "enc_scope"
88 frame_cname      = pyrex_prefix + "frame"
89 frame_code_cname = pyrex_prefix + "frame_code"
90
91 line_c_macro = "__LINE__"
92
93 file_c_macro = "__FILE__"
94
95 extern_c_macro  = pyrex_prefix.upper() + "EXTERN_C"
96
97 exc_type_name   = pyrex_prefix + "exc_type"
98 exc_value_name  = pyrex_prefix + "exc_value"
99 exc_tb_name     = pyrex_prefix + "exc_tb"
100 exc_lineno_name = pyrex_prefix + "exc_lineno"
101
102 exc_vars = (exc_type_name, exc_value_name, exc_tb_name)
103
104 exc_save_vars = (pyrex_prefix + 'save_exc_type',
105                  pyrex_prefix + 'save_exc_value',
106                  pyrex_prefix + 'save_exc_tb')
107
108 api_name        = pyrex_prefix + "capi__"
109
110 h_guard_prefix   = "__PYX_HAVE__"
111 api_guard_prefix = "__PYX_HAVE_API__"
112 api_func_guard   = "__PYX_HAVE_API_FUNC_"
113
114 def py_version_hex(major, minor=0, micro=0, release_level=0, release_serial=0):
115     return (major << 24) | (minor << 16) | (micro << 8) | (release_level << 4) | (release_serial)