Cython 3.3.0a1__cp315-cp315-win_amd64.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 (335) hide show
  1. Cython/Build/BuildExecutable.py +156 -0
  2. Cython/Build/Cache.py +199 -0
  3. Cython/Build/Cythonize.py +349 -0
  4. Cython/Build/Dependencies.py +1276 -0
  5. Cython/Build/Distutils.py +1 -0
  6. Cython/Build/Inline.py +467 -0
  7. Cython/Build/IpythonMagic.py +559 -0
  8. Cython/Build/SharedModule.py +84 -0
  9. Cython/Build/Tests/TestCyCache.py +195 -0
  10. Cython/Build/Tests/TestCythonizeArgsParser.py +480 -0
  11. Cython/Build/Tests/TestDependencies.py +133 -0
  12. Cython/Build/Tests/TestInline.py +177 -0
  13. Cython/Build/Tests/TestIpythonMagic.py +303 -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 +997 -0
  24. Cython/Compiler/CmdLine.py +263 -0
  25. Cython/Compiler/Code.cp315-win_amd64.pyd +0 -0
  26. Cython/Compiler/Code.pxd +152 -0
  27. Cython/Compiler/Code.py +3907 -0
  28. Cython/Compiler/CodeGeneration.py +33 -0
  29. Cython/Compiler/CythonScope.py +194 -0
  30. Cython/Compiler/Dataclass.py +890 -0
  31. Cython/Compiler/DebugFlags.py +24 -0
  32. Cython/Compiler/Errors.py +310 -0
  33. Cython/Compiler/ExprNodes.py +15983 -0
  34. Cython/Compiler/FlowControl.cp315-win_amd64.pyd +0 -0
  35. Cython/Compiler/FlowControl.pxd +99 -0
  36. Cython/Compiler/FlowControl.py +1571 -0
  37. Cython/Compiler/FusedNode.cp315-win_amd64.pyd +0 -0
  38. Cython/Compiler/FusedNode.py +976 -0
  39. Cython/Compiler/Future.py +16 -0
  40. Cython/Compiler/Interpreter.py +57 -0
  41. Cython/Compiler/Lexicon.py +422 -0
  42. Cython/Compiler/LineTable.cp315-win_amd64.pyd +0 -0
  43. Cython/Compiler/LineTable.py +114 -0
  44. Cython/Compiler/Main.py +856 -0
  45. Cython/Compiler/MatchCaseNodes.py +2197 -0
  46. Cython/Compiler/MemoryView.py +930 -0
  47. Cython/Compiler/ModuleNode.py +4517 -0
  48. Cython/Compiler/Naming.py +367 -0
  49. Cython/Compiler/Nodes.py +10941 -0
  50. Cython/Compiler/Optimize.py +5455 -0
  51. Cython/Compiler/Options.py +838 -0
  52. Cython/Compiler/ParseTreeTransforms.pxd +79 -0
  53. Cython/Compiler/ParseTreeTransforms.py +4744 -0
  54. Cython/Compiler/Parsing.cp315-win_amd64.pyd +0 -0
  55. Cython/Compiler/Parsing.pxd +9 -0
  56. Cython/Compiler/Parsing.py +4792 -0
  57. Cython/Compiler/Pipeline.py +439 -0
  58. Cython/Compiler/PyrexTypes.py +6111 -0
  59. Cython/Compiler/Pythran.py +232 -0
  60. Cython/Compiler/Scanning.cp315-win_amd64.pyd +0 -0
  61. Cython/Compiler/Scanning.pxd +70 -0
  62. Cython/Compiler/Scanning.py +720 -0
  63. Cython/Compiler/StringEncoding.py +297 -0
  64. Cython/Compiler/Symtab.py +3092 -0
  65. Cython/Compiler/Tests/TestBuffer.py +105 -0
  66. Cython/Compiler/Tests/TestBuiltin.py +117 -0
  67. Cython/Compiler/Tests/TestCmdLine.py +587 -0
  68. Cython/Compiler/Tests/TestCode.py +145 -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 +132 -0
  74. Cython/Compiler/Tests/TestSignatureMatching.py +73 -0
  75. Cython/Compiler/Tests/TestStringEncoding.py +20 -0
  76. Cython/Compiler/Tests/TestTreeFragment.py +63 -0
  77. Cython/Compiler/Tests/TestTreePath.py +103 -0
  78. Cython/Compiler/Tests/TestTypes.py +118 -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 +611 -0
  86. Cython/Compiler/TypeSlots.py +1329 -0
  87. Cython/Compiler/UFuncs.py +311 -0
  88. Cython/Compiler/UtilNodes.py +413 -0
  89. Cython/Compiler/UtilityCode.py +348 -0
  90. Cython/Compiler/Version.py +8 -0
  91. Cython/Compiler/Visitor.cp315-win_amd64.pyd +0 -0
  92. Cython/Compiler/Visitor.pxd +53 -0
  93. Cython/Compiler/Visitor.py +864 -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 +280 -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 +580 -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 +152 -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 +268 -0
  127. Cython/Includes/cpython/exc.pxd +263 -0
  128. Cython/Includes/cpython/fileobject.pxd +57 -0
  129. Cython/Includes/cpython/float.pxd +56 -0
  130. Cython/Includes/cpython/frozendict.pxd +37 -0
  131. Cython/Includes/cpython/function.pxd +65 -0
  132. Cython/Includes/cpython/genobject.pxd +25 -0
  133. Cython/Includes/cpython/getargs.pxd +12 -0
  134. Cython/Includes/cpython/instance.pxd +25 -0
  135. Cython/Includes/cpython/iterator.pxd +36 -0
  136. Cython/Includes/cpython/iterobject.pxd +24 -0
  137. Cython/Includes/cpython/list.pxd +144 -0
  138. Cython/Includes/cpython/long.pxd +180 -0
  139. Cython/Includes/cpython/longintrepr.pxd +14 -0
  140. Cython/Includes/cpython/mapping.pxd +63 -0
  141. Cython/Includes/cpython/marshal.pxd +66 -0
  142. Cython/Includes/cpython/mem.pxd +120 -0
  143. Cython/Includes/cpython/memoryview.pxd +50 -0
  144. Cython/Includes/cpython/method.pxd +49 -0
  145. Cython/Includes/cpython/module.pxd +208 -0
  146. Cython/Includes/cpython/number.pxd +258 -0
  147. Cython/Includes/cpython/object.pxd +430 -0
  148. Cython/Includes/cpython/pycapsule.pxd +143 -0
  149. Cython/Includes/cpython/pylifecycle.pxd +68 -0
  150. Cython/Includes/cpython/pyport.pxd +8 -0
  151. Cython/Includes/cpython/pystate.pxd +95 -0
  152. Cython/Includes/cpython/pythread.pxd +53 -0
  153. Cython/Includes/cpython/ref.pxd +141 -0
  154. Cython/Includes/cpython/sentinel.pxd +17 -0
  155. Cython/Includes/cpython/sequence.pxd +134 -0
  156. Cython/Includes/cpython/set.pxd +119 -0
  157. Cython/Includes/cpython/slice.pxd +70 -0
  158. Cython/Includes/cpython/time.pxd +129 -0
  159. Cython/Includes/cpython/tuple.pxd +72 -0
  160. Cython/Includes/cpython/type.pxd +146 -0
  161. Cython/Includes/cpython/unicode.pxd +639 -0
  162. Cython/Includes/cpython/version.pxd +32 -0
  163. Cython/Includes/cpython/weakref.pxd +78 -0
  164. Cython/Includes/libc/__init__.pxd +1 -0
  165. Cython/Includes/libc/complex.pxd +35 -0
  166. Cython/Includes/libc/errno.pxd +127 -0
  167. Cython/Includes/libc/float.pxd +43 -0
  168. Cython/Includes/libc/limits.pxd +28 -0
  169. Cython/Includes/libc/locale.pxd +46 -0
  170. Cython/Includes/libc/math.pxd +209 -0
  171. Cython/Includes/libc/setjmp.pxd +10 -0
  172. Cython/Includes/libc/signal.pxd +64 -0
  173. Cython/Includes/libc/stddef.pxd +9 -0
  174. Cython/Includes/libc/stdint.pxd +105 -0
  175. Cython/Includes/libc/stdio.pxd +80 -0
  176. Cython/Includes/libc/stdlib.pxd +72 -0
  177. Cython/Includes/libc/string.pxd +50 -0
  178. Cython/Includes/libc/threads.pxd +234 -0
  179. Cython/Includes/libc/time.pxd +52 -0
  180. Cython/Includes/libcpp/__init__.pxd +4 -0
  181. Cython/Includes/libcpp/algorithm.pxd +320 -0
  182. Cython/Includes/libcpp/any.pxd +16 -0
  183. Cython/Includes/libcpp/atomic.pxd +59 -0
  184. Cython/Includes/libcpp/barrier.pxd +22 -0
  185. Cython/Includes/libcpp/bit.pxd +29 -0
  186. Cython/Includes/libcpp/cast.pxd +12 -0
  187. Cython/Includes/libcpp/cmath.pxd +518 -0
  188. Cython/Includes/libcpp/complex.pxd +106 -0
  189. Cython/Includes/libcpp/condition_variable.pxd +322 -0
  190. Cython/Includes/libcpp/deque.pxd +165 -0
  191. Cython/Includes/libcpp/exception.pxd +216 -0
  192. Cython/Includes/libcpp/execution.pxd +15 -0
  193. Cython/Includes/libcpp/forward_list.pxd +63 -0
  194. Cython/Includes/libcpp/functional.pxd +26 -0
  195. Cython/Includes/libcpp/future.pxd +103 -0
  196. Cython/Includes/libcpp/iterator.pxd +34 -0
  197. Cython/Includes/libcpp/latch.pxd +17 -0
  198. Cython/Includes/libcpp/limits.pxd +61 -0
  199. Cython/Includes/libcpp/list.pxd +117 -0
  200. Cython/Includes/libcpp/map.pxd +252 -0
  201. Cython/Includes/libcpp/memory.pxd +115 -0
  202. Cython/Includes/libcpp/mutex.pxd +387 -0
  203. Cython/Includes/libcpp/numbers.pxd +15 -0
  204. Cython/Includes/libcpp/numeric.pxd +131 -0
  205. Cython/Includes/libcpp/optional.pxd +34 -0
  206. Cython/Includes/libcpp/pair.pxd +1 -0
  207. Cython/Includes/libcpp/queue.pxd +25 -0
  208. Cython/Includes/libcpp/random.pxd +166 -0
  209. Cython/Includes/libcpp/semaphore.pxd +43 -0
  210. Cython/Includes/libcpp/set.pxd +228 -0
  211. Cython/Includes/libcpp/shared_mutex.pxd +96 -0
  212. Cython/Includes/libcpp/span.pxd +87 -0
  213. Cython/Includes/libcpp/stack.pxd +11 -0
  214. Cython/Includes/libcpp/stop_token.pxd +117 -0
  215. Cython/Includes/libcpp/string.pxd +355 -0
  216. Cython/Includes/libcpp/string_view.pxd +183 -0
  217. Cython/Includes/libcpp/typeindex.pxd +15 -0
  218. Cython/Includes/libcpp/typeinfo.pxd +10 -0
  219. Cython/Includes/libcpp/unordered_map.pxd +193 -0
  220. Cython/Includes/libcpp/unordered_set.pxd +152 -0
  221. Cython/Includes/libcpp/utility.pxd +30 -0
  222. Cython/Includes/libcpp/vector.pxd +186 -0
  223. Cython/Includes/numpy/math.pxd +150 -0
  224. Cython/Includes/openmp.pxd +50 -0
  225. Cython/Includes/posix/__init__.pxd +1 -0
  226. Cython/Includes/posix/dlfcn.pxd +14 -0
  227. Cython/Includes/posix/fcntl.pxd +86 -0
  228. Cython/Includes/posix/ioctl.pxd +4 -0
  229. Cython/Includes/posix/mman.pxd +101 -0
  230. Cython/Includes/posix/resource.pxd +57 -0
  231. Cython/Includes/posix/select.pxd +21 -0
  232. Cython/Includes/posix/signal.pxd +73 -0
  233. Cython/Includes/posix/stat.pxd +98 -0
  234. Cython/Includes/posix/stdio.pxd +37 -0
  235. Cython/Includes/posix/stdlib.pxd +29 -0
  236. Cython/Includes/posix/strings.pxd +9 -0
  237. Cython/Includes/posix/time.pxd +71 -0
  238. Cython/Includes/posix/types.pxd +30 -0
  239. Cython/Includes/posix/uio.pxd +26 -0
  240. Cython/Includes/posix/unistd.pxd +271 -0
  241. Cython/Includes/posix/wait.pxd +38 -0
  242. Cython/LZSS.py +170 -0
  243. Cython/Plex/Actions.cp315-win_amd64.pyd +0 -0
  244. Cython/Plex/Actions.pxd +24 -0
  245. Cython/Plex/Actions.py +119 -0
  246. Cython/Plex/DFA.cp315-win_amd64.pyd +0 -0
  247. Cython/Plex/DFA.pxd +14 -0
  248. Cython/Plex/DFA.py +164 -0
  249. Cython/Plex/Errors.py +48 -0
  250. Cython/Plex/Lexicons.py +178 -0
  251. Cython/Plex/Machines.cp315-win_amd64.pyd +0 -0
  252. Cython/Plex/Machines.pxd +36 -0
  253. Cython/Plex/Machines.py +238 -0
  254. Cython/Plex/Regexps.py +535 -0
  255. Cython/Plex/Scanners.cp315-win_amd64.pyd +0 -0
  256. Cython/Plex/Scanners.pxd +45 -0
  257. Cython/Plex/Scanners.py +328 -0
  258. Cython/Plex/Transitions.cp315-win_amd64.pyd +0 -0
  259. Cython/Plex/Transitions.pxd +14 -0
  260. Cython/Plex/Transitions.py +239 -0
  261. Cython/Plex/__init__.py +34 -0
  262. Cython/Runtime/__init__.py +1 -0
  263. Cython/Runtime/refnanny.cp315-win_amd64.pyd +0 -0
  264. Cython/Runtime/refnanny.pyx +237 -0
  265. Cython/Shadow.py +1167 -0
  266. Cython/StringIOTree.cp315-win_amd64.pyd +0 -0
  267. Cython/StringIOTree.py +169 -0
  268. Cython/Tempita/__init__.py +4 -0
  269. Cython/Tempita/_looper.py +154 -0
  270. Cython/Tempita/_tempita.cp315-win_amd64.pyd +0 -0
  271. Cython/Tempita/_tempita.py +1087 -0
  272. Cython/TestUtils.py +464 -0
  273. Cython/Tests/TestCodeWriter.py +128 -0
  274. Cython/Tests/TestCythonUtils.py +202 -0
  275. Cython/Tests/TestJediTyper.py +223 -0
  276. Cython/Tests/TestShadow.py +110 -0
  277. Cython/Tests/TestStringIOTree.py +68 -0
  278. Cython/Tests/TestTestUtils.py +89 -0
  279. Cython/Tests/__init__.py +1 -0
  280. Cython/Tests/xmlrunner.py +390 -0
  281. Cython/Utility/AsyncGen.c +1073 -0
  282. Cython/Utility/Buffer.c +866 -0
  283. Cython/Utility/BufferFormatFromTypeInfo.pxd +2 -0
  284. Cython/Utility/Builtins.c +933 -0
  285. Cython/Utility/CConvert.pyx +149 -0
  286. Cython/Utility/CMath.c +104 -0
  287. Cython/Utility/CommonStructures.c +244 -0
  288. Cython/Utility/Complex.c +378 -0
  289. Cython/Utility/Coroutine.c +2337 -0
  290. Cython/Utility/CpdefEnums.pyx +107 -0
  291. Cython/Utility/CppConvert.pyx +282 -0
  292. Cython/Utility/CppSupport.cpp +151 -0
  293. Cython/Utility/CythonFunction.c +2072 -0
  294. Cython/Utility/Dataclasses.c +101 -0
  295. Cython/Utility/Embed.c +129 -0
  296. Cython/Utility/Exceptions.c +1038 -0
  297. Cython/Utility/ExtensionTypes.c +1158 -0
  298. Cython/Utility/FunctionArguments.c +1045 -0
  299. Cython/Utility/FusedFunction.pyx +44 -0
  300. Cython/Utility/ImportExport.c +930 -0
  301. Cython/Utility/MatchCase.c +979 -0
  302. Cython/Utility/MatchCase_Cy.pyx +12 -0
  303. Cython/Utility/MemoryView.pxd +108 -0
  304. Cython/Utility/MemoryView.pyx +1499 -0
  305. Cython/Utility/MemoryView_C.c +1056 -0
  306. Cython/Utility/ModuleSetupCode.c +3352 -0
  307. Cython/Utility/NumpyImportArray.c +46 -0
  308. Cython/Utility/ObjectHandling.c +3372 -0
  309. Cython/Utility/Optimize.c +2563 -0
  310. Cython/Utility/Overflow.c +378 -0
  311. Cython/Utility/Profile.c +736 -0
  312. Cython/Utility/StringTools.c +1414 -0
  313. Cython/Utility/Synchronization.c +438 -0
  314. Cython/Utility/TString.c +369 -0
  315. Cython/Utility/TestCyUtilityLoader.pyx +8 -0
  316. Cython/Utility/TestCythonScope.pyx +75 -0
  317. Cython/Utility/TestUtilityLoader.c +12 -0
  318. Cython/Utility/TypeConversion.c +1556 -0
  319. Cython/Utility/UFuncs.pyx +50 -0
  320. Cython/Utility/UFuncs_C.c +89 -0
  321. Cython/Utility/__init__.py +28 -0
  322. Cython/Utility/arrayarray.h +172 -0
  323. Cython/Utils.cp315-win_amd64.pyd +0 -0
  324. Cython/Utils.py +677 -0
  325. Cython/__init__.py +12 -0
  326. Cython/py.typed +0 -0
  327. cython-3.3.0a1.dist-info/METADATA +394 -0
  328. cython-3.3.0a1.dist-info/RECORD +335 -0
  329. cython-3.3.0a1.dist-info/WHEEL +5 -0
  330. cython-3.3.0a1.dist-info/entry_points.txt +4 -0
  331. cython-3.3.0a1.dist-info/top_level.txt +3 -0
  332. cython.py +29 -0
  333. pyximport/__init__.py +4 -0
  334. pyximport/pyxbuild.py +160 -0
  335. pyximport/pyximport.py +482 -0
