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,149 @@
1
+
2
+ cdef extern from "Python.h":
3
+ ctypedef long long PY_LONG_LONG
4
+ ctypedef unsigned long long uPY_LONG_LONG "unsigned PY_LONG_LONG"
5
+
6
+ ############################################################################
7
+ # 7.2.3 Long Integer Objects
8
+ ############################################################################
9
+
10
+ # PyLongObject
11
+ #
12
+ # This subtype of PyObject represents a Python long integer object.
13
+
14
+ # PyTypeObject PyLong_Type
15
+ #
16
+ # This instance of PyTypeObject represents the Python long integer
17
+ # type. This is the same object as long and types.LongType.
18
+
19
+ bint PyLong_Check(object p)
20
+ # Return true if its argument is a PyLongObject or a subtype of PyLongObject.
21
+
22
+ bint PyLong_CheckExact(object p)
23
+ # Return true if its argument is a PyLongObject, but not a subtype of PyLongObject.
24
+
25
+ object PyLong_FromLong(long v)
26
+ # Return value: New reference.
27
+ # Return a new PyLongObject object from v, or NULL on failure.
28
+
29
+ object PyLong_FromUnsignedLong(unsigned long v)
30
+ # Return value: New reference.
31
+ # Return a new PyLongObject object from a C unsigned long, or NULL on failure.
32
+
33
+ object PyLong_FromSsize_t(Py_ssize_t v)
34
+ # Return value: New reference.
35
+ # Return a new PyLongObject object from a C Py_ssize_t, or NULL on failure.)
36
+
37
+ object PyLong_FromSize_t(size_t v)
38
+ # Return value: New reference.
39
+ # Return a new PyLongObject object from a C size_t, or NULL on failure.
40
+
41
+ object PyLong_FromLongLong(PY_LONG_LONG v)
42
+ # Return value: New reference.
43
+ # Return a new PyLongObject object from a C long long, or NULL on failure.
44
+
45
+ object PyLong_FromUnsignedLongLong(uPY_LONG_LONG v)
46
+ # Return value: New reference.
47
+ # Return a new PyLongObject object from a C unsigned long long, or NULL on failure.
48
+
49
+ object PyLong_FromDouble(double v)
50
+ # Return value: New reference.
51
+ # Return a new PyLongObject object from the integer part of v, or NULL on failure.
52
+
53
+ object PyLong_FromString(char *str, char **pend, int base)
54
+ # Return value: New reference.
55
+ # Return a new PyLongObject based on the string value in str,
56
+ # which is interpreted according to the radix in base. If pend is
57
+ # non-NULL, *pend will point to the first character in str which
58
+ # follows the representation of the number. If base is 0, the
59
+ # radix will be determined based on the leading characters of str:
60
+ # if str starts with '0x' or '0X', radix 16 will be used; if str
61
+ # starts with '0', radix 8 will be used; otherwise radix 10 will
62
+ # be used. If base is not 0, it must be between 2 and 36,
63
+ # inclusive. Leading spaces are ignored. If there are no digits,
64
+ # ValueError will be raised.
65
+
66
+ object PyLong_FromUnicode(Py_UNICODE *u, Py_ssize_t length, int base)
67
+ # Return value: New reference.
68
+ # Convert a sequence of Unicode digits to a Python long integer
69
+ # value. The first parameter, u, points to the first character of
70
+ # the Unicode string, length gives the number of characters, and
71
+ # base is the radix for the conversion. The radix must be in the
72
+ # range [2, 36]; if it is out of range, ValueError will be
73
+ # raised.
74
+
75
+ # object PyLong_FromUnicodeObject(object u, int base)
76
+ # Convert a sequence of Unicode digits in the string u to a Python integer
77
+ # value. The Unicode string is first encoded to a byte string using
78
+ # PyUnicode_EncodeDecimal() and then converted using PyLong_FromString().
79
+ # New in version 3.3.
80
+
81
+ object PyLong_FromVoidPtr(void *p)
82
+ # Return value: New reference.
83
+ # Create a Python integer or long integer from the pointer p. The
84
+ # pointer value can be retrieved from the resulting value using
85
+ # PyLong_AsVoidPtr(). If the integer is larger than LONG_MAX, a
86
+ # positive long integer is returned.
87
+
88
+ long PyLong_AsLong(object pylong) except? -1
89
+ # Return a C long representation of the contents of pylong. If
90
+ # pylong is greater than LONG_MAX, an OverflowError is raised.
91
+
92
+ long PyLong_AsLongAndOverflow(object pylong, int *overflow) except? -1
93
+ # Return a C long representation of the contents of pylong. If pylong is
94
+ # greater than LONG_MAX or less than LONG_MIN, set *overflow to 1 or -1,
95
+ # respectively, and return -1; otherwise, set *overflow to 0. If any other
96
+ # exception occurs (for example a TypeError or MemoryError), then -1 will
97
+ # be returned and *overflow will be 0.
98
+ # New in version 2.7.
99
+
100
+ PY_LONG_LONG PyLong_AsLongLongAndOverflow(object pylong, int *overflow) except? -1
101
+ # Return a C long long representation of the contents of pylong. If pylong
102
+ # is greater than PY_LLONG_MAX or less than PY_LLONG_MIN, set *overflow to
103
+ # 1 or -1, respectively, and return -1; otherwise, set *overflow to 0. If
104
+ # any other exception occurs (for example a TypeError or MemoryError), then
105
+ # -1 will be returned and *overflow will be 0.
106
+ # New in version 2.7.
107
+
108
+ Py_ssize_t PyLong_AsSsize_t(object pylong) except? -1
109
+ # Return a C Py_ssize_t representation of the contents of pylong. If pylong
110
+ # is greater than PY_SSIZE_T_MAX, an OverflowError is raised and -1 will be
111
+ # returned.
112
+
113
+ unsigned long PyLong_AsUnsignedLong(object pylong) except? -1
114
+ # Return a C unsigned long representation of the contents of
115
+ # pylong. If pylong is greater than ULONG_MAX, an OverflowError is
116
+ # raised.
117
+
118
+ PY_LONG_LONG PyLong_AsLongLong(object pylong) except? -1
119
+ # Return a C long long from a Python long integer. If pylong
120
+ # cannot be represented as a long long, an OverflowError will be
121
+ # raised.
122
+
123
+ uPY_LONG_LONG PyLong_AsUnsignedLongLong(object pylong) except? -1
124
+ #unsigned PY_LONG_LONG PyLong_AsUnsignedLongLong(object pylong)
125
+ # Return a C unsigned long long from a Python long integer. If
126
+ # pylong cannot be represented as an unsigned long long, an
127
+ # OverflowError will be raised if the value is positive, or a
128
+ # TypeError will be raised if the value is negative.
129
+
130
+ unsigned long PyLong_AsUnsignedLongMask(object io) except? -1
131
+ # Return a C unsigned long from a Python long integer, without
132
+ # checking for overflow.
133
+
134
+ uPY_LONG_LONG PyLong_AsUnsignedLongLongMask(object io) except? -1
135
+ #unsigned PY_LONG_LONG PyLong_AsUnsignedLongLongMask(object io)
136
+ # Return a C unsigned long long from a Python long integer,
137
+ # without checking for overflow.
138
+
139
+ double PyLong_AsDouble(object pylong) except? -1.0
140
+ # Return a C double representation of the contents of pylong. If
141
+ # pylong cannot be approximately represented as a double, an
142
+ # OverflowError exception is raised and -1.0 will be returned.
143
+
144
+ void* PyLong_AsVoidPtr(object pylong) except? NULL
145
+ # Convert a Python integer or long integer pylong to a C void
146
+ # pointer. If pylong cannot be converted, an OverflowError will be
147
+ # raised. This is only assured to produce a usable void pointer
148
+ # for values created with PyLong_FromVoidPtr(). For values outside
149
+ # 0..LONG_MAX, both signed and unsigned integers are accepted.
@@ -0,0 +1,14 @@
1
+ # Internals of the "int" type.
2
+
3
+ cdef extern from "Python.h":
4
+ ctypedef unsigned int digit
5
+ ctypedef int sdigit
6
+
7
+ ctypedef class __builtin__.py_long [object PyLongObject]:
8
+ cdef digit* ob_digit
9
+
10
+ cdef py_long _PyLong_New(Py_ssize_t s)
11
+
12
+ cdef long PyLong_SHIFT
13
+ cdef digit PyLong_BASE
14
+ cdef digit PyLong_MASK
@@ -0,0 +1,63 @@
1
+ cdef extern from "Python.h":
2
+
3
+ ############################################################################
4
+ # 6.4 Mapping Protocol
5
+ ############################################################################
6
+
7
+ bint PyMapping_Check(object o)
8
+ # Return 1 if the object provides mapping protocol, and 0
9
+ # otherwise. This function always succeeds.
10
+
11
+ Py_ssize_t PyMapping_Length(object o) except -1
12
+ # Returns the number of keys in object o on success, and -1 on
13
+ # failure. For objects that do not provide mapping protocol, this
14
+ # is equivalent to the Python expression "len(o)".
15
+
16
+ int PyMapping_DelItemString(object o, char *key) except -1
17
+ # Remove the mapping for object key from the object o. Return -1
18
+ # on failure. This is equivalent to the Python statement "del
19
+ # o[key]".
20
+
21
+ int PyMapping_DelItem(object o, object key) except -1
22
+ # Remove the mapping for object key from the object o. Return -1
23
+ # on failure. This is equivalent to the Python statement "del
24
+ # o[key]".
25
+
26
+ bint PyMapping_HasKeyString(object o, char *key)
27
+ # On success, return 1 if the mapping object has the key key and 0
28
+ # otherwise. This is equivalent to the Python expression
29
+ # "o.has_key(key)". This function always succeeds.
30
+
31
+ bint PyMapping_HasKey(object o, object key)
32
+ # Return 1 if the mapping object has the key key and 0
33
+ # otherwise. This is equivalent to the Python expression
34
+ # "o.has_key(key)". This function always succeeds.
35
+
36
+ object PyMapping_Keys(object o)
37
+ # Return value: New reference.
38
+ # On success, return a list of the keys in object o. On failure,
39
+ # return NULL. This is equivalent to the Python expression
40
+ # "o.keys()".
41
+
42
+ object PyMapping_Values(object o)
43
+ # Return value: New reference.
44
+ # On success, return a list of the values in object o. On failure,
45
+ # return NULL. This is equivalent to the Python expression
46
+ # "o.values()".
47
+
48
+ object PyMapping_Items(object o)
49
+ # Return value: New reference.
50
+ # On success, return a list of the items in object o, where each
51
+ # item is a tuple containing a key-value pair. On failure, return
52
+ # NULL. This is equivalent to the Python expression "o.items()".
53
+
54
+ object PyMapping_GetItemString(object o, char *key)
55
+ # Return value: New reference.
56
+ # Return element of o corresponding to the object key or NULL on
57
+ # failure. This is the equivalent of the Python expression
58
+ # "o[key]".
59
+
60
+ int PyMapping_SetItemString(object o, char *key, object v) except -1
61
+ # Map the object key to the value v in object o. Returns -1 on
62
+ # failure. This is the equivalent of the Python statement "o[key]
63
+ # = v".
@@ -0,0 +1,66 @@
1
+ from libc.stdio cimport FILE
2
+
3
+ cdef extern from "Python.h":
4
+
5
+ ###########################################################################
6
+ # Data marshalling support
7
+ ###########################################################################
8
+
9
+ const int Py_MARSHAL_VERSION
10
+
11
+ void PyMarshal_WriteLongToFile(long value, FILE *file, int version)
12
+ # Marshal a long integer, value, to file. This will only write the
13
+ # least-significant 32 bits of value, regardless of the size of the native
14
+ # long type. version indicates the file format.
15
+
16
+ void PyMarshal_WriteObjectToFile(object value, FILE *file, int version)
17
+ # Marshal a Python object, value, to file. version indicates the file
18
+ # format.
19
+
20
+ bytes PyMarshal_WriteObjectToString(object value, int version)
21
+ # Return value: New reference.
22
+ # Return a bytes object containing the marshalled representation of value.
23
+ # version indicates the file format.
24
+
25
+ long PyMarshal_ReadLongFromFile(FILE *file) except? -1
26
+ # Return a C long from the data stream in a FILE* opened for reading. Only
27
+ # a 32-bit value can be read in using this function, regardless of the
28
+ # native size of long.
29
+
30
+ # On error, sets the appropriate exception (EOFError) and returns -1.
31
+
32
+ int PyMarshal_ReadShortFromFile(FILE *file) except? -1
33
+ # Return a C short from the data stream in a FILE* opened for reading. Only
34
+ # a 16-bit value can be read in using this function, regardless of the
35
+ # native size of short.
36
+
37
+ # On error, sets the appropriate exception (EOFError) and returns -1.
38
+
39
+ object PyMarshal_ReadObjectFromFile(FILE *file)
40
+ # Return value: New reference.
41
+ # Return a Python object from the data stream in a FILE* opened for
42
+ # reading.
43
+
44
+ # On error, sets the appropriate exception (EOFError, ValueError or
45
+ # TypeError) and returns NULL.
46
+
47
+ object PyMarshal_ReadLastObjectFromFile(FILE *file)
48
+ # Return value: New reference.
49
+ # Return a Python object from the data stream in a FILE* opened for
50
+ # reading. Unlike PyMarshal_ReadObjectFromFile(), this function assumes
51
+ # that no further objects will be read from the file, allowing it to
52
+ # aggressively load file data into memory so that the de-serialization can
53
+ # operate from data in memory, rather than reading a byte at a time from the
54
+ # file. Only use these variant if you are certain that you won’t be reading
55
+ # anything else from the file.
56
+
57
+ # On error, sets the appropriate exception (EOFError, ValueError or
58
+ # TypeError) and returns NULL.
59
+
60
+ object PyMarshal_ReadObjectFromString(const char *data, Py_ssize_t len)
61
+ # Return value: New reference.
62
+ # Return a Python object from the data stream in a byte buffer containing
63
+ # len bytes pointed to by data.
64
+
65
+ # On error, sets the appropriate exception (EOFError, ValueError or
66
+ # TypeError) and returns NULL.
@@ -0,0 +1,120 @@
1
+ cdef extern from "Python.h":
2
+
3
+ #####################################################################
4
+ # 9.2 Memory Interface
5
+ #####################################################################
6
+ # You are definitely *supposed* to use these: "In most situations,
7
+ # however, it is recommended to allocate memory from the Python
8
+ # heap specifically because the latter is under control of the
9
+ # Python memory manager. For example, this is required when the
10
+ # interpreter is extended with new object types written in
11
+ # C. Another reason for using the Python heap is the desire to
12
+ # inform the Python memory manager about the memory needs of the
13
+ # extension module. Even when the requested memory is used
14
+ # exclusively for internal, highly-specific purposes, delegating
15
+ # all memory requests to the Python memory manager causes the
16
+ # interpreter to have a more accurate image of its memory
17
+ # footprint as a whole. Consequently, under certain circumstances,
18
+ # the Python memory manager may or may not trigger appropriate
19
+ # actions, like garbage collection, memory compaction or other
20
+ # preventive procedures. Note that by using the C library
21
+ # allocator as shown in the previous example, the allocated memory
22
+ # for the I/O buffer escapes completely the Python memory
23
+ # manager."
24
+
25
+ # The following function sets, modeled after the ANSI C standard,
26
+ # but specifying behavior when requesting zero bytes, are
27
+ # available for allocating and releasing memory from the Python
28
+ # heap:
29
+
30
+ void* PyMem_RawMalloc(size_t n) nogil
31
+ void* PyMem_Malloc(size_t n)
32
+ # Allocates n bytes and returns a pointer of type void* to the
33
+ # allocated memory, or NULL if the request fails. Requesting zero
34
+ # bytes returns a distinct non-NULL pointer if possible, as if
35
+ # PyMem_Malloc(1) had been called instead. The memory will not
36
+ # have been initialized in any way.
37
+
38
+ void* PyMem_RawCalloc(size_t nelem, size_t elsize) nogil
39
+ void* PyMem_Calloc(size_t nelem, size_t elsize)
40
+ # Allocates nelem elements each whose size in bytes is elsize and
41
+ # returns a pointer of type void* to the allocated memory, or NULL if
42
+ # the request fails. The memory is initialized to zeros. Requesting
43
+ # zero elements or elements of size zero bytes returns a distinct
44
+ # non-NULL pointer if possible, as if PyMem_Calloc(1, 1) had been
45
+ # called instead.
46
+
47
+ void* PyMem_RawRealloc(void *p, size_t n) nogil
48
+ void* PyMem_Realloc(void *p, size_t n)
49
+ # Resizes the memory block pointed to by p to n bytes. The
50
+ # contents will be unchanged to the minimum of the old and the new
51
+ # sizes. If p is NULL, the call is equivalent to PyMem_Malloc(n);
52
+ # else if n is equal to zero, the memory block is resized but is
53
+ # not freed, and the returned pointer is non-NULL. Unless p is
54
+ # NULL, it must have been returned by a previous call to
55
+ # PyMem_Malloc(), PyMem_Realloc(), or PyMem_Calloc().
56
+
57
+ void PyMem_RawFree(void *p) nogil
58
+ void PyMem_Free(void *p)
59
+ # Frees the memory block pointed to by p, which must have been
60
+ # returned by a previous call to PyMem_Malloc(), PyMem_Realloc(), or
61
+ # PyMem_Calloc(). Otherwise, or if PyMem_Free(p) has been called
62
+ # before, undefined behavior occurs. If p is NULL, no operation is
63
+ # performed.
64
+
65
+ # The following type-oriented macros are provided for
66
+ # convenience. Note that TYPE refers to any C type.
67
+
68
+ # TYPE* PyMem_New(TYPE, size_t n)
69
+ # Same as PyMem_Malloc(), but allocates (n * sizeof(TYPE)) bytes
70
+ # of memory. Returns a pointer cast to TYPE*. The memory will not
71
+ # have been initialized in any way.
72
+
73
+ # TYPE* PyMem_Resize(void *p, TYPE, size_t n)
74
+ # Same as PyMem_Realloc(), but the memory block is resized to (n *
75
+ # sizeof(TYPE)) bytes. Returns a pointer cast to TYPE*.
76
+
77
+ void PyMem_Del(void *p)
78
+ # Same as PyMem_Free().
79
+
80
+ # In addition, the following macro sets are provided for calling
81
+ # the Python memory allocator directly, without involving the C
82
+ # API functions listed above. However, note that their use does
83
+ # not preserve binary compatibility across Python versions and is
84
+ # therefore deprecated in extension modules.
85
+
86
+ # PyMem_MALLOC(), PyMem_REALLOC(), PyMem_FREE().
87
+ # PyMem_NEW(), PyMem_RESIZE(), PyMem_DEL().
88
+
89
+
90
+ #####################################################################
91
+ # Raw object memory interface
92
+ #####################################################################
93
+
94
+ # Functions to call the same malloc/realloc/free as used by Python's
95
+ # object allocator. If WITH_PYMALLOC is enabled, these may differ from
96
+ # the platform malloc/realloc/free. The Python object allocator is
97
+ # designed for fast, cache-conscious allocation of many "small" objects,
98
+ # and with low hidden memory overhead.
99
+ #
100
+ # PyObject_Malloc(0) returns a unique non-NULL pointer if possible.
101
+ #
102
+ # PyObject_Realloc(NULL, n) acts like PyObject_Malloc(n).
103
+ # PyObject_Realloc(p != NULL, 0) does not return NULL, or free the memory
104
+ # at p.
105
+ #
106
+ # Returned pointers must be checked for NULL explicitly; no action is
107
+ # performed on failure other than to return NULL (no warning it printed, no
108
+ # exception is set, etc).
109
+ #
110
+ # For allocating objects, use PyObject_{New, NewVar} instead whenever
111
+ # possible. The PyObject_{Malloc, Realloc, Free} family is exposed
112
+ # so that you can exploit Python's small-block allocator for non-object
113
+ # uses. If you must use these routines to allocate object memory, make sure
114
+ # the object gets initialized via PyObject_{Init, InitVar} after obtaining
115
+ # the raw memory.
116
+
117
+ void* PyObject_Malloc(size_t size)
118
+ void* PyObject_Calloc(size_t nelem, size_t elsize)
119
+ void* PyObject_Realloc(void *ptr, size_t new_size)
120
+ void PyObject_Free(void *ptr)
@@ -0,0 +1,50 @@
1
+ cdef extern from "Python.h":
2
+
3
+ ###########################################################################
4
+ # MemoryView Objects
5
+ ###########################################################################
6
+ # A memoryview object exposes the C level buffer interface as a Python
7
+ # object which can then be passed around like any other object
8
+
9
+ memoryview PyMemoryView_FromObject(object obj)
10
+ # Return value: New reference.
11
+ # Create a memoryview object from an object that provides the buffer
12
+ # interface. If obj supports writable buffer exports, the memoryview object
13
+ # will be read/write, otherwise it may be either read-only or read/write at
14
+ # the discretion of the exporter.
15
+
16
+ memoryview PyMemoryView_FromMemory(char *mem, Py_ssize_t size, int flags)
17
+ # Return value: New reference.
18
+ # Create a memoryview object using mem as the underlying buffer. flags can
19
+ # be one of PyBUF_READ or PyBUF_WRITE.
20
+ # New in version 3.3.
21
+
22
+ memoryview PyMemoryView_FromBuffer(Py_buffer *view)
23
+ # Return value: New reference.
24
+ # Create a memoryview object wrapping the given buffer structure view. For
25
+ # simple byte buffers, PyMemoryView_FromMemory() is the preferred function.
26
+
27
+ memoryview PyMemoryView_GetContiguous(object obj,
28
+ int buffertype,
29
+ char order)
30
+ # Return value: New reference.
31
+ # Create a memoryview object to a contiguous chunk of memory (in either ‘C’
32
+ # or ‘F’ortran order) from an object that defines the buffer interface. If
33
+ # memory is contiguous, the memoryview object points to the original
34
+ # memory. Otherwise, a copy is made and the memoryview points to a new
35
+ # bytes object.
36
+
37
+ bint PyMemoryView_Check(object obj)
38
+ # Return true if the object obj is a memoryview object. It is not currently
39
+ # allowed to create subclasses of memoryview.
40
+
41
+ Py_buffer *PyMemoryView_GET_BUFFER(object mview)
42
+ # Return a pointer to the memoryview’s private copy of the exporter’s
43
+ # buffer. mview must be a memoryview instance; this macro doesn’t check its
44
+ # type, you must do it yourself or you will risk crashes.
45
+
46
+ Py_buffer *PyMemoryView_GET_BASE(object mview)
47
+ # Return either a pointer to the exporting object that the memoryview is
48
+ # based on or NULL if the memoryview has been created by one of the
49
+ # functions PyMemoryView_FromMemory() or PyMemoryView_FromBuffer(). mview
50
+ # must be a memoryview instance.
@@ -0,0 +1,49 @@
1
+ from .object cimport PyObject
2
+
3
+ cdef extern from "Python.h":
4
+ ############################################################################
5
+ # 7.5.4 Method Objects
6
+ ############################################################################
7
+
8
+ # There are some useful functions that are useful for working with method objects.
9
+ # PyTypeObject PyMethod_Type
10
+ # This instance of PyTypeObject represents the Python method type. This is exposed to Python programs as types.MethodType.
11
+
12
+ bint PyMethod_Check(object o)
13
+ # Return true if o is a method object (has type
14
+ # PyMethod_Type). The parameter must not be NULL.
15
+
16
+ object PyMethod_New(object func, object self, object cls)
17
+ # Return value: New reference.
18
+ # Return a new method object, with func being any callable object;
19
+ # this is the function that will be called when the method is
20
+ # called. If this method should be bound to an instance, self
21
+ # should be the instance and class should be the class of self,
22
+ # otherwise self should be NULL and class should be the class
23
+ # which provides the unbound method..
24
+
25
+ PyObject* PyMethod_Class(object meth) except NULL
26
+ # Return value: Borrowed reference.
27
+ # Return the class object from which the method meth was created;
28
+ # if this was created from an instance, it will be the class of
29
+ # the instance.
30
+
31
+ PyObject* PyMethod_GET_CLASS(object meth)
32
+ # Return value: Borrowed reference.
33
+ # Macro version of PyMethod_Class() which avoids error checking.
34
+
35
+ PyObject* PyMethod_Function(object meth) except NULL
36
+ # Return value: Borrowed reference.
37
+ # Return the function object associated with the method meth.
38
+
39
+ PyObject* PyMethod_GET_FUNCTION(object meth)
40
+ # Return value: Borrowed reference.
41
+ # Macro version of PyMethod_Function() which avoids error checking.
42
+
43
+ PyObject* PyMethod_Self(object meth) except? NULL
44
+ # Return value: Borrowed reference.
45
+ # Return the instance associated with the method meth if it is bound, otherwise return NULL.
46
+
47
+ PyObject* PyMethod_GET_SELF(object meth)
48
+ # Return value: Borrowed reference.
49
+ # Macro version of PyMethod_Self() which avoids error checking.