Cython 3.1.0a1__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 (301) hide show
  1. Cython/Build/BuildExecutable.py +169 -0
  2. Cython/Build/Cache.py +199 -0
  3. Cython/Build/Cythonize.py +250 -0
  4. Cython/Build/Dependencies.py +1275 -0
  5. Cython/Build/Distutils.py +1 -0
  6. Cython/Build/Inline.py +342 -0
  7. Cython/Build/IpythonMagic.py +560 -0
  8. Cython/Build/Tests/TestCyCache.py +119 -0
  9. Cython/Build/Tests/TestCythonizeArgsParser.py +481 -0
  10. Cython/Build/Tests/TestDependencies.py +133 -0
  11. Cython/Build/Tests/TestInline.py +112 -0
  12. Cython/Build/Tests/TestIpythonMagic.py +287 -0
  13. Cython/Build/Tests/TestRecythonize.py +212 -0
  14. Cython/Build/Tests/TestStripLiterals.py +155 -0
  15. Cython/Build/Tests/__init__.py +1 -0
  16. Cython/Build/__init__.py +8 -0
  17. Cython/CodeWriter.py +811 -0
  18. Cython/Compiler/AnalysedTreeTransforms.py +97 -0
  19. Cython/Compiler/Annotate.py +326 -0
  20. Cython/Compiler/AutoDocTransforms.py +314 -0
  21. Cython/Compiler/Buffer.py +680 -0
  22. Cython/Compiler/Builtin.py +862 -0
  23. Cython/Compiler/CmdLine.py +243 -0
  24. Cython/Compiler/Code.pxd +145 -0
  25. Cython/Compiler/Code.py +3328 -0
  26. Cython/Compiler/CodeGeneration.py +33 -0
  27. Cython/Compiler/CythonScope.py +179 -0
  28. Cython/Compiler/Dataclass.py +868 -0
  29. Cython/Compiler/DebugFlags.py +21 -0
  30. Cython/Compiler/Errors.py +295 -0
  31. Cython/Compiler/ExprNodes.py +15051 -0
  32. Cython/Compiler/FlowControl.pxd +97 -0
  33. Cython/Compiler/FlowControl.py +1438 -0
  34. Cython/Compiler/FusedNode.py +998 -0
  35. Cython/Compiler/Future.py +16 -0
  36. Cython/Compiler/Interpreter.py +57 -0
  37. Cython/Compiler/Lexicon.py +340 -0
  38. Cython/Compiler/LineTable.py +114 -0
  39. Cython/Compiler/Main.py +779 -0
  40. Cython/Compiler/MatchCaseNodes.py +259 -0
  41. Cython/Compiler/MemoryView.py +860 -0
  42. Cython/Compiler/ModuleNode.py +4065 -0
  43. Cython/Compiler/Naming.py +369 -0
  44. Cython/Compiler/Nodes.py +10557 -0
  45. Cython/Compiler/Optimize.py +5269 -0
  46. Cython/Compiler/Options.py +828 -0
  47. Cython/Compiler/ParseTreeTransforms.pxd +78 -0
  48. Cython/Compiler/ParseTreeTransforms.py +4441 -0
  49. Cython/Compiler/Parsing.pxd +9 -0
  50. Cython/Compiler/Parsing.py +4797 -0
  51. Cython/Compiler/Pipeline.py +425 -0
  52. Cython/Compiler/PyrexTypes.py +5572 -0
  53. Cython/Compiler/Pythran.py +223 -0
  54. Cython/Compiler/Scanning.pxd +40 -0
  55. Cython/Compiler/Scanning.py +574 -0
  56. Cython/Compiler/StringEncoding.py +347 -0
  57. Cython/Compiler/Symtab.py +2998 -0
  58. Cython/Compiler/Tests/TestBuffer.py +105 -0
  59. Cython/Compiler/Tests/TestBuiltin.py +72 -0
  60. Cython/Compiler/Tests/TestCmdLine.py +573 -0
  61. Cython/Compiler/Tests/TestCode.py +86 -0
  62. Cython/Compiler/Tests/TestFlowControl.py +65 -0
  63. Cython/Compiler/Tests/TestGrammar.py +202 -0
  64. Cython/Compiler/Tests/TestMemView.py +71 -0
  65. Cython/Compiler/Tests/TestParseTreeTransforms.py +285 -0
  66. Cython/Compiler/Tests/TestScanning.py +134 -0
  67. Cython/Compiler/Tests/TestSignatureMatching.py +73 -0
  68. Cython/Compiler/Tests/TestStringEncoding.py +33 -0
  69. Cython/Compiler/Tests/TestTreeFragment.py +63 -0
  70. Cython/Compiler/Tests/TestTreePath.py +93 -0
  71. Cython/Compiler/Tests/TestTypes.py +75 -0
  72. Cython/Compiler/Tests/TestUtilityLoad.py +112 -0
  73. Cython/Compiler/Tests/TestVisitor.py +61 -0
  74. Cython/Compiler/Tests/Utils.py +36 -0
  75. Cython/Compiler/Tests/__init__.py +1 -0
  76. Cython/Compiler/TreeFragment.py +278 -0
  77. Cython/Compiler/TreePath.py +290 -0
  78. Cython/Compiler/TypeInference.py +584 -0
  79. Cython/Compiler/TypeSlots.py +1181 -0
  80. Cython/Compiler/UFuncs.py +311 -0
  81. Cython/Compiler/UtilNodes.py +387 -0
  82. Cython/Compiler/UtilityCode.py +274 -0
  83. Cython/Compiler/Version.py +8 -0
  84. Cython/Compiler/Visitor.pxd +53 -0
  85. Cython/Compiler/Visitor.py +861 -0
  86. Cython/Compiler/__init__.py +1 -0
  87. Cython/Coverage.py +443 -0
  88. Cython/Debugger/Cygdb.py +179 -0
  89. Cython/Debugger/DebugWriter.py +82 -0
  90. Cython/Debugger/Tests/TestLibCython.py +275 -0
  91. Cython/Debugger/Tests/__init__.py +1 -0
  92. Cython/Debugger/Tests/cfuncs.c +8 -0
  93. Cython/Debugger/Tests/codefile +49 -0
  94. Cython/Debugger/Tests/test_libcython_in_gdb.py +578 -0
  95. Cython/Debugger/Tests/test_libpython_in_gdb.py +90 -0
  96. Cython/Debugger/__init__.py +1 -0
  97. Cython/Debugger/libcython.py +1549 -0
  98. Cython/Debugger/libpython.py +2821 -0
  99. Cython/Debugging.py +20 -0
  100. Cython/Distutils/__init__.py +2 -0
  101. Cython/Distutils/build_ext.py +137 -0
  102. Cython/Distutils/extension.py +96 -0
  103. Cython/Distutils/old_build_ext.py +351 -0
  104. Cython/Includes/cpython/__init__.pxd +173 -0
  105. Cython/Includes/cpython/array.pxd +174 -0
  106. Cython/Includes/cpython/bool.pxd +37 -0
  107. Cython/Includes/cpython/buffer.pxd +112 -0
  108. Cython/Includes/cpython/bytearray.pxd +33 -0
  109. Cython/Includes/cpython/bytes.pxd +200 -0
  110. Cython/Includes/cpython/cellobject.pxd +35 -0
  111. Cython/Includes/cpython/ceval.pxd +8 -0
  112. Cython/Includes/cpython/codecs.pxd +121 -0
  113. Cython/Includes/cpython/complex.pxd +55 -0
  114. Cython/Includes/cpython/contextvars.pxd +141 -0
  115. Cython/Includes/cpython/conversion.pxd +36 -0
  116. Cython/Includes/cpython/datetime.pxd +384 -0
  117. Cython/Includes/cpython/descr.pxd +26 -0
  118. Cython/Includes/cpython/dict.pxd +187 -0
  119. Cython/Includes/cpython/exc.pxd +263 -0
  120. Cython/Includes/cpython/fileobject.pxd +57 -0
  121. Cython/Includes/cpython/float.pxd +47 -0
  122. Cython/Includes/cpython/function.pxd +65 -0
  123. Cython/Includes/cpython/genobject.pxd +25 -0
  124. Cython/Includes/cpython/getargs.pxd +12 -0
  125. Cython/Includes/cpython/instance.pxd +25 -0
  126. Cython/Includes/cpython/iterator.pxd +36 -0
  127. Cython/Includes/cpython/iterobject.pxd +24 -0
  128. Cython/Includes/cpython/list.pxd +92 -0
  129. Cython/Includes/cpython/long.pxd +149 -0
  130. Cython/Includes/cpython/longintrepr.pxd +19 -0
  131. Cython/Includes/cpython/mapping.pxd +63 -0
  132. Cython/Includes/cpython/marshal.pxd +66 -0
  133. Cython/Includes/cpython/mem.pxd +120 -0
  134. Cython/Includes/cpython/memoryview.pxd +50 -0
  135. Cython/Includes/cpython/method.pxd +49 -0
  136. Cython/Includes/cpython/module.pxd +208 -0
  137. Cython/Includes/cpython/number.pxd +258 -0
  138. Cython/Includes/cpython/object.pxd +433 -0
  139. Cython/Includes/cpython/pycapsule.pxd +143 -0
  140. Cython/Includes/cpython/pylifecycle.pxd +68 -0
  141. Cython/Includes/cpython/pyport.pxd +8 -0
  142. Cython/Includes/cpython/pystate.pxd +95 -0
  143. Cython/Includes/cpython/pythread.pxd +53 -0
  144. Cython/Includes/cpython/ref.pxd +67 -0
  145. Cython/Includes/cpython/sequence.pxd +134 -0
  146. Cython/Includes/cpython/set.pxd +119 -0
  147. Cython/Includes/cpython/slice.pxd +70 -0
  148. Cython/Includes/cpython/time.pxd +129 -0
  149. Cython/Includes/cpython/tuple.pxd +72 -0
  150. Cython/Includes/cpython/type.pxd +53 -0
  151. Cython/Includes/cpython/unicode.pxd +639 -0
  152. Cython/Includes/cpython/version.pxd +32 -0
  153. Cython/Includes/cpython/weakref.pxd +42 -0
  154. Cython/Includes/libc/__init__.pxd +1 -0
  155. Cython/Includes/libc/complex.pxd +35 -0
  156. Cython/Includes/libc/errno.pxd +127 -0
  157. Cython/Includes/libc/float.pxd +43 -0
  158. Cython/Includes/libc/limits.pxd +28 -0
  159. Cython/Includes/libc/locale.pxd +46 -0
  160. Cython/Includes/libc/math.pxd +209 -0
  161. Cython/Includes/libc/setjmp.pxd +10 -0
  162. Cython/Includes/libc/signal.pxd +64 -0
  163. Cython/Includes/libc/stddef.pxd +9 -0
  164. Cython/Includes/libc/stdint.pxd +105 -0
  165. Cython/Includes/libc/stdio.pxd +80 -0
  166. Cython/Includes/libc/stdlib.pxd +72 -0
  167. Cython/Includes/libc/string.pxd +50 -0
  168. Cython/Includes/libc/time.pxd +47 -0
  169. Cython/Includes/libcpp/__init__.pxd +4 -0
  170. Cython/Includes/libcpp/algorithm.pxd +320 -0
  171. Cython/Includes/libcpp/any.pxd +16 -0
  172. Cython/Includes/libcpp/atomic.pxd +59 -0
  173. Cython/Includes/libcpp/bit.pxd +29 -0
  174. Cython/Includes/libcpp/cast.pxd +12 -0
  175. Cython/Includes/libcpp/cmath.pxd +518 -0
  176. Cython/Includes/libcpp/complex.pxd +106 -0
  177. Cython/Includes/libcpp/deque.pxd +165 -0
  178. Cython/Includes/libcpp/execution.pxd +15 -0
  179. Cython/Includes/libcpp/forward_list.pxd +63 -0
  180. Cython/Includes/libcpp/functional.pxd +26 -0
  181. Cython/Includes/libcpp/iterator.pxd +34 -0
  182. Cython/Includes/libcpp/limits.pxd +61 -0
  183. Cython/Includes/libcpp/list.pxd +117 -0
  184. Cython/Includes/libcpp/map.pxd +252 -0
  185. Cython/Includes/libcpp/memory.pxd +115 -0
  186. Cython/Includes/libcpp/numbers.pxd +15 -0
  187. Cython/Includes/libcpp/numeric.pxd +131 -0
  188. Cython/Includes/libcpp/optional.pxd +34 -0
  189. Cython/Includes/libcpp/pair.pxd +1 -0
  190. Cython/Includes/libcpp/queue.pxd +25 -0
  191. Cython/Includes/libcpp/random.pxd +166 -0
  192. Cython/Includes/libcpp/set.pxd +228 -0
  193. Cython/Includes/libcpp/stack.pxd +11 -0
  194. Cython/Includes/libcpp/string.pxd +333 -0
  195. Cython/Includes/libcpp/typeindex.pxd +15 -0
  196. Cython/Includes/libcpp/typeinfo.pxd +10 -0
  197. Cython/Includes/libcpp/unordered_map.pxd +193 -0
  198. Cython/Includes/libcpp/unordered_set.pxd +152 -0
  199. Cython/Includes/libcpp/utility.pxd +30 -0
  200. Cython/Includes/libcpp/vector.pxd +167 -0
  201. Cython/Includes/openmp.pxd +50 -0
  202. Cython/Includes/posix/__init__.pxd +1 -0
  203. Cython/Includes/posix/dlfcn.pxd +14 -0
  204. Cython/Includes/posix/fcntl.pxd +86 -0
  205. Cython/Includes/posix/ioctl.pxd +4 -0
  206. Cython/Includes/posix/mman.pxd +101 -0
  207. Cython/Includes/posix/resource.pxd +57 -0
  208. Cython/Includes/posix/select.pxd +21 -0
  209. Cython/Includes/posix/signal.pxd +73 -0
  210. Cython/Includes/posix/stat.pxd +98 -0
  211. Cython/Includes/posix/stdio.pxd +37 -0
  212. Cython/Includes/posix/stdlib.pxd +29 -0
  213. Cython/Includes/posix/strings.pxd +9 -0
  214. Cython/Includes/posix/time.pxd +71 -0
  215. Cython/Includes/posix/types.pxd +30 -0
  216. Cython/Includes/posix/uio.pxd +26 -0
  217. Cython/Includes/posix/unistd.pxd +271 -0
  218. Cython/Includes/posix/wait.pxd +38 -0
  219. Cython/Plex/Actions.pxd +24 -0
  220. Cython/Plex/Actions.py +119 -0
  221. Cython/Plex/DFA.pxd +14 -0
  222. Cython/Plex/DFA.py +164 -0
  223. Cython/Plex/Errors.py +48 -0
  224. Cython/Plex/Lexicons.py +178 -0
  225. Cython/Plex/Machines.pxd +36 -0
  226. Cython/Plex/Machines.py +238 -0
  227. Cython/Plex/Regexps.py +539 -0
  228. Cython/Plex/Scanners.pxd +47 -0
  229. Cython/Plex/Scanners.py +360 -0
  230. Cython/Plex/Transitions.pxd +14 -0
  231. Cython/Plex/Transitions.py +239 -0
  232. Cython/Plex/__init__.py +34 -0
  233. Cython/Runtime/__init__.py +1 -0
  234. Cython/Runtime/refnanny.pyx +261 -0
  235. Cython/Shadow.py +656 -0
  236. Cython/Shadow.pyi +521 -0
  237. Cython/StringIOTree.py +170 -0
  238. Cython/Tempita/__init__.py +4 -0
  239. Cython/Tempita/_looper.py +154 -0
  240. Cython/Tempita/_tempita.py +1091 -0
  241. Cython/TestUtils.py +417 -0
  242. Cython/Tests/TestCodeWriter.py +128 -0
  243. Cython/Tests/TestCythonUtils.py +202 -0
  244. Cython/Tests/TestJediTyper.py +223 -0
  245. Cython/Tests/TestShadow.py +114 -0
  246. Cython/Tests/TestStringIOTree.py +67 -0
  247. Cython/Tests/TestTestUtils.py +90 -0
  248. Cython/Tests/__init__.py +1 -0
  249. Cython/Tests/xmlrunner.py +390 -0
  250. Cython/Utility/AsyncGen.c +1263 -0
  251. Cython/Utility/Buffer.c +875 -0
  252. Cython/Utility/Builtins.c +660 -0
  253. Cython/Utility/CConvert.pyx +134 -0
  254. Cython/Utility/CMath.c +95 -0
  255. Cython/Utility/CommonStructures.c +139 -0
  256. Cython/Utility/Complex.c +378 -0
  257. Cython/Utility/Coroutine.c +2413 -0
  258. Cython/Utility/CpdefEnums.pyx +108 -0
  259. Cython/Utility/CppConvert.pyx +279 -0
  260. Cython/Utility/CppSupport.cpp +133 -0
  261. Cython/Utility/CythonFunction.c +1851 -0
  262. Cython/Utility/Dataclasses.c +185 -0
  263. Cython/Utility/Dataclasses.py +112 -0
  264. Cython/Utility/Embed.c +125 -0
  265. Cython/Utility/Exceptions.c +1017 -0
  266. Cython/Utility/ExtensionTypes.c +797 -0
  267. Cython/Utility/FunctionArguments.c +573 -0
  268. Cython/Utility/ImportExport.c +912 -0
  269. Cython/Utility/MemoryView.pyx +1478 -0
  270. Cython/Utility/MemoryView_C.c +992 -0
  271. Cython/Utility/ModuleSetupCode.c +2501 -0
  272. Cython/Utility/NumpyImportArray.c +46 -0
  273. Cython/Utility/ObjectHandling.c +3054 -0
  274. Cython/Utility/Optimize.c +1533 -0
  275. Cython/Utility/Overflow.c +404 -0
  276. Cython/Utility/Printing.c +86 -0
  277. Cython/Utility/Profile.c +660 -0
  278. Cython/Utility/StringTools.c +1206 -0
  279. Cython/Utility/TestCyUtilityLoader.pyx +8 -0
  280. Cython/Utility/TestCythonScope.pyx +75 -0
  281. Cython/Utility/TestUtilityLoader.c +12 -0
  282. Cython/Utility/TypeConversion.c +1329 -0
  283. Cython/Utility/UFuncs.pyx +50 -0
  284. Cython/Utility/UFuncs_C.c +89 -0
  285. Cython/Utility/__init__.py +28 -0
  286. Cython/Utility/arrayarray.h +143 -0
  287. Cython/Utils.py +687 -0
  288. Cython/__init__.py +10 -0
  289. Cython/__init__.pyi +7 -0
  290. Cython/py.typed +0 -0
  291. Cython-3.1.0a1.dist-info/COPYING.txt +19 -0
  292. Cython-3.1.0a1.dist-info/LICENSE.txt +176 -0
  293. Cython-3.1.0a1.dist-info/METADATA +67 -0
  294. Cython-3.1.0a1.dist-info/RECORD +301 -0
  295. Cython-3.1.0a1.dist-info/WHEEL +5 -0
  296. Cython-3.1.0a1.dist-info/entry_points.txt +4 -0
  297. Cython-3.1.0a1.dist-info/top_level.txt +3 -0
  298. cython.py +29 -0
  299. pyximport/__init__.py +4 -0
  300. pyximport/pyxbuild.py +160 -0
  301. pyximport/pyximport.py +482 -0
