Cython 3.3.0a1__cp315-cp315-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (335) hide show
  1. Cython/Build/BuildExecutable.py +156 -0
  2. Cython/Build/Cache.py +199 -0
  3. Cython/Build/Cythonize.py +349 -0
  4. Cython/Build/Dependencies.py +1276 -0
  5. Cython/Build/Distutils.py +1 -0
  6. Cython/Build/Inline.py +467 -0
  7. Cython/Build/IpythonMagic.py +559 -0
  8. Cython/Build/SharedModule.py +84 -0
  9. Cython/Build/Tests/TestCyCache.py +195 -0
  10. Cython/Build/Tests/TestCythonizeArgsParser.py +480 -0
  11. Cython/Build/Tests/TestDependencies.py +133 -0
  12. Cython/Build/Tests/TestInline.py +177 -0
  13. Cython/Build/Tests/TestIpythonMagic.py +303 -0
  14. Cython/Build/Tests/TestRecythonize.py +212 -0
  15. Cython/Build/Tests/TestStripLiterals.py +155 -0
  16. Cython/Build/Tests/__init__.py +1 -0
  17. Cython/Build/__init__.py +11 -0
  18. Cython/CodeWriter.py +815 -0
  19. Cython/Compiler/AnalysedTreeTransforms.py +97 -0
  20. Cython/Compiler/Annotate.py +328 -0
  21. Cython/Compiler/AutoDocTransforms.py +320 -0
  22. Cython/Compiler/Buffer.py +680 -0
  23. Cython/Compiler/Builtin.py +997 -0
  24. Cython/Compiler/CmdLine.py +263 -0
  25. Cython/Compiler/Code.cp315-win_amd64.pyd +0 -0
  26. Cython/Compiler/Code.pxd +152 -0
  27. Cython/Compiler/Code.py +3907 -0
  28. Cython/Compiler/CodeGeneration.py +33 -0
  29. Cython/Compiler/CythonScope.py +194 -0
  30. Cython/Compiler/Dataclass.py +890 -0
  31. Cython/Compiler/DebugFlags.py +24 -0
  32. Cython/Compiler/Errors.py +310 -0
  33. Cython/Compiler/ExprNodes.py +15983 -0
  34. Cython/Compiler/FlowControl.cp315-win_amd64.pyd +0 -0
  35. Cython/Compiler/FlowControl.pxd +99 -0
  36. Cython/Compiler/FlowControl.py +1571 -0
  37. Cython/Compiler/FusedNode.cp315-win_amd64.pyd +0 -0
  38. Cython/Compiler/FusedNode.py +976 -0
  39. Cython/Compiler/Future.py +16 -0
  40. Cython/Compiler/Interpreter.py +57 -0
  41. Cython/Compiler/Lexicon.py +422 -0
  42. Cython/Compiler/LineTable.cp315-win_amd64.pyd +0 -0
  43. Cython/Compiler/LineTable.py +114 -0
  44. Cython/Compiler/Main.py +856 -0
  45. Cython/Compiler/MatchCaseNodes.py +2197 -0
  46. Cython/Compiler/MemoryView.py +930 -0
  47. Cython/Compiler/ModuleNode.py +4517 -0
  48. Cython/Compiler/Naming.py +367 -0
  49. Cython/Compiler/Nodes.py +10941 -0
  50. Cython/Compiler/Optimize.py +5455 -0
  51. Cython/Compiler/Options.py +838 -0
  52. Cython/Compiler/ParseTreeTransforms.pxd +79 -0
  53. Cython/Compiler/ParseTreeTransforms.py +4744 -0
  54. Cython/Compiler/Parsing.cp315-win_amd64.pyd +0 -0
  55. Cython/Compiler/Parsing.pxd +9 -0
  56. Cython/Compiler/Parsing.py +4792 -0
  57. Cython/Compiler/Pipeline.py +439 -0
  58. Cython/Compiler/PyrexTypes.py +6111 -0
  59. Cython/Compiler/Pythran.py +232 -0
  60. Cython/Compiler/Scanning.cp315-win_amd64.pyd +0 -0
  61. Cython/Compiler/Scanning.pxd +70 -0
  62. Cython/Compiler/Scanning.py +720 -0
  63. Cython/Compiler/StringEncoding.py +297 -0
  64. Cython/Compiler/Symtab.py +3092 -0
  65. Cython/Compiler/Tests/TestBuffer.py +105 -0
  66. Cython/Compiler/Tests/TestBuiltin.py +117 -0
  67. Cython/Compiler/Tests/TestCmdLine.py +587 -0
  68. Cython/Compiler/Tests/TestCode.py +145 -0
  69. Cython/Compiler/Tests/TestFlowControl.py +65 -0
  70. Cython/Compiler/Tests/TestGrammar.py +202 -0
  71. Cython/Compiler/Tests/TestMemView.py +71 -0
  72. Cython/Compiler/Tests/TestParseTreeTransforms.py +285 -0
  73. Cython/Compiler/Tests/TestScanning.py +132 -0
  74. Cython/Compiler/Tests/TestSignatureMatching.py +73 -0
  75. Cython/Compiler/Tests/TestStringEncoding.py +20 -0
  76. Cython/Compiler/Tests/TestTreeFragment.py +63 -0
  77. Cython/Compiler/Tests/TestTreePath.py +103 -0
  78. Cython/Compiler/Tests/TestTypes.py +118 -0
  79. Cython/Compiler/Tests/TestUtilityLoad.py +112 -0
  80. Cython/Compiler/Tests/TestVisitor.py +61 -0
  81. Cython/Compiler/Tests/Utils.py +36 -0
  82. Cython/Compiler/Tests/__init__.py +1 -0
  83. Cython/Compiler/TreeFragment.py +278 -0
  84. Cython/Compiler/TreePath.py +303 -0
  85. Cython/Compiler/TypeInference.py +611 -0
  86. Cython/Compiler/TypeSlots.py +1329 -0
  87. Cython/Compiler/UFuncs.py +311 -0
  88. Cython/Compiler/UtilNodes.py +413 -0
  89. Cython/Compiler/UtilityCode.py +348 -0
  90. Cython/Compiler/Version.py +8 -0
  91. Cython/Compiler/Visitor.cp315-win_amd64.pyd +0 -0
  92. Cython/Compiler/Visitor.pxd +53 -0
  93. Cython/Compiler/Visitor.py +864 -0
  94. Cython/Compiler/__init__.py +1 -0
  95. Cython/Coverage.py +448 -0
  96. Cython/Debugger/Cygdb.py +177 -0
  97. Cython/Debugger/DebugWriter.py +82 -0
  98. Cython/Debugger/Tests/TestLibCython.py +280 -0
  99. Cython/Debugger/Tests/__init__.py +1 -0
  100. Cython/Debugger/Tests/cfuncs.c +8 -0
  101. Cython/Debugger/Tests/codefile +49 -0
  102. Cython/Debugger/Tests/test_libcython_in_gdb.py +580 -0
  103. Cython/Debugger/Tests/test_libpython_in_gdb.py +90 -0
  104. Cython/Debugger/__init__.py +1 -0
  105. Cython/Debugger/libcython.py +1548 -0
  106. Cython/Debugger/libpython.py +2821 -0
  107. Cython/Debugging.py +20 -0
  108. Cython/Distutils/__init__.py +2 -0
  109. Cython/Distutils/build_ext.py +139 -0
  110. Cython/Distutils/extension.py +96 -0
  111. Cython/Distutils/old_build_ext.py +351 -0
  112. Cython/Includes/cpython/__init__.pxd +173 -0
  113. Cython/Includes/cpython/array.pxd +152 -0
  114. Cython/Includes/cpython/bool.pxd +37 -0
  115. Cython/Includes/cpython/buffer.pxd +112 -0
  116. Cython/Includes/cpython/bytearray.pxd +33 -0
  117. Cython/Includes/cpython/bytes.pxd +200 -0
  118. Cython/Includes/cpython/cellobject.pxd +35 -0
  119. Cython/Includes/cpython/ceval.pxd +8 -0
  120. Cython/Includes/cpython/codecs.pxd +121 -0
  121. Cython/Includes/cpython/complex.pxd +60 -0
  122. Cython/Includes/cpython/contextvars.pxd +145 -0
  123. Cython/Includes/cpython/conversion.pxd +36 -0
  124. Cython/Includes/cpython/datetime.pxd +395 -0
  125. Cython/Includes/cpython/descr.pxd +26 -0
  126. Cython/Includes/cpython/dict.pxd +268 -0
  127. Cython/Includes/cpython/exc.pxd +263 -0
  128. Cython/Includes/cpython/fileobject.pxd +57 -0
  129. Cython/Includes/cpython/float.pxd +56 -0
  130. Cython/Includes/cpython/frozendict.pxd +37 -0
  131. Cython/Includes/cpython/function.pxd +65 -0
  132. Cython/Includes/cpython/genobject.pxd +25 -0
  133. Cython/Includes/cpython/getargs.pxd +12 -0
  134. Cython/Includes/cpython/instance.pxd +25 -0
  135. Cython/Includes/cpython/iterator.pxd +36 -0
  136. Cython/Includes/cpython/iterobject.pxd +24 -0
  137. Cython/Includes/cpython/list.pxd +144 -0
  138. Cython/Includes/cpython/long.pxd +180 -0
  139. Cython/Includes/cpython/longintrepr.pxd +14 -0
  140. Cython/Includes/cpython/mapping.pxd +63 -0
  141. Cython/Includes/cpython/marshal.pxd +66 -0
  142. Cython/Includes/cpython/mem.pxd +120 -0
  143. Cython/Includes/cpython/memoryview.pxd +50 -0
  144. Cython/Includes/cpython/method.pxd +49 -0
  145. Cython/Includes/cpython/module.pxd +208 -0
  146. Cython/Includes/cpython/number.pxd +258 -0
  147. Cython/Includes/cpython/object.pxd +430 -0
  148. Cython/Includes/cpython/pycapsule.pxd +143 -0
  149. Cython/Includes/cpython/pylifecycle.pxd +68 -0
  150. Cython/Includes/cpython/pyport.pxd +8 -0
  151. Cython/Includes/cpython/pystate.pxd +95 -0
  152. Cython/Includes/cpython/pythread.pxd +53 -0
  153. Cython/Includes/cpython/ref.pxd +141 -0
  154. Cython/Includes/cpython/sentinel.pxd +17 -0
  155. Cython/Includes/cpython/sequence.pxd +134 -0
  156. Cython/Includes/cpython/set.pxd +119 -0
  157. Cython/Includes/cpython/slice.pxd +70 -0
  158. Cython/Includes/cpython/time.pxd +129 -0
  159. Cython/Includes/cpython/tuple.pxd +72 -0
  160. Cython/Includes/cpython/type.pxd +146 -0
  161. Cython/Includes/cpython/unicode.pxd +639 -0
  162. Cython/Includes/cpython/version.pxd +32 -0
  163. Cython/Includes/cpython/weakref.pxd +78 -0
  164. Cython/Includes/libc/__init__.pxd +1 -0
  165. Cython/Includes/libc/complex.pxd +35 -0
  166. Cython/Includes/libc/errno.pxd +127 -0
  167. Cython/Includes/libc/float.pxd +43 -0
  168. Cython/Includes/libc/limits.pxd +28 -0
  169. Cython/Includes/libc/locale.pxd +46 -0
  170. Cython/Includes/libc/math.pxd +209 -0
  171. Cython/Includes/libc/setjmp.pxd +10 -0
  172. Cython/Includes/libc/signal.pxd +64 -0
  173. Cython/Includes/libc/stddef.pxd +9 -0
  174. Cython/Includes/libc/stdint.pxd +105 -0
  175. Cython/Includes/libc/stdio.pxd +80 -0
  176. Cython/Includes/libc/stdlib.pxd +72 -0
  177. Cython/Includes/libc/string.pxd +50 -0
  178. Cython/Includes/libc/threads.pxd +234 -0
  179. Cython/Includes/libc/time.pxd +52 -0
  180. Cython/Includes/libcpp/__init__.pxd +4 -0
  181. Cython/Includes/libcpp/algorithm.pxd +320 -0
  182. Cython/Includes/libcpp/any.pxd +16 -0
  183. Cython/Includes/libcpp/atomic.pxd +59 -0
  184. Cython/Includes/libcpp/barrier.pxd +22 -0
  185. Cython/Includes/libcpp/bit.pxd +29 -0
  186. Cython/Includes/libcpp/cast.pxd +12 -0
  187. Cython/Includes/libcpp/cmath.pxd +518 -0
  188. Cython/Includes/libcpp/complex.pxd +106 -0
  189. Cython/Includes/libcpp/condition_variable.pxd +322 -0
  190. Cython/Includes/libcpp/deque.pxd +165 -0
  191. Cython/Includes/libcpp/exception.pxd +216 -0
  192. Cython/Includes/libcpp/execution.pxd +15 -0
  193. Cython/Includes/libcpp/forward_list.pxd +63 -0
  194. Cython/Includes/libcpp/functional.pxd +26 -0
  195. Cython/Includes/libcpp/future.pxd +103 -0
  196. Cython/Includes/libcpp/iterator.pxd +34 -0
  197. Cython/Includes/libcpp/latch.pxd +17 -0
  198. Cython/Includes/libcpp/limits.pxd +61 -0
  199. Cython/Includes/libcpp/list.pxd +117 -0
  200. Cython/Includes/libcpp/map.pxd +252 -0
  201. Cython/Includes/libcpp/memory.pxd +115 -0
  202. Cython/Includes/libcpp/mutex.pxd +387 -0
  203. Cython/Includes/libcpp/numbers.pxd +15 -0
  204. Cython/Includes/libcpp/numeric.pxd +131 -0
  205. Cython/Includes/libcpp/optional.pxd +34 -0
  206. Cython/Includes/libcpp/pair.pxd +1 -0
  207. Cython/Includes/libcpp/queue.pxd +25 -0
  208. Cython/Includes/libcpp/random.pxd +166 -0
  209. Cython/Includes/libcpp/semaphore.pxd +43 -0
  210. Cython/Includes/libcpp/set.pxd +228 -0
  211. Cython/Includes/libcpp/shared_mutex.pxd +96 -0
  212. Cython/Includes/libcpp/span.pxd +87 -0
  213. Cython/Includes/libcpp/stack.pxd +11 -0
  214. Cython/Includes/libcpp/stop_token.pxd +117 -0
  215. Cython/Includes/libcpp/string.pxd +355 -0
  216. Cython/Includes/libcpp/string_view.pxd +183 -0
  217. Cython/Includes/libcpp/typeindex.pxd +15 -0
  218. Cython/Includes/libcpp/typeinfo.pxd +10 -0
  219. Cython/Includes/libcpp/unordered_map.pxd +193 -0
  220. Cython/Includes/libcpp/unordered_set.pxd +152 -0
  221. Cython/Includes/libcpp/utility.pxd +30 -0
  222. Cython/Includes/libcpp/vector.pxd +186 -0
  223. Cython/Includes/numpy/math.pxd +150 -0
  224. Cython/Includes/openmp.pxd +50 -0
  225. Cython/Includes/posix/__init__.pxd +1 -0
  226. Cython/Includes/posix/dlfcn.pxd +14 -0
  227. Cython/Includes/posix/fcntl.pxd +86 -0
  228. Cython/Includes/posix/ioctl.pxd +4 -0
  229. Cython/Includes/posix/mman.pxd +101 -0
  230. Cython/Includes/posix/resource.pxd +57 -0
  231. Cython/Includes/posix/select.pxd +21 -0
  232. Cython/Includes/posix/signal.pxd +73 -0
  233. Cython/Includes/posix/stat.pxd +98 -0
  234. Cython/Includes/posix/stdio.pxd +37 -0
  235. Cython/Includes/posix/stdlib.pxd +29 -0
  236. Cython/Includes/posix/strings.pxd +9 -0
  237. Cython/Includes/posix/time.pxd +71 -0
  238. Cython/Includes/posix/types.pxd +30 -0
  239. Cython/Includes/posix/uio.pxd +26 -0
  240. Cython/Includes/posix/unistd.pxd +271 -0
  241. Cython/Includes/posix/wait.pxd +38 -0
  242. Cython/LZSS.py +170 -0
  243. Cython/Plex/Actions.cp315-win_amd64.pyd +0 -0
  244. Cython/Plex/Actions.pxd +24 -0
  245. Cython/Plex/Actions.py +119 -0
  246. Cython/Plex/DFA.cp315-win_amd64.pyd +0 -0
  247. Cython/Plex/DFA.pxd +14 -0
  248. Cython/Plex/DFA.py +164 -0
  249. Cython/Plex/Errors.py +48 -0
  250. Cython/Plex/Lexicons.py +178 -0
  251. Cython/Plex/Machines.cp315-win_amd64.pyd +0 -0
  252. Cython/Plex/Machines.pxd +36 -0
  253. Cython/Plex/Machines.py +238 -0
  254. Cython/Plex/Regexps.py +535 -0
  255. Cython/Plex/Scanners.cp315-win_amd64.pyd +0 -0
  256. Cython/Plex/Scanners.pxd +45 -0
  257. Cython/Plex/Scanners.py +328 -0
  258. Cython/Plex/Transitions.cp315-win_amd64.pyd +0 -0
  259. Cython/Plex/Transitions.pxd +14 -0
  260. Cython/Plex/Transitions.py +239 -0
  261. Cython/Plex/__init__.py +34 -0
  262. Cython/Runtime/__init__.py +1 -0
  263. Cython/Runtime/refnanny.cp315-win_amd64.pyd +0 -0
  264. Cython/Runtime/refnanny.pyx +237 -0
  265. Cython/Shadow.py +1167 -0
  266. Cython/StringIOTree.cp315-win_amd64.pyd +0 -0
  267. Cython/StringIOTree.py +169 -0
  268. Cython/Tempita/__init__.py +4 -0
  269. Cython/Tempita/_looper.py +154 -0
  270. Cython/Tempita/_tempita.cp315-win_amd64.pyd +0 -0
  271. Cython/Tempita/_tempita.py +1087 -0
  272. Cython/TestUtils.py +464 -0
  273. Cython/Tests/TestCodeWriter.py +128 -0
  274. Cython/Tests/TestCythonUtils.py +202 -0
  275. Cython/Tests/TestJediTyper.py +223 -0
  276. Cython/Tests/TestShadow.py +110 -0
  277. Cython/Tests/TestStringIOTree.py +68 -0
  278. Cython/Tests/TestTestUtils.py +89 -0
  279. Cython/Tests/__init__.py +1 -0
  280. Cython/Tests/xmlrunner.py +390 -0
  281. Cython/Utility/AsyncGen.c +1073 -0
  282. Cython/Utility/Buffer.c +866 -0
  283. Cython/Utility/BufferFormatFromTypeInfo.pxd +2 -0
  284. Cython/Utility/Builtins.c +933 -0
  285. Cython/Utility/CConvert.pyx +149 -0
  286. Cython/Utility/CMath.c +104 -0
  287. Cython/Utility/CommonStructures.c +244 -0
  288. Cython/Utility/Complex.c +378 -0
  289. Cython/Utility/Coroutine.c +2337 -0
  290. Cython/Utility/CpdefEnums.pyx +107 -0
  291. Cython/Utility/CppConvert.pyx +282 -0
  292. Cython/Utility/CppSupport.cpp +151 -0
  293. Cython/Utility/CythonFunction.c +2072 -0
  294. Cython/Utility/Dataclasses.c +101 -0
  295. Cython/Utility/Embed.c +129 -0
  296. Cython/Utility/Exceptions.c +1038 -0
  297. Cython/Utility/ExtensionTypes.c +1158 -0
  298. Cython/Utility/FunctionArguments.c +1045 -0
  299. Cython/Utility/FusedFunction.pyx +44 -0
  300. Cython/Utility/ImportExport.c +930 -0
  301. Cython/Utility/MatchCase.c +979 -0
  302. Cython/Utility/MatchCase_Cy.pyx +12 -0
  303. Cython/Utility/MemoryView.pxd +108 -0
  304. Cython/Utility/MemoryView.pyx +1499 -0
  305. Cython/Utility/MemoryView_C.c +1056 -0
  306. Cython/Utility/ModuleSetupCode.c +3352 -0
  307. Cython/Utility/NumpyImportArray.c +46 -0
  308. Cython/Utility/ObjectHandling.c +3372 -0
  309. Cython/Utility/Optimize.c +2563 -0
  310. Cython/Utility/Overflow.c +378 -0
  311. Cython/Utility/Profile.c +736 -0
  312. Cython/Utility/StringTools.c +1414 -0
  313. Cython/Utility/Synchronization.c +438 -0
  314. Cython/Utility/TString.c +369 -0
  315. Cython/Utility/TestCyUtilityLoader.pyx +8 -0
  316. Cython/Utility/TestCythonScope.pyx +75 -0
  317. Cython/Utility/TestUtilityLoader.c +12 -0
  318. Cython/Utility/TypeConversion.c +1556 -0
  319. Cython/Utility/UFuncs.pyx +50 -0
  320. Cython/Utility/UFuncs_C.c +89 -0
  321. Cython/Utility/__init__.py +28 -0
  322. Cython/Utility/arrayarray.h +172 -0
  323. Cython/Utils.cp315-win_amd64.pyd +0 -0
  324. Cython/Utils.py +677 -0
  325. Cython/__init__.py +12 -0
  326. Cython/py.typed +0 -0
  327. cython-3.3.0a1.dist-info/METADATA +394 -0
  328. cython-3.3.0a1.dist-info/RECORD +335 -0
  329. cython-3.3.0a1.dist-info/WHEEL +5 -0
  330. cython-3.3.0a1.dist-info/entry_points.txt +4 -0
  331. cython-3.3.0a1.dist-info/top_level.txt +3 -0
  332. cython.py +29 -0
  333. pyximport/__init__.py +4 -0
  334. pyximport/pyxbuild.py +160 -0
  335. pyximport/pyximport.py +482 -0
