Cython 3.1.0__py3-none-any.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 (316) hide show
  1. Cython/Build/BuildExecutable.py +169 -0
  2. Cython/Build/Cache.py +199 -0
  3. Cython/Build/Cythonize.py +323 -0
  4. Cython/Build/Dependencies.py +1306 -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 +76 -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 +8 -0
  18. Cython/CodeWriter.py +811 -0
  19. Cython/Compiler/AnalysedTreeTransforms.py +97 -0
  20. Cython/Compiler/Annotate.py +326 -0
  21. Cython/Compiler/AutoDocTransforms.py +320 -0
  22. Cython/Compiler/Buffer.py +680 -0
  23. Cython/Compiler/Builtin.py +934 -0
  24. Cython/Compiler/CmdLine.py +259 -0
  25. Cython/Compiler/Code.pxd +148 -0
  26. Cython/Compiler/Code.py +3375 -0
  27. Cython/Compiler/CodeGeneration.py +33 -0
  28. Cython/Compiler/CythonScope.py +187 -0
  29. Cython/Compiler/Dataclass.py +868 -0
  30. Cython/Compiler/DebugFlags.py +24 -0
  31. Cython/Compiler/Errors.py +295 -0
  32. Cython/Compiler/ExprNodes.py +15267 -0
  33. Cython/Compiler/FlowControl.pxd +97 -0
  34. Cython/Compiler/FlowControl.py +1455 -0
  35. Cython/Compiler/FusedNode.py +1002 -0
  36. Cython/Compiler/Future.py +16 -0
  37. Cython/Compiler/Interpreter.py +57 -0
  38. Cython/Compiler/Lexicon.py +340 -0
  39. Cython/Compiler/LineTable.py +114 -0
  40. Cython/Compiler/Main.py +853 -0
  41. Cython/Compiler/MatchCaseNodes.py +259 -0
  42. Cython/Compiler/MemoryView.py +922 -0
  43. Cython/Compiler/ModuleNode.py +4024 -0
  44. Cython/Compiler/Naming.py +374 -0
  45. Cython/Compiler/Nodes.py +10826 -0
  46. Cython/Compiler/Optimize.py +5256 -0
  47. Cython/Compiler/Options.py +835 -0
  48. Cython/Compiler/ParseTreeTransforms.pxd +77 -0
  49. Cython/Compiler/ParseTreeTransforms.py +4509 -0
  50. Cython/Compiler/Parsing.pxd +9 -0
  51. Cython/Compiler/Parsing.py +4789 -0
  52. Cython/Compiler/Pipeline.py +439 -0
  53. Cython/Compiler/PyrexTypes.py +5762 -0
  54. Cython/Compiler/Pythran.py +232 -0
  55. Cython/Compiler/Scanning.pxd +40 -0
  56. Cython/Compiler/Scanning.py +577 -0
  57. Cython/Compiler/StringEncoding.py +347 -0
  58. Cython/Compiler/Symtab.py +3080 -0
  59. Cython/Compiler/Tests/TestBuffer.py +105 -0
  60. Cython/Compiler/Tests/TestBuiltin.py +72 -0
  61. Cython/Compiler/Tests/TestCmdLine.py +586 -0
  62. Cython/Compiler/Tests/TestCode.py +86 -0
  63. Cython/Compiler/Tests/TestFlowControl.py +65 -0
  64. Cython/Compiler/Tests/TestGrammar.py +202 -0
  65. Cython/Compiler/Tests/TestMemView.py +71 -0
  66. Cython/Compiler/Tests/TestParseTreeTransforms.py +285 -0
  67. Cython/Compiler/Tests/TestScanning.py +134 -0
  68. Cython/Compiler/Tests/TestSignatureMatching.py +73 -0
  69. Cython/Compiler/Tests/TestStringEncoding.py +33 -0
  70. Cython/Compiler/Tests/TestTreeFragment.py +63 -0
  71. Cython/Compiler/Tests/TestTreePath.py +103 -0
  72. Cython/Compiler/Tests/TestTypes.py +75 -0
  73. Cython/Compiler/Tests/TestUtilityLoad.py +112 -0
  74. Cython/Compiler/Tests/TestVisitor.py +61 -0
  75. Cython/Compiler/Tests/Utils.py +36 -0
  76. Cython/Compiler/Tests/__init__.py +1 -0
  77. Cython/Compiler/TreeFragment.py +278 -0
  78. Cython/Compiler/TreePath.py +303 -0
  79. Cython/Compiler/TypeInference.py +584 -0
  80. Cython/Compiler/TypeSlots.py +1181 -0
  81. Cython/Compiler/UFuncs.py +311 -0
  82. Cython/Compiler/UtilNodes.py +389 -0
  83. Cython/Compiler/UtilityCode.py +344 -0
  84. Cython/Compiler/Version.py +8 -0
  85. Cython/Compiler/Visitor.pxd +53 -0
  86. Cython/Compiler/Visitor.py +861 -0
  87. Cython/Compiler/__init__.py +1 -0
  88. Cython/Coverage.py +448 -0
  89. Cython/Debugger/Cygdb.py +175 -0
  90. Cython/Debugger/DebugWriter.py +82 -0
  91. Cython/Debugger/Tests/TestLibCython.py +275 -0
  92. Cython/Debugger/Tests/__init__.py +1 -0
  93. Cython/Debugger/Tests/cfuncs.c +8 -0
  94. Cython/Debugger/Tests/codefile +49 -0
  95. Cython/Debugger/Tests/test_libcython_in_gdb.py +578 -0
  96. Cython/Debugger/Tests/test_libpython_in_gdb.py +90 -0
  97. Cython/Debugger/__init__.py +1 -0
  98. Cython/Debugger/libcython.py +1548 -0
  99. Cython/Debugger/libpython.py +2821 -0
  100. Cython/Debugging.py +20 -0
  101. Cython/Distutils/__init__.py +2 -0
  102. Cython/Distutils/build_ext.py +139 -0
  103. Cython/Distutils/extension.py +96 -0
  104. Cython/Distutils/old_build_ext.py +351 -0
  105. Cython/Includes/cpython/__init__.pxd +173 -0
  106. Cython/Includes/cpython/array.pxd +174 -0
  107. Cython/Includes/cpython/bool.pxd +37 -0
  108. Cython/Includes/cpython/buffer.pxd +112 -0
  109. Cython/Includes/cpython/bytearray.pxd +33 -0
  110. Cython/Includes/cpython/bytes.pxd +200 -0
  111. Cython/Includes/cpython/cellobject.pxd +35 -0
  112. Cython/Includes/cpython/ceval.pxd +8 -0
  113. Cython/Includes/cpython/codecs.pxd +121 -0
  114. Cython/Includes/cpython/complex.pxd +60 -0
  115. Cython/Includes/cpython/contextvars.pxd +145 -0
  116. Cython/Includes/cpython/conversion.pxd +36 -0
  117. Cython/Includes/cpython/datetime.pxd +395 -0
  118. Cython/Includes/cpython/descr.pxd +26 -0
  119. Cython/Includes/cpython/dict.pxd +187 -0
  120. Cython/Includes/cpython/exc.pxd +263 -0
  121. Cython/Includes/cpython/fileobject.pxd +57 -0
  122. Cython/Includes/cpython/float.pxd +47 -0
  123. Cython/Includes/cpython/function.pxd +65 -0
  124. Cython/Includes/cpython/genobject.pxd +25 -0
  125. Cython/Includes/cpython/getargs.pxd +12 -0
  126. Cython/Includes/cpython/instance.pxd +25 -0
  127. Cython/Includes/cpython/iterator.pxd +36 -0
  128. Cython/Includes/cpython/iterobject.pxd +24 -0
  129. Cython/Includes/cpython/list.pxd +92 -0
  130. Cython/Includes/cpython/long.pxd +149 -0
  131. Cython/Includes/cpython/longintrepr.pxd +14 -0
  132. Cython/Includes/cpython/mapping.pxd +63 -0
  133. Cython/Includes/cpython/marshal.pxd +66 -0
  134. Cython/Includes/cpython/mem.pxd +120 -0
  135. Cython/Includes/cpython/memoryview.pxd +50 -0
  136. Cython/Includes/cpython/method.pxd +49 -0
  137. Cython/Includes/cpython/module.pxd +208 -0
  138. Cython/Includes/cpython/number.pxd +258 -0
  139. Cython/Includes/cpython/object.pxd +433 -0
  140. Cython/Includes/cpython/pycapsule.pxd +143 -0
  141. Cython/Includes/cpython/pylifecycle.pxd +68 -0
  142. Cython/Includes/cpython/pyport.pxd +8 -0
  143. Cython/Includes/cpython/pystate.pxd +95 -0
  144. Cython/Includes/cpython/pythread.pxd +53 -0
  145. Cython/Includes/cpython/ref.pxd +67 -0
  146. Cython/Includes/cpython/sequence.pxd +134 -0
  147. Cython/Includes/cpython/set.pxd +119 -0
  148. Cython/Includes/cpython/slice.pxd +70 -0
  149. Cython/Includes/cpython/time.pxd +129 -0
  150. Cython/Includes/cpython/tuple.pxd +72 -0
  151. Cython/Includes/cpython/type.pxd +53 -0
  152. Cython/Includes/cpython/unicode.pxd +639 -0
  153. Cython/Includes/cpython/version.pxd +32 -0
  154. Cython/Includes/cpython/weakref.pxd +78 -0
  155. Cython/Includes/libc/__init__.pxd +1 -0
  156. Cython/Includes/libc/complex.pxd +35 -0
  157. Cython/Includes/libc/errno.pxd +127 -0
  158. Cython/Includes/libc/float.pxd +43 -0
  159. Cython/Includes/libc/limits.pxd +28 -0
  160. Cython/Includes/libc/locale.pxd +46 -0
  161. Cython/Includes/libc/math.pxd +209 -0
  162. Cython/Includes/libc/setjmp.pxd +10 -0
  163. Cython/Includes/libc/signal.pxd +64 -0
  164. Cython/Includes/libc/stddef.pxd +9 -0
  165. Cython/Includes/libc/stdint.pxd +105 -0
  166. Cython/Includes/libc/stdio.pxd +80 -0
  167. Cython/Includes/libc/stdlib.pxd +72 -0
  168. Cython/Includes/libc/string.pxd +50 -0
  169. Cython/Includes/libc/threads.pxd +84 -0
  170. Cython/Includes/libc/time.pxd +51 -0
  171. Cython/Includes/libcpp/__init__.pxd +4 -0
  172. Cython/Includes/libcpp/algorithm.pxd +320 -0
  173. Cython/Includes/libcpp/any.pxd +16 -0
  174. Cython/Includes/libcpp/atomic.pxd +59 -0
  175. Cython/Includes/libcpp/barrier.pxd +22 -0
  176. Cython/Includes/libcpp/bit.pxd +29 -0
  177. Cython/Includes/libcpp/cast.pxd +12 -0
  178. Cython/Includes/libcpp/cmath.pxd +518 -0
  179. Cython/Includes/libcpp/complex.pxd +106 -0
  180. Cython/Includes/libcpp/deque.pxd +165 -0
  181. Cython/Includes/libcpp/exception.pxd +86 -0
  182. Cython/Includes/libcpp/execution.pxd +15 -0
  183. Cython/Includes/libcpp/forward_list.pxd +63 -0
  184. Cython/Includes/libcpp/functional.pxd +26 -0
  185. Cython/Includes/libcpp/future.pxd +103 -0
  186. Cython/Includes/libcpp/iterator.pxd +34 -0
  187. Cython/Includes/libcpp/latch.pxd +17 -0
  188. Cython/Includes/libcpp/limits.pxd +61 -0
  189. Cython/Includes/libcpp/list.pxd +117 -0
  190. Cython/Includes/libcpp/map.pxd +252 -0
  191. Cython/Includes/libcpp/memory.pxd +115 -0
  192. Cython/Includes/libcpp/mutex.pxd +130 -0
  193. Cython/Includes/libcpp/numbers.pxd +15 -0
  194. Cython/Includes/libcpp/numeric.pxd +131 -0
  195. Cython/Includes/libcpp/optional.pxd +34 -0
  196. Cython/Includes/libcpp/pair.pxd +1 -0
  197. Cython/Includes/libcpp/queue.pxd +25 -0
  198. Cython/Includes/libcpp/random.pxd +166 -0
  199. Cython/Includes/libcpp/semaphore.pxd +44 -0
  200. Cython/Includes/libcpp/set.pxd +228 -0
  201. Cython/Includes/libcpp/shared_mutex.pxd +72 -0
  202. Cython/Includes/libcpp/span.pxd +87 -0
  203. Cython/Includes/libcpp/stack.pxd +11 -0
  204. Cython/Includes/libcpp/stop_token.pxd +105 -0
  205. Cython/Includes/libcpp/string.pxd +355 -0
  206. Cython/Includes/libcpp/string_view.pxd +181 -0
  207. Cython/Includes/libcpp/typeindex.pxd +15 -0
  208. Cython/Includes/libcpp/typeinfo.pxd +10 -0
  209. Cython/Includes/libcpp/unordered_map.pxd +193 -0
  210. Cython/Includes/libcpp/unordered_set.pxd +152 -0
  211. Cython/Includes/libcpp/utility.pxd +30 -0
  212. Cython/Includes/libcpp/vector.pxd +186 -0
  213. Cython/Includes/openmp.pxd +50 -0
  214. Cython/Includes/posix/__init__.pxd +1 -0
  215. Cython/Includes/posix/dlfcn.pxd +14 -0
  216. Cython/Includes/posix/fcntl.pxd +86 -0
  217. Cython/Includes/posix/ioctl.pxd +4 -0
  218. Cython/Includes/posix/mman.pxd +101 -0
  219. Cython/Includes/posix/resource.pxd +57 -0
  220. Cython/Includes/posix/select.pxd +21 -0
  221. Cython/Includes/posix/signal.pxd +73 -0
  222. Cython/Includes/posix/stat.pxd +98 -0
  223. Cython/Includes/posix/stdio.pxd +37 -0
  224. Cython/Includes/posix/stdlib.pxd +29 -0
  225. Cython/Includes/posix/strings.pxd +9 -0
  226. Cython/Includes/posix/time.pxd +71 -0
  227. Cython/Includes/posix/types.pxd +30 -0
  228. Cython/Includes/posix/uio.pxd +26 -0
  229. Cython/Includes/posix/unistd.pxd +271 -0
  230. Cython/Includes/posix/wait.pxd +38 -0
  231. Cython/Plex/Actions.pxd +24 -0
  232. Cython/Plex/Actions.py +119 -0
  233. Cython/Plex/DFA.pxd +14 -0
  234. Cython/Plex/DFA.py +164 -0
  235. Cython/Plex/Errors.py +48 -0
  236. Cython/Plex/Lexicons.py +178 -0
  237. Cython/Plex/Machines.pxd +36 -0
  238. Cython/Plex/Machines.py +238 -0
  239. Cython/Plex/Regexps.py +539 -0
  240. Cython/Plex/Scanners.pxd +47 -0
  241. Cython/Plex/Scanners.py +360 -0
  242. Cython/Plex/Transitions.pxd +14 -0
  243. Cython/Plex/Transitions.py +239 -0
  244. Cython/Plex/__init__.py +34 -0
  245. Cython/Runtime/__init__.py +1 -0
  246. Cython/Runtime/refnanny.pyx +237 -0
  247. Cython/Shadow.py +690 -0
  248. Cython/Shadow.pyi +521 -0
  249. Cython/StringIOTree.py +170 -0
  250. Cython/Tempita/__init__.py +4 -0
  251. Cython/Tempita/_looper.py +154 -0
  252. Cython/Tempita/_tempita.py +1091 -0
  253. Cython/TestUtils.py +410 -0
  254. Cython/Tests/TestCodeWriter.py +128 -0
  255. Cython/Tests/TestCythonUtils.py +202 -0
  256. Cython/Tests/TestJediTyper.py +223 -0
  257. Cython/Tests/TestShadow.py +114 -0
  258. Cython/Tests/TestStringIOTree.py +67 -0
  259. Cython/Tests/TestTestUtils.py +90 -0
  260. Cython/Tests/__init__.py +1 -0
  261. Cython/Tests/xmlrunner.py +390 -0
  262. Cython/Utility/AsyncGen.c +1002 -0
  263. Cython/Utility/Buffer.c +875 -0
  264. Cython/Utility/BufferFormatFromTypeInfo.pxd +2 -0
  265. Cython/Utility/Builtins.c +776 -0
  266. Cython/Utility/CConvert.pyx +134 -0
  267. Cython/Utility/CMath.c +104 -0
  268. Cython/Utility/CommonStructures.c +118 -0
  269. Cython/Utility/Complex.c +378 -0
  270. Cython/Utility/Coroutine.c +2206 -0
  271. Cython/Utility/CpdefEnums.pyx +103 -0
  272. Cython/Utility/CppConvert.pyx +279 -0
  273. Cython/Utility/CppSupport.cpp +143 -0
  274. Cython/Utility/CythonFunction.c +1794 -0
  275. Cython/Utility/Dataclasses.c +185 -0
  276. Cython/Utility/Dataclasses.py +112 -0
  277. Cython/Utility/Embed.c +125 -0
  278. Cython/Utility/Exceptions.c +1012 -0
  279. Cython/Utility/ExtensionTypes.c +809 -0
  280. Cython/Utility/FunctionArguments.c +965 -0
  281. Cython/Utility/ImportExport.c +987 -0
  282. Cython/Utility/Lock.c +136 -0
  283. Cython/Utility/MemoryView.pxd +187 -0
  284. Cython/Utility/MemoryView.pyx +1481 -0
  285. Cython/Utility/MemoryView_C.c +1046 -0
  286. Cython/Utility/ModuleSetupCode.c +3059 -0
  287. Cython/Utility/NumpyImportArray.c +46 -0
  288. Cython/Utility/ObjectHandling.c +3342 -0
  289. Cython/Utility/Optimize.c +1589 -0
  290. Cython/Utility/Overflow.c +404 -0
  291. Cython/Utility/Printing.c +86 -0
  292. Cython/Utility/Profile.c +709 -0
  293. Cython/Utility/StringTools.c +1259 -0
  294. Cython/Utility/TestCyUtilityLoader.pyx +8 -0
  295. Cython/Utility/TestCythonScope.pyx +75 -0
  296. Cython/Utility/TestUtilityLoader.c +12 -0
  297. Cython/Utility/TypeConversion.c +1284 -0
  298. Cython/Utility/UFuncs.pyx +50 -0
  299. Cython/Utility/UFuncs_C.c +89 -0
  300. Cython/Utility/__init__.py +28 -0
  301. Cython/Utility/arrayarray.h +148 -0
  302. Cython/Utils.py +687 -0
  303. Cython/__init__.py +10 -0
  304. Cython/__init__.pyi +7 -0
  305. Cython/py.typed +0 -0
  306. cython-3.1.0.dist-info/COPYING.txt +19 -0
  307. cython-3.1.0.dist-info/LICENSE.txt +176 -0
  308. cython-3.1.0.dist-info/METADATA +636 -0
  309. cython-3.1.0.dist-info/RECORD +316 -0
  310. cython-3.1.0.dist-info/WHEEL +5 -0
  311. cython-3.1.0.dist-info/entry_points.txt +4 -0
  312. cython-3.1.0.dist-info/top_level.txt +3 -0
  313. cython.py +29 -0
  314. pyximport/__init__.py +4 -0
  315. pyximport/pyxbuild.py +160 -0
  316. pyximport/pyximport.py +482 -0
