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.
- Cython/Build/BuildExecutable.py +169 -0
- Cython/Build/Cache.py +199 -0
- Cython/Build/Cythonize.py +323 -0
- Cython/Build/Dependencies.py +1306 -0
- Cython/Build/Distutils.py +1 -0
- Cython/Build/Inline.py +463 -0
- Cython/Build/IpythonMagic.py +560 -0
- Cython/Build/SharedModule.py +76 -0
- Cython/Build/Tests/TestCyCache.py +194 -0
- Cython/Build/Tests/TestCythonizeArgsParser.py +481 -0
- Cython/Build/Tests/TestDependencies.py +133 -0
- Cython/Build/Tests/TestInline.py +177 -0
- Cython/Build/Tests/TestIpythonMagic.py +287 -0
- Cython/Build/Tests/TestRecythonize.py +212 -0
- Cython/Build/Tests/TestStripLiterals.py +155 -0
- Cython/Build/Tests/__init__.py +1 -0
- Cython/Build/__init__.py +8 -0
- Cython/CodeWriter.py +811 -0
- Cython/Compiler/AnalysedTreeTransforms.py +97 -0
- Cython/Compiler/Annotate.py +326 -0
- Cython/Compiler/AutoDocTransforms.py +320 -0
- Cython/Compiler/Buffer.py +680 -0
- Cython/Compiler/Builtin.py +934 -0
- Cython/Compiler/CmdLine.py +259 -0
- Cython/Compiler/Code.pxd +148 -0
- Cython/Compiler/Code.py +3375 -0
- Cython/Compiler/CodeGeneration.py +33 -0
- Cython/Compiler/CythonScope.py +187 -0
- Cython/Compiler/Dataclass.py +868 -0
- Cython/Compiler/DebugFlags.py +24 -0
- Cython/Compiler/Errors.py +295 -0
- Cython/Compiler/ExprNodes.py +15267 -0
- Cython/Compiler/FlowControl.pxd +97 -0
- Cython/Compiler/FlowControl.py +1455 -0
- Cython/Compiler/FusedNode.py +1002 -0
- Cython/Compiler/Future.py +16 -0
- Cython/Compiler/Interpreter.py +57 -0
- Cython/Compiler/Lexicon.py +340 -0
- Cython/Compiler/LineTable.py +114 -0
- Cython/Compiler/Main.py +853 -0
- Cython/Compiler/MatchCaseNodes.py +259 -0
- Cython/Compiler/MemoryView.py +922 -0
- Cython/Compiler/ModuleNode.py +4024 -0
- Cython/Compiler/Naming.py +374 -0
- Cython/Compiler/Nodes.py +10826 -0
- Cython/Compiler/Optimize.py +5256 -0
- Cython/Compiler/Options.py +835 -0
- Cython/Compiler/ParseTreeTransforms.pxd +77 -0
- Cython/Compiler/ParseTreeTransforms.py +4509 -0
- Cython/Compiler/Parsing.pxd +9 -0
- Cython/Compiler/Parsing.py +4789 -0
- Cython/Compiler/Pipeline.py +439 -0
- Cython/Compiler/PyrexTypes.py +5762 -0
- Cython/Compiler/Pythran.py +232 -0
- Cython/Compiler/Scanning.pxd +40 -0
- Cython/Compiler/Scanning.py +577 -0
- Cython/Compiler/StringEncoding.py +347 -0
- Cython/Compiler/Symtab.py +3080 -0
- Cython/Compiler/Tests/TestBuffer.py +105 -0
- Cython/Compiler/Tests/TestBuiltin.py +72 -0
- Cython/Compiler/Tests/TestCmdLine.py +586 -0
- Cython/Compiler/Tests/TestCode.py +86 -0
- Cython/Compiler/Tests/TestFlowControl.py +65 -0
- Cython/Compiler/Tests/TestGrammar.py +202 -0
- Cython/Compiler/Tests/TestMemView.py +71 -0
- Cython/Compiler/Tests/TestParseTreeTransforms.py +285 -0
- Cython/Compiler/Tests/TestScanning.py +134 -0
- Cython/Compiler/Tests/TestSignatureMatching.py +73 -0
- Cython/Compiler/Tests/TestStringEncoding.py +33 -0
- Cython/Compiler/Tests/TestTreeFragment.py +63 -0
- Cython/Compiler/Tests/TestTreePath.py +103 -0
- Cython/Compiler/Tests/TestTypes.py +75 -0
- Cython/Compiler/Tests/TestUtilityLoad.py +112 -0
- Cython/Compiler/Tests/TestVisitor.py +61 -0
- Cython/Compiler/Tests/Utils.py +36 -0
- Cython/Compiler/Tests/__init__.py +1 -0
- Cython/Compiler/TreeFragment.py +278 -0
- Cython/Compiler/TreePath.py +303 -0
- Cython/Compiler/TypeInference.py +584 -0
- Cython/Compiler/TypeSlots.py +1181 -0
- Cython/Compiler/UFuncs.py +311 -0
- Cython/Compiler/UtilNodes.py +389 -0
- Cython/Compiler/UtilityCode.py +344 -0
- Cython/Compiler/Version.py +8 -0
- Cython/Compiler/Visitor.pxd +53 -0
- Cython/Compiler/Visitor.py +861 -0
- Cython/Compiler/__init__.py +1 -0
- Cython/Coverage.py +448 -0
- Cython/Debugger/Cygdb.py +175 -0
- Cython/Debugger/DebugWriter.py +82 -0
- Cython/Debugger/Tests/TestLibCython.py +275 -0
- Cython/Debugger/Tests/__init__.py +1 -0
- Cython/Debugger/Tests/cfuncs.c +8 -0
- Cython/Debugger/Tests/codefile +49 -0
- Cython/Debugger/Tests/test_libcython_in_gdb.py +578 -0
- Cython/Debugger/Tests/test_libpython_in_gdb.py +90 -0
- Cython/Debugger/__init__.py +1 -0
- Cython/Debugger/libcython.py +1548 -0
- Cython/Debugger/libpython.py +2821 -0
- Cython/Debugging.py +20 -0
- Cython/Distutils/__init__.py +2 -0
- Cython/Distutils/build_ext.py +139 -0
- Cython/Distutils/extension.py +96 -0
- Cython/Distutils/old_build_ext.py +351 -0
- Cython/Includes/cpython/__init__.pxd +173 -0
- Cython/Includes/cpython/array.pxd +174 -0
- Cython/Includes/cpython/bool.pxd +37 -0
- Cython/Includes/cpython/buffer.pxd +112 -0
- Cython/Includes/cpython/bytearray.pxd +33 -0
- Cython/Includes/cpython/bytes.pxd +200 -0
- Cython/Includes/cpython/cellobject.pxd +35 -0
- Cython/Includes/cpython/ceval.pxd +8 -0
- Cython/Includes/cpython/codecs.pxd +121 -0
- Cython/Includes/cpython/complex.pxd +60 -0
- Cython/Includes/cpython/contextvars.pxd +145 -0
- Cython/Includes/cpython/conversion.pxd +36 -0
- Cython/Includes/cpython/datetime.pxd +395 -0
- Cython/Includes/cpython/descr.pxd +26 -0
- Cython/Includes/cpython/dict.pxd +187 -0
- Cython/Includes/cpython/exc.pxd +263 -0
- Cython/Includes/cpython/fileobject.pxd +57 -0
- Cython/Includes/cpython/float.pxd +47 -0
- Cython/Includes/cpython/function.pxd +65 -0
- Cython/Includes/cpython/genobject.pxd +25 -0
- Cython/Includes/cpython/getargs.pxd +12 -0
- Cython/Includes/cpython/instance.pxd +25 -0
- Cython/Includes/cpython/iterator.pxd +36 -0
- Cython/Includes/cpython/iterobject.pxd +24 -0
- Cython/Includes/cpython/list.pxd +92 -0
- Cython/Includes/cpython/long.pxd +149 -0
- Cython/Includes/cpython/longintrepr.pxd +14 -0
- Cython/Includes/cpython/mapping.pxd +63 -0
- Cython/Includes/cpython/marshal.pxd +66 -0
- Cython/Includes/cpython/mem.pxd +120 -0
- Cython/Includes/cpython/memoryview.pxd +50 -0
- Cython/Includes/cpython/method.pxd +49 -0
- Cython/Includes/cpython/module.pxd +208 -0
- Cython/Includes/cpython/number.pxd +258 -0
- Cython/Includes/cpython/object.pxd +433 -0
- Cython/Includes/cpython/pycapsule.pxd +143 -0
- Cython/Includes/cpython/pylifecycle.pxd +68 -0
- Cython/Includes/cpython/pyport.pxd +8 -0
- Cython/Includes/cpython/pystate.pxd +95 -0
- Cython/Includes/cpython/pythread.pxd +53 -0
- Cython/Includes/cpython/ref.pxd +67 -0
- Cython/Includes/cpython/sequence.pxd +134 -0
- Cython/Includes/cpython/set.pxd +119 -0
- Cython/Includes/cpython/slice.pxd +70 -0
- Cython/Includes/cpython/time.pxd +129 -0
- Cython/Includes/cpython/tuple.pxd +72 -0
- Cython/Includes/cpython/type.pxd +53 -0
- Cython/Includes/cpython/unicode.pxd +639 -0
- Cython/Includes/cpython/version.pxd +32 -0
- Cython/Includes/cpython/weakref.pxd +78 -0
- Cython/Includes/libc/__init__.pxd +1 -0
- Cython/Includes/libc/complex.pxd +35 -0
- Cython/Includes/libc/errno.pxd +127 -0
- Cython/Includes/libc/float.pxd +43 -0
- Cython/Includes/libc/limits.pxd +28 -0
- Cython/Includes/libc/locale.pxd +46 -0
- Cython/Includes/libc/math.pxd +209 -0
- Cython/Includes/libc/setjmp.pxd +10 -0
- Cython/Includes/libc/signal.pxd +64 -0
- Cython/Includes/libc/stddef.pxd +9 -0
- Cython/Includes/libc/stdint.pxd +105 -0
- Cython/Includes/libc/stdio.pxd +80 -0
- Cython/Includes/libc/stdlib.pxd +72 -0
- Cython/Includes/libc/string.pxd +50 -0
- Cython/Includes/libc/threads.pxd +84 -0
- Cython/Includes/libc/time.pxd +51 -0
- Cython/Includes/libcpp/__init__.pxd +4 -0
- Cython/Includes/libcpp/algorithm.pxd +320 -0
- Cython/Includes/libcpp/any.pxd +16 -0
- Cython/Includes/libcpp/atomic.pxd +59 -0
- Cython/Includes/libcpp/barrier.pxd +22 -0
- Cython/Includes/libcpp/bit.pxd +29 -0
- Cython/Includes/libcpp/cast.pxd +12 -0
- Cython/Includes/libcpp/cmath.pxd +518 -0
- Cython/Includes/libcpp/complex.pxd +106 -0
- Cython/Includes/libcpp/deque.pxd +165 -0
- Cython/Includes/libcpp/exception.pxd +86 -0
- Cython/Includes/libcpp/execution.pxd +15 -0
- Cython/Includes/libcpp/forward_list.pxd +63 -0
- Cython/Includes/libcpp/functional.pxd +26 -0
- Cython/Includes/libcpp/future.pxd +103 -0
- Cython/Includes/libcpp/iterator.pxd +34 -0
- Cython/Includes/libcpp/latch.pxd +17 -0
- Cython/Includes/libcpp/limits.pxd +61 -0
- Cython/Includes/libcpp/list.pxd +117 -0
- Cython/Includes/libcpp/map.pxd +252 -0
- Cython/Includes/libcpp/memory.pxd +115 -0
- Cython/Includes/libcpp/mutex.pxd +130 -0
- Cython/Includes/libcpp/numbers.pxd +15 -0
- Cython/Includes/libcpp/numeric.pxd +131 -0
- Cython/Includes/libcpp/optional.pxd +34 -0
- Cython/Includes/libcpp/pair.pxd +1 -0
- Cython/Includes/libcpp/queue.pxd +25 -0
- Cython/Includes/libcpp/random.pxd +166 -0
- Cython/Includes/libcpp/semaphore.pxd +44 -0
- Cython/Includes/libcpp/set.pxd +228 -0
- Cython/Includes/libcpp/shared_mutex.pxd +72 -0
- Cython/Includes/libcpp/span.pxd +87 -0
- Cython/Includes/libcpp/stack.pxd +11 -0
- Cython/Includes/libcpp/stop_token.pxd +105 -0
- Cython/Includes/libcpp/string.pxd +355 -0
- Cython/Includes/libcpp/string_view.pxd +181 -0
- Cython/Includes/libcpp/typeindex.pxd +15 -0
- Cython/Includes/libcpp/typeinfo.pxd +10 -0
- Cython/Includes/libcpp/unordered_map.pxd +193 -0
- Cython/Includes/libcpp/unordered_set.pxd +152 -0
- Cython/Includes/libcpp/utility.pxd +30 -0
- Cython/Includes/libcpp/vector.pxd +186 -0
- Cython/Includes/openmp.pxd +50 -0
- Cython/Includes/posix/__init__.pxd +1 -0
- Cython/Includes/posix/dlfcn.pxd +14 -0
- Cython/Includes/posix/fcntl.pxd +86 -0
- Cython/Includes/posix/ioctl.pxd +4 -0
- Cython/Includes/posix/mman.pxd +101 -0
- Cython/Includes/posix/resource.pxd +57 -0
- Cython/Includes/posix/select.pxd +21 -0
- Cython/Includes/posix/signal.pxd +73 -0
- Cython/Includes/posix/stat.pxd +98 -0
- Cython/Includes/posix/stdio.pxd +37 -0
- Cython/Includes/posix/stdlib.pxd +29 -0
- Cython/Includes/posix/strings.pxd +9 -0
- Cython/Includes/posix/time.pxd +71 -0
- Cython/Includes/posix/types.pxd +30 -0
- Cython/Includes/posix/uio.pxd +26 -0
- Cython/Includes/posix/unistd.pxd +271 -0
- Cython/Includes/posix/wait.pxd +38 -0
- Cython/Plex/Actions.pxd +24 -0
- Cython/Plex/Actions.py +119 -0
- Cython/Plex/DFA.pxd +14 -0
- Cython/Plex/DFA.py +164 -0
- Cython/Plex/Errors.py +48 -0
- Cython/Plex/Lexicons.py +178 -0
- Cython/Plex/Machines.pxd +36 -0
- Cython/Plex/Machines.py +238 -0
- Cython/Plex/Regexps.py +539 -0
- Cython/Plex/Scanners.pxd +47 -0
- Cython/Plex/Scanners.py +360 -0
- Cython/Plex/Transitions.pxd +14 -0
- Cython/Plex/Transitions.py +239 -0
- Cython/Plex/__init__.py +34 -0
- Cython/Runtime/__init__.py +1 -0
- Cython/Runtime/refnanny.pyx +237 -0
- Cython/Shadow.py +690 -0
- Cython/Shadow.pyi +521 -0
- Cython/StringIOTree.py +170 -0
- Cython/Tempita/__init__.py +4 -0
- Cython/Tempita/_looper.py +154 -0
- Cython/Tempita/_tempita.py +1091 -0
- Cython/TestUtils.py +410 -0
- Cython/Tests/TestCodeWriter.py +128 -0
- Cython/Tests/TestCythonUtils.py +202 -0
- Cython/Tests/TestJediTyper.py +223 -0
- Cython/Tests/TestShadow.py +114 -0
- Cython/Tests/TestStringIOTree.py +67 -0
- Cython/Tests/TestTestUtils.py +90 -0
- Cython/Tests/__init__.py +1 -0
- Cython/Tests/xmlrunner.py +390 -0
- Cython/Utility/AsyncGen.c +1002 -0
- Cython/Utility/Buffer.c +875 -0
- Cython/Utility/BufferFormatFromTypeInfo.pxd +2 -0
- Cython/Utility/Builtins.c +776 -0
- Cython/Utility/CConvert.pyx +134 -0
- Cython/Utility/CMath.c +104 -0
- Cython/Utility/CommonStructures.c +118 -0
- Cython/Utility/Complex.c +378 -0
- Cython/Utility/Coroutine.c +2206 -0
- Cython/Utility/CpdefEnums.pyx +103 -0
- Cython/Utility/CppConvert.pyx +279 -0
- Cython/Utility/CppSupport.cpp +143 -0
- Cython/Utility/CythonFunction.c +1794 -0
- Cython/Utility/Dataclasses.c +185 -0
- Cython/Utility/Dataclasses.py +112 -0
- Cython/Utility/Embed.c +125 -0
- Cython/Utility/Exceptions.c +1012 -0
- Cython/Utility/ExtensionTypes.c +809 -0
- Cython/Utility/FunctionArguments.c +965 -0
- Cython/Utility/ImportExport.c +987 -0
- Cython/Utility/Lock.c +136 -0
- Cython/Utility/MemoryView.pxd +187 -0
- Cython/Utility/MemoryView.pyx +1481 -0
- Cython/Utility/MemoryView_C.c +1046 -0
- Cython/Utility/ModuleSetupCode.c +3059 -0
- Cython/Utility/NumpyImportArray.c +46 -0
- Cython/Utility/ObjectHandling.c +3342 -0
- Cython/Utility/Optimize.c +1589 -0
- Cython/Utility/Overflow.c +404 -0
- Cython/Utility/Printing.c +86 -0
- Cython/Utility/Profile.c +709 -0
- Cython/Utility/StringTools.c +1259 -0
- Cython/Utility/TestCyUtilityLoader.pyx +8 -0
- Cython/Utility/TestCythonScope.pyx +75 -0
- Cython/Utility/TestUtilityLoader.c +12 -0
- Cython/Utility/TypeConversion.c +1284 -0
- Cython/Utility/UFuncs.pyx +50 -0
- Cython/Utility/UFuncs_C.c +89 -0
- Cython/Utility/__init__.py +28 -0
- Cython/Utility/arrayarray.h +148 -0
- Cython/Utils.py +687 -0
- Cython/__init__.py +10 -0
- Cython/__init__.pyi +7 -0
- Cython/py.typed +0 -0
- cython-3.1.0.dist-info/COPYING.txt +19 -0
- cython-3.1.0.dist-info/LICENSE.txt +176 -0
- cython-3.1.0.dist-info/METADATA +636 -0
- cython-3.1.0.dist-info/RECORD +316 -0
- cython-3.1.0.dist-info/WHEEL +5 -0
- cython-3.1.0.dist-info/entry_points.txt +4 -0
- cython-3.1.0.dist-info/top_level.txt +3 -0
- cython.py +29 -0
- pyximport/__init__.py +4 -0
- pyximport/pyxbuild.py +160 -0
- pyximport/pyximport.py +482 -0
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
cdef extern from "<list>" namespace "std" nogil:
|
|
2
|
+
cdef cppclass list[T,ALLOCATOR=*]:
|
|
3
|
+
ctypedef T value_type
|
|
4
|
+
ctypedef ALLOCATOR allocator_type
|
|
5
|
+
|
|
6
|
+
# these should really be allocator_type.size_type and
|
|
7
|
+
# allocator_type.difference_type to be true to the C++ definition
|
|
8
|
+
# but cython doesn't support deferred access on template arguments
|
|
9
|
+
ctypedef size_t size_type
|
|
10
|
+
ctypedef ptrdiff_t difference_type
|
|
11
|
+
|
|
12
|
+
cppclass const_iterator
|
|
13
|
+
cppclass iterator:
|
|
14
|
+
iterator() except +
|
|
15
|
+
iterator(iterator&) except +
|
|
16
|
+
value_type& operator*()
|
|
17
|
+
iterator operator++()
|
|
18
|
+
iterator operator--()
|
|
19
|
+
iterator operator++(int)
|
|
20
|
+
iterator operator--(int)
|
|
21
|
+
bint operator==(iterator)
|
|
22
|
+
bint operator==(const_iterator)
|
|
23
|
+
bint operator!=(iterator)
|
|
24
|
+
bint operator!=(const_iterator)
|
|
25
|
+
cppclass const_iterator:
|
|
26
|
+
const_iterator() except +
|
|
27
|
+
const_iterator(iterator&) except +
|
|
28
|
+
const_iterator(const_iterator&) except +
|
|
29
|
+
operator=(iterator&) except +
|
|
30
|
+
const value_type& operator*()
|
|
31
|
+
const_iterator operator++()
|
|
32
|
+
const_iterator operator--()
|
|
33
|
+
const_iterator operator++(int)
|
|
34
|
+
const_iterator operator--(int)
|
|
35
|
+
bint operator==(iterator)
|
|
36
|
+
bint operator==(const_iterator)
|
|
37
|
+
bint operator!=(iterator)
|
|
38
|
+
bint operator!=(const_iterator)
|
|
39
|
+
|
|
40
|
+
cppclass const_reverse_iterator
|
|
41
|
+
cppclass reverse_iterator:
|
|
42
|
+
reverse_iterator() except +
|
|
43
|
+
reverse_iterator(reverse_iterator&) except +
|
|
44
|
+
value_type& operator*()
|
|
45
|
+
reverse_iterator operator++()
|
|
46
|
+
reverse_iterator operator--()
|
|
47
|
+
reverse_iterator operator++(int)
|
|
48
|
+
reverse_iterator operator--(int)
|
|
49
|
+
bint operator==(reverse_iterator)
|
|
50
|
+
bint operator==(const_reverse_iterator)
|
|
51
|
+
bint operator!=(reverse_iterator)
|
|
52
|
+
bint operator!=(const_reverse_iterator)
|
|
53
|
+
cppclass const_reverse_iterator:
|
|
54
|
+
const_reverse_iterator() except +
|
|
55
|
+
const_reverse_iterator(reverse_iterator&) except +
|
|
56
|
+
operator=(reverse_iterator&) except +
|
|
57
|
+
const value_type& operator*()
|
|
58
|
+
const_reverse_iterator operator++()
|
|
59
|
+
const_reverse_iterator operator--()
|
|
60
|
+
const_reverse_iterator operator++(int)
|
|
61
|
+
const_reverse_iterator operator--(int)
|
|
62
|
+
bint operator==(reverse_iterator)
|
|
63
|
+
bint operator==(const_reverse_iterator)
|
|
64
|
+
bint operator!=(reverse_iterator)
|
|
65
|
+
bint operator!=(const_reverse_iterator)
|
|
66
|
+
|
|
67
|
+
list() except +
|
|
68
|
+
list(list&) except +
|
|
69
|
+
list(size_t, T&) except +
|
|
70
|
+
#list operator=(list&)
|
|
71
|
+
bint operator==(list&, list&)
|
|
72
|
+
bint operator!=(list&, list&)
|
|
73
|
+
bint operator<(list&, list&)
|
|
74
|
+
bint operator>(list&, list&)
|
|
75
|
+
bint operator<=(list&, list&)
|
|
76
|
+
bint operator>=(list&, list&)
|
|
77
|
+
void assign(size_t, T&) except +
|
|
78
|
+
T& back()
|
|
79
|
+
iterator begin()
|
|
80
|
+
const_iterator const_begin "begin"()
|
|
81
|
+
const_iterator cbegin()
|
|
82
|
+
void clear()
|
|
83
|
+
bint empty()
|
|
84
|
+
iterator end()
|
|
85
|
+
const_iterator const_end "end"()
|
|
86
|
+
const_iterator cend()
|
|
87
|
+
iterator erase(iterator)
|
|
88
|
+
iterator erase(iterator, iterator)
|
|
89
|
+
T& front()
|
|
90
|
+
iterator insert(iterator, T&)
|
|
91
|
+
void insert(iterator, size_t, T&)
|
|
92
|
+
size_t max_size()
|
|
93
|
+
void merge(list&) except +
|
|
94
|
+
#void merge(list&, BinPred)
|
|
95
|
+
void pop_back()
|
|
96
|
+
void pop_front()
|
|
97
|
+
void push_back(T&) except +
|
|
98
|
+
void push_front(T&) except +
|
|
99
|
+
reverse_iterator rbegin()
|
|
100
|
+
const_reverse_iterator const_rbegin "rbegin"()
|
|
101
|
+
const_reverse_iterator crbegin()
|
|
102
|
+
void remove(T&) except +
|
|
103
|
+
#void remove_if(UnPred)
|
|
104
|
+
reverse_iterator rend()
|
|
105
|
+
const_reverse_iterator const_rend "rend"()
|
|
106
|
+
const_reverse_iterator crend()
|
|
107
|
+
void resize(size_t, T&) except +
|
|
108
|
+
void reverse()
|
|
109
|
+
size_t size()
|
|
110
|
+
void sort() except +
|
|
111
|
+
#void sort(BinPred)
|
|
112
|
+
void splice(iterator, list&)
|
|
113
|
+
void splice(iterator, list&, iterator)
|
|
114
|
+
void splice(iterator, list&, iterator, iterator)
|
|
115
|
+
void swap(list&)
|
|
116
|
+
void unique()
|
|
117
|
+
#void unique(BinPred)
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
from .utility cimport pair
|
|
2
|
+
|
|
3
|
+
cdef extern from "<map>" namespace "std" nogil:
|
|
4
|
+
cdef cppclass map[T, U, COMPARE=*, ALLOCATOR=*]:
|
|
5
|
+
ctypedef T key_type
|
|
6
|
+
ctypedef U mapped_type
|
|
7
|
+
ctypedef pair[const T, U] value_type
|
|
8
|
+
ctypedef COMPARE key_compare
|
|
9
|
+
ctypedef ALLOCATOR allocator_type
|
|
10
|
+
|
|
11
|
+
# these should really be allocator_type.size_type and
|
|
12
|
+
# allocator_type.difference_type to be true to the C++ definition
|
|
13
|
+
# but cython doesn't support deferred access on template arguments
|
|
14
|
+
ctypedef size_t size_type
|
|
15
|
+
ctypedef ptrdiff_t difference_type
|
|
16
|
+
|
|
17
|
+
cppclass const_iterator
|
|
18
|
+
cppclass iterator:
|
|
19
|
+
iterator() except +
|
|
20
|
+
iterator(iterator&) except +
|
|
21
|
+
# correct would be value_type& but this does not work
|
|
22
|
+
# well with cython's code gen
|
|
23
|
+
pair[T, U]& operator*()
|
|
24
|
+
iterator operator++()
|
|
25
|
+
iterator operator--()
|
|
26
|
+
iterator operator++(int)
|
|
27
|
+
iterator operator--(int)
|
|
28
|
+
bint operator==(iterator)
|
|
29
|
+
bint operator==(const_iterator)
|
|
30
|
+
bint operator!=(iterator)
|
|
31
|
+
bint operator!=(const_iterator)
|
|
32
|
+
cppclass const_iterator:
|
|
33
|
+
const_iterator() except +
|
|
34
|
+
const_iterator(iterator&) except +
|
|
35
|
+
const_iterator(const_iterator&) except +
|
|
36
|
+
operator=(iterator&) except +
|
|
37
|
+
# correct would be const value_type& but this does not work
|
|
38
|
+
# well with cython's code gen
|
|
39
|
+
const pair[T, U]& operator*()
|
|
40
|
+
const_iterator operator++()
|
|
41
|
+
const_iterator operator--()
|
|
42
|
+
const_iterator operator++(int)
|
|
43
|
+
const_iterator operator--(int)
|
|
44
|
+
bint operator==(iterator)
|
|
45
|
+
bint operator==(const_iterator)
|
|
46
|
+
bint operator!=(iterator)
|
|
47
|
+
bint operator!=(const_iterator)
|
|
48
|
+
|
|
49
|
+
cppclass const_reverse_iterator
|
|
50
|
+
cppclass reverse_iterator:
|
|
51
|
+
reverse_iterator() except +
|
|
52
|
+
reverse_iterator(reverse_iterator&) except +
|
|
53
|
+
# correct would be value_type& but this does not work
|
|
54
|
+
# well with cython's code gen
|
|
55
|
+
pair[T, U]& operator*()
|
|
56
|
+
reverse_iterator operator++()
|
|
57
|
+
reverse_iterator operator--()
|
|
58
|
+
reverse_iterator operator++(int)
|
|
59
|
+
reverse_iterator operator--(int)
|
|
60
|
+
bint operator==(reverse_iterator)
|
|
61
|
+
bint operator==(const_reverse_iterator)
|
|
62
|
+
bint operator!=(reverse_iterator)
|
|
63
|
+
bint operator!=(const_reverse_iterator)
|
|
64
|
+
cppclass const_reverse_iterator:
|
|
65
|
+
const_reverse_iterator() except +
|
|
66
|
+
const_reverse_iterator(reverse_iterator&) except +
|
|
67
|
+
operator=(reverse_iterator&) except +
|
|
68
|
+
# correct would be const value_type& but this does not work
|
|
69
|
+
# well with cython's code gen
|
|
70
|
+
const pair[T, U]& operator*()
|
|
71
|
+
const_reverse_iterator operator++()
|
|
72
|
+
const_reverse_iterator operator--()
|
|
73
|
+
const_reverse_iterator operator++(int)
|
|
74
|
+
const_reverse_iterator operator--(int)
|
|
75
|
+
bint operator==(reverse_iterator)
|
|
76
|
+
bint operator==(const_reverse_iterator)
|
|
77
|
+
bint operator!=(reverse_iterator)
|
|
78
|
+
bint operator!=(const_reverse_iterator)
|
|
79
|
+
|
|
80
|
+
map() except +
|
|
81
|
+
map(map&) except +
|
|
82
|
+
#map(key_compare&)
|
|
83
|
+
U& operator[](const T&)
|
|
84
|
+
#map& operator=(map&)
|
|
85
|
+
bint operator==(map&, map&)
|
|
86
|
+
bint operator!=(map&, map&)
|
|
87
|
+
bint operator<(map&, map&)
|
|
88
|
+
bint operator>(map&, map&)
|
|
89
|
+
bint operator<=(map&, map&)
|
|
90
|
+
bint operator>=(map&, map&)
|
|
91
|
+
U& at(const T&) except +
|
|
92
|
+
const U& const_at "at"(const T&) except +
|
|
93
|
+
iterator begin()
|
|
94
|
+
const_iterator const_begin "begin" ()
|
|
95
|
+
const_iterator cbegin()
|
|
96
|
+
void clear()
|
|
97
|
+
size_t count(const T&)
|
|
98
|
+
bint empty()
|
|
99
|
+
iterator end()
|
|
100
|
+
const_iterator const_end "end" ()
|
|
101
|
+
const_iterator cend()
|
|
102
|
+
pair[iterator, iterator] equal_range(const T&)
|
|
103
|
+
pair[const_iterator, const_iterator] const_equal_range "equal_range"(const T&)
|
|
104
|
+
iterator erase(iterator)
|
|
105
|
+
iterator const_erase "erase"(const_iterator)
|
|
106
|
+
iterator erase(const_iterator, const_iterator)
|
|
107
|
+
size_t erase(const T&)
|
|
108
|
+
iterator find(const T&)
|
|
109
|
+
const_iterator const_find "find" (const T&)
|
|
110
|
+
pair[iterator, bint] insert(const pair[T, U]&) except +
|
|
111
|
+
iterator insert(const_iterator, const pair[T, U]&) except +
|
|
112
|
+
void insert[InputIt](InputIt, InputIt) except +
|
|
113
|
+
#key_compare key_comp()
|
|
114
|
+
iterator lower_bound(const T&)
|
|
115
|
+
const_iterator const_lower_bound "lower_bound"(const T&)
|
|
116
|
+
size_t max_size()
|
|
117
|
+
reverse_iterator rbegin()
|
|
118
|
+
const_reverse_iterator const_rbegin "rbegin"()
|
|
119
|
+
const_reverse_iterator crbegin()
|
|
120
|
+
reverse_iterator rend()
|
|
121
|
+
const_reverse_iterator const_rend "rend"()
|
|
122
|
+
const_reverse_iterator crend()
|
|
123
|
+
size_t size()
|
|
124
|
+
void swap(map&)
|
|
125
|
+
iterator upper_bound(const T&)
|
|
126
|
+
const_iterator const_upper_bound "upper_bound"(const T&)
|
|
127
|
+
#value_compare value_comp()
|
|
128
|
+
# C++20
|
|
129
|
+
bint contains(const T&)
|
|
130
|
+
|
|
131
|
+
cdef cppclass multimap[T, U, COMPARE=*, ALLOCATOR=*]:
|
|
132
|
+
ctypedef T key_type
|
|
133
|
+
ctypedef U mapped_type
|
|
134
|
+
ctypedef pair[const T, U] value_type
|
|
135
|
+
ctypedef COMPARE key_compare
|
|
136
|
+
ctypedef ALLOCATOR allocator_type
|
|
137
|
+
|
|
138
|
+
# these should really be allocator_type.size_type and
|
|
139
|
+
# allocator_type.difference_type to be true to the C++ definition
|
|
140
|
+
# but cython doesn't support deferred access on template arguments
|
|
141
|
+
ctypedef size_t size_type
|
|
142
|
+
ctypedef ptrdiff_t difference_type
|
|
143
|
+
|
|
144
|
+
cppclass const_iterator
|
|
145
|
+
cppclass iterator:
|
|
146
|
+
iterator() except +
|
|
147
|
+
iterator(iterator&) except +
|
|
148
|
+
# correct would be value_type& but this does not work
|
|
149
|
+
# well with cython's code gen
|
|
150
|
+
pair[T, U]& operator*()
|
|
151
|
+
iterator operator++()
|
|
152
|
+
iterator operator--()
|
|
153
|
+
iterator operator++(int)
|
|
154
|
+
iterator operator--(int)
|
|
155
|
+
bint operator==(iterator)
|
|
156
|
+
bint operator==(const_iterator)
|
|
157
|
+
bint operator!=(iterator)
|
|
158
|
+
bint operator!=(const_iterator)
|
|
159
|
+
cppclass const_iterator:
|
|
160
|
+
const_iterator() except +
|
|
161
|
+
const_iterator(iterator&) except +
|
|
162
|
+
const_iterator(const_iterator&) except +
|
|
163
|
+
operator=(iterator&) except +
|
|
164
|
+
# correct would be const value_type& but this does not work
|
|
165
|
+
# well with cython's code gen
|
|
166
|
+
const pair[T, U]& operator*()
|
|
167
|
+
const_iterator operator++()
|
|
168
|
+
const_iterator operator--()
|
|
169
|
+
const_iterator operator++(int)
|
|
170
|
+
const_iterator operator--(int)
|
|
171
|
+
bint operator==(iterator)
|
|
172
|
+
bint operator==(const_iterator)
|
|
173
|
+
bint operator!=(iterator)
|
|
174
|
+
bint operator!=(const_iterator)
|
|
175
|
+
|
|
176
|
+
cppclass const_reverse_iterator
|
|
177
|
+
cppclass reverse_iterator:
|
|
178
|
+
reverse_iterator() except +
|
|
179
|
+
reverse_iterator(reverse_iterator&) except +
|
|
180
|
+
# correct would be value_type& but this does not work
|
|
181
|
+
# well with cython's code gen
|
|
182
|
+
pair[T, U]& operator*()
|
|
183
|
+
reverse_iterator operator++()
|
|
184
|
+
reverse_iterator operator--()
|
|
185
|
+
reverse_iterator operator++(int)
|
|
186
|
+
reverse_iterator operator--(int)
|
|
187
|
+
bint operator==(reverse_iterator)
|
|
188
|
+
bint operator==(const_reverse_iterator)
|
|
189
|
+
bint operator!=(reverse_iterator)
|
|
190
|
+
bint operator!=(const_reverse_iterator)
|
|
191
|
+
cppclass const_reverse_iterator:
|
|
192
|
+
const_reverse_iterator() except +
|
|
193
|
+
const_reverse_iterator(reverse_iterator&) except +
|
|
194
|
+
operator=(reverse_iterator&) except +
|
|
195
|
+
# correct would be const value_type& but this does not work
|
|
196
|
+
# well with cython's code gen
|
|
197
|
+
const pair[T, U]& operator*()
|
|
198
|
+
const_reverse_iterator operator++()
|
|
199
|
+
const_reverse_iterator operator--()
|
|
200
|
+
const_reverse_iterator operator++(int)
|
|
201
|
+
const_reverse_iterator operator--(int)
|
|
202
|
+
bint operator==(reverse_iterator)
|
|
203
|
+
bint operator==(const_reverse_iterator)
|
|
204
|
+
bint operator!=(reverse_iterator)
|
|
205
|
+
bint operator!=(const_reverse_iterator)
|
|
206
|
+
|
|
207
|
+
multimap() except +
|
|
208
|
+
multimap(const multimap&) except +
|
|
209
|
+
#multimap(key_compare&)
|
|
210
|
+
#multimap& operator=(multimap&)
|
|
211
|
+
bint operator==(const multimap&, const multimap&)
|
|
212
|
+
bint operator!=(const multimap&, const multimap&)
|
|
213
|
+
bint operator<(const multimap&, const multimap&)
|
|
214
|
+
bint operator>(const multimap&, const multimap&)
|
|
215
|
+
bint operator<=(const multimap&, const multimap&)
|
|
216
|
+
bint operator>=(const multimap&, const multimap&)
|
|
217
|
+
iterator begin()
|
|
218
|
+
const_iterator const_begin "begin"()
|
|
219
|
+
const_iterator cbegin()
|
|
220
|
+
void clear()
|
|
221
|
+
size_t count(const T&)
|
|
222
|
+
bint empty()
|
|
223
|
+
iterator end()
|
|
224
|
+
const_iterator const_end "end"()
|
|
225
|
+
const_iterator cend()
|
|
226
|
+
pair[iterator, iterator] equal_range(const T&)
|
|
227
|
+
pair[const_iterator, const_iterator] const_equal_range "equal_range"(const T&)
|
|
228
|
+
iterator erase(iterator)
|
|
229
|
+
iterator const_erase "erase"(const_iterator)
|
|
230
|
+
iterator erase(const_iterator, const_iterator)
|
|
231
|
+
size_t erase(const T&)
|
|
232
|
+
iterator find(const T&)
|
|
233
|
+
const_iterator const_find "find"(const T&)
|
|
234
|
+
iterator insert(const pair[T, U]&) except +
|
|
235
|
+
iterator insert(const_iterator, const pair[T, U]&) except +
|
|
236
|
+
void insert[InputIt](InputIt, InputIt) except +
|
|
237
|
+
#key_compare key_comp()
|
|
238
|
+
iterator lower_bound(const T&)
|
|
239
|
+
const_iterator const_lower_bound "lower_bound"(const T&)
|
|
240
|
+
size_t max_size()
|
|
241
|
+
reverse_iterator rbegin()
|
|
242
|
+
const_reverse_iterator const_rbegin "rbegin"()
|
|
243
|
+
const_reverse_iterator crbegin()
|
|
244
|
+
reverse_iterator rend()
|
|
245
|
+
const_reverse_iterator const_rend "rend"()
|
|
246
|
+
const_reverse_iterator crend()
|
|
247
|
+
size_t size()
|
|
248
|
+
void swap(multimap&)
|
|
249
|
+
iterator upper_bound(const T&)
|
|
250
|
+
const_iterator const_upper_bound "upper_bound"(const T&)
|
|
251
|
+
#value_compare value_comp()
|
|
252
|
+
bint contains(const T&)
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
from libcpp cimport bool, nullptr_t, nullptr
|
|
2
|
+
|
|
3
|
+
cdef extern from "<memory>" namespace "std" nogil:
|
|
4
|
+
cdef cppclass default_delete[T]:
|
|
5
|
+
default_delete()
|
|
6
|
+
|
|
7
|
+
cdef cppclass allocator[T]:
|
|
8
|
+
allocator()
|
|
9
|
+
allocator(const allocator &)
|
|
10
|
+
#allocator(const allocator[U] &) #unique_ptr unit tests fail w/this
|
|
11
|
+
T * address(T &)
|
|
12
|
+
const T * address(const T &) const
|
|
13
|
+
T * allocate( size_t n ) # Not to standard. should be a second default argument
|
|
14
|
+
void deallocate(T * , size_t)
|
|
15
|
+
size_t max_size() const
|
|
16
|
+
void construct( T *, const T &) #C++98. The C++11 version is variadic AND perfect-forwarding
|
|
17
|
+
void destroy(T *) #C++98
|
|
18
|
+
void destroy[U](U *) #unique_ptr unit tests fail w/this
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
cdef cppclass unique_ptr[T,DELETER=*]:
|
|
22
|
+
unique_ptr()
|
|
23
|
+
unique_ptr(nullptr_t)
|
|
24
|
+
unique_ptr(T*)
|
|
25
|
+
unique_ptr(unique_ptr[T]&)
|
|
26
|
+
|
|
27
|
+
# Modifiers
|
|
28
|
+
T* release()
|
|
29
|
+
void reset()
|
|
30
|
+
void reset(nullptr_t)
|
|
31
|
+
void reset(T*)
|
|
32
|
+
void swap(unique_ptr&)
|
|
33
|
+
|
|
34
|
+
# Observers
|
|
35
|
+
T* get()
|
|
36
|
+
T& operator*()
|
|
37
|
+
#T* operator->() # Not Supported
|
|
38
|
+
bool operator bool()
|
|
39
|
+
bool operator!()
|
|
40
|
+
|
|
41
|
+
bool operator==(const unique_ptr&)
|
|
42
|
+
bool operator!=(const unique_ptr&)
|
|
43
|
+
bool operator<(const unique_ptr&)
|
|
44
|
+
bool operator>(const unique_ptr&)
|
|
45
|
+
bool operator<=(const unique_ptr&)
|
|
46
|
+
bool operator>=(const unique_ptr&)
|
|
47
|
+
|
|
48
|
+
bool operator==(nullptr_t)
|
|
49
|
+
bool operator!=(nullptr_t)
|
|
50
|
+
|
|
51
|
+
# Forward Declaration not working ("Compiler crash in AnalyseDeclarationsTransform")
|
|
52
|
+
#cdef cppclass weak_ptr[T]
|
|
53
|
+
|
|
54
|
+
cdef cppclass shared_ptr[T]:
|
|
55
|
+
shared_ptr()
|
|
56
|
+
shared_ptr(nullptr_t)
|
|
57
|
+
shared_ptr(T*)
|
|
58
|
+
shared_ptr(shared_ptr[T]&)
|
|
59
|
+
shared_ptr(shared_ptr[T]&, T*)
|
|
60
|
+
shared_ptr(unique_ptr[T]&)
|
|
61
|
+
#shared_ptr(weak_ptr[T]&) # Not Supported
|
|
62
|
+
shared_ptr[T]& operator=[Y](const shared_ptr[Y]& ptr)
|
|
63
|
+
|
|
64
|
+
# Modifiers
|
|
65
|
+
void reset()
|
|
66
|
+
void reset(T*)
|
|
67
|
+
void swap(shared_ptr&)
|
|
68
|
+
|
|
69
|
+
# Observers
|
|
70
|
+
T* get()
|
|
71
|
+
T& operator*()
|
|
72
|
+
#T* operator->() # Not Supported
|
|
73
|
+
long use_count()
|
|
74
|
+
bool unique()
|
|
75
|
+
bool operator bool()
|
|
76
|
+
bool operator!()
|
|
77
|
+
#bool owner_before[Y](const weak_ptr[Y]&) # Not Supported
|
|
78
|
+
bool owner_before[Y](const shared_ptr[Y]&)
|
|
79
|
+
|
|
80
|
+
bool operator==(const shared_ptr&)
|
|
81
|
+
bool operator!=(const shared_ptr&)
|
|
82
|
+
bool operator<(const shared_ptr&)
|
|
83
|
+
bool operator>(const shared_ptr&)
|
|
84
|
+
bool operator<=(const shared_ptr&)
|
|
85
|
+
bool operator>=(const shared_ptr&)
|
|
86
|
+
|
|
87
|
+
bool operator==(nullptr_t)
|
|
88
|
+
bool operator!=(nullptr_t)
|
|
89
|
+
|
|
90
|
+
cdef cppclass weak_ptr[T]:
|
|
91
|
+
weak_ptr()
|
|
92
|
+
weak_ptr(weak_ptr[T]&)
|
|
93
|
+
weak_ptr(shared_ptr[T]&)
|
|
94
|
+
|
|
95
|
+
# Modifiers
|
|
96
|
+
void reset()
|
|
97
|
+
void swap(weak_ptr&)
|
|
98
|
+
|
|
99
|
+
# Observers
|
|
100
|
+
long use_count()
|
|
101
|
+
bool expired()
|
|
102
|
+
shared_ptr[T] lock()
|
|
103
|
+
bool owner_before[Y](const weak_ptr[Y]&)
|
|
104
|
+
bool owner_before[Y](const shared_ptr[Y]&)
|
|
105
|
+
|
|
106
|
+
# Smart pointer non-member operations
|
|
107
|
+
shared_ptr[T] make_shared[T](...) except +
|
|
108
|
+
|
|
109
|
+
unique_ptr[T] make_unique[T](...) except +
|
|
110
|
+
|
|
111
|
+
# No checking on the compatibility of T and U.
|
|
112
|
+
cdef shared_ptr[T] static_pointer_cast[T, U](const shared_ptr[U]&)
|
|
113
|
+
cdef shared_ptr[T] dynamic_pointer_cast[T, U](const shared_ptr[U]&)
|
|
114
|
+
cdef shared_ptr[T] const_pointer_cast[T, U](const shared_ptr[U]&)
|
|
115
|
+
cdef shared_ptr[T] reinterpret_pointer_cast[T, U](const shared_ptr[U]&)
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
from libcpp cimport bool
|
|
2
|
+
|
|
3
|
+
cdef extern from "<mutex>" namespace "std" nogil:
|
|
4
|
+
# For all these mutex classes, we strongly recommend you do not use any
|
|
5
|
+
# blocking lock function while holding the GIL (try_lock should be fine though).
|
|
6
|
+
cppclass mutex:
|
|
7
|
+
# may not be present, and we know nothing about it
|
|
8
|
+
cppclass native_handle_type:
|
|
9
|
+
pass
|
|
10
|
+
|
|
11
|
+
void lock() except+
|
|
12
|
+
bool try_lock()
|
|
13
|
+
void unlock()
|
|
14
|
+
|
|
15
|
+
native_handle_type native_handle() except+
|
|
16
|
+
|
|
17
|
+
cppclass timed_mutex:
|
|
18
|
+
# may not be present, and we know nothing about it
|
|
19
|
+
cppclass native_handle_type:
|
|
20
|
+
pass
|
|
21
|
+
|
|
22
|
+
void lock() except+
|
|
23
|
+
bool try_lock()
|
|
24
|
+
bool try_lock_for[T](const T& duration) except+
|
|
25
|
+
bool try_lock_until[T](const T& time_point) except+
|
|
26
|
+
void unlock()
|
|
27
|
+
|
|
28
|
+
native_handle_type native_handle() except+
|
|
29
|
+
|
|
30
|
+
# We strongly recommend not mixing recursive_mutex and the GIL at all.
|
|
31
|
+
# Because "unlock" may not actually unlock it, it's pretty hard to reason about
|
|
32
|
+
# avoiding deadlocks.
|
|
33
|
+
cppclass recursive_mutex:
|
|
34
|
+
# may not be present, and we know nothing about it
|
|
35
|
+
cppclass native_handle_type:
|
|
36
|
+
pass
|
|
37
|
+
|
|
38
|
+
void lock() except+
|
|
39
|
+
bool try_lock()
|
|
40
|
+
void unlock()
|
|
41
|
+
|
|
42
|
+
native_handle_type native_handle() except+
|
|
43
|
+
|
|
44
|
+
# We strongly recommend not mixing timed_recursive_mutex and the GIL at all.
|
|
45
|
+
# Because "unlock" may not actually unlock it, it's pretty hard to reason about
|
|
46
|
+
# avoiding deadlocks.
|
|
47
|
+
cppclass timed_recursive_mutex:
|
|
48
|
+
# may not be present, and we know nothing about it
|
|
49
|
+
cppclass native_handle_type:
|
|
50
|
+
pass
|
|
51
|
+
|
|
52
|
+
void lock() except+
|
|
53
|
+
bool try_lock()
|
|
54
|
+
bool try_lock_for[T](const T& duration) except+
|
|
55
|
+
bool try_lock_until[T](const T& time_point) except+
|
|
56
|
+
void unlock()
|
|
57
|
+
|
|
58
|
+
native_handle_type native_handle() except+
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
# tags
|
|
62
|
+
cppclass defer_lock_t:
|
|
63
|
+
pass
|
|
64
|
+
defer_lock_t defer_lock
|
|
65
|
+
cppclass try_to_lock_t:
|
|
66
|
+
pass
|
|
67
|
+
try_to_lock_t try_to_lock
|
|
68
|
+
cppclass adopt_lock_t:
|
|
69
|
+
pass
|
|
70
|
+
adopt_lock_t adopt_lock
|
|
71
|
+
|
|
72
|
+
# lock_guard is probably unusable without cpp_locals because it
|
|
73
|
+
# can't be default-constructed or moved.
|
|
74
|
+
# We strongly recommend you do not use this while holding the GIL.
|
|
75
|
+
cppclass lock_guard[T]:
|
|
76
|
+
ctypedef T mutex_type
|
|
77
|
+
lock_guard(mutex_type&) except+
|
|
78
|
+
lock_guard(mutex_type&, adopt_lock_t)
|
|
79
|
+
|
|
80
|
+
# We strongly recommend that you do not use any blocking lock function with the GIL.
|
|
81
|
+
# (try_lock is fine though).
|
|
82
|
+
cppclass unique_lock[T]:
|
|
83
|
+
ctypedef T mutex_type
|
|
84
|
+
unique_lock()
|
|
85
|
+
# This covers both the plain regular constructor, the 3 versions with tags
|
|
86
|
+
# and two std::chrono constructors. The two templated chrono versions stop
|
|
87
|
+
# us from declaring the overloads explicitly.
|
|
88
|
+
unique_lock(mutex_type&, ...) except+
|
|
89
|
+
#unique_lock(mutex_type&, defer_lock_t)
|
|
90
|
+
#unique_lock(mutex_type&, try_to_lock_t) except+
|
|
91
|
+
## this feels like it should be noexcet, but cppreference implies it isn't
|
|
92
|
+
#unique_lock(mutex_type&, adopt_lock_t) except+
|
|
93
|
+
|
|
94
|
+
void lock() except+
|
|
95
|
+
bool try_lock() except+
|
|
96
|
+
bool try_lock_for[T](const T& duration) except+
|
|
97
|
+
bool try_lock_until[T](const T& time_point) except+
|
|
98
|
+
void unlock() except+
|
|
99
|
+
|
|
100
|
+
void swap(unique_lock& other)
|
|
101
|
+
# "release" is definitely not the same as unlock. Noted here because
|
|
102
|
+
# DW always makes this mistake and regrets it and wants to save you
|
|
103
|
+
# from the same fate.
|
|
104
|
+
mutex_type* release()
|
|
105
|
+
|
|
106
|
+
mutex_type* mutex()
|
|
107
|
+
bool owns_lock()
|
|
108
|
+
bool operator bool()
|
|
109
|
+
|
|
110
|
+
# scoped lock is probably unusable without cpp_locals.
|
|
111
|
+
# It's also a variadic template type so can take potentially unlimited number of
|
|
112
|
+
# arguments. Cython doesn't support this, so if you want more than 26 arguments,
|
|
113
|
+
# you're on your own.
|
|
114
|
+
# We strongly recommend that you do not use this while holding the GIL.
|
|
115
|
+
cppclass scoped_lock[A=*, B=*, C=*, D=*, E=*, F=*, G=*, H=*, I=*, J=*, K=*,
|
|
116
|
+
L=*, M=*, N=*, O=*, P=*, Q=*, R=*, S=*, T=*, U=*, V=*,
|
|
117
|
+
W=*, X=*, Y=*, Z=*]:
|
|
118
|
+
scoped_lock(...) except+
|
|
119
|
+
|
|
120
|
+
cppclass once_flag:
|
|
121
|
+
pass
|
|
122
|
+
|
|
123
|
+
bool try_lock(...) except+
|
|
124
|
+
# We strongly recommend that you do not call "lock" while holding the GIL.
|
|
125
|
+
void lock(...) except+
|
|
126
|
+
|
|
127
|
+
# We can't enforce this in the interface, but you need to make sure that Callable
|
|
128
|
+
# doesn't require the GIL and doesn't throw Python exceptions.
|
|
129
|
+
# You should also not call this with the GIL held.
|
|
130
|
+
void call_once[Callable](once_flag&, Callable& callable, ...) except +
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
cdef extern from "<numbers>" namespace "std::numbers" nogil:
|
|
2
|
+
# C++20 mathematical constants
|
|
3
|
+
const double e
|
|
4
|
+
const double log2e
|
|
5
|
+
const double log10e
|
|
6
|
+
const double pi
|
|
7
|
+
const double inv_pi
|
|
8
|
+
const double inv_sqrtpi
|
|
9
|
+
const double ln2
|
|
10
|
+
const double ln10
|
|
11
|
+
const double sqrt2
|
|
12
|
+
const double sqrt3
|
|
13
|
+
const double inv_sqrt3
|
|
14
|
+
const double egamma
|
|
15
|
+
const double phi
|