@@ -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)
@@ -0,0 +1,167 @@
1
+ cdef extern from "<vector>" namespace "std" nogil:
2
+ cdef cppclass vector[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
+ T& 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 T& 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
+ T& 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 T& 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
+ vector() except +
116
+ vector(vector&) except +
117
+ vector(size_type) except +
118
+ vector(size_type, T&) except +
119
+ #vector[InputIt](InputIt, InputIt)
120
+ T& operator[](size_type)
121
+ #vector& operator=(vector&)
122
+ bint operator==(vector&, vector&)
123
+ bint operator!=(vector&, vector&)
124
+ bint operator<(vector&, vector&)
125
+ bint operator>(vector&, vector&)
126
+ bint operator<=(vector&, vector&)
127
+ bint operator>=(vector&, vector&)
128
+ void assign(size_type, const T&)
129
+ void assign[InputIt](InputIt, InputIt) except +
130
+ T& at(size_type) except +
131
+ T& back()
132
+ iterator begin()
133
+ const_iterator const_begin "begin"()
134
+ const_iterator cbegin()
135
+ size_type capacity()
136
+ void clear()
137
+ bint empty()
138
+ iterator end()
139
+ const_iterator const_end "end"()
140
+ const_iterator cend()
141
+ iterator erase(iterator)
142
+ iterator erase(iterator, iterator)
143
+ T& front()
144
+ iterator insert(iterator, const T&) except +
145
+ iterator insert(iterator, size_type, const T&) except +
146
+ iterator insert[InputIt](iterator, InputIt, InputIt) except +
147
+ size_type max_size()
148
+ void pop_back()
149
+ void push_back(T&) except +
150
+ reverse_iterator rbegin()
151
+ const_reverse_iterator const_rbegin "rbegin"()
152
+ const_reverse_iterator crbegin()
153
+ reverse_iterator rend()
154
+ const_reverse_iterator const_rend "rend"()
155
+ const_reverse_iterator crend()
156
+ void reserve(size_type) except +
157
+ void resize(size_type) except +
158
+ void resize(size_type, T&) except +
159
+ size_type size()
160
+ void swap(vector&)
161
+
162
+ # C++11 methods
163
+ T* data()
164
+ const T* const_data "data"()
165
+ void shrink_to_fit() except +
166
+ iterator emplace(const_iterator, ...) except +
167
+ T& emplace_back(...) except +
@@ -0,0 +1,50 @@
1
+ cdef extern from "<omp.h>":
2
+ ctypedef struct omp_lock_t:
3
+ pass
4
+ ctypedef struct omp_nest_lock_t:
5
+ pass
6
+
7
+ ctypedef enum omp_sched_t:
8
+ omp_sched_static = 1,
9
+ omp_sched_dynamic = 2,
10
+ omp_sched_guided = 3,
11
+ omp_sched_auto = 4
12
+
13
+ extern void omp_set_num_threads(int) nogil
14
+ extern int omp_get_num_threads() nogil
15
+ extern int omp_get_max_threads() nogil
16
+ extern int omp_get_thread_num() nogil
17
+ extern int omp_get_num_procs() nogil
18
+
19
+ extern int omp_in_parallel() nogil
20
+
21
+ extern void omp_set_dynamic(int) nogil
22
+ extern int omp_get_dynamic() nogil
23
+
24
+ extern void omp_set_nested(int) nogil
25
+ extern int omp_get_nested() nogil
26
+
27
+ extern void omp_init_lock(omp_lock_t *) nogil
28
+ extern void omp_destroy_lock(omp_lock_t *) nogil
29
+ extern void omp_set_lock(omp_lock_t *) nogil
30
+ extern void omp_unset_lock(omp_lock_t *) nogil
31
+ extern int omp_test_lock(omp_lock_t *) nogil
32
+
33
+ extern void omp_init_nest_lock(omp_nest_lock_t *) nogil
34
+ extern void omp_destroy_nest_lock(omp_nest_lock_t *) nogil
35
+ extern void omp_set_nest_lock(omp_nest_lock_t *) nogil
36
+ extern void omp_unset_nest_lock(omp_nest_lock_t *) nogil
37
+ extern int omp_test_nest_lock(omp_nest_lock_t *) nogil
38
+
39
+ extern double omp_get_wtime() nogil
40
+ extern double omp_get_wtick() nogil
41
+
42
+ void omp_set_schedule(omp_sched_t, int) nogil
43
+ void omp_get_schedule(omp_sched_t *, int *) nogil
44
+ int omp_get_thread_limit() nogil
45
+ void omp_set_max_active_levels(int) nogil
46
+ int omp_get_max_active_levels() nogil
47
+ int omp_get_level() nogil
48
+ int omp_get_ancestor_thread_num(int) nogil
49
+ int omp_get_team_size(int) nogil
50
+ int omp_get_active_level() nogil
@@ -0,0 +1 @@
1
+ # empty file
@@ -0,0 +1,14 @@
1
+ # POSIX dynamic linking/loading interface.
2
+ # https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/dlfcn.h.html
3
+
4
+ cdef extern from "<dlfcn.h>" nogil:
5
+ void *dlopen(const char *, int)
6
+ char *dlerror()
7
+ void *dlsym(void *, const char *)
8
+ int dlclose(void *)
9
+
10
+ enum:
11
+ RTLD_LAZY
12
+ RTLD_NOW
13
+ RTLD_GLOBAL
14
+ RTLD_LOCAL
@@ -0,0 +1,86 @@
1
+ # https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/fcntl.h.html
2
+
3
+ from posix.types cimport mode_t, off_t, pid_t
4
+
5
+ cdef extern from "<fcntl.h>" nogil:
6
+
7
+ enum: F_DUPFD
8
+ enum: F_DUPFD_CLOEXEC
9
+ enum: F_GETFD
10
+ enum: F_SETFD
11
+ enum: F_GETFL
12
+ enum: F_SETFL
13
+ enum: F_GETLK
14
+ enum: F_SETLK
15
+ enum: F_SETLKW
16
+ enum: F_GETOWN
17
+ enum: F_SETOWN
18
+
19
+ enum: FD_CLOEXEC
20
+
21
+ enum: F_RDLCK
22
+ enum: F_UNLCK
23
+ enum: F_WRLCK
24
+
25
+ enum: SEEK_SET
26
+ enum: SEEK_CUR
27
+ enum: SEEK_END
28
+
29
+ enum: O_CLOEXEC
30
+ enum: O_CREAT
31
+ enum: O_DIRECT
32
+ enum: O_DIRECTORY
33
+ enum: O_EXCL
34
+ enum: O_NOCTTY
35
+ enum: O_TRUNC
36
+ enum: O_TTY_INIT
37
+
38
+ enum: O_APPEND
39
+ enum: O_DSYNC
40
+ enum: O_NONBLOCK
41
+ enum: O_RSYNC
42
+ enum: O_SYNC
43
+
44
+ enum: O_ACCMODE # O_RDONLY|O_WRONLY|O_RDWR
45
+
46
+ enum: O_EXEC
47
+ enum: O_RDONLY
48
+ enum: O_WRONLY
49
+ enum: O_RDWR
50
+ enum: O_SEARCH
51
+
52
+ enum: AT_FDCWD
53
+ enum: AT_EACCESS
54
+ enum: AT_SYMLINK_NOFOLLOW
55
+ enum: AT_SYMLINK_FOLLOW
56
+ enum: AT_REMOVEDIR
57
+
58
+ enum: S_IFMT
59
+ enum: S_IFBLK
60
+ enum: S_IFCHR
61
+ enum: S_IFIFO
62
+ enum: S_IFREG
63
+ enum: S_IFDIR
64
+ enum: S_IFLNK
65
+ enum: S_IFSOCK
66
+
67
+ enum: POSIX_FADV_DONTNEED
68
+ enum: POSIX_FADV_NOREUSE
69
+ enum: POSIX_FADV_NORMAL
70
+ enum: POSIX_FADV_RANDOM
71
+ enum: POSIX_FADV_SEQUENTIAL
72
+ enum: POSIX_FADV_WILLNEED
73
+
74
+ struct flock:
75
+ short l_type
76
+ short l_whence
77
+ off_t l_start
78
+ off_t l_len
79
+ pid_t l_pid
80
+
81
+ int creat(const char *, mode_t)
82
+ int fcntl(int, int, ...)
83
+ int open(const char *, int, ...)
84
+ int openat(int, const char *, int, ...)
85
+ int posix_fadvise(int, off_t, off_t, int)
86
+ int posix_fallocate(int, off_t, off_t)
@@ -0,0 +1,4 @@
1
+ cdef extern from "<sys/ioctl.h>" nogil:
2
+ enum: FIONBIO
3
+
4
+ int ioctl(int fd, int request, ...)
@@ -0,0 +1,101 @@
1
+ # https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_mman.h.html
2
+ # https://man7.org/linux/man-pages/man2/mmap.2.html
3
+ # https://www.freebsd.org/cgi/man.cgi?query=mmap&sektion=2
4
+
5
+ from posix.types cimport off_t, mode_t
6
+
7
+ cdef extern from "<sys/mman.h>" nogil:
8
+ enum: PROT_EXEC # protection bits for mmap/mprotect
9
+ enum: PROT_READ
10
+ enum: PROT_WRITE
11
+ enum: PROT_NONE
12
+
13
+ enum: MAP_PRIVATE # flag bits for mmap
14
+ enum: MAP_SHARED
15
+ enum: MAP_FIXED
16
+ enum: MAP_ANON # These three are not in POSIX, but are
17
+ enum: MAP_ANONYMOUS # fairly common in spelling/semantics
18
+ enum: MAP_STACK
19
+
20
+ enum: MAP_LOCKED # Typically available only on Linux
21
+ enum: MAP_HUGETLB
22
+ enum: MAP_POPULATE
23
+ enum: MAP_NORESERVE
24
+ enum: MAP_GROWSDOWN
25
+
26
+ enum: MAP_NOCORE # Typically available only on BSD
27
+ enum: MAP_NOSYNC
28
+
29
+ void *MAP_FAILED
30
+
31
+ void *mmap(void *addr, size_t Len, int prot, int flags, int fd, off_t off)
32
+ int munmap(void *addr, size_t Len)
33
+ int mprotect(void *addr, size_t Len, int prot)
34
+
35
+ enum: MS_ASYNC
36
+ enum: MS_SYNC
37
+ enum: MS_INVALIDATE
38
+ int msync(void *addr, size_t Len, int flags)
39
+
40
+ enum: POSIX_MADV_NORMAL # POSIX advice flags
41
+ enum: POSIX_MADV_SEQUENTIAL
42
+ enum: POSIX_MADV_RANDOM
43
+ enum: POSIX_MADV_WILLNEED
44
+ enum: POSIX_MADV_DONTNEED
45
+ int posix_madvise(void *addr, size_t Len, int advice)
46
+
47
+ enum: MCL_CURRENT
48
+ enum: MCL_FUTURE
49
+ int mlock(const void *addr, size_t Len)
50
+ int munlock(const void *addr, size_t Len)
51
+ int mlockall(int flags)
52
+ int munlockall()
53
+ # Linux-specific
54
+ enum: MLOCK_ONFAULT
55
+ enum: MCL_ONFAULT
56
+ int mlock2(const void *addr, size_t len, int flags)
57
+
58
+ int shm_open(const char *name, int oflag, mode_t mode)
59
+ int shm_unlink(const char *name)
60
+
61
+ # often available
62
+ enum: MADV_NORMAL # pre-POSIX advice flags; should translate 1-1 to POSIX_*
63
+ enum: MADV_RANDOM # but in practice it is not always the same.
64
+ enum: MADV_SEQUENTIAL
65
+ enum: MADV_WILLNEED
66
+ enum: MADV_DONTNEED
67
+ enum: MADV_REMOVE # other pre-POSIX advice flags; often available
68
+ enum: MADV_DONTFORK
69
+ enum: MADV_DOFORK
70
+ enum: MADV_HWPOISON
71
+ enum: MADV_MERGEABLE,
72
+ enum: MADV_UNMERGEABLE
73
+ enum: MADV_SOFT_OFFLINE
74
+ enum: MADV_HUGEPAGE
75
+ enum: MADV_NOHUGEPAGE
76
+ enum: MADV_DONTDUMP
77
+ enum: MADV_DODUMP
78
+ enum: MADV_FREE
79
+ enum: MADV_WIPEONFORK
80
+ enum: MADV_KEEPONFORK
81
+ int madvise(void *addr, size_t Len, int advice)
82
+
83
+ # sometimes available
84
+ int mincore(void *addr, size_t Len, unsigned char *vec)
85
+
86
+ # These two are Linux specific but sometimes very efficient
87
+ void *mremap(void *old_addr, size_t old_len, size_t new_len, int flags, ...)
88
+ int remap_file_pages(void *addr, size_t Len, int prot,
89
+ size_t pgoff, int flags)
90
+
91
+ # The rare but standardized typed memory option
92
+ enum: POSIX_TYPED_MEM_ALLOCATE
93
+ enum: POSIX_TYPED_MEM_ALLOCATE_CONTIG
94
+ enum: POSIX_TYPED_MEM_MAP_ALLOCATABLE
95
+ int posix_typed_mem_open(const char *name, int oflag, int tflag)
96
+ int posix_mem_offset(const void *addr, size_t Len, off_t *off,
97
+ size_t *contig_len, int *fildes)
98
+
99
+ cdef struct posix_typed_mem_info:
100
+ size_t posix_tmi_length
101
+ int posix_typed_mem_get_info(int fildes, posix_typed_mem_info *info)
@@ -0,0 +1,57 @@
1
+ # https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_resource.h.html
2
+ # https://man7.org/linux/man-pages/man2/getrusage.2.html
3
+
4
+ from posix.time cimport timeval
5
+ from posix.types cimport id_t
6
+
7
+ cdef extern from "<sys/resource.h>" nogil:
8
+
9
+ enum: PRIO_PROCESS
10
+ enum: PRIO_PGRP
11
+ enum: PRIO_USER
12
+
13
+ enum: RLIM_INFINITY
14
+ enum: RLIM_SAVED_MAX
15
+ enum: RLIM_SAVED_CUR
16
+
17
+ enum: RUSAGE_SELF
18
+ enum: RUSAGE_CHILDREN
19
+
20
+ enum: RLIMIT_CORE
21
+ enum: RLIMIT_CPU
22
+ enum: RLIMIT_DATA
23
+ enum: RLIMIT_FSIZE
24
+ enum: RLIMIT_NOFILE
25
+ enum: RLIMIT_STACK
26
+ enum: RLIMIT_AS
27
+
28
+ ctypedef unsigned long rlim_t
29
+
30
+ cdef struct rlimit:
31
+ rlim_t rlim_cur
32
+ rlim_t rlim_max
33
+
34
+ cdef struct rusage:
35
+ timeval ru_utime
36
+ timeval ru_stime
37
+ # Linux-specific
38
+ long ru_maxrss
39
+ long ru_ixrss
40
+ long ru_idrss
41
+ long ru_isrss
42
+ long ru_minflt
43
+ long ru_majflt
44
+ long ru_nswap
45
+ long ru_inblock
46
+ long ru_oublock
47
+ long ru_msgsnd
48
+ long ru_msgrcv
49
+ long ru_nsignals
50
+ long ru_nvcsw
51
+ long ru_nivcsw
52
+
53
+ int getpriority(int, id_t)
54
+ int getrlimit(int, rlimit *)
55
+ int getrusage(int, rusage *)
56
+ int setpriority(int, id_t, int)
57
+ int setrlimit(int, const rlimit *)
@@ -0,0 +1,21 @@
1
+ # https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_select.h.html
2
+
3
+ from .types cimport sigset_t
4
+ from .time cimport timeval, timespec
5
+
6
+ cdef extern from "<sys/select.h>" nogil:
7
+ ctypedef struct fd_set:
8
+ pass
9
+
10
+ int FD_SETSIZE
11
+ void FD_SET(int, fd_set*)
12
+ void FD_CLR(int, fd_set*)
13
+ bint FD_ISSET(int, fd_set*)
14
+ void FD_ZERO(fd_set*)
15
+
16
+ int select(int nfds, fd_set *readfds, fd_set *writefds,
17
+ fd_set *exceptfds, timeval *timeout)
18
+
19
+ int pselect(int nfds, fd_set *readfds, fd_set *writefds,
20
+ fd_set *exceptfds, const timespec *timeout,
21
+ const sigset_t *sigmask)