@@ -0,0 +1,165 @@
1
+ cdef extern from "<deque>" namespace "std" nogil:
2
+ cdef cppclass deque[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
+ iterator operator+(size_type)
22
+ iterator operator-(size_type)
23
+ difference_type operator-(iterator)
24
+ difference_type operator-(const_iterator)
25
+ bint operator==(iterator)
26
+ bint operator==(const_iterator)
27
+ bint operator!=(iterator)
28
+ bint operator!=(const_iterator)
29
+ bint operator<(iterator)
30
+ bint operator<(const_iterator)
31
+ bint operator>(iterator)
32
+ bint operator>(const_iterator)
33
+ bint operator<=(iterator)
34
+ bint operator<=(const_iterator)
35
+ bint operator>=(iterator)
36
+ bint operator>=(const_iterator)
37
+ cppclass const_iterator:
38
+ const_iterator() except +
39
+ const_iterator(iterator&) except +
40
+ const_iterator(const_iterator&) except +
41
+ operator=(iterator&) except +
42
+ const value_type& operator*()
43
+ const_iterator operator++()
44
+ const_iterator operator--()
45
+ const_iterator operator++(int)
46
+ const_iterator operator--(int)
47
+ const_iterator operator+(size_type)
48
+ const_iterator operator-(size_type)
49
+ difference_type operator-(iterator)
50
+ difference_type operator-(const_iterator)
51
+ bint operator==(iterator)
52
+ bint operator==(const_iterator)
53
+ bint operator!=(iterator)
54
+ bint operator!=(const_iterator)
55
+ bint operator<(iterator)
56
+ bint operator<(const_iterator)
57
+ bint operator>(iterator)
58
+ bint operator>(const_iterator)
59
+ bint operator<=(iterator)
60
+ bint operator<=(const_iterator)
61
+ bint operator>=(iterator)
62
+ bint operator>=(const_iterator)
63
+
64
+ cppclass const_reverse_iterator
65
+ cppclass reverse_iterator:
66
+ reverse_iterator() except +
67
+ reverse_iterator(reverse_iterator&) except +
68
+ value_type& operator*()
69
+ reverse_iterator operator++()
70
+ reverse_iterator operator--()
71
+ reverse_iterator operator++(int)
72
+ reverse_iterator operator--(int)
73
+ reverse_iterator operator+(size_type)
74
+ reverse_iterator operator-(size_type)
75
+ difference_type operator-(iterator)
76
+ difference_type operator-(const_iterator)
77
+ bint operator==(reverse_iterator)
78
+ bint operator==(const_reverse_iterator)
79
+ bint operator!=(reverse_iterator)
80
+ bint operator!=(const_reverse_iterator)
81
+ bint operator<(reverse_iterator)
82
+ bint operator<(const_reverse_iterator)
83
+ bint operator>(reverse_iterator)
84
+ bint operator>(const_reverse_iterator)
85
+ bint operator<=(reverse_iterator)
86
+ bint operator<=(const_reverse_iterator)
87
+ bint operator>=(reverse_iterator)
88
+ bint operator>=(const_reverse_iterator)
89
+ cppclass const_reverse_iterator:
90
+ const_reverse_iterator() except +
91
+ const_reverse_iterator(reverse_iterator&) except +
92
+ operator=(reverse_iterator&) except +
93
+ const value_type& operator*()
94
+ const_reverse_iterator operator++()
95
+ const_reverse_iterator operator--()
96
+ const_reverse_iterator operator++(int)
97
+ const_reverse_iterator operator--(int)
98
+ const_reverse_iterator operator+(size_type)
99
+ const_reverse_iterator operator-(size_type)
100
+ difference_type operator-(iterator)
101
+ difference_type operator-(const_iterator)
102
+ bint operator==(reverse_iterator)
103
+ bint operator==(const_reverse_iterator)
104
+ bint operator!=(reverse_iterator)
105
+ bint operator!=(const_reverse_iterator)
106
+ bint operator<(reverse_iterator)
107
+ bint operator<(const_reverse_iterator)
108
+ bint operator>(reverse_iterator)
109
+ bint operator>(const_reverse_iterator)
110
+ bint operator<=(reverse_iterator)
111
+ bint operator<=(const_reverse_iterator)
112
+ bint operator>=(reverse_iterator)
113
+ bint operator>=(const_reverse_iterator)
114
+
115
+ deque() except +
116
+ deque(deque&) except +
117
+ deque(size_t) except +
118
+ deque(size_t, T&) except +
119
+ #deque[InputIt](InputIt, InputIt)
120
+ T& operator[](size_t)
121
+ #deque& operator=(deque&)
122
+ bint operator==(deque&, deque&)
123
+ bint operator!=(deque&, deque&)
124
+ bint operator<(deque&, deque&)
125
+ bint operator>(deque&, deque&)
126
+ bint operator<=(deque&, deque&)
127
+ bint operator>=(deque&, deque&)
128
+ void assign(size_t, T&) except +
129
+ void assign[InputIt](InputIt, InputIt) except +
130
+ T& at(size_t) except +
131
+ T& back()
132
+ iterator begin()
133
+ const_iterator const_begin "begin"()
134
+ const_iterator cbegin()
135
+ void clear()
136
+ bint empty()
137
+ iterator end()
138
+ const_iterator const_end "end"()
139
+ const_iterator cend()
140
+ iterator erase(iterator) except +
141
+ iterator erase(iterator, iterator) except +
142
+ T& front()
143
+ iterator insert(iterator, T&) except +
144
+ void insert(iterator, size_t, T&) except +
145
+ void insert[InputIt](iterator, InputIt, InputIt) except +
146
+ size_t max_size()
147
+ void pop_back()
148
+ void pop_front()
149
+ void push_back(T&) except +
150
+ void push_front(T&) except +
151
+ reverse_iterator rbegin()
152
+ #const_reverse_iterator rbegin()
153
+ const_reverse_iterator crbegin()
154
+ reverse_iterator rend()
155
+ #const_reverse_iterator rend()
156
+ const_reverse_iterator crend()
157
+ void resize(size_t) except +
158
+ void resize(size_t, T&) except +
159
+ size_t size()
160
+ void swap(deque&)
161
+
162
+ # C++11 methods
163
+ void shrink_to_fit() except +
164
+ T& emplace_front(...) except +
165
+ T& emplace_back(...) except +
@@ -0,0 +1,86 @@
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
+ # current_exception skipped because it'll be almost impossible to use from Cython
10
+
11
+ cdef extern from *:
12
+ """
13
+ static void __Pyx_CppExn2PyErr(void);
14
+
15
+ CYTHON_UNUSED static void __pyx_deallocate_exception_ptr_capsule(PyObject *c) {
16
+ std::exception_ptr *ptr = static_cast<std::exception_ptr*>(
17
+ PyCapsule_GetPointer(c, "std::exception_ptr wrapper"));
18
+ delete ptr;
19
+ PyErr_Clear();
20
+ }
21
+
22
+ CYTHON_UNUSED static void __pyx_to_exception_ptr() {
23
+ try {
24
+ __Pyx_CppExn2PyErr(); // First do regular exception conversion
25
+ throw;
26
+ } catch (...) {
27
+ PyObject *type, *value, *tb;
28
+ PyErr_Fetch(&type, &value, &tb);
29
+ Py_XDECREF(value);
30
+ Py_XDECREF(tb);
31
+ std::exception_ptr *current = new std::exception_ptr(std::current_exception());
32
+ PyObject *capsule = PyCapsule_New(
33
+ static_cast<void*>(current),
34
+ "std::exception_ptr wrapper",
35
+ &__pyx_deallocate_exception_ptr_capsule);
36
+ if (!capsule)
37
+ delete current; // otherwise it'll be leaked
38
+ else
39
+ PyErr_SetObject(type ? type : PyExc_Exception, capsule);
40
+ Py_DECREF(type);
41
+ }
42
+ }
43
+
44
+ CYTHON_UNUSED static std::exception_ptr __pyx_wrapped_exception_ptr_from_exception(PyObject *e) {
45
+ PyObject *args = NULL, *arg0 = NULL;
46
+ std::exception_ptr result;
47
+ Py_ssize_t size;
48
+ #if __PYX_LIMITED_VERSION_HEX < 0x030C0000
49
+ args = PyObject_GetAttrString(e, "args");
50
+ #else
51
+ args = PyException_GetArgs(e);
52
+ #endif
53
+ if (!args)
54
+ goto done;
55
+ size = PyTuple_Size(args);
56
+ if (size != 1) {
57
+ if (size != -1)
58
+ PyErr_SetString(PyExc_ValueError, "exception args were not the expected length of 1");
59
+ goto done;
60
+ }
61
+ arg0 = PyTuple_GetItem(args, 0);
62
+ if (!arg0)
63
+ goto done;
64
+ {
65
+ std::exception_ptr* wrapped = static_cast<std::exception_ptr*>(
66
+ PyCapsule_GetPointer(arg0, "std::exception_ptr wrapper"));
67
+ if (!wrapped) {
68
+ goto done;
69
+ }
70
+ result = *wrapped;
71
+ }
72
+
73
+ done:
74
+ Py_XDECREF(args);
75
+ return result;
76
+ }
77
+ """
78
+ # This can be used as `except +exception_ptr_error_handler`.
79
+ # It raises a generic Exception, with a wrapped exception_ptr as its value.
80
+ void exception_ptr_error_handler "__pyx_to_exception_ptr"() except *
81
+ # Extract the exception_ptr from a caught exception
82
+ exception_ptr wrapped_exception_ptr_from_exception "__pyx_wrapped_exception_ptr_from_exception"(e) except *
83
+
84
+ # Dummy inline function to force __Pyx_CppExn2PyErr to be included for utility code above
85
+ cdef inline void __pyx_call_rethrow_exception "__pyx_call_rethrow_exception"(exception_ptr e) except*:
86
+ rethrow_exception(e)
@@ -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