Cython 3.2.0__cp39-abi3-win32.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (333) hide show
  1. Cython/Build/BuildExecutable.py +169 -0
  2. Cython/Build/Cache.py +199 -0
  3. Cython/Build/Cythonize.py +350 -0
  4. Cython/Build/Dependencies.py +1314 -0
  5. Cython/Build/Distutils.py +1 -0
  6. Cython/Build/Inline.py +463 -0
  7. Cython/Build/IpythonMagic.py +560 -0
  8. Cython/Build/SharedModule.py +94 -0
  9. Cython/Build/Tests/TestCyCache.py +194 -0
  10. Cython/Build/Tests/TestCythonizeArgsParser.py +481 -0
  11. Cython/Build/Tests/TestDependencies.py +133 -0
  12. Cython/Build/Tests/TestInline.py +177 -0
  13. Cython/Build/Tests/TestIpythonMagic.py +287 -0
  14. Cython/Build/Tests/TestRecythonize.py +212 -0
  15. Cython/Build/Tests/TestStripLiterals.py +155 -0
  16. Cython/Build/Tests/__init__.py +1 -0
  17. Cython/Build/__init__.py +11 -0
  18. Cython/CodeWriter.py +815 -0
  19. Cython/Compiler/AnalysedTreeTransforms.py +97 -0
  20. Cython/Compiler/Annotate.py +328 -0
  21. Cython/Compiler/AutoDocTransforms.py +320 -0
  22. Cython/Compiler/Buffer.py +680 -0
  23. Cython/Compiler/Builtin.py +984 -0
  24. Cython/Compiler/CmdLine.py +263 -0
  25. Cython/Compiler/Code.pxd +149 -0
  26. Cython/Compiler/Code.py +3746 -0
  27. Cython/Compiler/Code.pyd +0 -0
  28. Cython/Compiler/CodeGeneration.py +33 -0
  29. Cython/Compiler/CythonScope.py +191 -0
  30. Cython/Compiler/Dataclass.py +864 -0
  31. Cython/Compiler/DebugFlags.py +24 -0
  32. Cython/Compiler/Errors.py +297 -0
  33. Cython/Compiler/ExprNodes.py +15562 -0
  34. Cython/Compiler/FlowControl.pxd +97 -0
  35. Cython/Compiler/FlowControl.py +1451 -0
  36. Cython/Compiler/FlowControl.pyd +0 -0
  37. Cython/Compiler/FusedNode.py +971 -0
  38. Cython/Compiler/FusedNode.pyd +0 -0
  39. Cython/Compiler/Future.py +16 -0
  40. Cython/Compiler/Interpreter.py +57 -0
  41. Cython/Compiler/Lexicon.py +421 -0
  42. Cython/Compiler/LineTable.py +114 -0
  43. Cython/Compiler/LineTable.pyd +0 -0
  44. Cython/Compiler/Main.py +857 -0
  45. Cython/Compiler/MatchCaseNodes.py +259 -0
  46. Cython/Compiler/MemoryView.py +905 -0
  47. Cython/Compiler/ModuleNode.py +4235 -0
  48. Cython/Compiler/Naming.py +363 -0
  49. Cython/Compiler/Nodes.py +10831 -0
  50. Cython/Compiler/Optimize.py +5288 -0
  51. Cython/Compiler/Options.py +843 -0
  52. Cython/Compiler/ParseTreeTransforms.pxd +78 -0
  53. Cython/Compiler/ParseTreeTransforms.py +4638 -0
  54. Cython/Compiler/Parsing.pxd +9 -0
  55. Cython/Compiler/Parsing.py +4775 -0
  56. Cython/Compiler/Parsing.pyd +0 -0
  57. Cython/Compiler/Pipeline.py +439 -0
  58. Cython/Compiler/PyrexTypes.py +5870 -0
  59. Cython/Compiler/Pythran.py +232 -0
  60. Cython/Compiler/Scanning.pxd +48 -0
  61. Cython/Compiler/Scanning.py +701 -0
  62. Cython/Compiler/Scanning.pyd +0 -0
  63. Cython/Compiler/StringEncoding.py +298 -0
  64. Cython/Compiler/Symtab.py +3073 -0
  65. Cython/Compiler/Tests/TestBuffer.py +105 -0
  66. Cython/Compiler/Tests/TestBuiltin.py +72 -0
  67. Cython/Compiler/Tests/TestCmdLine.py +586 -0
  68. Cython/Compiler/Tests/TestCode.py +144 -0
  69. Cython/Compiler/Tests/TestFlowControl.py +65 -0
  70. Cython/Compiler/Tests/TestGrammar.py +202 -0
  71. Cython/Compiler/Tests/TestMemView.py +71 -0
  72. Cython/Compiler/Tests/TestParseTreeTransforms.py +285 -0
  73. Cython/Compiler/Tests/TestScanning.py +134 -0
  74. Cython/Compiler/Tests/TestSignatureMatching.py +73 -0
  75. Cython/Compiler/Tests/TestStringEncoding.py +21 -0
  76. Cython/Compiler/Tests/TestTreeFragment.py +63 -0
  77. Cython/Compiler/Tests/TestTreePath.py +103 -0
  78. Cython/Compiler/Tests/TestTypes.py +75 -0
  79. Cython/Compiler/Tests/TestUtilityLoad.py +112 -0
  80. Cython/Compiler/Tests/TestVisitor.py +61 -0
  81. Cython/Compiler/Tests/Utils.py +36 -0
  82. Cython/Compiler/Tests/__init__.py +1 -0
  83. Cython/Compiler/TreeFragment.py +278 -0
  84. Cython/Compiler/TreePath.py +303 -0
  85. Cython/Compiler/TypeInference.py +591 -0
  86. Cython/Compiler/TypeSlots.py +1174 -0
  87. Cython/Compiler/UFuncs.py +311 -0
  88. Cython/Compiler/UtilNodes.py +389 -0
  89. Cython/Compiler/UtilityCode.py +344 -0
  90. Cython/Compiler/Version.py +8 -0
  91. Cython/Compiler/Visitor.pxd +53 -0
  92. Cython/Compiler/Visitor.py +861 -0
  93. Cython/Compiler/Visitor.pyd +0 -0
  94. Cython/Compiler/__init__.py +1 -0
  95. Cython/Coverage.py +448 -0
  96. Cython/Debugger/Cygdb.py +177 -0
  97. Cython/Debugger/DebugWriter.py +82 -0
  98. Cython/Debugger/Tests/TestLibCython.py +275 -0
  99. Cython/Debugger/Tests/__init__.py +1 -0
  100. Cython/Debugger/Tests/cfuncs.c +8 -0
  101. Cython/Debugger/Tests/codefile +49 -0
  102. Cython/Debugger/Tests/test_libcython_in_gdb.py +578 -0
  103. Cython/Debugger/Tests/test_libpython_in_gdb.py +90 -0
  104. Cython/Debugger/__init__.py +1 -0
  105. Cython/Debugger/libcython.py +1548 -0
  106. Cython/Debugger/libpython.py +2821 -0
  107. Cython/Debugging.py +20 -0
  108. Cython/Distutils/__init__.py +2 -0
  109. Cython/Distutils/build_ext.py +139 -0
  110. Cython/Distutils/extension.py +96 -0
  111. Cython/Distutils/old_build_ext.py +351 -0
  112. Cython/Includes/cpython/__init__.pxd +173 -0
  113. Cython/Includes/cpython/array.pxd +178 -0
  114. Cython/Includes/cpython/bool.pxd +37 -0
  115. Cython/Includes/cpython/buffer.pxd +112 -0
  116. Cython/Includes/cpython/bytearray.pxd +33 -0
  117. Cython/Includes/cpython/bytes.pxd +200 -0
  118. Cython/Includes/cpython/cellobject.pxd +35 -0
  119. Cython/Includes/cpython/ceval.pxd +8 -0
  120. Cython/Includes/cpython/codecs.pxd +121 -0
  121. Cython/Includes/cpython/complex.pxd +60 -0
  122. Cython/Includes/cpython/contextvars.pxd +145 -0
  123. Cython/Includes/cpython/conversion.pxd +36 -0
  124. Cython/Includes/cpython/datetime.pxd +395 -0
  125. Cython/Includes/cpython/descr.pxd +26 -0
  126. Cython/Includes/cpython/dict.pxd +187 -0
  127. Cython/Includes/cpython/exc.pxd +263 -0
  128. Cython/Includes/cpython/fileobject.pxd +57 -0
  129. Cython/Includes/cpython/float.pxd +47 -0
  130. Cython/Includes/cpython/function.pxd +65 -0
  131. Cython/Includes/cpython/genobject.pxd +25 -0
  132. Cython/Includes/cpython/getargs.pxd +12 -0
  133. Cython/Includes/cpython/instance.pxd +25 -0
  134. Cython/Includes/cpython/iterator.pxd +36 -0
  135. Cython/Includes/cpython/iterobject.pxd +24 -0
  136. Cython/Includes/cpython/list.pxd +92 -0
  137. Cython/Includes/cpython/long.pxd +149 -0
  138. Cython/Includes/cpython/longintrepr.pxd +14 -0
  139. Cython/Includes/cpython/mapping.pxd +63 -0
  140. Cython/Includes/cpython/marshal.pxd +66 -0
  141. Cython/Includes/cpython/mem.pxd +120 -0
  142. Cython/Includes/cpython/memoryview.pxd +50 -0
  143. Cython/Includes/cpython/method.pxd +49 -0
  144. Cython/Includes/cpython/module.pxd +208 -0
  145. Cython/Includes/cpython/number.pxd +258 -0
  146. Cython/Includes/cpython/object.pxd +433 -0
  147. Cython/Includes/cpython/pycapsule.pxd +143 -0
  148. Cython/Includes/cpython/pylifecycle.pxd +68 -0
  149. Cython/Includes/cpython/pyport.pxd +8 -0
  150. Cython/Includes/cpython/pystate.pxd +95 -0
  151. Cython/Includes/cpython/pythread.pxd +53 -0
  152. Cython/Includes/cpython/ref.pxd +141 -0
  153. Cython/Includes/cpython/sequence.pxd +134 -0
  154. Cython/Includes/cpython/set.pxd +119 -0
  155. Cython/Includes/cpython/slice.pxd +70 -0
  156. Cython/Includes/cpython/time.pxd +129 -0
  157. Cython/Includes/cpython/tuple.pxd +72 -0
  158. Cython/Includes/cpython/type.pxd +53 -0
  159. Cython/Includes/cpython/unicode.pxd +639 -0
  160. Cython/Includes/cpython/version.pxd +32 -0
  161. Cython/Includes/cpython/weakref.pxd +78 -0
  162. Cython/Includes/libc/__init__.pxd +1 -0
  163. Cython/Includes/libc/complex.pxd +35 -0
  164. Cython/Includes/libc/errno.pxd +127 -0
  165. Cython/Includes/libc/float.pxd +43 -0
  166. Cython/Includes/libc/limits.pxd +28 -0
  167. Cython/Includes/libc/locale.pxd +46 -0
  168. Cython/Includes/libc/math.pxd +209 -0
  169. Cython/Includes/libc/setjmp.pxd +10 -0
  170. Cython/Includes/libc/signal.pxd +64 -0
  171. Cython/Includes/libc/stddef.pxd +9 -0
  172. Cython/Includes/libc/stdint.pxd +105 -0
  173. Cython/Includes/libc/stdio.pxd +80 -0
  174. Cython/Includes/libc/stdlib.pxd +72 -0
  175. Cython/Includes/libc/string.pxd +50 -0
  176. Cython/Includes/libc/threads.pxd +234 -0
  177. Cython/Includes/libc/time.pxd +52 -0
  178. Cython/Includes/libcpp/__init__.pxd +4 -0
  179. Cython/Includes/libcpp/algorithm.pxd +320 -0
  180. Cython/Includes/libcpp/any.pxd +16 -0
  181. Cython/Includes/libcpp/atomic.pxd +59 -0
  182. Cython/Includes/libcpp/barrier.pxd +22 -0
  183. Cython/Includes/libcpp/bit.pxd +29 -0
  184. Cython/Includes/libcpp/cast.pxd +12 -0
  185. Cython/Includes/libcpp/cmath.pxd +518 -0
  186. Cython/Includes/libcpp/complex.pxd +106 -0
  187. Cython/Includes/libcpp/condition_variable.pxd +322 -0
  188. Cython/Includes/libcpp/deque.pxd +165 -0
  189. Cython/Includes/libcpp/exception.pxd +86 -0
  190. Cython/Includes/libcpp/execution.pxd +15 -0
  191. Cython/Includes/libcpp/forward_list.pxd +63 -0
  192. Cython/Includes/libcpp/functional.pxd +26 -0
  193. Cython/Includes/libcpp/future.pxd +103 -0
  194. Cython/Includes/libcpp/iterator.pxd +34 -0
  195. Cython/Includes/libcpp/latch.pxd +17 -0
  196. Cython/Includes/libcpp/limits.pxd +61 -0
  197. Cython/Includes/libcpp/list.pxd +117 -0
  198. Cython/Includes/libcpp/map.pxd +252 -0
  199. Cython/Includes/libcpp/memory.pxd +115 -0
  200. Cython/Includes/libcpp/mutex.pxd +387 -0
  201. Cython/Includes/libcpp/numbers.pxd +15 -0
  202. Cython/Includes/libcpp/numeric.pxd +131 -0
  203. Cython/Includes/libcpp/optional.pxd +34 -0
  204. Cython/Includes/libcpp/pair.pxd +1 -0
  205. Cython/Includes/libcpp/queue.pxd +25 -0
  206. Cython/Includes/libcpp/random.pxd +166 -0
  207. Cython/Includes/libcpp/semaphore.pxd +43 -0
  208. Cython/Includes/libcpp/set.pxd +228 -0
  209. Cython/Includes/libcpp/shared_mutex.pxd +96 -0
  210. Cython/Includes/libcpp/span.pxd +87 -0
  211. Cython/Includes/libcpp/stack.pxd +11 -0
  212. Cython/Includes/libcpp/stop_token.pxd +117 -0
  213. Cython/Includes/libcpp/string.pxd +355 -0
  214. Cython/Includes/libcpp/string_view.pxd +183 -0
  215. Cython/Includes/libcpp/typeindex.pxd +15 -0
  216. Cython/Includes/libcpp/typeinfo.pxd +10 -0
  217. Cython/Includes/libcpp/unordered_map.pxd +193 -0
  218. Cython/Includes/libcpp/unordered_set.pxd +152 -0
  219. Cython/Includes/libcpp/utility.pxd +30 -0
  220. Cython/Includes/libcpp/vector.pxd +186 -0
  221. Cython/Includes/numpy/math.pxd +150 -0
  222. Cython/Includes/openmp.pxd +50 -0
  223. Cython/Includes/posix/__init__.pxd +1 -0
  224. Cython/Includes/posix/dlfcn.pxd +14 -0
  225. Cython/Includes/posix/fcntl.pxd +86 -0
  226. Cython/Includes/posix/ioctl.pxd +4 -0
  227. Cython/Includes/posix/mman.pxd +101 -0
  228. Cython/Includes/posix/resource.pxd +57 -0
  229. Cython/Includes/posix/select.pxd +21 -0
  230. Cython/Includes/posix/signal.pxd +73 -0
  231. Cython/Includes/posix/stat.pxd +98 -0
  232. Cython/Includes/posix/stdio.pxd +37 -0
  233. Cython/Includes/posix/stdlib.pxd +29 -0
  234. Cython/Includes/posix/strings.pxd +9 -0
  235. Cython/Includes/posix/time.pxd +71 -0
  236. Cython/Includes/posix/types.pxd +30 -0
  237. Cython/Includes/posix/uio.pxd +26 -0
  238. Cython/Includes/posix/unistd.pxd +271 -0
  239. Cython/Includes/posix/wait.pxd +38 -0
  240. Cython/Plex/Actions.pxd +24 -0
  241. Cython/Plex/Actions.py +119 -0
  242. Cython/Plex/Actions.pyd +0 -0
  243. Cython/Plex/DFA.pxd +14 -0
  244. Cython/Plex/DFA.py +164 -0
  245. Cython/Plex/DFA.pyd +0 -0
  246. Cython/Plex/Errors.py +48 -0
  247. Cython/Plex/Lexicons.py +178 -0
  248. Cython/Plex/Machines.pxd +36 -0
  249. Cython/Plex/Machines.py +238 -0
  250. Cython/Plex/Machines.pyd +0 -0
  251. Cython/Plex/Regexps.py +535 -0
  252. Cython/Plex/Scanners.pxd +45 -0
  253. Cython/Plex/Scanners.py +328 -0
  254. Cython/Plex/Scanners.pyd +0 -0
  255. Cython/Plex/Transitions.pxd +14 -0
  256. Cython/Plex/Transitions.py +239 -0
  257. Cython/Plex/Transitions.pyd +0 -0
  258. Cython/Plex/__init__.py +34 -0
  259. Cython/Runtime/__init__.py +1 -0
  260. Cython/Runtime/refnanny.pyd +0 -0
  261. Cython/Runtime/refnanny.pyx +237 -0
  262. Cython/Shadow.py +690 -0
  263. Cython/Shadow.pyi +521 -0
  264. Cython/StringIOTree.py +170 -0
  265. Cython/StringIOTree.pyd +0 -0
  266. Cython/Tempita/__init__.py +4 -0
  267. Cython/Tempita/_looper.py +154 -0
  268. Cython/Tempita/_tempita.py +1091 -0
  269. Cython/Tempita/_tempita.pyd +0 -0
  270. Cython/TestUtils.py +422 -0
  271. Cython/Tests/TestCodeWriter.py +128 -0
  272. Cython/Tests/TestCythonUtils.py +202 -0
  273. Cython/Tests/TestJediTyper.py +223 -0
  274. Cython/Tests/TestShadow.py +114 -0
  275. Cython/Tests/TestStringIOTree.py +67 -0
  276. Cython/Tests/TestTestUtils.py +90 -0
  277. Cython/Tests/__init__.py +1 -0
  278. Cython/Tests/xmlrunner.py +390 -0
  279. Cython/Utility/AsyncGen.c +1031 -0
  280. Cython/Utility/Buffer.c +865 -0
  281. Cython/Utility/BufferFormatFromTypeInfo.pxd +2 -0
  282. Cython/Utility/Builtins.c +810 -0
  283. Cython/Utility/CConvert.pyx +134 -0
  284. Cython/Utility/CMath.c +104 -0
  285. Cython/Utility/CommonStructures.c +226 -0
  286. Cython/Utility/Complex.c +378 -0
  287. Cython/Utility/Coroutine.c +2300 -0
  288. Cython/Utility/CpdefEnums.pyx +103 -0
  289. Cython/Utility/CppConvert.pyx +282 -0
  290. Cython/Utility/CppSupport.cpp +151 -0
  291. Cython/Utility/CythonFunction.c +1832 -0
  292. Cython/Utility/Dataclasses.c +101 -0
  293. Cython/Utility/Embed.c +121 -0
  294. Cython/Utility/Exceptions.c +1016 -0
  295. Cython/Utility/ExtensionTypes.c +996 -0
  296. Cython/Utility/FunctionArguments.c +1043 -0
  297. Cython/Utility/FusedFunction.pyx +44 -0
  298. Cython/Utility/ImportExport.c +907 -0
  299. Cython/Utility/MemoryView.pxd +188 -0
  300. Cython/Utility/MemoryView.pyx +1482 -0
  301. Cython/Utility/MemoryView_C.c +927 -0
  302. Cython/Utility/ModuleSetupCode.c +3203 -0
  303. Cython/Utility/NumpyImportArray.c +46 -0
  304. Cython/Utility/ObjectHandling.c +3273 -0
  305. Cython/Utility/Optimize.c +1603 -0
  306. Cython/Utility/Overflow.c +384 -0
  307. Cython/Utility/Printing.c +86 -0
  308. Cython/Utility/Profile.c +732 -0
  309. Cython/Utility/StringTools.c +1379 -0
  310. Cython/Utility/Synchronization.c +399 -0
  311. Cython/Utility/TString.c +356 -0
  312. Cython/Utility/TestCyUtilityLoader.pyx +8 -0
  313. Cython/Utility/TestCythonScope.pyx +75 -0
  314. Cython/Utility/TestUtilityLoader.c +12 -0
  315. Cython/Utility/TypeConversion.c +1385 -0
  316. Cython/Utility/UFuncs.pyx +50 -0
  317. Cython/Utility/UFuncs_C.c +89 -0
  318. Cython/Utility/__init__.py +28 -0
  319. Cython/Utility/arrayarray.h +167 -0
  320. Cython/Utils.py +687 -0
  321. Cython/Utils.pyd +0 -0
  322. Cython/__init__.py +10 -0
  323. Cython/__init__.pyi +7 -0
  324. Cython/py.typed +0 -0
  325. cython-3.2.0.dist-info/METADATA +85 -0
  326. cython-3.2.0.dist-info/RECORD +333 -0
  327. cython-3.2.0.dist-info/WHEEL +5 -0
  328. cython-3.2.0.dist-info/entry_points.txt +4 -0
  329. cython-3.2.0.dist-info/top_level.txt +3 -0
  330. cython.py +29 -0
  331. pyximport/__init__.py +4 -0
  332. pyximport/pyxbuild.py +160 -0
  333. pyximport/pyximport.py +482 -0