@@ -0,0 +1,367 @@
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
+ 'carray': pyrex_prefix + "carray_",
77
+ }
78
+
79
+ carray_literal_prefix = pyrex_prefix + "literalcarray_"
80
+ ctuple_type_prefix = pyrex_prefix + "ctuple_"
81
+ args_cname = pyrex_prefix + "args"
82
+ nargs_cname = pyrex_prefix + "nargs"
83
+ kwvalues_cname = pyrex_prefix + "kwvalues"
84
+ callargs_cname = pyrex_prefix + "callargs"
85
+ generator_cname = pyrex_prefix + "generator"
86
+ sent_value_cname = pyrex_prefix + "sent_value"
87
+ pykwdlist_cname = pyrex_prefix + "pyargnames"
88
+ obj_base_cname = pyrex_prefix + "base"
89
+ builtins_cname = pyrex_prefix + "b"
90
+ preimport_cname = pyrex_prefix + "i"
91
+ moddict_cname = pyrex_prefix + "d"
92
+ dummy_cname = pyrex_prefix + "dummy"
93
+ filename_cname = pyrex_prefix + "filename"
94
+ modulename_cname = pyrex_prefix + "modulename"
95
+ filetable_cname = pyrex_prefix + "f"
96
+ intern_tab_cname = pyrex_prefix + "intern_tab"
97
+ kwds_cname = pyrex_prefix + "kwds"
98
+ kwds_len_cname = pyrex_prefix + "kwds_len"
99
+ lineno_cname = pyrex_prefix + "lineno"
100
+ clineno_cname = pyrex_prefix + "clineno"
101
+ cfilenm_cname = pyrex_prefix + "cfilenm"
102
+ local_tstate_cname = pyrex_prefix + "tstate"
103
+ module_cname = pyrex_prefix + "m"
104
+ modulestatetype_cname = pyrex_prefix + "mstatetype"
105
+ modulestatevalue_cname = pyrex_prefix + "mstate"
106
+ modulestateglobal_cname = pyrex_prefix + "mstate_global"
107
+ moddoc_cname = pyrex_prefix + "mdoc"
108
+ methtable_cname = pyrex_prefix + "methods"
109
+ memviewslice_cname = '__Pyx_memviewslice'
110
+ memview_objstruct_cname = pyrex_prefix + 'memoryview_obj'
111
+ retval_cname = pyrex_prefix + "r"
112
+ reqd_kwds_cname = pyrex_prefix + "reqd_kwds"
113
+ self_cname = pyrex_prefix + "self"
114
+ codeobjtab_cname = pyrex_prefix + "codeobj_tab"
115
+ numbertab_cname = pyrex_prefix + "number_tab"
116
+ stringtab_cname = pyrex_prefix + "string_tab"
117
+ stringtab_encodings_cname = pyrex_prefix + "string_tab_encodings"
118
+ vtabslot_cname = pyrex_prefix + "vtab"
119
+ c_api_tab_cname = pyrex_prefix + "c_api_tab"
120
+ gilstate_cname = pyrex_prefix + "state"
121
+ skip_dispatch_cname = pyrex_prefix + "skip_dispatch"
122
+ empty_tuple = pyrex_prefix + "empty_tuple"
123
+ empty_bytes = pyrex_prefix + "empty_bytes"
124
+ empty_unicode = pyrex_prefix + "empty_unicode"
125
+ print_function = pyrex_prefix + "print"
126
+ print_function_kwargs = pyrex_prefix + "print_kwargs"
127
+ cleanup_cname = pyrex_prefix + "module_cleanup"
128
+ pymoduledef_cname = pyrex_prefix + "moduledef"
129
+ pymoduledef_slots_cname = pyrex_prefix + "moduledef_slots"
130
+ pymodinit_module_arg = pyrex_prefix + "pyinit_module"
131
+ pymodule_create_func_cname = pyrex_prefix + "pymod_create"
132
+ pymodule_exec_func_cname = pyrex_prefix + "pymod_exec"
133
+ optional_args_cname = pyrex_prefix + "optional_args"
134
+ import_star = pyrex_prefix + "import_star"
135
+ import_star_set = pyrex_prefix + "import_star_set"
136
+ outer_scope_cname= pyrex_prefix + "outer_scope"
137
+ cur_scope_cname = pyrex_prefix + "cur_scope"
138
+ enc_scope_cname = pyrex_prefix + "enc_scope"
139
+ frame_cname = pyrex_prefix + "frame"
140
+ frame_code_cname = pyrex_prefix + "frame_code"
141
+ monitoring_states_cname = pyrex_prefix + "pymonitoring_state"
142
+ monitoring_version_cname = pyrex_prefix + "pymonitoring_version"
143
+ error_without_exception_cname = pyrex_prefix + "error_without_exception"
144
+ binding_cfunc = pyrex_prefix + "binding_PyCFunctionType"
145
+ fused_func_prefix = pyrex_prefix + 'fuse_'
146
+ fused_dtype_prefix = pyrex_prefix + 'fused_dtype_'
147
+ quick_temp_cname = pyrex_prefix + "temp" # temp variable for quick'n'dirty temping
148
+ tp_dict_version_temp = pyrex_prefix + "tp_dict_version"
149
+ obj_dict_version_temp = pyrex_prefix + "obj_dict_version"
150
+ type_dict_guard_temp = pyrex_prefix + "typedict_guard"
151
+ cython_runtime_cname = pyrex_prefix + "cython_runtime"
152
+ # the name "dflt" was picked by analogy with the CPython dataclass module which stores
153
+ # the default values in variables named f"_dflt_{field.name}" in a hidden scope that's
154
+ # passed to the __init__ function. (The name is unimportant to the exact workings though)
155
+ dataclass_field_default_cname = pyrex_prefix + "dataclass_dflt"
156
+
157
+ global_code_object_cache_find = pyrex_prefix + 'find_code_object'
158
+ global_code_object_cache_insert = pyrex_prefix + 'insert_code_object'
159
+
160
+ genexpr_id_ref = 'genexpr'
161
+ freelist_name = 'freelist'
162
+ freecount_name = 'freecount'
163
+
164
+ line_c_macro = "__LINE__"
165
+
166
+ file_c_macro = "__FILE__"
167
+
168
+ extern_c_macro = pyrex_prefix.upper() + "EXTERN_C"
169
+
170
+ exc_type_name = pyrex_prefix + "exc_type"
171
+ exc_value_name = pyrex_prefix + "exc_value"
172
+ exc_tb_name = pyrex_prefix + "exc_tb"
173
+ exc_lineno_name = pyrex_prefix + "exc_lineno"
174
+
175
+ parallel_freethreading_mutex = pyrex_prefix + "parallel_freethreading_mutex"
176
+ parallel_exc_type = pyrex_prefix + "parallel_exc_type"
177
+ parallel_exc_value = pyrex_prefix + "parallel_exc_value"
178
+ parallel_exc_tb = pyrex_prefix + "parallel_exc_tb"
179
+ parallel_filename = pyrex_prefix + "parallel_filename"
180
+ parallel_lineno = pyrex_prefix + "parallel_lineno"
181
+ parallel_clineno = pyrex_prefix + "parallel_clineno"
182
+ parallel_why = pyrex_prefix + "parallel_why"
183
+ parallel_loop_threadstate = pyrex_prefix + "parallel_loop_threadstate"
184
+
185
+ # Python itself used _Py_cs so loosely follow that convention
186
+ critical_section_variable = pyrex_prefix + "cs"
187
+
188
+ exc_vars = (exc_type_name, exc_value_name, exc_tb_name)
189
+
190
+ api_name = pyrex_prefix + "capi__"
191
+
192
+ # the h and api guards get changed to:
193
+ # __PYX_HAVE__FILENAME (for ascii filenames)
194
+ # __PYX_HAVE_U_PUNYCODEFILENAME (for non-ascii filenames)
195
+ h_guard_prefix = "__PYX_HAVE_"
196
+ api_guard_prefix = "__PYX_HAVE_API_"
197
+ api_func_guard = "__PYX_HAVE_API_FUNC_"
198
+
199
+ def py_version_hex(major, minor=0, micro=0, release_level=0, release_serial=0):
200
+ return (major << 24) | (minor << 16) | (micro << 8) | (release_level << 4) | (release_serial)
201
+
202
+
203
+ iso_c23_keywords = frozenset((
204
+ 'alignas', # (C23)
205
+ 'alignof', # (C23)
206
+ 'auto',
207
+ 'bool', # (C23)
208
+ 'break',
209
+ 'case',
210
+ 'char',
211
+ 'const',
212
+ 'constexpr', # (C23)
213
+ 'continue',
214
+ 'default',
215
+ 'do',
216
+ 'double',
217
+ 'else',
218
+ 'enum',
219
+ 'extern',
220
+ 'false', # (C23)
221
+ 'float',
222
+ 'for',
223
+ 'goto',
224
+ 'if',
225
+ 'inline', # (C99)
226
+ 'int',
227
+ 'long',
228
+ 'nullptr', # (C23)
229
+ 'register',
230
+ 'restrict', # (C99)
231
+ 'return',
232
+ 'short',
233
+ 'signed',
234
+ 'sizeof',
235
+ 'static',
236
+ 'static_assert', # (C23)
237
+ 'struct',
238
+ 'switch',
239
+ 'thread_local', # (C23)
240
+ 'true', # (C23)
241
+ 'typedef',
242
+ 'typeof', # (C23)
243
+ 'typeof_unqual', # (C23)
244
+ 'union',
245
+ 'unsigned',
246
+ 'void',
247
+ 'volatile',
248
+ 'restrict', # (C99)
249
+ 'while',
250
+ '_Alignas', # (C11)
251
+ '_Alignof', # (C11)
252
+ '_Atomic', # (C11)
253
+ '_BitInt', # (C23)
254
+ '_Bool', # (C99)
255
+ '_Complex', # (C99)
256
+ '_Decimal128', # (C23)
257
+ '_Decimal32', # (C23)
258
+ '_Decimal64', # (C23)
259
+ '_Generic', # (C11)
260
+ '_Imaginary', # (C99)
261
+ '_Noreturn', # (C11)
262
+ '_Static_assert', # (C11)
263
+ '_Thread_local', # (C11)
264
+ ))
265
+
266
+
267
+ iso_cpp23_keywords = frozenset((
268
+ 'alignas', # (C++11)
269
+ 'alignof', # (C++11)
270
+ 'and',
271
+ 'and_eq',
272
+ 'asm',
273
+ 'atomic_cancel', # (TM TS)
274
+ 'atomic_commit', # (TM TS)
275
+ 'atomic_noexcept', # (TM TS)
276
+ 'auto',
277
+ 'bitand',
278
+ 'bitor',
279
+ 'bool',
280
+ 'break',
281
+ 'case',
282
+ 'catch',
283
+ 'char',
284
+ 'char8_t', # (C++20)
285
+ 'char16_t', # (C++11)
286
+ 'char32_t', # (C++11)
287
+ 'class',
288
+ 'compl',
289
+ 'concept', # (C++20)
290
+ 'const',
291
+ 'consteval', # (C++20)
292
+ 'constexpr', # (C++11)
293
+ 'constinit', # (C++20)
294
+ 'const_cast',
295
+ 'continue',
296
+ 'co_await', # (C++20)
297
+ 'co_return', # (C++20)
298
+ 'co_yield', # (C++20)
299
+ 'decltype', # (C++11)
300
+ 'default',
301
+ 'delete',
302
+ 'do',
303
+ 'double',
304
+ 'dynamic_cast',
305
+ 'else',
306
+ 'enum',
307
+ 'explicit',
308
+ 'export',
309
+ 'extern',
310
+ 'false',
311
+ 'float',
312
+ 'for',
313
+ 'friend',
314
+ 'goto',
315
+ 'if',
316
+ 'inline',
317
+ 'int',
318
+ 'long',
319
+ 'mutable',
320
+ 'namespace',
321
+ 'new',
322
+ 'noexcept', # (C++11)
323
+ 'not',
324
+ 'not_eq',
325
+ 'nullptr', # (C++11)
326
+ 'operator',
327
+ 'or',
328
+ 'or_eq',
329
+ 'private',
330
+ 'protected',
331
+ 'public',
332
+ 'reflexpr', # (reflection TS)
333
+ 'register',
334
+ 'reinterpret_cast',
335
+ 'requires', # (C++20)
336
+ 'return',
337
+ 'short',
338
+ 'signed',
339
+ 'sizeof',
340
+ 'static',
341
+ 'static_assert', # (C++11)
342
+ 'static_cast',
343
+ 'struct',
344
+ 'switch',
345
+ 'synchronized', # (TM TS)
346
+ 'template',
347
+ 'this',
348
+ 'thread_local', # (C++11)
349
+ 'throw',
350
+ 'true',
351
+ 'try',
352
+ 'typedef',
353
+ 'typeid',
354
+ 'typename',
355
+ 'union',
356
+ 'unsigned',
357
+ 'using',
358
+ 'virtual',
359
+ 'void',
360
+ 'volatile',
361
+ 'wchar_t',
362
+ 'while',
363
+ 'xor',
364
+ 'xor_eq',
365
+ ))
366
+
367
+ reserved_cnames = iso_c23_keywords | iso_cpp23_keywords