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