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,134 @@
1
+ #################### FromPyStructUtility ####################
2
+
3
+ cdef extern from *:
4
+ ctypedef struct PyTypeObject:
5
+ char* tp_name
6
+ PyTypeObject *Py_TYPE(obj)
7
+ bint PyMapping_Check(obj)
8
+ object PyErr_Format(exc, const char *format, ...)
9
+ int __Pyx_RaiseUnexpectedTypeError(const char *expected, object obj) except 0
10
+
11
+ @cname("{{funcname}}")
12
+ cdef {{struct_type}} {{funcname}}(obj) except *:
13
+ cdef {{struct_type}} result
14
+ if not PyMapping_Check(obj):
15
+ __Pyx_RaiseUnexpectedTypeError(b"a mapping", obj)
16
+
17
+ {{for member in var_entries:}}
18
+ try:
19
+ value = obj['{{member.name}}']
20
+ except KeyError:
21
+ raise ValueError("No value specified for struct attribute '{{member.name}}'")
22
+ result.{{member.name}} = value
23
+ {{endfor}}
24
+ return result
25
+
26
+
27
+ #################### FromPyUnionUtility ####################
28
+
29
+ cdef extern from *:
30
+ ctypedef struct PyTypeObject:
31
+ char* tp_name
32
+ PyTypeObject *Py_TYPE(obj)
33
+ bint PyMapping_Check(obj)
34
+ object PyErr_Format(exc, const char *format, ...)
35
+ int __Pyx_RaiseUnexpectedTypeError(const char *expected, object obj) except 0
36
+
37
+ @cname("{{funcname}}")
38
+ cdef {{struct_type}} {{funcname}}(obj) except *:
39
+ cdef {{struct_type}} result
40
+ cdef Py_ssize_t length
41
+ if not PyMapping_Check(obj):
42
+ __Pyx_RaiseUnexpectedTypeError(b"a mapping", obj)
43
+
44
+ last_found = None
45
+ length = len(obj)
46
+ if length:
47
+ {{for member in var_entries:}}
48
+ if '{{member.name}}' in obj:
49
+ if last_found is not None:
50
+ raise ValueError("More than one union attribute passed: '%s' and '%s'" % (last_found, '{{member.name}}'))
51
+ last_found = '{{member.name}}'
52
+ result.{{member.cname}} = obj['{{member.name}}']
53
+ length -= 1
54
+ if not length:
55
+ return result
56
+ {{endfor}}
57
+ if last_found is None:
58
+ raise ValueError("No value specified for any of the union attributes (%s)" %
59
+ '{{", ".join(member.name for member in var_entries)}}')
60
+ return result
61
+
62
+
63
+ #################### cfunc.to_py ####################
64
+
65
+ @cname("{{cname}}")
66
+ cdef object {{cname}}({{return_type.ctype}} (*f)({{ ', '.join(arg.type_cname for arg in args) }}) {{except_clause}}):
67
+ def wrap({{ ', '.join('{arg.ctype} {arg.name}'.format(arg=arg) for arg in args) }}):
68
+ """wrap({{', '.join(('{arg.name}: {arg.type_displayname}'.format(arg=arg) if arg.type_displayname else arg.name) for arg in args)}}){{if return_type.type_displayname}} -> {{return_type.type_displayname}}{{endif}}"""
69
+ {{'' if return_type.type.is_void else 'return '}}f({{ ', '.join(arg.name for arg in args) }})
70
+ return wrap
71
+
72
+
73
+ #################### carray.from_py ####################
74
+
75
+ cdef extern from *:
76
+ object PyErr_Format(exc, const char *format, ...)
77
+
78
+ @cname("{{cname}}")
79
+ cdef int {{cname}}(object o, {{base_type}} *v, Py_ssize_t length) except -1:
80
+ cdef Py_ssize_t i = length
81
+ try:
82
+ i = len(o)
83
+ except (TypeError, OverflowError):
84
+ pass
85
+ if i == length:
86
+ for i, item in enumerate(o):
87
+ if i >= length:
88
+ break
89
+ v[i] = item
90
+ else:
91
+ i += 1 # convert index to length
92
+ if i == length:
93
+ return 0
94
+
95
+ PyErr_Format(
96
+ IndexError,
97
+ ("too many values found during array assignment, expected %zd"
98
+ if i >= length else
99
+ "not enough values found during array assignment, expected %zd, got %zd"),
100
+ length, i)
101
+
102
+
103
+ #################### carray.to_py ####################
104
+
105
+ cdef extern from *:
106
+ void Py_INCREF(object o)
107
+ tuple PyTuple_New(Py_ssize_t size)
108
+ list PyList_New(Py_ssize_t size)
109
+ int __Pyx_PyTuple_SET_ITEM(object p, Py_ssize_t pos, object o) except -1
110
+ int __Pyx_PyList_SET_ITEM(object p, Py_ssize_t pos, object o) except -1
111
+
112
+
113
+ @cname("{{cname}}")
114
+ cdef inline list {{cname}}({{base_type}} *v, Py_ssize_t length):
115
+ cdef Py_ssize_t i
116
+ cdef object value
117
+ l = PyList_New(length)
118
+ for i in range(length):
119
+ value = v[<size_t> i]
120
+ Py_INCREF(value)
121
+ __Pyx_PyList_SET_ITEM(l, i, value)
122
+ return l
123
+
124
+
125
+ @cname("{{to_tuple_cname}}")
126
+ cdef inline tuple {{to_tuple_cname}}({{base_type}} *v, Py_ssize_t length):
127
+ cdef Py_ssize_t i
128
+ cdef object value
129
+ t = PyTuple_New(length)
130
+ for i in range(length):
131
+ value = v[<size_t> i]
132
+ Py_INCREF(value)
133
+ __Pyx_PyTuple_SET_ITEM(t, i, value)
134
+ return t
Cython/Utility/CMath.c ADDED
@@ -0,0 +1,104 @@
1
+
2
+ /////////////// CDivisionWarning.proto ///////////////
3
+
4
+ static int __Pyx_cdivision_warning(const char *, int); /* proto */
5
+
6
+ /////////////// CDivisionWarning ///////////////
7
+
8
+ static int __Pyx_cdivision_warning(const char *filename, int lineno) {
9
+ #if CYTHON_COMPILING_IN_PYPY
10
+ // avoid compiler warnings
11
+ filename++; lineno++;
12
+ return PyErr_Warn(PyExc_RuntimeWarning,
13
+ "division with oppositely signed operands, C and Python semantics differ");
14
+ #else
15
+ return PyErr_WarnExplicit(PyExc_RuntimeWarning,
16
+ "division with oppositely signed operands, C and Python semantics differ",
17
+ filename,
18
+ lineno,
19
+ __Pyx_MODULE_NAME,
20
+ NULL);
21
+ #endif
22
+ }
23
+
24
+
25
+ /////////////// DivInt.proto ///////////////
26
+
27
+ static CYTHON_INLINE %(type)s __Pyx_div_%(type_name)s(%(type)s, %(type)s, int b_is_constant); /* proto */
28
+
29
+ /////////////// DivInt ///////////////
30
+
31
+ static CYTHON_INLINE %(type)s __Pyx_div_%(type_name)s(%(type)s a, %(type)s b, int b_is_constant) {
32
+ %(type)s q = a / b;
33
+ %(type)s r = a - q*b;
34
+ %(type)s adapt_python = (b_is_constant ?
35
+ // Take advantage of constant folding for 'b'.
36
+ ((r != 0) & ((r < 0) ^ (b < 0))) :
37
+ ((r != 0) & ((r ^ b) < 0))
38
+ );
39
+ return q - adapt_python;
40
+ }
41
+
42
+
43
+ /////////////// ModInt.proto ///////////////
44
+
45
+ static CYTHON_INLINE %(type)s __Pyx_mod_%(type_name)s(%(type)s, %(type)s, int b_is_constant); /* proto */
46
+
47
+ /////////////// ModInt ///////////////
48
+
49
+ static CYTHON_INLINE %(type)s __Pyx_mod_%(type_name)s(%(type)s a, %(type)s b, int b_is_constant) {
50
+ %(type)s r = a %% b;
51
+ %(type)s adapt_python = (b_is_constant ?
52
+ // Take advantage of constant folding for 'b'.
53
+ ((r != 0) & ((r < 0) ^ (b < 0))) :
54
+ ((r != 0) & ((r ^ b) < 0))
55
+ );
56
+ return r + adapt_python * b;
57
+ }
58
+
59
+
60
+ /////////////// ModFloat.proto ///////////////
61
+
62
+ static CYTHON_INLINE %(type)s __Pyx_mod_%(type_name)s(%(type)s, %(type)s, int b_is_constant); /* proto */
63
+
64
+ /////////////// ModFloat ///////////////
65
+
66
+ static CYTHON_INLINE %(type)s __Pyx_mod_%(type_name)s(%(type)s a, %(type)s b, int b_is_constant) {
67
+ CYTHON_UNUSED_VAR(b_is_constant);
68
+ %(type)s r = fmod%(math_h_modifier)s(a, b);
69
+ r += ((r != 0) & ((r < 0) ^ (b < 0))) * b;
70
+ return r;
71
+ }
72
+
73
+
74
+ /////////////// IntPow.proto ///////////////
75
+
76
+ static CYTHON_INLINE %(type)s %(func_name)s(%(type)s, %(type)s); /* proto */
77
+
78
+ /////////////// IntPow ///////////////
79
+
80
+ static CYTHON_INLINE %(type)s %(func_name)s(%(type)s b, %(type)s e) {
81
+ %(type)s t = b;
82
+ switch (e) {
83
+ case 3:
84
+ t *= b;
85
+ CYTHON_FALLTHROUGH;
86
+ case 2:
87
+ t *= b;
88
+ CYTHON_FALLTHROUGH;
89
+ case 1:
90
+ return t;
91
+ case 0:
92
+ return 1;
93
+ }
94
+ #if %(signed)s
95
+ if (unlikely(e<0)) return 0;
96
+ #endif
97
+ t = 1;
98
+ while (likely(e)) {
99
+ t *= (b * (e&1)) | ((~e)&1); /* 1 or b */
100
+ b *= b;
101
+ e >>= 1;
102
+ }
103
+ return t;
104
+ }
@@ -0,0 +1,226 @@
1
+ /////////////// FetchSharedCythonModule.proto ///////
2
+
3
+ static PyObject *__Pyx_FetchSharedCythonABIModule(void);
4
+
5
+ /////////////// FetchSharedCythonModule ////////////
6
+ //@requires: ModuleSetupCode.c::AddModuleRef
7
+
8
+ static PyObject *__Pyx_FetchSharedCythonABIModule(void) {
9
+ return __Pyx_PyImport_AddModuleRef(__PYX_ABI_MODULE_NAME);
10
+ }
11
+
12
+ /////////////// FetchCommonType.proto ///////////////
13
+
14
+ static PyTypeObject* __Pyx_FetchCommonTypeFromSpec(PyTypeObject *metaclass, PyObject *module, PyType_Spec *spec, PyObject *bases);
15
+
16
+ /////////////// FetchCommonType ///////////////
17
+ //@requires:ExtensionTypes.c::FixUpExtensionType
18
+ //@requires: FetchSharedCythonModule
19
+ //@requires:StringTools.c::IncludeStringH
20
+ //@requires:Builtins.c::dict_setdefault
21
+
22
+ #if __PYX_LIMITED_VERSION_HEX < 0x030C0000
23
+ static PyObject* __Pyx_PyType_FromMetaclass(PyTypeObject *metaclass, PyObject *module, PyType_Spec *spec, PyObject *bases) {
24
+ PyObject *result = __Pyx_PyType_FromModuleAndSpec(module, spec, bases);
25
+ if (result && metaclass) {
26
+ PyObject *old_tp = (PyObject*)Py_TYPE(result);
27
+ Py_INCREF((PyObject*)metaclass);
28
+ #if __PYX_LIMITED_VERSION_HEX >= 0x03090000
29
+ Py_SET_TYPE(result, metaclass);
30
+ #else
31
+ result->ob_type = metaclass;
32
+ #endif
33
+ Py_DECREF(old_tp);
34
+ }
35
+ return result;
36
+ }
37
+ #else
38
+ #define __Pyx_PyType_FromMetaclass(me, mo, s, b) PyType_FromMetaclass(me, mo, s, b)
39
+ #endif
40
+
41
+ static int __Pyx_VerifyCachedType(PyObject *cached_type,
42
+ const char *name,
43
+ Py_ssize_t expected_basicsize) {
44
+ Py_ssize_t basicsize;
45
+
46
+ if (!PyType_Check(cached_type)) {
47
+ PyErr_Format(PyExc_TypeError,
48
+ "Shared Cython type %.200s is not a type object", name);
49
+ return -1;
50
+ }
51
+
52
+ if (expected_basicsize == 0) {
53
+ return 0; // size is inherited, nothing useful to check
54
+ }
55
+
56
+ #if CYTHON_COMPILING_IN_LIMITED_API
57
+ PyObject *py_basicsize;
58
+ py_basicsize = PyObject_GetAttrString(cached_type, "__basicsize__");
59
+ if (unlikely(!py_basicsize)) return -1;
60
+ basicsize = PyLong_AsSsize_t(py_basicsize);
61
+ Py_DECREF(py_basicsize);
62
+ py_basicsize = NULL;
63
+ if (unlikely(basicsize == (Py_ssize_t)-1) && PyErr_Occurred()) return -1;
64
+ #else
65
+ basicsize = ((PyTypeObject*) cached_type)->tp_basicsize;
66
+ #endif
67
+
68
+ if (basicsize != expected_basicsize) {
69
+ PyErr_Format(PyExc_TypeError,
70
+ "Shared Cython type %.200s has the wrong size, try recompiling",
71
+ name);
72
+ return -1;
73
+ }
74
+ return 0;
75
+ }
76
+
77
+ static PyTypeObject *__Pyx_FetchCommonTypeFromSpec(PyTypeObject *metaclass, PyObject *module, PyType_Spec *spec, PyObject *bases) {
78
+ PyObject *abi_module = NULL, *cached_type = NULL, *abi_module_dict, *new_cached_type, *py_object_name;
79
+ int get_item_ref_result;
80
+ // get the final part of the object name (after the last dot)
81
+ const char* object_name = strrchr(spec->name, '.');
82
+ object_name = object_name ? object_name+1 : spec->name;
83
+
84
+ py_object_name = PyUnicode_FromString(object_name);
85
+ if (!py_object_name) return NULL;
86
+
87
+ abi_module = __Pyx_FetchSharedCythonABIModule();
88
+ if (!abi_module) goto done;
89
+ abi_module_dict = PyModule_GetDict(abi_module);
90
+ if (!abi_module_dict) goto done;
91
+
92
+
93
+ get_item_ref_result = __Pyx_PyDict_GetItemRef(abi_module_dict, py_object_name, &cached_type);
94
+ if (get_item_ref_result == 1) {
95
+ if (__Pyx_VerifyCachedType(
96
+ cached_type,
97
+ object_name,
98
+ spec->basicsize) < 0) {
99
+ goto bad;
100
+ }
101
+ goto done;
102
+ } else if (unlikely(get_item_ref_result == -1)) {
103
+ goto bad;
104
+ }
105
+
106
+ // Without module-state, pass the ABI module reference to avoid keeping the user module alive by foreign type usages.
107
+ // With module-state it's important to keep the user module alive though.
108
+ cached_type = __Pyx_PyType_FromMetaclass(
109
+ metaclass,
110
+ CYTHON_USE_MODULE_STATE ? module : abi_module,
111
+ spec, bases);
112
+ if (unlikely(!cached_type)) goto bad;
113
+ if (unlikely(__Pyx_fix_up_extension_type_from_spec(spec, (PyTypeObject *) cached_type) < 0)) goto bad;
114
+
115
+ new_cached_type = __Pyx_PyDict_SetDefault(abi_module_dict, py_object_name, cached_type);
116
+ if (unlikely(new_cached_type != cached_type)) {
117
+ if (unlikely(!new_cached_type)) goto bad;
118
+ // race to initialize it - use the value that's already been set.
119
+ Py_DECREF(cached_type);
120
+ cached_type = new_cached_type;
121
+
122
+ if (__Pyx_VerifyCachedType(
123
+ cached_type,
124
+ object_name,
125
+ spec->basicsize) < 0) {
126
+ goto bad;
127
+ }
128
+ goto done;
129
+ } else {
130
+ Py_DECREF(new_cached_type);
131
+ }
132
+
133
+ done:
134
+ Py_XDECREF(abi_module);
135
+ Py_DECREF(py_object_name);
136
+ // NOTE: always returns owned reference, or NULL on error
137
+ assert(cached_type == NULL || PyType_Check(cached_type));
138
+ return (PyTypeObject *) cached_type;
139
+
140
+ bad:
141
+ Py_XDECREF(cached_type);
142
+ cached_type = NULL;
143
+ goto done;
144
+ }
145
+
146
+ //////////////////// CommonTypesMetaclass.module_state_decls ////////////////////
147
+
148
+ PyTypeObject *__pyx_CommonTypesMetaclassType;
149
+
150
+ //////////////////// CommonTypesMetaclass.module_state_traverse ///////////////////
151
+
152
+ Py_VISIT(traverse_module_state->__pyx_CommonTypesMetaclassType);
153
+
154
+ //////////////////// CommonTypesMetaclass.module_state_clear ///////////////////
155
+
156
+ Py_CLEAR(clear_module_state->__pyx_CommonTypesMetaclassType);
157
+
158
+ //////////////////// CommonTypesMetaclass.init //////////////////
159
+ //@substitute: naming
160
+
161
+ if (likely(__pyx_CommonTypesMetaclass_init($module_cname) == 0)); else
162
+
163
+ /////////////////////////// CommonTypesMetaclass.proto ////////////////////////
164
+
165
+ static int __pyx_CommonTypesMetaclass_init(PyObject *module); /* proto */
166
+
167
+ #define __Pyx_CommonTypesMetaclass_USED
168
+
169
+ //////////////////// CommonTypesMetaclass ////////////////////
170
+ //@requires: FetchCommonType
171
+ //@substitute: naming
172
+
173
+ static PyObject* __pyx_CommonTypesMetaclass_get_module(CYTHON_UNUSED PyObject *self, CYTHON_UNUSED void* context) {
174
+ return PyUnicode_FromString(__PYX_ABI_MODULE_NAME);
175
+ }
176
+
177
+ #if __PYX_LIMITED_VERSION_HEX < 0x030A0000
178
+ static PyObject* __pyx_CommonTypesMetaclass_call(CYTHON_UNUSED PyObject *self, CYTHON_UNUSED PyObject *args, CYTHON_UNUSED PyObject *kwds) {
179
+ PyErr_SetString(PyExc_TypeError, "Cannot instantiate Cython internal types");
180
+ return NULL;
181
+ }
182
+
183
+ static int __pyx_CommonTypesMetaclass_setattr(CYTHON_UNUSED PyObject *self, CYTHON_UNUSED PyObject *attr, CYTHON_UNUSED PyObject *value) {
184
+ PyErr_SetString(PyExc_TypeError, "Cython internal types are immutable");
185
+ return -1;
186
+ }
187
+ #endif
188
+
189
+ static PyGetSetDef __pyx_CommonTypesMetaclass_getset[] = {
190
+ {"__module__", __pyx_CommonTypesMetaclass_get_module, NULL, NULL, NULL},
191
+ {0, 0, 0, 0, 0}
192
+ };
193
+
194
+ static PyType_Slot __pyx_CommonTypesMetaclass_slots[] = {
195
+ {Py_tp_getset, (void *)__pyx_CommonTypesMetaclass_getset},
196
+ #if __PYX_LIMITED_VERSION_HEX < 0x030A0000
197
+ {Py_tp_call, (void*)__pyx_CommonTypesMetaclass_call},
198
+ {Py_tp_new, (void*)__pyx_CommonTypesMetaclass_call},
199
+ {Py_tp_setattro, (void*)__pyx_CommonTypesMetaclass_setattr},
200
+ #endif
201
+ {0, 0}
202
+ };
203
+
204
+ static PyType_Spec __pyx_CommonTypesMetaclass_spec = {
205
+ __PYX_TYPE_MODULE_PREFIX "_common_types_metatype",
206
+ 0,
207
+ 0,
208
+ Py_TPFLAGS_IMMUTABLETYPE |
209
+ Py_TPFLAGS_DISALLOW_INSTANTIATION |
210
+ Py_TPFLAGS_DEFAULT, /*tp_flags*/
211
+ __pyx_CommonTypesMetaclass_slots
212
+ };
213
+
214
+ static int __pyx_CommonTypesMetaclass_init(PyObject *module) {
215
+ $modulestatetype_cname *mstate = __Pyx_PyModule_GetState(module);
216
+ PyObject *bases = PyTuple_Pack(1, &PyType_Type);
217
+ if (unlikely(!bases)) {
218
+ return -1;
219
+ }
220
+ mstate->__pyx_CommonTypesMetaclassType = __Pyx_FetchCommonTypeFromSpec(NULL, module, &__pyx_CommonTypesMetaclass_spec, bases);
221
+ Py_DECREF(bases);
222
+ if (unlikely(mstate->__pyx_CommonTypesMetaclassType == NULL)) {
223
+ return -1;
224
+ }
225
+ return 0;
226
+ }