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,181 @@
1
+ from libcpp.string cimport string
2
+
3
+ cdef extern from "<string_view>" namespace "std::string_view" nogil:
4
+ const size_t npos
5
+
6
+ cdef extern from "<string_view>" namespace "std" nogil:
7
+
8
+ cdef cppclass string_view:
9
+ ctypedef char value_type
10
+ ctypedef size_t size_type
11
+ ctypedef ptrdiff_t difference_type
12
+
13
+ bint operator==(string_view)
14
+ bint operator!= (string_view)
15
+ bint operator< (string_view)
16
+ bint operator> (string_view)
17
+ bint operator<= (string_view)
18
+ bint operator>= (string_view)
19
+
20
+ cppclass const_iterator:
21
+ const_iterator()
22
+ const_iterator(const_iterator&)
23
+ operator=(const_iterator&)
24
+ const value_type& operator*()
25
+ const_iterator operator++()
26
+ const_iterator operator--()
27
+ const_iterator operator++(int)
28
+ const_iterator operator--(int)
29
+ const_iterator operator+(size_type)
30
+ const_iterator operator-(size_type)
31
+ difference_type operator-(const_iterator)
32
+ bint operator==(const_iterator)
33
+ bint operator!=(const_iterator)
34
+ bint operator<(const_iterator)
35
+ bint operator>(const_iterator)
36
+ bint operator<=(const_iterator)
37
+ bint operator>=(const_iterator)
38
+
39
+ ctypedef const_iterator iterator
40
+
41
+ cppclass const_reverse_iterator:
42
+ const_reverse_iterator()
43
+ const_reverse_iterator(const_reverse_iterator&)
44
+ operator=(const_reverse_iterator&)
45
+ const value_type& operator*()
46
+ const_reverse_iterator operator++()
47
+ const_reverse_iterator operator--()
48
+ const_reverse_iterator operator++(int)
49
+ const_reverse_iterator operator--(int)
50
+ const_reverse_iterator operator+(size_type)
51
+ const_reverse_iterator operator-(size_type)
52
+ difference_type operator-(const_reverse_iterator)
53
+ bint operator==(const_reverse_iterator)
54
+ bint operator!=(const_reverse_iterator)
55
+ bint operator<(const_reverse_iterator)
56
+ bint operator>(const_reverse_iterator)
57
+ bint operator<=(const_reverse_iterator)
58
+ bint operator>=(const_reverse_iterator)
59
+
60
+ ctypedef const_reverse_iterator reverse_iterator
61
+
62
+ # Constructors
63
+ string_view() # (1)
64
+ string_view(string_view s) # (2)
65
+ string_view(const char* s, size_t n) # (3)
66
+ string_view(const char* s) # (4)
67
+ string_view& string_view[InputIt](InputIt, InputIt) # (5)
68
+
69
+ # This should be `operator string_view()` on std::string, but
70
+ # Cython doesn't yet allow declaring it.
71
+ string_view(const string&)
72
+
73
+ # Assignment
74
+ string_view& operator=(string_view)
75
+
76
+ # Iterators
77
+ const_iterator begin()
78
+ const_iterator end()
79
+ const_iterator cbegin()
80
+ const_iterator cend()
81
+
82
+ const_reverse_iterator rbegin()
83
+ const_reverse_iterator rend()
84
+ const_reverse_iterator crbegin()
85
+ const_reverse_iterator crend()
86
+
87
+ # Capacity
88
+ size_t size()
89
+ size_t length()
90
+ size_t max_size()
91
+ bint empty()
92
+
93
+ # Element access
94
+ const char& operator[](size_t pos)
95
+ const char& at(size_t pos) except +
96
+ const char& front()
97
+ const char& back()
98
+
99
+ const char* data()
100
+
101
+ # Modifiers
102
+ void remove_prefix(size_t n)
103
+ void remove_suffix(size_t n)
104
+ void swap(string_view& other)
105
+
106
+ # Operations
107
+ size_t copy(char* dest, size_t count, size_t pos)
108
+ size_t copy(char* dest, size_t count)
109
+
110
+ size_t find(string_view s, size_t pos)
111
+ size_t find(string_view s)
112
+ size_t find(const char* s, size_t pos, size_t n)
113
+ size_t find(const char* s, size_t pos)
114
+ size_t find(const char* s)
115
+ size_t find(char c, size_t pos)
116
+ size_t find(char c)
117
+
118
+ size_t rfind(string_view, size_t pos)
119
+ size_t rfind(string_view)
120
+ size_t rfind(const char* s, size_t pos, size_t n)
121
+ size_t rfind(const char* s, size_t pos)
122
+ size_t rfind(const char* s)
123
+ size_t rfind(char c, size_t pos)
124
+ size_t rfind(char c)
125
+
126
+ size_t find_first_of(string_view, size_t pos)
127
+ size_t find_first_of(string_view)
128
+ size_t find_first_of(const char* s, size_t pos, size_t n)
129
+ size_t find_first_of(const char* s, size_t pos)
130
+ size_t find_first_of(const char* s)
131
+ size_t find_first_of(char c, size_t pos)
132
+ size_t find_first_of(char c)
133
+
134
+ size_t find_first_not_of(string_view s, size_t pos)
135
+ size_t find_first_not_of(string_view s)
136
+ size_t find_first_not_of(const char* s, size_t pos, size_t n)
137
+ size_t find_first_not_of(const char* s, size_t pos)
138
+ size_t find_first_not_of(const char*)
139
+ size_t find_first_not_of(char c, size_t pos)
140
+ size_t find_first_not_of(char c)
141
+
142
+ size_t find_last_of(string_view s, size_t pos)
143
+ size_t find_last_of(string_view s)
144
+ size_t find_last_of(const char* s, size_t pos, size_t n)
145
+ size_t find_last_of(const char* s, size_t pos)
146
+ size_t find_last_of(const char* s)
147
+ size_t find_last_of(char c, size_t pos)
148
+ size_t find_last_of(char c)
149
+
150
+ size_t find_last_not_of(string_view s, size_t pos)
151
+ size_t find_last_not_of(string_view s)
152
+ size_t find_last_not_of(const char* s, size_t pos, size_t n)
153
+ size_t find_last_not_of(const char* s, size_t pos)
154
+ size_t find_last_not_of(const char* s)
155
+ size_t find_last_not_of(char c, size_t pos)
156
+ size_t find_last_not_of(char c)
157
+
158
+ string_view substr(size_t pos, size_t len) except +
159
+ string_view substr(size_t pos) except +
160
+ string_view substr()
161
+
162
+ int compare(string_view s)
163
+ int compare(size_t pos, size_t len, string_view s)
164
+ int compare(size_t pos, size_t len, string_view s, size_t subpos, size_t sublen)
165
+ int compare(const char* s)
166
+ int compare(size_t pos, size_t len, const char* s)
167
+ int compare(size_t pos, size_t len, const char* s , size_t n)
168
+
169
+ # C++20
170
+ bint starts_with(string_view s)
171
+ bint starts_with(char c)
172
+ bint starts_with(const char* s)
173
+
174
+ bint ends_with(string_view s)
175
+ bint ends_with(char c)
176
+ bint ends_with(const char* s)
177
+
178
+ # C++23
179
+ bint contains(string_view s)
180
+ bint contains(char c)
181
+ bint contains(const char* s)
@@ -0,0 +1,15 @@
1
+ from libcpp cimport bool
2
+ from .typeinfo cimport type_info
3
+
4
+ # This class is C++11-only
5
+ cdef extern from "<typeindex>" namespace "std" nogil:
6
+ cdef cppclass type_index:
7
+ type_index(const type_info &)
8
+ const char* name()
9
+ size_t hash_code()
10
+ bool operator==(const type_index &)
11
+ bool operator!=(const type_index &)
12
+ bool operator<(const type_index &)
13
+ bool operator<=(const type_index &)
14
+ bool operator>(const type_index &)
15
+ bool operator>=(const type_index &)
@@ -0,0 +1,10 @@
1
+ from libcpp cimport bool
2
+
3
+ cdef extern from "<typeinfo>" namespace "std" nogil:
4
+ cdef cppclass type_info:
5
+ const char* name()
6
+ int before(const type_info&)
7
+ bool operator==(const type_info&)
8
+ bool operator!=(const type_info&)
9
+ # C++11-only
10
+ size_t hash_code()
@@ -0,0 +1,193 @@
1
+ from .utility cimport pair
2
+
3
+ cdef extern from "<unordered_map>" namespace "std" nogil:
4
+ cdef cppclass unordered_map[T, U, HASH=*, PRED=*, ALLOCATOR=*]:
5
+ ctypedef T key_type
6
+ ctypedef U mapped_type
7
+ ctypedef pair[const T, U] value_type
8
+ ctypedef ALLOCATOR allocator_type
9
+
10
+ # these should really be allocator_type.size_type and
11
+ # allocator_type.difference_type to be true to the C++ definition
12
+ # but cython doesn't support deferred access on template arguments
13
+ ctypedef size_t size_type
14
+ ctypedef ptrdiff_t difference_type
15
+
16
+ cppclass iterator
17
+ cppclass iterator:
18
+ iterator() except +
19
+ iterator(iterator&) except +
20
+ # correct would be value_type& but this does not work
21
+ # well with cython's code gen
22
+ pair[T, U]& operator*()
23
+ iterator operator++()
24
+ iterator operator--()
25
+ iterator operator++(int)
26
+ iterator operator--(int)
27
+ bint operator==(iterator)
28
+ bint operator==(const_iterator)
29
+ bint operator!=(iterator)
30
+ bint operator!=(const_iterator)
31
+ cppclass const_iterator:
32
+ const_iterator() except +
33
+ const_iterator(iterator&) except +
34
+ operator=(iterator&) except +
35
+ # correct would be const value_type& but this does not work
36
+ # well with cython's code gen
37
+ const pair[T, U]& operator*()
38
+ const_iterator operator++()
39
+ const_iterator operator--()
40
+ const_iterator operator++(int)
41
+ const_iterator operator--(int)
42
+ bint operator==(iterator)
43
+ bint operator==(const_iterator)
44
+ bint operator!=(iterator)
45
+ bint operator!=(const_iterator)
46
+
47
+ unordered_map() except +
48
+ unordered_map(unordered_map&) except +
49
+ #unordered_map(key_compare&)
50
+ U& operator[](const T&)
51
+ #unordered_map& operator=(unordered_map&)
52
+ bint operator==(unordered_map&, unordered_map&)
53
+ bint operator!=(unordered_map&, unordered_map&)
54
+ bint operator<(unordered_map&, unordered_map&)
55
+ bint operator>(unordered_map&, unordered_map&)
56
+ bint operator<=(unordered_map&, unordered_map&)
57
+ bint operator>=(unordered_map&, unordered_map&)
58
+ U& at(const T&) except +
59
+ const U& const_at "at"(const T&) except +
60
+ iterator begin()
61
+ const_iterator const_begin "begin"()
62
+ const_iterator cbegin()
63
+ void clear()
64
+ size_t count(const T&)
65
+ bint empty()
66
+ iterator end()
67
+ const_iterator const_end "end"()
68
+ const_iterator cend()
69
+ pair[iterator, iterator] equal_range(const T&)
70
+ pair[const_iterator, const_iterator] const_equal_range "equal_range"(const T&)
71
+ iterator erase(iterator)
72
+ iterator const_erase "erase"(const_iterator)
73
+ iterator erase(const_iterator, const_iterator)
74
+ size_t erase(const T&)
75
+ iterator find(const T&)
76
+ const_iterator const_find "find"(const T&)
77
+ pair[iterator, bint] insert(const pair[T, U]&) except +
78
+ iterator insert(const_iterator, const pair[T, U]&) except +
79
+ void insert[InputIt](InputIt, InputIt) except +
80
+ #key_compare key_comp()
81
+ iterator lower_bound(const T&)
82
+ const_iterator const_lower_bound "lower_bound"(const T&)
83
+ size_t max_size()
84
+ size_t size()
85
+ void swap(unordered_map&)
86
+ iterator upper_bound(const T&)
87
+ const_iterator const_upper_bound "upper_bound"(const T&)
88
+ #value_compare value_comp()
89
+ void max_load_factor(float)
90
+ float max_load_factor()
91
+ float load_factor()
92
+ void rehash(size_t)
93
+ void reserve(size_t)
94
+ size_t bucket_count()
95
+ size_t max_bucket_count()
96
+ size_t bucket_size(size_t)
97
+ size_t bucket(const T&)
98
+ # C++20
99
+ bint contains(const T&)
100
+
101
+ cdef cppclass unordered_multimap[T, U, HASH=*, PRED=*, ALLOCATOR=*]:
102
+ ctypedef T key_type
103
+ ctypedef U mapped_type
104
+ ctypedef pair[const T, U] value_type
105
+ ctypedef ALLOCATOR allocator_type
106
+
107
+ # these should really be allocator_type.size_type and
108
+ # allocator_type.difference_type to be true to the C++ definition
109
+ # but cython doesn't support deferred access on template arguments
110
+ ctypedef size_t size_type
111
+ ctypedef ptrdiff_t difference_type
112
+
113
+ cppclass const_iterator
114
+ cppclass iterator:
115
+ iterator() except +
116
+ iterator(iterator&) except +
117
+ # correct would be value_type& but this does not work
118
+ # well with cython's code gen
119
+ pair[T, U]& operator*()
120
+ iterator operator++()
121
+ iterator operator++(int)
122
+ bint operator==(iterator)
123
+ bint operator==(const_iterator)
124
+ bint operator!=(iterator)
125
+ bint operator!=(const_iterator)
126
+ cppclass const_iterator:
127
+ const_iterator() except +
128
+ const_iterator(iterator&) except +
129
+ operator=(iterator&) except +
130
+ # correct would be const value_type& but this does not work
131
+ # well with cython's code gen
132
+ const pair[T, U]& operator*()
133
+ const_iterator operator++()
134
+ const_iterator operator++(int)
135
+ bint operator==(iterator)
136
+ bint operator==(const_iterator)
137
+ bint operator!=(iterator)
138
+ bint operator!=(const_iterator)
139
+
140
+ unordered_multimap() except +
141
+ unordered_multimap(const unordered_multimap&) except +
142
+ #unordered_multimap(key_compare&)
143
+ #unordered_map& operator=(unordered_multimap&)
144
+ bint operator==(const unordered_multimap&, const unordered_multimap&)
145
+ bint operator!=(const unordered_multimap&, const unordered_multimap&)
146
+ bint operator<(const unordered_multimap&, const unordered_multimap&)
147
+ bint operator>(const unordered_multimap&, const unordered_multimap&)
148
+ bint operator<=(const unordered_multimap&, const unordered_multimap&)
149
+ bint operator>=(const unordered_multimap&, const unordered_multimap&)
150
+ iterator begin()
151
+ const_iterator const_begin "begin"()
152
+ const_iterator cbegin()
153
+ #local_iterator begin(size_t)
154
+ #const_local_iterator const_begin "begin"(size_t)
155
+ void clear()
156
+ size_t count(const T&)
157
+ bint empty()
158
+ iterator end()
159
+ const_iterator const_end "end"()
160
+ const_iterator cend()
161
+ #local_iterator end(size_t)
162
+ #const_local_iterator const_end "end"(size_t)
163
+ pair[iterator, iterator] equal_range(const T&)
164
+ pair[const_iterator, const_iterator] const_equal_range "equal_range"(const T&)
165
+ iterator erase(iterator)
166
+ iterator const_erase "erase"(const_iterator)
167
+ iterator erase(const_iterator, const_iterator)
168
+ size_t erase(const T&)
169
+ iterator find(const T&)
170
+ const_iterator const_find "find"(const T&)
171
+ iterator insert(const pair[T, U]&) except +
172
+ iterator insert(const_iterator, const pair[T, U]&) except +
173
+ void insert[InputIt](InputIt, InputIt) except +
174
+ #key_compare key_comp()
175
+ iterator lower_bound(const T&)
176
+ const_iterator const_lower_bound "lower_bound"(const T&)
177
+ size_t max_size()
178
+ size_t size()
179
+ void swap(unordered_multimap&)
180
+ iterator upper_bound(const T&)
181
+ const_iterator const_upper_bound "upper_bound"(const T&)
182
+ #value_compare value_comp()
183
+ void max_load_factor(float)
184
+ float max_load_factor()
185
+ float load_factor()
186
+ void rehash(size_t)
187
+ void reserve(size_t)
188
+ size_t bucket_count()
189
+ size_t max_bucket_count()
190
+ size_t bucket_size(size_t)
191
+ size_t bucket(const T&)
192
+ # C++20
193
+ bint contains(const T&)
@@ -0,0 +1,152 @@
1
+ from .utility cimport pair
2
+
3
+ cdef extern from "<unordered_set>" namespace "std" nogil:
4
+ cdef cppclass unordered_set[T,HASH=*,PRED=*,ALLOCATOR=*]:
5
+ ctypedef T value_type
6
+
7
+ # these should really be allocator_type.size_type and
8
+ # allocator_type.difference_type to be true to the C++ definition
9
+ # but cython doesn't support deferred access on template arguments
10
+ ctypedef size_t size_type
11
+ ctypedef ptrdiff_t difference_type
12
+
13
+ cppclass const_iterator
14
+ cppclass iterator:
15
+ iterator() except +
16
+ iterator(iterator&) except +
17
+ value_type& operator*()
18
+ iterator operator++()
19
+ iterator operator--()
20
+ iterator operator++(int)
21
+ iterator operator--(int)
22
+ bint operator==(iterator)
23
+ bint operator==(const_iterator)
24
+ bint operator!=(iterator)
25
+ bint operator!=(const_iterator)
26
+ cppclass const_iterator:
27
+ const_iterator() except +
28
+ const_iterator(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
+ unordered_set() except +
41
+ unordered_set(unordered_set&) except +
42
+ #unordered_set& operator=(unordered_set&)
43
+ bint operator==(unordered_set&, unordered_set&)
44
+ bint operator!=(unordered_set&, unordered_set&)
45
+ iterator begin()
46
+ const_iterator const_begin "begin"()
47
+ const_iterator cbegin()
48
+ void clear()
49
+ size_t count(const T&)
50
+ bint empty()
51
+ iterator end()
52
+ const_iterator const_end "end"()
53
+ const_iterator cend()
54
+ pair[iterator, iterator] equal_range(const T&)
55
+ pair[const_iterator, const_iterator] const_equal_range "equal_range"(const T&)
56
+ iterator erase(iterator)
57
+ iterator const_erase "erase"(const_iterator)
58
+ iterator erase(const_iterator, const_iterator)
59
+ size_t erase(const T&)
60
+ iterator find(const T&)
61
+ const_iterator const_find "find"(const T&)
62
+ pair[iterator, bint] insert(const T&) except +
63
+ iterator insert(const_iterator, const T&) except +
64
+ void insert[InputIt](InputIt, InputIt) except +
65
+ size_t max_size()
66
+ size_t size()
67
+ void swap(unordered_set&)
68
+ #value_compare value_comp()
69
+ void max_load_factor(float)
70
+ float max_load_factor()
71
+ float load_factor()
72
+ void rehash(size_t)
73
+ void reserve(size_t)
74
+ size_t bucket_count()
75
+ size_t max_bucket_count()
76
+ size_t bucket_size(size_t)
77
+ size_t bucket(const T&)
78
+ # C++20
79
+ bint contains(const T&)
80
+
81
+ cdef cppclass unordered_multiset[T,HASH=*,PRED=*,ALLOCATOR=*]:
82
+ ctypedef T value_type
83
+
84
+ # these should really be allocator_type.size_type and
85
+ # allocator_type.difference_type to be true to the C++ definition
86
+ # but cython doesn't support deferred access on template arguments
87
+ ctypedef size_t size_type
88
+ ctypedef ptrdiff_t difference_type
89
+
90
+ cppclass const_iterator
91
+ cppclass iterator:
92
+ iterator() except +
93
+ iterator(iterator&) except +
94
+ value_type& operator*()
95
+ iterator operator++()
96
+ iterator operator++(int)
97
+ bint operator==(iterator)
98
+ bint operator==(const_iterator)
99
+ bint operator!=(iterator)
100
+ bint operator!=(const_iterator)
101
+ cppclass const_iterator:
102
+ const_iterator() except +
103
+ const_iterator(iterator&) except +
104
+ operator=(iterator&) except +
105
+ const value_type& operator*()
106
+ const_iterator operator++()
107
+ const_iterator operator++(int)
108
+ bint operator==(iterator)
109
+ bint operator==(const_iterator)
110
+ bint operator!=(iterator)
111
+ bint operator!=(const_iterator)
112
+
113
+ unordered_multiset() except +
114
+ unordered_multiset(unordered_multiset&) except +
115
+ #unordered_multiset& operator=(unordered_multiset&)
116
+ bint operator==(unordered_multiset&, unordered_multiset&)
117
+ bint operator!=(unordered_multiset&, unordered_multiset&)
118
+ iterator begin()
119
+ const_iterator const_begin "begin"()
120
+ const_iterator cbegin()
121
+ void clear()
122
+ size_t count(const T&)
123
+ bint empty()
124
+ iterator end()
125
+ const_iterator const_end "end"()
126
+ const_iterator cend()
127
+ pair[iterator, iterator] equal_range(const T&)
128
+ pair[const_iterator, const_iterator] const_equal_range "equal_range"(const T&)
129
+ iterator erase(iterator)
130
+ iterator const_erase "erase"(const_iterator)
131
+ iterator erase(const_iterator, const_iterator)
132
+ size_t erase(const T&)
133
+ iterator find(const T&)
134
+ const_iterator const_find "find"(const T&)
135
+ iterator insert(const T&) except +
136
+ iterator insert(const_iterator, const T&) except +
137
+ void insert[InputIt](InputIt, InputIt) except +
138
+ size_t max_size()
139
+ size_t size()
140
+ void swap(unordered_multiset&)
141
+ #value_compare value_comp()
142
+ void max_load_factor(float)
143
+ float max_load_factor()
144
+ float load_factor()
145
+ void rehash(size_t)
146
+ void reserve(size_t)
147
+ size_t bucket_count()
148
+ size_t max_bucket_count()
149
+ size_t bucket_size(size_t)
150
+ size_t bucket(const T&)
151
+ # C++20
152
+ bint contains(const T&)
@@ -0,0 +1,30 @@
1
+ cdef extern from "<utility>" namespace "std" nogil:
2
+ cdef cppclass pair[T, U]:
3
+ ctypedef T first_type
4
+ ctypedef U second_type
5
+ T first
6
+ U second
7
+ pair() except +
8
+ pair(pair&) except +
9
+ pair(T&, U&) except +
10
+ bint operator==(pair&, pair&)
11
+ bint operator!=(pair&, pair&)
12
+ bint operator<(pair&, pair&)
13
+ bint operator>(pair&, pair&)
14
+ bint operator<=(pair&, pair&)
15
+ bint operator>=(pair&, pair&)
16
+
17
+ cdef extern from * namespace "cython_std" nogil:
18
+ """
19
+ #if __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1600)
20
+ // move should be defined for these versions of MSVC, but __cplusplus isn't set usefully
21
+ #include <type_traits>
22
+
23
+ namespace cython_std {
24
+ template <typename T> typename std::remove_reference<T>::type&& move(T& t) noexcept { return std::move(t); }
25
+ template <typename T> typename std::remove_reference<T>::type&& move(T&& t) noexcept { return std::move(t); }
26
+ }
27
+
28
+ #endif
29
+ """
30
+ cdef T move[T](T)