@@ -0,0 +1,216 @@
1
+ from libcpp cimport bool
2
+
3
+ cdef extern from "<exception>" namespace "std" nogil:
4
+ cdef cppclass exception_ptr:
5
+ bool operator bool()
6
+
7
+ exception_ptr make_exception_ptr[E](E e) noexcept
8
+ void rethrow_exception(exception_ptr) except +
9
+ exception_ptr current_exception() noexcept
10
+
11
+ cdef cppclass exception:
12
+ const char* what() noexcept
13
+
14
+ cdef extern from "<stdexcept>" namespace "std" nogil:
15
+ # Omitting the constructors of derived exception classes for now.
16
+ # They can't be stack-allocated easily in Cython because they don't have
17
+ # a nullary constructor. They also can't be thrown in Cython.
18
+ # So they're most useful just as class names when implementing
19
+ # exception handlers.
20
+ cdef cppclass logic_error(exception):
21
+ pass
22
+ cdef cppclass invalid_argument(logic_error):
23
+ pass
24
+ cdef cppclass domain_error(logic_error):
25
+ pass
26
+ cdef cppclass length_error(logic_error):
27
+ pass
28
+ cdef cppclass out_of_range(logic_error):
29
+ pass
30
+
31
+ cdef cppclass runtime_error(exception):
32
+ pass
33
+ cdef cppclass range_error(runtime_error):
34
+ pass
35
+ cdef cppclass overflow_error(runtime_error):
36
+ pass
37
+
38
+ cdef cppclass bad_typeid(exception):
39
+ pass
40
+
41
+ cdef cppclass bad_cast(exception):
42
+ pass
43
+
44
+ cdef cppclass bad_alloc(exception):
45
+ pass
46
+
47
+ cdef cppclass bad_exception(exception):
48
+ pass
49
+
50
+
51
+ cdef extern from *:
52
+ """
53
+ static void __Pyx_CppExn2PyErr(void);
54
+
55
+ CYTHON_UNUSED static void __pyx_deallocate_exception_ptr_capsule(PyObject *c) {
56
+ std::exception_ptr *ptr = static_cast<std::exception_ptr*>(
57
+ PyCapsule_GetPointer(c, "std::exception_ptr wrapper"));
58
+ delete ptr;
59
+ PyErr_Clear();
60
+ }
61
+
62
+ CYTHON_UNUSED static void __pyx_to_exception_ptr() {
63
+ try {
64
+ __Pyx_CppExn2PyErr(); // First do regular exception conversion
65
+ throw;
66
+ } catch (...) {
67
+ PyObject *type, *value, *tb;
68
+ PyErr_Fetch(&type, &value, &tb);
69
+ Py_XDECREF(value);
70
+ Py_XDECREF(tb);
71
+ std::exception_ptr *current = new std::exception_ptr(std::current_exception());
72
+ PyObject *capsule = PyCapsule_New(
73
+ static_cast<void*>(current),
74
+ "std::exception_ptr wrapper",
75
+ &__pyx_deallocate_exception_ptr_capsule);
76
+ if (!capsule)
77
+ delete current; // otherwise it'll be leaked
78
+ else
79
+ PyErr_SetObject(type ? type : PyExc_Exception, capsule);
80
+ Py_DECREF(type);
81
+ }
82
+ }
83
+
84
+ CYTHON_UNUSED static std::exception_ptr __pyx_wrapped_exception_ptr_from_exception(PyObject *e) {
85
+ PyObject *args = NULL, *arg0 = NULL;
86
+ std::exception_ptr result;
87
+ Py_ssize_t size;
88
+ #if __PYX_LIMITED_VERSION_HEX < 0x030C0000
89
+ args = PyObject_GetAttrString(e, "args");
90
+ #else
91
+ args = PyException_GetArgs(e);
92
+ #endif
93
+ if (!args)
94
+ goto done;
95
+ size = PyTuple_Size(args);
96
+ if (size != 1) {
97
+ if (size != -1)
98
+ PyErr_SetString(PyExc_ValueError, "exception args were not the expected length of 1");
99
+ goto done;
100
+ }
101
+ arg0 = PyTuple_GetItem(args, 0);
102
+ if (!arg0)
103
+ goto done;
104
+ {
105
+ std::exception_ptr* wrapped = static_cast<std::exception_ptr*>(
106
+ PyCapsule_GetPointer(arg0, "std::exception_ptr wrapper"));
107
+ if (!wrapped) {
108
+ goto done;
109
+ }
110
+ result = *wrapped;
111
+ }
112
+
113
+ done:
114
+ Py_XDECREF(args);
115
+ return result;
116
+ }
117
+ """
118
+ # This can be used as `except +exception_ptr_error_handler`.
119
+ # It raises a generic Exception, with a wrapped exception_ptr as its value.
120
+ void exception_ptr_error_handler "__pyx_to_exception_ptr"() except *
121
+ # Extract the exception_ptr from a caught exception
122
+ exception_ptr wrapped_exception_ptr_from_exception "__pyx_wrapped_exception_ptr_from_exception"(e) except *
123
+
124
+ # Dummy inline function to force __Pyx_CppExn2PyErr to be included for utility code above
125
+ cdef inline void __pyx_call_rethrow_exception "__pyx_call_rethrow_exception"(exception_ptr e) except*:
126
+ rethrow_exception(e)
127
+
128
+
129
+ cdef extern from *:
130
+ """
131
+ namespace {
132
+ #if __cplusplus >= 201703L || (defined(_MSVC_LANG) && _MSVC_LANG >= 201703L)
133
+ template <typename ExceptionT>
134
+ bool __pyx_call_exception_handler(void (*handler)(ExceptionT&)) {
135
+ try {
136
+ throw;
137
+ } catch(ExceptionT &ex) {
138
+ handler(ex);
139
+ return static_cast<bool>(PyErr_Occurred());
140
+ } catch (...) {
141
+ return false;
142
+ }
143
+ }
144
+
145
+ bool __pyx_call_exception_handler(void(*handler)()) {
146
+ try {
147
+ throw;
148
+ } catch (...) {
149
+ handler();
150
+ return static_cast<bool>(PyErr_Occurred());
151
+ }
152
+ }
153
+
154
+ template <typename ...HandlerTs>
155
+ void __pyx_delegate_to_exception_handlers(HandlerTs&& ... handlers) {
156
+ if (!std::current_exception()) {
157
+ PyErr_SetString(PyExc_SystemError, "__pyx_delegrate_to_exception_handlers called without a C++ exception");
158
+ return;
159
+ }
160
+ bool handled = (__pyx_call_exception_handler(std::forward<HandlerTs>(handlers)) || ... );
161
+ if (!handled)
162
+ throw;
163
+ }
164
+
165
+ #elif __cplusplus >= 201103L || (defined(_MSVC_LANG) && _MSVC_LANG >= 201103L)
166
+
167
+ inline bool __pyx_call_exception_handler_recursive() {
168
+ return false;
169
+ }
170
+
171
+ template <typename ExceptionT, typename ...HandlerTs>
172
+ bool __pyx_call_exception_handler_recursive(void (*first_handler)(ExceptionT&), HandlerTs&& ...handlers);
173
+
174
+ template <typename ...HandlerTs>
175
+ bool __pyx_call_exception_handler_recursive(void (*first_handler)(), HandlerTs&& ...handlers) {
176
+ try {
177
+ throw;
178
+ } catch (...) {
179
+ first_handler();
180
+ if (static_cast<bool>(PyErr_Occurred())) return true;
181
+ }
182
+ return __pyx_call_exception_handler_recursive(std::forward<HandlerTs>(handlers)...);
183
+ }
184
+
185
+ template <typename ExceptionT, typename ...HandlerTs>
186
+ bool __pyx_call_exception_handler_recursive(void (*first_handler)(ExceptionT&), HandlerTs&& ...handlers) {
187
+ try {
188
+ throw;
189
+ } catch (ExceptionT& e) {
190
+ first_handler(e);
191
+ if (static_cast<bool>(PyErr_Occurred())) return true;
192
+ } catch (...) {}
193
+ return __pyx_call_exception_handler_recursive(std::forward<HandlerTs>(handlers)...);
194
+ }
195
+
196
+ template <typename ...HandlerTs>
197
+ void __pyx_delegate_to_exception_handlers(HandlerTs&& ... handlers) {
198
+ if (!std::current_exception()) {
199
+ PyErr_SetString(PyExc_SystemError, "__pyx_delegrate_to_exception_handlers called without a C++ exception");
200
+ return;
201
+ }
202
+ bool handled = __pyx_call_exception_handler_recursive(std::forward<HandlerTs>(handlers)...);
203
+ if (!handled)
204
+ throw;
205
+ }
206
+ #endif
207
+ } // anonymous namespace
208
+ """
209
+ # Convenience function for writing easy custom C++ exception handlers.
210
+ # Pass it a collection of C++ function pointers taking either an exception reference, or no arguments.
211
+ # The function pointers are tried in order. If their argument type matches the current C++ exception (or if
212
+ # their argument type is empty) then they are called.
213
+ # If they raise a Python exception then the exception handling finishes and that exception is raised.
214
+ # Otherwise the next handler will be called.
215
+ # If no handlers raise a Python exception then the default Cython mechanism will be used.
216
+ void delegate_to_exception_handlers "__pyx_delegate_to_exception_handlers"(...) except+*
@@ -0,0 +1,15 @@
1
+
2
+ cdef extern from "<execution>" namespace "std::execution" nogil:
3
+ cdef cppclass sequenced_policy:
4
+ pass
5
+ cdef cppclass parallel_policy:
6
+ pass
7
+ cdef cppclass parallel_unsequenced_policy:
8
+ pass
9
+ cdef cppclass unsequenced_policy:
10
+ pass
11
+
12
+ const sequenced_policy seq "std::execution::seq"
13
+ const parallel_policy par "std::execution::par"
14
+ const parallel_unsequenced_policy par_unseq "std::execution::par_unseq"
15
+ const unsequenced_policy unseq "std::execution::unseq"
@@ -0,0 +1,63 @@
1
+ cdef extern from "<forward_list>" namespace "std" nogil:
2
+ cdef cppclass forward_list[T,ALLOCATOR=*]:
3
+ ctypedef T value_type
4
+ ctypedef ALLOCATOR allocator_type
5
+
6
+ # these should really be allocator_type.size_type and
7
+ # allocator_type.difference_type to be true to the C++ definition
8
+ # but cython doesn't support deferred access on template arguments
9
+ ctypedef size_t size_type
10
+ ctypedef ptrdiff_t difference_type
11
+
12
+ cppclass iterator:
13
+ iterator()
14
+ iterator(iterator &)
15
+ T& operator*()
16
+ iterator operator++()
17
+ iterator operator++(int)
18
+ bint operator==(iterator)
19
+ bint operator!=(iterator)
20
+ cppclass const_iterator(iterator):
21
+ pass
22
+ forward_list() except +
23
+ forward_list(forward_list&) except +
24
+ forward_list(size_t, T&) except +
25
+ #forward_list& operator=(forward_list&)
26
+ bint operator==(forward_list&, forward_list&)
27
+ bint operator!=(forward_list&, forward_list&)
28
+ bint operator<(forward_list&, forward_list&)
29
+ bint operator>(forward_list&, forward_list&)
30
+ bint operator<=(forward_list&, forward_list&)
31
+ bint operator>=(forward_list&, forward_list&)
32
+ void assign(size_t, T&)
33
+ T& front()
34
+ iterator before_begin()
35
+ const_iterator const_before_begin "before_begin"()
36
+ iterator begin()
37
+ const_iterator const_begin "begin"()
38
+ iterator end()
39
+ const_iterator const_end "end"()
40
+ bint empty()
41
+ size_t max_size()
42
+ void clear()
43
+ iterator insert_after(iterator, T&)
44
+ void insert_after(iterator, size_t, T&)
45
+ iterator erase_after(iterator)
46
+ iterator erase_after(iterator, iterator)
47
+ void push_front(T&)
48
+ void pop_front()
49
+ void resize(size_t)
50
+ void resize(size_t, T&)
51
+ void swap(forward_list&)
52
+ void merge(forward_list&)
53
+ void merge[Compare](forward_list&, Compare)
54
+ void splice_after(iterator, forward_list&)
55
+ void splice_after(iterator, forward_list&, iterator)
56
+ void splice_after(iterator, forward_list&, iterator, iterator)
57
+ void remove(const T&)
58
+ void remove_if[Predicate](Predicate)
59
+ void reverse()
60
+ void unique()
61
+ void unique[Predicate](Predicate)
62
+ void sort()
63
+ void sort[Compare](Compare)
@@ -0,0 +1,26 @@
1
+ from libcpp cimport bool
2
+
3
+ cdef extern from "<functional>" namespace "std" nogil:
4
+ cdef cppclass function[T]:
5
+ function() except +
6
+ function(T*) except +
7
+ function(function&) except +
8
+ function(void*) except +
9
+
10
+ function operator=(T*)
11
+ function operator=(function&)
12
+ function operator=(void*)
13
+ function operator=[U](U)
14
+
15
+ bool operator bool()
16
+
17
+ # Comparisons
18
+ cdef cppclass greater[T=*]:
19
+ # https://github.com/cython/cython/issues/3193
20
+ greater() except +
21
+ bool operator()(const T& lhs, const T& rhs) except +
22
+
23
+ cdef cppclass reference_wrapper[T]:
24
+ reference_wrapper()
25
+ reference_wrapper(T)
26
+ T& get() const
@@ -0,0 +1,103 @@
1
+ from libcpp cimport bool
2
+ from libcpp.exception cimport exception_ptr
3
+
4
+ cdef extern from "<future>":
5
+ pass # include first
6
+
7
+ cdef extern from *:
8
+ """
9
+ static void __Pyx_CppExn2PyErr();
10
+ CYTHON_UNUSED static void __pyx_future_error_handler() {
11
+ try {
12
+ throw;
13
+ } catch (const std::future_error &e) {
14
+ PyObject *args = Py_BuildValue(
15
+ "sis",
16
+ "std::future_error",
17
+ e.code().value(),
18
+ e.what()
19
+ );
20
+ if (!args) return;
21
+ Py_INCREF(PyExc_RuntimeError);
22
+ // It'd be nice to raise something more specific, but I can't easily do that
23
+ // so I've tried to at least make them identifiable by the arguments.
24
+ PyErr_Restore(PyExc_RuntimeError, args, NULL);
25
+ } catch (...) {
26
+ // Forward to the normal Cython exception conversion;
27
+ __Pyx_CppExn2PyErr();
28
+ }
29
+ }
30
+ """
31
+ void __pyx_future_error_handler() except+
32
+
33
+ cdef extern from "<future>" namespace "std" nogil:
34
+ cdef enum class future_status:
35
+ ready
36
+ timeout
37
+ deferred
38
+
39
+ cdef cppclass future[T]:
40
+ future() noexcept
41
+ future(future& other) noexcept # slightly mistyped move constructor
42
+
43
+ future& operator=(future& other) noexcept # slightly mistyped move assignment
44
+
45
+ shared_future[T] share() noexcept
46
+
47
+ # Not strictly right when T is a reference or void
48
+ T get() except +__pyx_future_error_handler
49
+
50
+ bool valid() noexcept
51
+
52
+ void wait() except+
53
+ # For wait_for and wait_until we don't have chrono yet
54
+ future_status wait_for(...) except+
55
+ future_status wait_until(...) except+
56
+
57
+ cdef cppclass shared_future[T]:
58
+ shared_future() noexcept
59
+ shared_future(const shared_future& other) noexcept # noexcept only from c++17 strictly
60
+ shared_future(future[T]& other) noexcept # slightly mistyped move
61
+
62
+ shared_future& operator=(const shared_future& other) noexcept # noexcept only from c++17 strictly
63
+ shared_future& operator=(future& other) noexcept # slightly mistyped move
64
+
65
+ # Not strictly right when T is a reference or void
66
+ const T& get() except +__pyx_future_error_handler
67
+
68
+ bool valid() noexcept
69
+
70
+ void wait() except+
71
+ # For wait_for and wait_until we don't have chrono yet
72
+ future_status wait_for(...) except+
73
+ future_status wait_until(...) except+
74
+
75
+ cdef cppclass promise[T]:
76
+ promise() noexcept
77
+ # don't expose the allocator version
78
+ promise(promise& other) noexcept # slightly mistyped move
79
+
80
+ promise& operator=(promise& other) noexcept # slightly mistyped move
81
+
82
+ void swap(promise& other) noexcept
83
+
84
+ future[T] get_future() except+
85
+
86
+ # Note that the set_* functions all have specialized error handling.
87
+ # A std::future_error will be converted to a RuntimeError with 3 arguments.
88
+ # The first argument is the string "std::future_error",
89
+ # the second is the error code as an int for comparison with future_errc,
90
+ # and the third is the message.
91
+ void set_value(T value) except +__pyx_future_error_handler
92
+ void set_value() except +__pyx_future_error_handler # only for void specialization
93
+ void set_value_at_thread_exit(T value) except +__pyx_future_error_handler
94
+ void set_value_at_thread_exit() except +__pyx_future_error_handler # only for void specialization
95
+
96
+ void set_exception(exception_ptr p) except +__pyx_future_error_handler
97
+ void set_exception_at_thread_exit(exception_ptr p) except +__pyx_future_error_handler
98
+
99
+ cdef enum class future_errc:
100
+ broken_promise
101
+ future_already_retrieved
102
+ promise_already_satisfied
103
+ no_state
@@ -0,0 +1,34 @@
1
+ #Basic reference: http://www.cplusplus.com/reference/iterator/
2
+ #Most of these classes are in fact empty structs
3
+
4
+ from libc.stddef import ptrdiff_t
5
+
6
+ cdef extern from "<iterator>" namespace "std" nogil:
7
+ cdef cppclass iterator[Category,T,Distance,Pointer,Reference]:
8
+ pass
9
+ cdef cppclass output_iterator_tag:
10
+ pass
11
+ cdef cppclass input_iterator_tag:
12
+ pass
13
+ cdef cppclass forward_iterator_tag(input_iterator_tag):
14
+ pass
15
+ cdef cppclass bidirectional_iterator_tag(forward_iterator_tag):
16
+ pass
17
+ cdef cppclass random_access_iterator_tag(bidirectional_iterator_tag):
18
+ pass
19
+
20
+ cdef cppclass back_insert_iterator[T](iterator[output_iterator_tag,void,void,void,void]):
21
+ pass
22
+ cdef cppclass front_insert_iterator[T](iterator[output_iterator_tag,void,void,void,void]):
23
+ pass
24
+ cdef cppclass insert_iterator[T](iterator[output_iterator_tag,void,void,void,void]):
25
+ pass
26
+ back_insert_iterator[CONTAINER] back_inserter[CONTAINER](CONTAINER &)
27
+ front_insert_iterator[CONTAINER] front_inserter[CONTAINER](CONTAINER &)
28
+ ##Note: this is the C++98 version of inserter.
29
+ ##The C++11 versions's prototype relies on typedef members of classes, which Cython doesn't currently support:
30
+ ##template <class Container>
31
+ ##insert_iterator<Container> inserter (Container& x, typename Container::iterator it)
32
+ insert_iterator[CONTAINER] inserter[CONTAINER,ITERATOR](CONTAINER &, ITERATOR)
33
+
34
+ ptrdiff_t distance[It](It first, It last)
@@ -0,0 +1,17 @@
1
+ from libcpp cimport bool
2
+
3
+ cdef extern from "<latch>" namespace "std" nogil:
4
+ # Note on thread safety:
5
+ # For any of the blocking functions, you should be very careful
6
+ # to ensure that you are not deadlocked on the GIL.
7
+ cdef cppclass latch:
8
+ latch(ptrdiff_t expected)
9
+
10
+ void count_down() except+
11
+ void count_down(ptrdiff_t n) except+
12
+ bool try_wait()
13
+ void wait() except+
14
+ void arrive_and_wait() except+
15
+ void arrive_and_wait(ptrdiff_t n) except+
16
+
17
+ ptrdiff_t max()
@@ -0,0 +1,61 @@
1
+ cdef extern from "<limits>" namespace "std" nogil:
2
+ enum float_round_style:
3
+ round_indeterminate = -1
4
+ round_toward_zero = 0
5
+ round_to_nearest = 1
6
+ round_toward_infinity = 2
7
+ round_toward_neg_infinity = 3
8
+
9
+ enum float_denorm_style:
10
+ denorm_indeterminate = -1
11
+ denorm_absent = 0
12
+ denorm_present = 1
13
+
14
+ #The static methods can be called as, e.g. numeric_limits[int].round_error(), etc.
15
+ #The const data members should be declared as static. Cython currently doesn't allow that
16
+ #and/or I can't figure it out, so you must instantiate an object to access, e.g.
17
+ #cdef numeric_limits[double] lm
18
+ #print lm.round_style
19
+ cdef cppclass numeric_limits[T]:
20
+ const bint is_specialized
21
+ @staticmethod
22
+ T min()
23
+ @staticmethod
24
+ T max()
25
+ const int digits
26
+ const int digits10
27
+ const bint is_signed
28
+ const bint is_integer
29
+ const bint is_exact
30
+ const int radix
31
+ @staticmethod
32
+ T epsilon()
33
+ @staticmethod
34
+ T round_error()
35
+
36
+ const int min_exponent
37
+ const int min_exponent10
38
+ const int max_exponent
39
+ const int max_exponent10
40
+
41
+ const bint has_infinity
42
+ const bint has_quiet_NaN
43
+ const bint has_signaling_NaN
44
+ const float_denorm_style has_denorm
45
+ const bint has_denorm_loss
46
+ @staticmethod
47
+ T infinity()
48
+ @staticmethod
49
+ T quiet_NaN()
50
+ @staticmethod
51
+ T signaling_NaN()
52
+ @staticmethod
53
+ T denorm_min()
54
+
55
+ const bint is_iec559
56
+ const bint is_bounded
57
+ const bint is_modulo
58
+
59
+ const bint traps
60
+ const bint tinyness_before
61
+ const float_round_style round_style
@@ -0,0 +1,117 @@
1
+ cdef extern from "<list>" namespace "std" nogil:
2
+ cdef cppclass list[T,ALLOCATOR=*]:
3
+ ctypedef T value_type
4
+ ctypedef ALLOCATOR allocator_type
5
+
6
+ # these should really be allocator_type.size_type and
7
+ # allocator_type.difference_type to be true to the C++ definition
8
+ # but cython doesn't support deferred access on template arguments
9
+ ctypedef size_t size_type
10
+ ctypedef ptrdiff_t difference_type
11
+
12
+ cppclass const_iterator
13
+ cppclass iterator:
14
+ iterator() except +
15
+ iterator(iterator&) except +
16
+ value_type& operator*()
17
+ iterator operator++()
18
+ iterator operator--()
19
+ iterator operator++(int)
20
+ iterator operator--(int)
21
+ bint operator==(iterator)
22
+ bint operator==(const_iterator)
23
+ bint operator!=(iterator)
24
+ bint operator!=(const_iterator)
25
+ cppclass const_iterator:
26
+ const_iterator() except +
27
+ const_iterator(iterator&) except +
28
+ const_iterator(const_iterator&) except +
29
+ operator=(iterator&) except +
30
+ const value_type& operator*()
31
+ const_iterator operator++()
32
+ const_iterator operator--()
33
+ const_iterator operator++(int)
34
+ const_iterator operator--(int)
35
+ bint operator==(iterator)
36
+ bint operator==(const_iterator)
37
+ bint operator!=(iterator)
38
+ bint operator!=(const_iterator)
39
+
40
+ cppclass const_reverse_iterator
41
+ cppclass reverse_iterator:
42
+ reverse_iterator() except +
43
+ reverse_iterator(reverse_iterator&) except +
44
+ value_type& operator*()
45
+ reverse_iterator operator++()
46
+ reverse_iterator operator--()
47
+ reverse_iterator operator++(int)
48
+ reverse_iterator operator--(int)
49
+ bint operator==(reverse_iterator)
50
+ bint operator==(const_reverse_iterator)
51
+ bint operator!=(reverse_iterator)
52
+ bint operator!=(const_reverse_iterator)
53
+ cppclass const_reverse_iterator:
54
+ const_reverse_iterator() except +
55
+ const_reverse_iterator(reverse_iterator&) except +
56
+ operator=(reverse_iterator&) except +
57
+ const value_type& operator*()
58
+ const_reverse_iterator operator++()
59
+ const_reverse_iterator operator--()
60
+ const_reverse_iterator operator++(int)
61
+ const_reverse_iterator operator--(int)
62
+ bint operator==(reverse_iterator)
63
+ bint operator==(const_reverse_iterator)
64
+ bint operator!=(reverse_iterator)
65
+ bint operator!=(const_reverse_iterator)
66
+
67
+ list() except +
68
+ list(list&) except +
69
+ list(size_t, T&) except +
70
+ #list operator=(list&)
71
+ bint operator==(list&, list&)
72
+ bint operator!=(list&, list&)
73
+ bint operator<(list&, list&)
74
+ bint operator>(list&, list&)
75
+ bint operator<=(list&, list&)
76
+ bint operator>=(list&, list&)
77
+ void assign(size_t, T&) except +
78
+ T& back()
79
+ iterator begin()
80
+ const_iterator const_begin "begin"()
81
+ const_iterator cbegin()
82
+ void clear()
83
+ bint empty()
84
+ iterator end()
85
+ const_iterator const_end "end"()
86
+ const_iterator cend()
87
+ iterator erase(iterator)
88
+ iterator erase(iterator, iterator)
89
+ T& front()
90
+ iterator insert(iterator, T&)
91
+ void insert(iterator, size_t, T&)
92
+ size_t max_size()
93
+ void merge(list&) except +
94
+ #void merge(list&, BinPred)
95
+ void pop_back()
96
+ void pop_front()
97
+ void push_back(T&) except +
98
+ void push_front(T&) except +
99
+ reverse_iterator rbegin()
100
+ const_reverse_iterator const_rbegin "rbegin"()
101
+ const_reverse_iterator crbegin()
102
+ void remove(T&) except +
103
+ #void remove_if(UnPred)
104
+ reverse_iterator rend()
105
+ const_reverse_iterator const_rend "rend"()
106
+ const_reverse_iterator crend()
107
+ void resize(size_t, T&) except +
108
+ void reverse()
109
+ size_t size()
110
+ void sort() except +
111
+ #void sort(BinPred)
112
+ void splice(iterator, list&)
113
+ void splice(iterator, list&, iterator)
114
+ void splice(iterator, list&, iterator, iterator)
115
+ void swap(list&)
116
+ void unique()
117
+ #void unique(BinPred)