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,208 @@
1
+ from .object cimport PyObject
2
+
3
+ cdef extern from "Python.h":
4
+ ctypedef struct _inittab
5
+
6
+ #####################################################################
7
+ # 5.3 Importing Modules
8
+ #####################################################################
9
+ object PyImport_ImportModule(const char *name)
10
+ # Return value: New reference.
11
+ # This is a simplified interface to PyImport_ImportModuleEx()
12
+ # below, leaving the globals and locals arguments set to
13
+ # NULL. When the name argument contains a dot (when it specifies a
14
+ # submodule of a package), the fromlist argument is set to the
15
+ # list ['*'] so that the return value is the named module rather
16
+ # than the top-level package containing it as would otherwise be
17
+ # the case. (Unfortunately, this has an additional side effect
18
+ # when name in fact specifies a subpackage instead of a submodule:
19
+ # the submodules specified in the package's __all__ variable are
20
+ # loaded.) Return a new reference to the imported module, or NULL
21
+ # with an exception set on failure.
22
+
23
+ object PyImport_ImportModuleEx(const char *name, object globals, object locals, object fromlist)
24
+ # Return value: New reference.
25
+
26
+ # Import a module. This is best described by referring to the
27
+ # built-in Python function __import__(), as the standard
28
+ # __import__() function calls this function directly.
29
+
30
+ # The return value is a new reference to the imported module or
31
+ # top-level package, or NULL with an exception set on failure
32
+ # (before Python 2.4, the module may still be created in this
33
+ # case). Like for __import__(), the return value when a submodule
34
+ # of a package was requested is normally the top-level package,
35
+ # unless a non-empty fromlist was given. Changed in version 2.4:
36
+ # failing imports remove incomplete module objects.
37
+
38
+ object PyImport_ImportModuleLevel(char *name, object globals, object locals, object fromlist, int level)
39
+ # Return value: New reference.
40
+
41
+ # Import a module. This is best described by referring to the
42
+ # built-in Python function __import__(), as the standard
43
+ # __import__() function calls this function directly.
44
+
45
+ # The return value is a new reference to the imported module or
46
+ # top-level package, or NULL with an exception set on failure. Like
47
+ # for __import__(), the return value when a submodule of a package
48
+ # was requested is normally the top-level package, unless a
49
+ # non-empty fromlist was given.
50
+
51
+ object PyImport_Import(object name)
52
+ # Return value: New reference.
53
+ # This is a higher-level interface that calls the current ``import
54
+ # hook function''. It invokes the __import__() function from the
55
+ # __builtins__ of the current globals. This means that the import
56
+ # is done using whatever import hooks are installed in the current
57
+ # environment, e.g. by rexec or ihooks.
58
+
59
+ object PyImport_ReloadModule(object m)
60
+ # Return value: New reference.
61
+ # Reload a module. This is best described by referring to the
62
+ # built-in Python function reload(), as the standard reload()
63
+ # function calls this function directly. Return a new reference to
64
+ # the reloaded module, or NULL with an exception set on failure
65
+ # (the module still exists in this case).
66
+
67
+ PyObject* PyImport_AddModule(const char *name) except NULL
68
+ # Return value: Borrowed reference.
69
+ # Return the module object corresponding to a module name. The
70
+ # name argument may be of the form package.module. First check the
71
+ # modules dictionary if there's one there, and if not, create a
72
+ # new one and insert it in the modules dictionary. Return NULL
73
+ # with an exception set on failure. Note: This function does not
74
+ # load or import the module; if the module wasn't already loaded,
75
+ # you will get an empty module object. Use PyImport_ImportModule()
76
+ # or one of its variants to import a module. Package structures
77
+ # implied by a dotted name for name are not created if not already
78
+ # present.
79
+
80
+ object PyImport_ExecCodeModule(char *name, object co)
81
+ # Return value: New reference.
82
+ # Given a module name (possibly of the form package.module) and a
83
+ # code object read from a Python bytecode file or obtained from
84
+ # the built-in function compile(), load the module. Return a new
85
+ # reference to the module object, or NULL with an exception set if
86
+ # an error occurred. Name is removed from sys.modules in error
87
+ # cases, and even if name was already in sys.modules on entry to
88
+ # PyImport_ExecCodeModule(). Leaving incompletely initialized
89
+ # modules in sys.modules is dangerous, as imports of such modules
90
+ # have no way to know that the module object is an unknown (and
91
+ # probably damaged with respect to the module author's intents)
92
+ # state.
93
+ # This function will reload the module if it was already
94
+ # imported. See PyImport_ReloadModule() for the intended way to
95
+ # reload a module.
96
+ # If name points to a dotted name of the form package.module, any
97
+ # package structures not already created will still not be
98
+ # created.
99
+
100
+
101
+ long PyImport_GetMagicNumber()
102
+ # Return the magic number for Python bytecode files (a.k.a. .pyc
103
+ # and .pyo files). The magic number should be present in the first
104
+ # four bytes of the bytecode file, in little-endian byte order.
105
+
106
+ PyObject* PyImport_GetModuleDict() except NULL
107
+ # Return value: Borrowed reference.
108
+ # Return the dictionary used for the module administration
109
+ # (a.k.a. sys.modules). Note that this is a per-interpreter
110
+ # variable.
111
+
112
+
113
+ int PyImport_ImportFrozenModule(char *name) except -1
114
+ # Load a frozen module named name. Return 1 for success, 0 if the
115
+ # module is not found, and -1 with an exception set if the
116
+ # initialization failed. To access the imported module on a
117
+ # successful load, use PyImport_ImportModule(). (Note the misnomer
118
+ # -- this function would reload the module if it was already
119
+ # imported.)
120
+
121
+
122
+ int PyImport_ExtendInittab(_inittab *newtab) except -1
123
+ # Add a collection of modules to the table of built-in
124
+ # modules. The newtab array must end with a sentinel entry which
125
+ # contains NULL for the name field; failure to provide the
126
+ # sentinel value can result in a memory fault. Returns 0 on
127
+ # success or -1 if insufficient memory could be allocated to
128
+ # extend the internal table. In the event of failure, no modules
129
+ # are added to the internal table. This should be called before
130
+ # Py_Initialize().
131
+
132
+ #####################################################################
133
+ # 7.5.5 Module Objects
134
+ #####################################################################
135
+
136
+ # PyTypeObject PyModule_Type
137
+ #
138
+ # This instance of PyTypeObject represents the Python module
139
+ # type. This is exposed to Python programs as types.ModuleType.
140
+
141
+ bint PyModule_Check(object p)
142
+ # Return true if p is a module object, or a subtype of a module
143
+ # object.
144
+
145
+ bint PyModule_CheckExact(object p)
146
+ # Return true if p is a module object, but not a subtype of PyModule_Type.
147
+
148
+ object PyModule_NewObject(object name)
149
+ # Return a new module object with the __name__ attribute set to name.
150
+ # The module’s __name__, __doc__, __package__, and __loader__
151
+ # attributes are filled in (all but __name__ are set to None); the caller
152
+ # is responsible for providing a __file__ attribute.
153
+
154
+ object PyModule_New(const char *name)
155
+ # Return value: New reference.
156
+ # Return a new module object with the __name__ attribute set to
157
+ # name. Only the module's __doc__ and __name__ attributes are
158
+ # filled in; the caller is responsible for providing a __file__
159
+ # attribute.
160
+
161
+ PyObject* PyModule_GetDict(object module) except NULL
162
+ # Return value: Borrowed reference.
163
+ # Return the dictionary object that implements module's namespace;
164
+ # this object is the same as the __dict__ attribute of the module
165
+ # object. This function never fails. It is recommended extensions
166
+ # use other PyModule_*() and PyObject_*() functions rather than
167
+ # directly manipulate a module's __dict__.
168
+
169
+ object PyModule_GetNameObject(object module)
170
+ # Return module’s __name__ value. If the module does not provide one, or if
171
+ # it is not a string, SystemError is raised and NULL is returned.
172
+
173
+ char* PyModule_GetName(object module) except NULL
174
+ # Similar to PyModule_GetNameObject() but return the name encoded
175
+ # to 'utf-8'.
176
+
177
+ void* PyModule_GetState(object module)
178
+ # Return the “state” of the module, that is, a pointer to the block of
179
+ # memory allocated at module creation time, or NULL.
180
+ # See PyModuleDef.m_size.
181
+
182
+ object PyModule_GetFilenameObject(object module)
183
+ # Return the name of the file from which module was loaded using module’s
184
+ # __file__ attribute. If this is not defined, or if it is not a unicode
185
+ # string, raise SystemError and return NULL; otherwise return a reference
186
+ # to a Unicode object.
187
+
188
+ char* PyModule_GetFilename(object module) except NULL
189
+ # Similar to PyModule_GetFilenameObject() but return the filename encoded
190
+ # to ‘utf-8’.
191
+
192
+ int PyModule_AddObject(object module, const char *name, object value) except -1
193
+ # Add an object to module as name. This is a convenience function
194
+ # which can be used from the module's initialization function.
195
+ # Return -1 on error, 0 on success.
196
+ #
197
+ # WARNING: This _steals_ a reference to value.
198
+
199
+ int PyModule_AddIntConstant(object module, const char *name, long value) except -1
200
+ # Add an integer constant to module as name. This convenience
201
+ # function can be used from the module's initialization
202
+ # function. Return -1 on error, 0 on success.
203
+
204
+ int PyModule_AddStringConstant(object module, const char *name, const char *value) except -1
205
+ # Add a string constant to module as name. This convenience
206
+ # function can be used from the module's initialization
207
+ # function. The string value must be null-terminated. Return -1 on
208
+ # error, 0 on success.
@@ -0,0 +1,258 @@
1
+ from .object cimport PyObject
2
+
3
+ cdef extern from "Python.h":
4
+
5
+ #####################################################################
6
+ # 6.2 Number Protocol
7
+ #####################################################################
8
+
9
+ bint PyNumber_Check(object o)
10
+ # Returns 1 if the object o provides numeric protocols, and false
11
+ # otherwise. This function always succeeds.
12
+
13
+ object PyNumber_Add(object o1, object o2)
14
+ # Return value: New reference.
15
+ # Returns the result of adding o1 and o2, or NULL on failure. This
16
+ # is the equivalent of the Python expression "o1 + o2".
17
+
18
+ object PyNumber_Subtract(object o1, object o2)
19
+ # Return value: New reference.
20
+ # Returns the result of subtracting o2 from o1, or NULL on
21
+ # failure. This is the equivalent of the Python expression "o1 -
22
+ # o2".
23
+
24
+ object PyNumber_Multiply(object o1, object o2)
25
+ # Return value: New reference.
26
+ # Returns the result of multiplying o1 and o2, or NULL on
27
+ # failure. This is the equivalent of the Python expression "o1 *
28
+ # o2".
29
+
30
+ object PyNumber_MatrixMultiply(object o1, object o2)
31
+ # Return value: New reference.
32
+ # Returns the result of matrix multiplication on o1 and o2, or
33
+ # NULL on failure. This is the equivalent of the Python
34
+ # expression "o1 @ o2".
35
+ # New in version 3.5.
36
+
37
+ object PyNumber_Divide(object o1, object o2)
38
+ # Return value: New reference.
39
+ # Returns the result of dividing o1 by o2, or NULL on
40
+ # failure. This is the equivalent of the Python expression "o1 /
41
+ # o2".
42
+
43
+ object PyNumber_FloorDivide(object o1, object o2)
44
+ # Return value: New reference.
45
+ # Return the floor of o1 divided by o2, or NULL on failure. This
46
+ # is equivalent to the ``classic'' division of integers.
47
+
48
+ object PyNumber_TrueDivide(object o1, object o2)
49
+ # Return value: New reference.
50
+ # Return a reasonable approximation for the mathematical value of
51
+ # o1 divided by o2, or NULL on failure. The return value is
52
+ # ``approximate'' because binary floating point numbers are
53
+ # approximate; it is not possible to represent all real numbers in
54
+ # base two. This function can return a floating point value when
55
+ # passed two integers.
56
+
57
+ object PyNumber_Remainder(object o1, object o2)
58
+ # Return value: New reference.
59
+ # Returns the remainder of dividing o1 by o2, or NULL on
60
+ # failure. This is the equivalent of the Python expression "o1 %
61
+ # o2".
62
+
63
+ object PyNumber_Divmod(object o1, object o2)
64
+ # Return value: New reference.
65
+ # See the built-in function divmod(). Returns NULL on
66
+ # failure. This is the equivalent of the Python expression
67
+ # "divmod(o1, o2)".
68
+
69
+ object PyNumber_Power(object o1, object o2, object o3)
70
+ # Return value: New reference.
71
+ # See the built-in function pow(). Returns NULL on failure. This
72
+ # is the equivalent of the Python expression "pow(o1, o2, o3)",
73
+ # where o3 is optional. If o3 is to be ignored, pass Py_None in
74
+ # its place (passing NULL for o3 would cause an illegal memory
75
+ # access).
76
+
77
+ object PyNumber_Negative(object o)
78
+ # Return value: New reference.
79
+ # Returns the negation of o on success, or NULL on failure. This
80
+ # is the equivalent of the Python expression "-o".
81
+
82
+ object PyNumber_Positive(object o)
83
+ # Return value: New reference.
84
+ # Returns o on success, or NULL on failure. This is the equivalent
85
+ # of the Python expression "+o".
86
+
87
+ object PyNumber_Absolute(object o)
88
+ # Return value: New reference.
89
+ # Returns the absolute value of o, or NULL on failure. This is the
90
+ # equivalent of the Python expression "abs(o)".
91
+
92
+ object PyNumber_Invert(object o)
93
+ # Return value: New reference.
94
+ # Returns the bitwise negation of o on success, or NULL on
95
+ # failure. This is the equivalent of the Python expression "~o".
96
+
97
+ object PyNumber_Lshift(object o1, object o2)
98
+ # Return value: New reference.
99
+ # Returns the result of left shifting o1 by o2 on success, or NULL
100
+ # on failure. This is the equivalent of the Python expression "o1
101
+ # << o2".
102
+
103
+ object PyNumber_Rshift(object o1, object o2)
104
+ # Return value: New reference.
105
+ # Returns the result of right shifting o1 by o2 on success, or
106
+ # NULL on failure. This is the equivalent of the Python expression
107
+ # "o1 >> o2".
108
+
109
+ object PyNumber_And(object o1, object o2)
110
+ # Return value: New reference.
111
+ # Returns the ``bitwise and'' of o1 and o2 on success and NULL on
112
+ # failure. This is the equivalent of the Python expression "o1 &
113
+ # o2".
114
+
115
+ object PyNumber_Xor(object o1, object o2)
116
+ # Return value: New reference.
117
+ # Returns the ``bitwise exclusive or'' of o1 by o2 on success, or
118
+ # NULL on failure. This is the equivalent of the Python expression
119
+ # "o1 ^ o2".
120
+
121
+ object PyNumber_Or(object o1, object o2)
122
+ # Return value: New reference.
123
+ # Returns the ``bitwise or'' of o1 and o2 on success, or NULL on failure. This is the equivalent of the Python expression "o1 | o2".
124
+
125
+ object PyNumber_InPlaceAdd(object o1, object o2)
126
+ # Return value: New reference.
127
+ # Returns the result of adding o1 and o2, or NULL on failure. The
128
+ # operation is done in-place when o1 supports it. This is the
129
+ # equivalent of the Python statement "o1 += o2".
130
+
131
+ object PyNumber_InPlaceSubtract(object o1, object o2)
132
+ # Return value: New reference.
133
+ # Returns the result of subtracting o2 from o1, or NULL on
134
+ # failure. The operation is done in-place when o1 supports
135
+ # it. This is the equivalent of the Python statement "o1 -= o2".
136
+
137
+ object PyNumber_InPlaceMultiply(object o1, object o2)
138
+ # Return value: New reference.
139
+ # Returns the result of multiplying o1 and o2, or NULL on
140
+ # failure. The operation is done in-place when o1 supports
141
+ # it. This is the equivalent of the Python statement "o1 *= o2".
142
+
143
+ object PyNumber_InPlaceMatrixMultiply(object o1, object o2)
144
+ # Return value: New reference.
145
+ # Returns the result of matrix multiplication on o1 and o2, or
146
+ # NULL on failure. The operation is done in-place when o1 supports
147
+ # it. This is the equivalent of the Python statement "o1 @= o2".
148
+ # New in version 3.5.
149
+
150
+ object PyNumber_InPlaceDivide(object o1, object o2)
151
+ # Return value: New reference.
152
+ # Returns the result of dividing o1 by o2, or NULL on failure. The
153
+ # operation is done in-place when o1 supports it. This is the
154
+ # equivalent of the Python statement "o1 /= o2".
155
+
156
+ object PyNumber_InPlaceFloorDivide(object o1, object o2)
157
+ # Return value: New reference.
158
+ # Returns the mathematical floor of dividing o1 by o2, or NULL on
159
+ # failure. The operation is done in-place when o1 supports
160
+ # it. This is the equivalent of the Python statement "o1 //=
161
+ # o2".
162
+
163
+ object PyNumber_InPlaceTrueDivide(object o1, object o2)
164
+ # Return value: New reference.
165
+ # Return a reasonable approximation for the mathematical value of
166
+ # o1 divided by o2, or NULL on failure. The return value is
167
+ # ``approximate'' because binary floating point numbers are
168
+ # approximate; it is not possible to represent all real numbers in
169
+ # base two. This function can return a floating point value when
170
+ # passed two integers. The operation is done in-place when o1
171
+ # supports it.
172
+
173
+ object PyNumber_InPlaceRemainder(object o1, object o2)
174
+ # Return value: New reference.
175
+ # Returns the remainder of dividing o1 by o2, or NULL on
176
+ # failure. The operation is done in-place when o1 supports
177
+ # it. This is the equivalent of the Python statement "o1 %= o2".
178
+
179
+ object PyNumber_InPlacePower(object o1, object o2, object o3)
180
+ # Return value: New reference.
181
+ # See the built-in function pow(). Returns NULL on failure. The
182
+ # operation is done in-place when o1 supports it. This is the
183
+ # equivalent of the Python statement "o1 **= o2" when o3 is
184
+ # Py_None, or an in-place variant of "pow(o1, o2, o3)"
185
+ # otherwise. If o3 is to be ignored, pass Py_None in its place
186
+ # (passing NULL for o3 would cause an illegal memory access).
187
+
188
+ object PyNumber_InPlaceLshift(object o1, object o2)
189
+ # Return value: New reference.
190
+ # Returns the result of left shifting o1 by o2 on success, or NULL
191
+ # on failure. The operation is done in-place when o1 supports
192
+ # it. This is the equivalent of the Python statement "o1 <<= o2".
193
+
194
+ object PyNumber_InPlaceRshift(object o1, object o2)
195
+ # Return value: New reference.
196
+ # Returns the result of right shifting o1 by o2 on success, or
197
+ # NULL on failure. The operation is done in-place when o1 supports
198
+ # it. This is the equivalent of the Python statement "o1 >>= o2".
199
+
200
+ object PyNumber_InPlaceAnd(object o1, object o2)
201
+ # Return value: New reference.
202
+ # Returns the ``bitwise and'' of o1 and o2 on success and NULL on
203
+ # failure. The operation is done in-place when o1 supports
204
+ # it. This is the equivalent of the Python statement "o1 &= o2".
205
+
206
+ object PyNumber_InPlaceXor(object o1, object o2)
207
+ # Return value: New reference.
208
+ # Returns the ``bitwise exclusive or'' of o1 by o2 on success, or
209
+ # NULL on failure. The operation is done in-place when o1 supports
210
+ # it. This is the equivalent of the Python statement "o1 ^= o2".
211
+
212
+ object PyNumber_InPlaceOr(object o1, object o2)
213
+ # Return value: New reference.
214
+ # Returns the ``bitwise or'' of o1 and o2 on success, or NULL on
215
+ # failure. The operation is done in-place when o1 supports
216
+ # it. This is the equivalent of the Python statement "o1 |= o2".
217
+
218
+ int PyNumber_Coerce(PyObject **p1, PyObject **p2) except -1
219
+ # This function takes the addresses of two variables of type
220
+ # PyObject*. If the objects pointed to by *p1 and *p2 have the
221
+ # same type, increment their reference count and return 0
222
+ # (success). If the objects can be converted to a common numeric
223
+ # type, replace *p1 and *p2 by their converted value (with 'new'
224
+ # reference counts), and return 0. If no conversion is possible,
225
+ # or if some other error occurs, return -1 (failure) and don't
226
+ # increment the reference counts. The call PyNumber_Coerce(&o1,
227
+ # &o2) is equivalent to the Python statement "o1, o2 = coerce(o1,
228
+ # o2)".
229
+
230
+ object PyNumber_Long(object o)
231
+ # Return value: New reference.
232
+ # Returns the o converted to a long integer object on success, or
233
+ # NULL on failure. This is the equivalent of the Python expression
234
+ # "long(o)".
235
+
236
+ object PyNumber_Float(object o)
237
+ # Return value: New reference.
238
+ # Returns the o converted to a float object on success, or NULL on
239
+ # failure. This is the equivalent of the Python expression
240
+ # "float(o)".
241
+
242
+ object PyNumber_Index(object o)
243
+ # Returns the o converted to a Python int or long on success or
244
+ # NULL with a TypeError exception raised on failure.
245
+
246
+ Py_ssize_t PyNumber_AsSsize_t(object o, object exc) except? -1
247
+ # Returns o converted to a Py_ssize_t value if o can be
248
+ # interpreted as an integer. If o can be converted to a Python int
249
+ # or long but the attempt to convert to a Py_ssize_t value would
250
+ # raise an OverflowError, then the exc argument is the type of
251
+ # exception that will be raised (usually IndexError or
252
+ # OverflowError). If exc is NULL, then the exception is cleared
253
+ # and the value is clipped to PY_SSIZE_T_MIN for a negative
254
+ # integer or PY_SSIZE_T_MAX for a positive integer.
255
+
256
+ bint PyIndex_Check(object)
257
+ # Returns True if o is an index integer (has the nb_index slot of
258
+ # the tp_as_number structure filled in).