@@ -0,0 +1,363 @@
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
+
10
+ pyrex_prefix = "__pyx_"
11
+ cyversion = __version__.replace('.', '_')
12
+
13
+
14
+ codewriter_temp_prefix = pyrex_prefix + "t_"
15
+
16
+ temp_prefix = "__cyt_"
17
+
18
+ pyunicode_identifier_prefix = pyrex_prefix + 'U'
19
+
20
+ builtin_prefix = pyrex_prefix + "builtin_"
21
+ arg_prefix = pyrex_prefix + "arg_"
22
+ genexpr_arg_prefix = pyrex_prefix + "genexpr_arg_"
23
+ funcdoc_prefix = pyrex_prefix + "doc_"
24
+ enum_prefix = pyrex_prefix + "e_"
25
+ func_prefix = pyrex_prefix + "f_"
26
+ func_prefix_api = pyrex_prefix + "api_f_"
27
+ pyfunc_prefix = pyrex_prefix + "pf_"
28
+ pywrap_prefix = pyrex_prefix + "pw_"
29
+ genbody_prefix = pyrex_prefix + "gb_"
30
+ gstab_prefix = pyrex_prefix + "getsets_"
31
+ prop_get_prefix = pyrex_prefix + "getprop_"
32
+ const_prefix = pyrex_prefix + "k_"
33
+ py_const_prefix = pyrex_prefix + "kp_"
34
+ label_prefix = pyrex_prefix + "L"
35
+ pymethdef_prefix = pyrex_prefix + "mdef_"
36
+ method_wrapper_prefix = pyrex_prefix + "specialmethod_"
37
+ methtab_prefix = pyrex_prefix + "methods_"
38
+ memtab_prefix = pyrex_prefix + "members_"
39
+ objstruct_prefix = pyrex_prefix + "obj_"
40
+ typeptr_prefix = pyrex_prefix + "ptype_"
41
+ prop_set_prefix = pyrex_prefix + "setprop_"
42
+ type_prefix = pyrex_prefix + "t_"
43
+ typeobj_prefix = pyrex_prefix + "type_"
44
+ var_prefix = pyrex_prefix + "v_"
45
+ varptr_prefix = pyrex_prefix + "vp_"
46
+ varptr_prefix_api = pyrex_prefix + "api_vp_"
47
+ wrapperbase_prefix= pyrex_prefix + "wrapperbase_"
48
+ pybuffernd_prefix = pyrex_prefix + "pybuffernd_"
49
+ pybufferstruct_prefix = pyrex_prefix + "pybuffer_"
50
+ vtable_prefix = pyrex_prefix + "vtable_"
51
+ vtabptr_prefix = pyrex_prefix + "vtabptr_"
52
+ vtabstruct_prefix = pyrex_prefix + "vtabstruct_"
53
+ unicode_vtabentry_prefix = pyrex_prefix + "Uvtabentry_"
54
+ # vtab entries aren't normally mangled,
55
+ # but punycode names sometimes start with numbers leading to a C syntax error
56
+ unicode_structmember_prefix = pyrex_prefix + "Umember_"
57
+ # as above -
58
+ # not normally mangled but punycode names cause specific problems
59
+ opt_arg_prefix = pyrex_prefix + "opt_args_"
60
+ convert_func_prefix = pyrex_prefix + "convert_"
61
+ closure_scope_prefix = pyrex_prefix + "scope_"
62
+ closure_class_prefix = pyrex_prefix + "scope_struct_"
63
+ lambda_func_prefix = pyrex_prefix + "lambda_"
64
+ module_is_main = pyrex_prefix + "module_is_main"
65
+ defaults_struct_prefix = pyrex_prefix + "defaults"
66
+ dynamic_args_cname = pyrex_prefix + "dynamic_args"
67
+
68
+ interned_prefixes = {
69
+ 'str': pyrex_prefix + "n_",
70
+ 'int': pyrex_prefix + "int_",
71
+ 'float': pyrex_prefix + "float_",
72
+ 'tuple': pyrex_prefix + "tuple_",
73
+ 'slice': pyrex_prefix + "slice_",
74
+ 'ustring': pyrex_prefix + "ustring_",
75
+ 'umethod': pyrex_prefix + "umethod_",
76
+ }
77
+
78
+ ctuple_type_prefix = pyrex_prefix + "ctuple_"
79
+ args_cname = pyrex_prefix + "args"
80
+ nargs_cname = pyrex_prefix + "nargs"
81
+ kwvalues_cname = pyrex_prefix + "kwvalues"
82
+ callargs_cname = pyrex_prefix + "callargs"
83
+ generator_cname = pyrex_prefix + "generator"
84
+ sent_value_cname = pyrex_prefix + "sent_value"
85
+ pykwdlist_cname = pyrex_prefix + "pyargnames"
86
+ obj_base_cname = pyrex_prefix + "base"
87
+ builtins_cname = pyrex_prefix + "b"
88
+ preimport_cname = pyrex_prefix + "i"
89
+ moddict_cname = pyrex_prefix + "d"
90
+ dummy_cname = pyrex_prefix + "dummy"
91
+ filename_cname = pyrex_prefix + "filename"
92
+ modulename_cname = pyrex_prefix + "modulename"
93
+ filetable_cname = pyrex_prefix + "f"
94
+ intern_tab_cname = pyrex_prefix + "intern_tab"
95
+ kwds_cname = pyrex_prefix + "kwds"
96
+ kwds_len_cname = pyrex_prefix + "kwds_len"
97
+ lineno_cname = pyrex_prefix + "lineno"
98
+ clineno_cname = pyrex_prefix + "clineno"
99
+ cfilenm_cname = pyrex_prefix + "cfilenm"
100
+ local_tstate_cname = pyrex_prefix + "tstate"
101
+ module_cname = pyrex_prefix + "m"
102
+ modulestatetype_cname = pyrex_prefix + "mstatetype"
103
+ modulestatevalue_cname = pyrex_prefix + "mstate"
104
+ modulestateglobal_cname = pyrex_prefix + "mstate_global"
105
+ moddoc_cname = pyrex_prefix + "mdoc"
106
+ methtable_cname = pyrex_prefix + "methods"
107
+ memviewslice_cname = '__Pyx_memviewslice'
108
+ memview_objstruct_cname = pyrex_prefix + 'memoryview_obj'
109
+ retval_cname = pyrex_prefix + "r"
110
+ reqd_kwds_cname = pyrex_prefix + "reqd_kwds"
111
+ self_cname = pyrex_prefix + "self"
112
+ codeobjtab_cname = pyrex_prefix + "codeobj_tab"
113
+ numbertab_cname = pyrex_prefix + "number_tab"
114
+ stringtab_cname = pyrex_prefix + "string_tab"
115
+ stringtab_encodings_cname = pyrex_prefix + "string_tab_encodings"
116
+ vtabslot_cname = pyrex_prefix + "vtab"
117
+ c_api_tab_cname = pyrex_prefix + "c_api_tab"
118
+ gilstate_cname = pyrex_prefix + "state"
119
+ skip_dispatch_cname = pyrex_prefix + "skip_dispatch"
120
+ empty_tuple = pyrex_prefix + "empty_tuple"
121
+ empty_bytes = pyrex_prefix + "empty_bytes"
122
+ empty_unicode = pyrex_prefix + "empty_unicode"
123
+ print_function = pyrex_prefix + "print"
124
+ print_function_kwargs = pyrex_prefix + "print_kwargs"
125
+ cleanup_cname = pyrex_prefix + "module_cleanup"
126
+ pymoduledef_cname = pyrex_prefix + "moduledef"
127
+ pymoduledef_slots_cname = pyrex_prefix + "moduledef_slots"
128
+ pymodinit_module_arg = pyrex_prefix + "pyinit_module"
129
+ pymodule_create_func_cname = pyrex_prefix + "pymod_create"
130
+ pymodule_exec_func_cname = pyrex_prefix + "pymod_exec"
131
+ optional_args_cname = pyrex_prefix + "optional_args"
132
+ import_star = pyrex_prefix + "import_star"
133
+ import_star_set = pyrex_prefix + "import_star_set"
134
+ outer_scope_cname= pyrex_prefix + "outer_scope"
135
+ cur_scope_cname = pyrex_prefix + "cur_scope"
136
+ enc_scope_cname = pyrex_prefix + "enc_scope"
137
+ frame_cname = pyrex_prefix + "frame"
138
+ frame_code_cname = pyrex_prefix + "frame_code"
139
+ monitoring_states_cname = pyrex_prefix + "pymonitoring_state"
140
+ monitoring_version_cname = pyrex_prefix + "pymonitoring_version"
141
+ error_without_exception_cname = pyrex_prefix + "error_without_exception"
142
+ binding_cfunc = pyrex_prefix + "binding_PyCFunctionType"
143
+ fused_func_prefix = pyrex_prefix + 'fuse_'
144
+ fused_dtype_prefix = pyrex_prefix + 'fused_dtype_'
145
+ quick_temp_cname = pyrex_prefix + "temp" # temp variable for quick'n'dirty temping
146
+ tp_dict_version_temp = pyrex_prefix + "tp_dict_version"
147
+ obj_dict_version_temp = pyrex_prefix + "obj_dict_version"
148
+ type_dict_guard_temp = pyrex_prefix + "typedict_guard"
149
+ cython_runtime_cname = pyrex_prefix + "cython_runtime"
150
+ # the name "dflt" was picked by analogy with the CPython dataclass module which stores
151
+ # the default values in variables named f"_dflt_{field.name}" in a hidden scope that's
152
+ # passed to the __init__ function. (The name is unimportant to the exact workings though)
153
+ dataclass_field_default_cname = pyrex_prefix + "dataclass_dflt"
154
+
155
+ global_code_object_cache_find = pyrex_prefix + 'find_code_object'
156
+ global_code_object_cache_insert = pyrex_prefix + 'insert_code_object'
157
+
158
+ genexpr_id_ref = 'genexpr'
159
+ freelist_name = 'freelist'
160
+ freecount_name = 'freecount'
161
+
162
+ line_c_macro = "__LINE__"
163
+
164
+ file_c_macro = "__FILE__"
165
+
166
+ extern_c_macro = pyrex_prefix.upper() + "EXTERN_C"
167
+
168
+ exc_type_name = pyrex_prefix + "exc_type"
169
+ exc_value_name = pyrex_prefix + "exc_value"
170
+ exc_tb_name = pyrex_prefix + "exc_tb"
171
+ exc_lineno_name = pyrex_prefix + "exc_lineno"
172
+
173
+ parallel_freethreading_mutex = pyrex_prefix + "parallel_freethreading_mutex"
174
+ parallel_exc_type = pyrex_prefix + "parallel_exc_type"
175
+ parallel_exc_value = pyrex_prefix + "parallel_exc_value"
176
+ parallel_exc_tb = pyrex_prefix + "parallel_exc_tb"
177
+ parallel_filename = pyrex_prefix + "parallel_filename"
178
+ parallel_lineno = pyrex_prefix + "parallel_lineno"
179
+ parallel_clineno = pyrex_prefix + "parallel_clineno"
180
+ parallel_why = pyrex_prefix + "parallel_why"
181
+
182
+ # Python itself used _Py_cs so loosely follow that convention
183
+ critical_section_variable = pyrex_prefix + "cs"
184
+
185
+ exc_vars = (exc_type_name, exc_value_name, exc_tb_name)
186
+
187
+ api_name = pyrex_prefix + "capi__"
188
+
189
+ # the h and api guards get changed to:
190
+ # __PYX_HAVE__FILENAME (for ascii filenames)
191
+ # __PYX_HAVE_U_PUNYCODEFILENAME (for non-ascii filenames)
192
+ h_guard_prefix = "__PYX_HAVE_"
193
+ api_guard_prefix = "__PYX_HAVE_API_"
194
+ api_func_guard = "__PYX_HAVE_API_FUNC_"
195
+
196
+ def py_version_hex(major, minor=0, micro=0, release_level=0, release_serial=0):
197
+ return (major << 24) | (minor << 16) | (micro << 8) | (release_level << 4) | (release_serial)
198
+
199
+
200
+ iso_c23_keywords = frozenset((
201
+ 'alignas', # (C23)
202
+ 'alignof', # (C23)
203
+ 'auto',
204
+ 'bool', # (C23)
205
+ 'break',
206
+ 'case',
207
+ 'char',
208
+ 'const',
209
+ 'constexpr', # (C23)
210
+ 'continue',
211
+ 'default',
212
+ 'do',
213
+ 'double',
214
+ 'else',
215
+ 'enum',
216
+ 'extern',
217
+ 'false', # (C23)
218
+ 'float',
219
+ 'for',
220
+ 'goto',
221
+ 'if',
222
+ 'inline', # (C99)
223
+ 'int',
224
+ 'long',
225
+ 'nullptr', # (C23)
226
+ 'register',
227
+ 'restrict', # (C99)
228
+ 'return',
229
+ 'short',
230
+ 'signed',
231
+ 'sizeof',
232
+ 'static',
233
+ 'static_assert', # (C23)
234
+ 'struct',
235
+ 'switch',
236
+ 'thread_local', # (C23)
237
+ 'true', # (C23)
238
+ 'typedef',
239
+ 'typeof', # (C23)
240
+ 'typeof_unqual', # (C23)
241
+ 'union',
242
+ 'unsigned',
243
+ 'void',
244
+ 'volatile',
245
+ 'while',
246
+ '_Alignas', # (C11)
247
+ '_Alignof', # (C11)
248
+ '_Atomic', # (C11)
249
+ '_BitInt', # (C23)
250
+ '_Bool', # (C99)
251
+ '_Complex', # (C99)
252
+ '_Decimal128', # (C23)
253
+ '_Decimal32', # (C23)
254
+ '_Decimal64', # (C23)
255
+ '_Generic', # (C11)
256
+ '_Imaginary', # (C99)
257
+ '_Noreturn', # (C11)
258
+ '_Static_assert', # (C11)
259
+ '_Thread_local', # (C11)
260
+ ))
261
+
262
+
263
+ iso_cpp23_keywords = frozenset((
264
+ 'alignas', # (C++11)
265
+ 'alignof', # (C++11)
266
+ 'and',
267
+ 'and_eq',
268
+ 'asm',
269
+ 'atomic_cancel', # (TM TS)
270
+ 'atomic_commit', # (TM TS)
271
+ 'atomic_noexcept', # (TM TS)
272
+ 'auto',
273
+ 'bitand',
274
+ 'bitor',
275
+ 'bool',
276
+ 'break',
277
+ 'case',
278
+ 'catch',
279
+ 'char',
280
+ 'char8_t', # (C++20)
281
+ 'char16_t', # (C++11)
282
+ 'char32_t', # (C++11)
283
+ 'class',
284
+ 'compl',
285
+ 'concept', # (C++20)
286
+ 'const',
287
+ 'consteval', # (C++20)
288
+ 'constexpr', # (C++11)
289
+ 'constinit', # (C++20)
290
+ 'const_cast',
291
+ 'continue',
292
+ 'co_await', # (C++20)
293
+ 'co_return', # (C++20)
294
+ 'co_yield', # (C++20)
295
+ 'decltype', # (C++11)
296
+ 'default',
297
+ 'delete',
298
+ 'do',
299
+ 'double',
300
+ 'dynamic_cast',
301
+ 'else',
302
+ 'enum',
303
+ 'explicit',
304
+ 'export',
305
+ 'extern',
306
+ 'false',
307
+ 'float',
308
+ 'for',
309
+ 'friend',
310
+ 'goto',
311
+ 'if',
312
+ 'inline',
313
+ 'int',
314
+ 'long',
315
+ 'mutable',
316
+ 'namespace',
317
+ 'new',
318
+ 'noexcept', # (C++11)
319
+ 'not',
320
+ 'not_eq',
321
+ 'nullptr', # (C++11)
322
+ 'operator',
323
+ 'or',
324
+ 'or_eq',
325
+ 'private',
326
+ 'protected',
327
+ 'public',
328
+ 'reflexpr', # (reflection TS)
329
+ 'register',
330
+ 'reinterpret_cast',
331
+ 'requires', # (C++20)
332
+ 'return',
333
+ 'short',
334
+ 'signed',
335
+ 'sizeof',
336
+ 'static',
337
+ 'static_assert', # (C++11)
338
+ 'static_cast',
339
+ 'struct',
340
+ 'switch',
341
+ 'synchronized', # (TM TS)
342
+ 'template',
343
+ 'this',
344
+ 'thread_local', # (C++11)
345
+ 'throw',
346
+ 'true',
347
+ 'try',
348
+ 'typedef',
349
+ 'typeid',
350
+ 'typename',
351
+ 'union',
352
+ 'unsigned',
353
+ 'using',
354
+ 'virtual',
355
+ 'void',
356
+ 'volatile',
357
+ 'wchar_t',
358
+ 'while',
359
+ 'xor',
360
+ 'xor_eq',
361
+ ))
362
+
363
+ reserved_cnames = iso_c23_keywords | iso_cpp23_keywords