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,117 @@
|
|
|
1
|
+
from libcpp cimport bool
|
|
2
|
+
|
|
3
|
+
cdef extern from * nogil:
|
|
4
|
+
"""
|
|
5
|
+
// <thread> is defined in C++ and may define __cpp_lib_jthread
|
|
6
|
+
// Including it in this way lets us cimport it in the C++11 condition_variable wrappings
|
|
7
|
+
#include <thread>
|
|
8
|
+
#if defined(__cpp_lib_jthread)
|
|
9
|
+
#include <stop_token>
|
|
10
|
+
#endif
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
cdef extern from * namespace "std" nogil:
|
|
14
|
+
cdef cppclass stop_token:
|
|
15
|
+
bool stop_requested() noexcept
|
|
16
|
+
bool stop_possible() noexcept
|
|
17
|
+
|
|
18
|
+
cdef cppclass nostopstate_t:
|
|
19
|
+
pass
|
|
20
|
+
|
|
21
|
+
nostopstate_t nostopstate
|
|
22
|
+
|
|
23
|
+
cdef cppclass stop_source:
|
|
24
|
+
stop_source() except+
|
|
25
|
+
stop_source(nostopstate_t) noexcept
|
|
26
|
+
|
|
27
|
+
bool request_stop() noexcept
|
|
28
|
+
void swap(stop_source& other) noexcept
|
|
29
|
+
|
|
30
|
+
stop_token get_token() noexcept
|
|
31
|
+
bool stop_requested() noexcept
|
|
32
|
+
bool stop_possible() noexcept
|
|
33
|
+
|
|
34
|
+
# stop_callback is not copyable or moveable which currently means it must
|
|
35
|
+
# be heap-allocated in Cython (although use with cpp_locals should eventually be supported too)
|
|
36
|
+
cdef cppclass stop_callback[Callback]:
|
|
37
|
+
# in principle the second argument is a template argument with a "std::constructable_from" constraint,
|
|
38
|
+
# but for Cython's purposes it probably makes sense to assume no conversion
|
|
39
|
+
stop_callback(stop_token st, Callback cb) noexcept
|
|
40
|
+
|
|
41
|
+
cdef extern from *:
|
|
42
|
+
"""
|
|
43
|
+
#if defined(__cpp_lib_jthread)
|
|
44
|
+
#include <optional>
|
|
45
|
+
#include <utility>
|
|
46
|
+
|
|
47
|
+
namespace {
|
|
48
|
+
using __pyx_func_ptr_stop_callback = std::stop_callback<void (*)()>;
|
|
49
|
+
|
|
50
|
+
class __pyx_python_stop_callback_holder {
|
|
51
|
+
class callable_py_object_holder {
|
|
52
|
+
PyObject *o;
|
|
53
|
+
|
|
54
|
+
public:
|
|
55
|
+
explicit callable_py_object_holder(PyObject *o)
|
|
56
|
+
: o(o)
|
|
57
|
+
{
|
|
58
|
+
Py_INCREF(o);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
callable_py_object_holder(callable_py_object_holder&& rhs)
|
|
62
|
+
: o(std::exchange(rhs.o, nullptr))
|
|
63
|
+
{
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
~callable_py_object_holder() {
|
|
67
|
+
if (o) {
|
|
68
|
+
PyGILState_STATE state = PyGILState_Ensure();
|
|
69
|
+
Py_DECREF(o);
|
|
70
|
+
PyGILState_Release(state);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
callable_py_object_holder(const callable_py_object_holder&) = delete;
|
|
75
|
+
callable_py_object_holder& operator=(const callable_py_object_holder&) = delete;
|
|
76
|
+
|
|
77
|
+
void operator()() const {
|
|
78
|
+
PyGILState_STATE state = PyGILState_Ensure();
|
|
79
|
+
PyObject *result = PyObject_CallObject(o, NULL);
|
|
80
|
+
if (!result) {
|
|
81
|
+
PyObject *s = PyUnicode_FromString("python_stop_callback_holder callback");
|
|
82
|
+
PyErr_WriteUnraisable(s);
|
|
83
|
+
Py_XDECREF(s);
|
|
84
|
+
} else {
|
|
85
|
+
Py_DECREF(result);
|
|
86
|
+
}
|
|
87
|
+
PyGILState_Release(state);
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
std::optional<std::stop_callback<callable_py_object_holder>> callback;
|
|
92
|
+
|
|
93
|
+
public:
|
|
94
|
+
__pyx_python_stop_callback_holder() = default;
|
|
95
|
+
__pyx_python_stop_callback_holder(std::stop_token token, PyObject *callable) {
|
|
96
|
+
initialize(std::move(token), callable);
|
|
97
|
+
}
|
|
98
|
+
__pyx_python_stop_callback_holder(const __pyx_python_stop_callback_holder&) = delete;
|
|
99
|
+
|
|
100
|
+
__pyx_python_stop_callback_holder& operator=(const __pyx_python_stop_callback_holder&) = delete;
|
|
101
|
+
|
|
102
|
+
void initialize(std::stop_token token, PyObject *callable) {
|
|
103
|
+
callback.emplace(std::move(token), callable_py_object_holder(callable));
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
#endif // defined(__cpp_lib_jthread)
|
|
108
|
+
"""
|
|
109
|
+
# This is provided as a convenience mainly as a reminder to use nogil functions!
|
|
110
|
+
ctypedef stop_callback[void (*)() noexcept nogil] func_ptr_stop_callback "__pyx_func_ptr_stop_callback"
|
|
111
|
+
|
|
112
|
+
# A fairly thin wrapper to let you create a stop callback with a Python object.
|
|
113
|
+
# For most uses, it should be created empty and then filled with "initialize"
|
|
114
|
+
cdef cppclass python_stop_callback_holder "__pyx_python_stop_callback_holder":
|
|
115
|
+
python_stop_callback_holder()
|
|
116
|
+
python_stop_callback_holder(stop_token token, object callable)
|
|
117
|
+
void initialize(stop_token token, object callable)
|
|
@@ -0,0 +1,355 @@
|
|
|
1
|
+
|
|
2
|
+
# deprecated cimport for backwards compatibility:
|
|
3
|
+
from libc.string cimport const_char
|
|
4
|
+
|
|
5
|
+
from libcpp.string_view cimport string_view
|
|
6
|
+
|
|
7
|
+
cdef extern from "<string>" namespace "std::string" nogil:
|
|
8
|
+
const size_t npos
|
|
9
|
+
|
|
10
|
+
cdef extern from "<string>" namespace "std" nogil:
|
|
11
|
+
# 21.3.4, numeric conversions
|
|
12
|
+
int stoi(const string& s, size_t* idx, int base) except +
|
|
13
|
+
long stol(const string& s, size_t* idx, int base) except +
|
|
14
|
+
unsigned long stoul(const string& s, size_t* idx, int base) except +
|
|
15
|
+
long long stoll(const string& s, size_t* idx, int base) except +
|
|
16
|
+
unsigned long long stoull(const string& s, size_t* idx, int base) except +
|
|
17
|
+
float stof(const string& s, size_t* idx) except +
|
|
18
|
+
double stod(const string& s, size_t* idx) except +
|
|
19
|
+
long double stold(const string& s, size_t* idx) except +
|
|
20
|
+
|
|
21
|
+
# Duplicate declarations are necessary, because extern functions cannot have default arguments values
|
|
22
|
+
int stoi(const string& s, size_t* idx) except +
|
|
23
|
+
long stol(const string& s, size_t* idx) except +
|
|
24
|
+
unsigned long stoul(const string& s, size_t* idx) except +
|
|
25
|
+
long long stoll(const string& s, size_t* idx) except +
|
|
26
|
+
unsigned long long stoull(const string& s, size_t* idx) except +
|
|
27
|
+
|
|
28
|
+
int stoi(const string& s) except +
|
|
29
|
+
long stol(const string& s) except +
|
|
30
|
+
unsigned long stoul(const string& s) except +
|
|
31
|
+
long long stoll(const string& s) except +
|
|
32
|
+
unsigned long long stoull(const string& s) except +
|
|
33
|
+
float stof(const string& s) except +
|
|
34
|
+
double stod(const string& s) except +
|
|
35
|
+
long double stold(const string& s) except +
|
|
36
|
+
|
|
37
|
+
string to_string(int val) except +
|
|
38
|
+
string to_string(unsigned val) except +
|
|
39
|
+
string to_string(long val) except +
|
|
40
|
+
string to_string(unsigned long val) except +
|
|
41
|
+
string to_string(long long val) except +
|
|
42
|
+
string to_string(unsigned long long val) except +
|
|
43
|
+
string to_string(float val) except +
|
|
44
|
+
string to_string(double val) except +
|
|
45
|
+
string to_string(long double val) except +
|
|
46
|
+
|
|
47
|
+
# Cython doesn't know which size type is equivalent to s/size_t on a given platform
|
|
48
|
+
string to_string(size_t val) except +
|
|
49
|
+
string to_string(ssize_t val) except +
|
|
50
|
+
|
|
51
|
+
cdef cppclass string:
|
|
52
|
+
ctypedef char value_type
|
|
53
|
+
|
|
54
|
+
# these should really be allocator_type.size_type and
|
|
55
|
+
# allocator_type.difference_type to be true to the C++ definition
|
|
56
|
+
# but cython doesn't support deferred access on template arguments
|
|
57
|
+
ctypedef size_t size_type
|
|
58
|
+
ctypedef ptrdiff_t difference_type
|
|
59
|
+
|
|
60
|
+
bint operator==(const string&)
|
|
61
|
+
bint operator==(const char*)
|
|
62
|
+
bint operator!= (const string&)
|
|
63
|
+
bint operator!= (const char*)
|
|
64
|
+
bint operator< (const string&)
|
|
65
|
+
bint operator< (const char*)
|
|
66
|
+
bint operator> (const string&)
|
|
67
|
+
bint operator> (const char*)
|
|
68
|
+
bint operator<= (const string&)
|
|
69
|
+
bint operator<= (const char*)
|
|
70
|
+
bint operator>= (const string&)
|
|
71
|
+
bint operator>= (const char*)
|
|
72
|
+
|
|
73
|
+
string operator+ (const string&) except +
|
|
74
|
+
string operator+ (const char*) except +
|
|
75
|
+
|
|
76
|
+
cppclass const_iterator
|
|
77
|
+
cppclass iterator:
|
|
78
|
+
iterator() except +
|
|
79
|
+
iterator(iterator&) except +
|
|
80
|
+
value_type& operator*()
|
|
81
|
+
iterator operator++()
|
|
82
|
+
iterator operator--()
|
|
83
|
+
iterator operator++(int)
|
|
84
|
+
iterator operator--(int)
|
|
85
|
+
iterator operator+(size_type)
|
|
86
|
+
iterator operator-(size_type)
|
|
87
|
+
difference_type operator-(iterator)
|
|
88
|
+
difference_type operator-(const_iterator)
|
|
89
|
+
bint operator==(iterator)
|
|
90
|
+
bint operator==(const_iterator)
|
|
91
|
+
bint operator!=(iterator)
|
|
92
|
+
bint operator!=(const_iterator)
|
|
93
|
+
bint operator<(iterator)
|
|
94
|
+
bint operator<(const_iterator)
|
|
95
|
+
bint operator>(iterator)
|
|
96
|
+
bint operator>(const_iterator)
|
|
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
|
+
const_iterator(const_iterator&) except +
|
|
105
|
+
operator=(iterator&) except +
|
|
106
|
+
const value_type& operator*()
|
|
107
|
+
const_iterator operator++()
|
|
108
|
+
const_iterator operator--()
|
|
109
|
+
const_iterator operator++(int)
|
|
110
|
+
const_iterator operator--(int)
|
|
111
|
+
const_iterator operator+(size_type)
|
|
112
|
+
const_iterator operator-(size_type)
|
|
113
|
+
difference_type operator-(iterator)
|
|
114
|
+
difference_type operator-(const_iterator)
|
|
115
|
+
bint operator==(iterator)
|
|
116
|
+
bint operator==(const_iterator)
|
|
117
|
+
bint operator!=(iterator)
|
|
118
|
+
bint operator!=(const_iterator)
|
|
119
|
+
bint operator<(iterator)
|
|
120
|
+
bint operator<(const_iterator)
|
|
121
|
+
bint operator>(iterator)
|
|
122
|
+
bint operator>(const_iterator)
|
|
123
|
+
bint operator<=(iterator)
|
|
124
|
+
bint operator<=(const_iterator)
|
|
125
|
+
bint operator>=(iterator)
|
|
126
|
+
bint operator>=(const_iterator)
|
|
127
|
+
|
|
128
|
+
cppclass const_reverse_iterator
|
|
129
|
+
cppclass reverse_iterator:
|
|
130
|
+
reverse_iterator() except +
|
|
131
|
+
reverse_iterator(reverse_iterator&) except +
|
|
132
|
+
value_type& operator*()
|
|
133
|
+
reverse_iterator operator++()
|
|
134
|
+
reverse_iterator operator--()
|
|
135
|
+
reverse_iterator operator++(int)
|
|
136
|
+
reverse_iterator operator--(int)
|
|
137
|
+
reverse_iterator operator+(size_type)
|
|
138
|
+
reverse_iterator operator-(size_type)
|
|
139
|
+
difference_type operator-(iterator)
|
|
140
|
+
difference_type operator-(const_iterator)
|
|
141
|
+
bint operator==(reverse_iterator)
|
|
142
|
+
bint operator==(const_reverse_iterator)
|
|
143
|
+
bint operator!=(reverse_iterator)
|
|
144
|
+
bint operator!=(const_reverse_iterator)
|
|
145
|
+
bint operator<(reverse_iterator)
|
|
146
|
+
bint operator<(const_reverse_iterator)
|
|
147
|
+
bint operator>(reverse_iterator)
|
|
148
|
+
bint operator>(const_reverse_iterator)
|
|
149
|
+
bint operator<=(reverse_iterator)
|
|
150
|
+
bint operator<=(const_reverse_iterator)
|
|
151
|
+
bint operator>=(reverse_iterator)
|
|
152
|
+
bint operator>=(const_reverse_iterator)
|
|
153
|
+
cppclass const_reverse_iterator:
|
|
154
|
+
const_reverse_iterator() except +
|
|
155
|
+
const_reverse_iterator(reverse_iterator&) except +
|
|
156
|
+
operator=(reverse_iterator&) except +
|
|
157
|
+
const value_type& operator*()
|
|
158
|
+
const_reverse_iterator operator++()
|
|
159
|
+
const_reverse_iterator operator--()
|
|
160
|
+
const_reverse_iterator operator++(int)
|
|
161
|
+
const_reverse_iterator operator--(int)
|
|
162
|
+
const_reverse_iterator operator+(size_type)
|
|
163
|
+
const_reverse_iterator operator-(size_type)
|
|
164
|
+
difference_type operator-(iterator)
|
|
165
|
+
difference_type operator-(const_iterator)
|
|
166
|
+
bint operator==(reverse_iterator)
|
|
167
|
+
bint operator==(const_reverse_iterator)
|
|
168
|
+
bint operator!=(reverse_iterator)
|
|
169
|
+
bint operator!=(const_reverse_iterator)
|
|
170
|
+
bint operator<(reverse_iterator)
|
|
171
|
+
bint operator<(const_reverse_iterator)
|
|
172
|
+
bint operator>(reverse_iterator)
|
|
173
|
+
bint operator>(const_reverse_iterator)
|
|
174
|
+
bint operator<=(reverse_iterator)
|
|
175
|
+
bint operator<=(const_reverse_iterator)
|
|
176
|
+
bint operator>=(reverse_iterator)
|
|
177
|
+
bint operator>=(const_reverse_iterator)
|
|
178
|
+
|
|
179
|
+
# 21.3.2.2, construct/copy/destroy
|
|
180
|
+
string() except + # (1)
|
|
181
|
+
string(const string& s) except + # (3)
|
|
182
|
+
string(const string& s, size_t pos) except + # (5)
|
|
183
|
+
string(const string& s, size_t pos, size_t len) except + # (6)
|
|
184
|
+
string(const char* s, size_t n) except + # (9)
|
|
185
|
+
string(const char* s) except + # (10)
|
|
186
|
+
string(size_t n, char c) except + # (11)
|
|
187
|
+
string(const string_view& sv) except +
|
|
188
|
+
# type (string&) is needed here so that Cython can compile templated definition
|
|
189
|
+
string& string[InputIt](InputIt, InputIt) except + # (12)
|
|
190
|
+
|
|
191
|
+
#string& operator= (const string&)
|
|
192
|
+
#string& operator= (const char*)
|
|
193
|
+
#string& operator= (char)
|
|
194
|
+
|
|
195
|
+
# 21.3.2.3, iterators
|
|
196
|
+
iterator begin()
|
|
197
|
+
const_iterator const_begin "begin"()
|
|
198
|
+
iterator end()
|
|
199
|
+
const_iterator const_end "end"()
|
|
200
|
+
|
|
201
|
+
reverse_iterator rbegin()
|
|
202
|
+
const_reverse_iterator const_rbegin "rbegin"()
|
|
203
|
+
reverse_iterator rend()
|
|
204
|
+
const_reverse_iterator const_rend "rend"()
|
|
205
|
+
|
|
206
|
+
const_iterator cbegin()
|
|
207
|
+
const_iterator cend()
|
|
208
|
+
const_reverse_iterator crbegin()
|
|
209
|
+
const_reverse_iterator crend()
|
|
210
|
+
|
|
211
|
+
# 21.3.2.4, capacity
|
|
212
|
+
size_t size()
|
|
213
|
+
size_t length()
|
|
214
|
+
size_t max_size()
|
|
215
|
+
void resize(size_t, char) except +
|
|
216
|
+
void resize(size_t) except +
|
|
217
|
+
size_t capacity()
|
|
218
|
+
void reserve(size_t) except +
|
|
219
|
+
void shrink_to_fit() except +
|
|
220
|
+
void clear()
|
|
221
|
+
bint empty()
|
|
222
|
+
|
|
223
|
+
# 21.3.2.5, element access
|
|
224
|
+
char& operator[](size_t pos)
|
|
225
|
+
char& at(size_t pos) except +
|
|
226
|
+
|
|
227
|
+
char& front()
|
|
228
|
+
char& back()
|
|
229
|
+
|
|
230
|
+
# 21.3.2.6, modifiers
|
|
231
|
+
string& append(const string& s) except + # (1)
|
|
232
|
+
string& append(const string& s, size_t subpos, size_t sublen) except + # (2)
|
|
233
|
+
string& append(const char* s) except + # (5)
|
|
234
|
+
string& append(const char* s, size_t n) except + # (6)
|
|
235
|
+
string& append(size_t n, char c) except + # (7)
|
|
236
|
+
string& append[InputIt](InputIt, InputIt) except + # (8)
|
|
237
|
+
|
|
238
|
+
void push_back(char c) except +
|
|
239
|
+
|
|
240
|
+
string& assign(const string& s) except + # (1)
|
|
241
|
+
string& assign(const string& s, size_t subpos, size_t sublen) except + # (3)
|
|
242
|
+
string& assign(const char* s, size_t n) except + # (6)
|
|
243
|
+
string& assign(const char* s) except + # (7)
|
|
244
|
+
string& assign(size_t n, char c) except + # (8)
|
|
245
|
+
string& assign[InputIt](InputIt, InputIt) except + # (9)
|
|
246
|
+
|
|
247
|
+
string& insert(size_t pos, const string& s) except + # (1)
|
|
248
|
+
string& insert(size_t pos, const string& s, size_t subpos, size_t sublen) except + # (2)
|
|
249
|
+
string& insert(size_t pos, const char* s, size_t n) except + # (5)
|
|
250
|
+
string& insert(size_t pos, const char* s) except + # (6)
|
|
251
|
+
string& insert(size_t pos, size_t n, char c) except + # (7)
|
|
252
|
+
iterator insert(iterator p, char c) except + # (8)
|
|
253
|
+
iterator insert(iterator p, size_t n, char c) except + # (9)
|
|
254
|
+
# This method should be templated in InputIt arguments, but then it is not resolved by Cython
|
|
255
|
+
iterator insert(iterator, iterator, iterator) except + # (10)
|
|
256
|
+
|
|
257
|
+
string& erase(size_t pos, size_t len) except + # (1)
|
|
258
|
+
string& erase(size_t pos) except + # (1)
|
|
259
|
+
string& erase() except + # (1)
|
|
260
|
+
iterator erase(iterator p) except + # (2)
|
|
261
|
+
iterator erase(const_iterator p) except +
|
|
262
|
+
iterator erase(iterator first, iterator last) except + # (3)
|
|
263
|
+
iterator erase(const_iterator first, const_iterator last) except +
|
|
264
|
+
|
|
265
|
+
void pop_back()
|
|
266
|
+
|
|
267
|
+
string& replace(size_t pos, size_t len, const string& str) except + # (1)
|
|
268
|
+
string& replace(size_t pos, size_t len, const string& str, size_t subpos, size_t sublen) except + # (2)
|
|
269
|
+
string& replace(size_t pos, size_t len, const char* s, size_t n) except + # (5)
|
|
270
|
+
string& replace(size_t pos, size_t len, const char* s) except + # (6)
|
|
271
|
+
string& replace(size_t pos, size_t len, size_t n, char c) except + # (7)
|
|
272
|
+
string& replace(iterator i1, iterator i2, const string& str) except + # (8)
|
|
273
|
+
string& replace(iterator i1, iterator i2, const char* s, size_t n) except + # (10)
|
|
274
|
+
string& replace(iterator i1, iterator i2, const char* s) except + # (11)
|
|
275
|
+
string& replace(iterator i1, iterator i2, size_t n, char c) except + # (12)
|
|
276
|
+
string& replace(iterator i1, iterator i2, iterator j1, iterator j2) except + # (13)
|
|
277
|
+
|
|
278
|
+
size_t copy(char* s, size_t len, size_t pos) except +
|
|
279
|
+
size_t copy(char* s, size_t len) except +
|
|
280
|
+
|
|
281
|
+
void swap(string& other)
|
|
282
|
+
|
|
283
|
+
# 21.3.2.7, string operations
|
|
284
|
+
const char* c_str()
|
|
285
|
+
const char* data()
|
|
286
|
+
|
|
287
|
+
size_t find(const string& s, size_t pos)
|
|
288
|
+
size_t find(const string& s)
|
|
289
|
+
size_t find(const char* s, size_t pos, size_t n)
|
|
290
|
+
size_t find(const char* s, size_t pos)
|
|
291
|
+
size_t find(const char* s)
|
|
292
|
+
size_t find(char c, size_t pos)
|
|
293
|
+
size_t find(char c)
|
|
294
|
+
|
|
295
|
+
size_t rfind(const string&, size_t pos)
|
|
296
|
+
size_t rfind(const string&)
|
|
297
|
+
size_t rfind(const char* s, size_t pos, size_t n)
|
|
298
|
+
size_t rfind(const char* s, size_t pos)
|
|
299
|
+
size_t rfind(const char* s)
|
|
300
|
+
size_t rfind(char c, size_t pos)
|
|
301
|
+
size_t rfind(char c)
|
|
302
|
+
|
|
303
|
+
size_t find_first_of(const string&, size_t pos)
|
|
304
|
+
size_t find_first_of(const string&)
|
|
305
|
+
size_t find_first_of(const char* s, size_t pos, size_t n)
|
|
306
|
+
size_t find_first_of(const char* s, size_t pos)
|
|
307
|
+
size_t find_first_of(const char* s)
|
|
308
|
+
size_t find_first_of(char c, size_t pos)
|
|
309
|
+
size_t find_first_of(char c)
|
|
310
|
+
|
|
311
|
+
size_t find_first_not_of(const string& s, size_t pos)
|
|
312
|
+
size_t find_first_not_of(const string& s)
|
|
313
|
+
size_t find_first_not_of(const char* s, size_t pos, size_t n)
|
|
314
|
+
size_t find_first_not_of(const char* s, size_t pos)
|
|
315
|
+
size_t find_first_not_of(const char*)
|
|
316
|
+
size_t find_first_not_of(char c, size_t pos)
|
|
317
|
+
size_t find_first_not_of(char c)
|
|
318
|
+
|
|
319
|
+
size_t find_last_of(const string& s, size_t pos)
|
|
320
|
+
size_t find_last_of(const string& s)
|
|
321
|
+
size_t find_last_of(const char* s, size_t pos, size_t n)
|
|
322
|
+
size_t find_last_of(const char* s, size_t pos)
|
|
323
|
+
size_t find_last_of(const char* s)
|
|
324
|
+
size_t find_last_of(char c, size_t pos)
|
|
325
|
+
size_t find_last_of(char c)
|
|
326
|
+
|
|
327
|
+
size_t find_last_not_of(const string& s, size_t pos)
|
|
328
|
+
size_t find_last_not_of(const string& s)
|
|
329
|
+
size_t find_last_not_of(const char* s, size_t pos, size_t n)
|
|
330
|
+
size_t find_last_not_of(const char* s, size_t pos)
|
|
331
|
+
size_t find_last_not_of(const char* s)
|
|
332
|
+
size_t find_last_not_of(char c, size_t pos)
|
|
333
|
+
size_t find_last_not_of(char c)
|
|
334
|
+
|
|
335
|
+
string substr(size_t pos, size_t len) except +
|
|
336
|
+
string substr(size_t pos) except +
|
|
337
|
+
string substr()
|
|
338
|
+
|
|
339
|
+
int compare(const string& s)
|
|
340
|
+
int compare(size_t pos, size_t len, const string& s) except +
|
|
341
|
+
int compare(size_t pos, size_t len, const string& s, size_t subpos, size_t sublen) except +
|
|
342
|
+
int compare(const char* s) except +
|
|
343
|
+
int compare(size_t pos, size_t len, const char* s) except +
|
|
344
|
+
int compare(size_t pos, size_t len, const char* s , size_t n) except +
|
|
345
|
+
|
|
346
|
+
# C++20
|
|
347
|
+
bint starts_with(char c) except +
|
|
348
|
+
bint starts_with(const char* s)
|
|
349
|
+
|
|
350
|
+
bint ends_with(char c) except +
|
|
351
|
+
bint ends_with(const char* s)
|
|
352
|
+
|
|
353
|
+
# C++23
|
|
354
|
+
bint contains(char c) except +
|
|
355
|
+
bint contains(const char* s)
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
from libcpp.string cimport string
|
|
2
|
+
|
|
3
|
+
cdef extern from "<string_view>" namespace "std::string_view" nogil:
|
|
4
|
+
const size_t npos
|
|
5
|
+
|
|
6
|
+
cdef extern from "<string_view>" namespace "std" nogil:
|
|
7
|
+
|
|
8
|
+
cdef cppclass string_view:
|
|
9
|
+
ctypedef char value_type
|
|
10
|
+
ctypedef size_t size_type
|
|
11
|
+
ctypedef ptrdiff_t difference_type
|
|
12
|
+
|
|
13
|
+
bint operator==(string_view)
|
|
14
|
+
bint operator!= (string_view)
|
|
15
|
+
bint operator< (string_view)
|
|
16
|
+
bint operator> (string_view)
|
|
17
|
+
bint operator<= (string_view)
|
|
18
|
+
bint operator>= (string_view)
|
|
19
|
+
|
|
20
|
+
cppclass const_iterator:
|
|
21
|
+
const_iterator()
|
|
22
|
+
const_iterator(const_iterator&)
|
|
23
|
+
operator=(const_iterator&)
|
|
24
|
+
const value_type& operator*()
|
|
25
|
+
const_iterator operator++()
|
|
26
|
+
const_iterator operator--()
|
|
27
|
+
const_iterator operator++(int)
|
|
28
|
+
const_iterator operator--(int)
|
|
29
|
+
const_iterator operator+(size_type)
|
|
30
|
+
const_iterator operator-(size_type)
|
|
31
|
+
difference_type operator-(const_iterator)
|
|
32
|
+
bint operator==(const_iterator)
|
|
33
|
+
bint operator!=(const_iterator)
|
|
34
|
+
bint operator<(const_iterator)
|
|
35
|
+
bint operator>(const_iterator)
|
|
36
|
+
bint operator<=(const_iterator)
|
|
37
|
+
bint operator>=(const_iterator)
|
|
38
|
+
|
|
39
|
+
ctypedef const_iterator iterator
|
|
40
|
+
|
|
41
|
+
cppclass const_reverse_iterator:
|
|
42
|
+
const_reverse_iterator()
|
|
43
|
+
const_reverse_iterator(const_reverse_iterator&)
|
|
44
|
+
operator=(const_reverse_iterator&)
|
|
45
|
+
const value_type& operator*()
|
|
46
|
+
const_reverse_iterator operator++()
|
|
47
|
+
const_reverse_iterator operator--()
|
|
48
|
+
const_reverse_iterator operator++(int)
|
|
49
|
+
const_reverse_iterator operator--(int)
|
|
50
|
+
const_reverse_iterator operator+(size_type)
|
|
51
|
+
const_reverse_iterator operator-(size_type)
|
|
52
|
+
difference_type operator-(const_reverse_iterator)
|
|
53
|
+
bint operator==(const_reverse_iterator)
|
|
54
|
+
bint operator!=(const_reverse_iterator)
|
|
55
|
+
bint operator<(const_reverse_iterator)
|
|
56
|
+
bint operator>(const_reverse_iterator)
|
|
57
|
+
bint operator<=(const_reverse_iterator)
|
|
58
|
+
bint operator>=(const_reverse_iterator)
|
|
59
|
+
|
|
60
|
+
ctypedef const_reverse_iterator reverse_iterator
|
|
61
|
+
|
|
62
|
+
# Constructors
|
|
63
|
+
string_view() # (1)
|
|
64
|
+
string_view(string_view s) # (2)
|
|
65
|
+
string_view(const char* s, size_t n) # (3)
|
|
66
|
+
string_view(const char* s) # (4)
|
|
67
|
+
string_view& string_view[InputIt](InputIt, InputIt) # (5)
|
|
68
|
+
|
|
69
|
+
# This should be `operator string_view()` on std::string, but
|
|
70
|
+
# Cython doesn't yet allow declaring it.
|
|
71
|
+
string_view(const string&)
|
|
72
|
+
|
|
73
|
+
# Assignment
|
|
74
|
+
string_view& operator=(string_view)
|
|
75
|
+
# Not strictly operator= but work by implicit conversion
|
|
76
|
+
string_view& operator=(const string& s)
|
|
77
|
+
|
|
78
|
+
# Iterators
|
|
79
|
+
const_iterator begin()
|
|
80
|
+
const_iterator end()
|
|
81
|
+
const_iterator cbegin()
|
|
82
|
+
const_iterator cend()
|
|
83
|
+
|
|
84
|
+
const_reverse_iterator rbegin()
|
|
85
|
+
const_reverse_iterator rend()
|
|
86
|
+
const_reverse_iterator crbegin()
|
|
87
|
+
const_reverse_iterator crend()
|
|
88
|
+
|
|
89
|
+
# Capacity
|
|
90
|
+
size_t size()
|
|
91
|
+
size_t length()
|
|
92
|
+
size_t max_size()
|
|
93
|
+
bint empty()
|
|
94
|
+
|
|
95
|
+
# Element access
|
|
96
|
+
const char& operator[](size_t pos)
|
|
97
|
+
const char& at(size_t pos) except +
|
|
98
|
+
const char& front()
|
|
99
|
+
const char& back()
|
|
100
|
+
|
|
101
|
+
const char* data()
|
|
102
|
+
|
|
103
|
+
# Modifiers
|
|
104
|
+
void remove_prefix(size_t n)
|
|
105
|
+
void remove_suffix(size_t n)
|
|
106
|
+
void swap(string_view& other)
|
|
107
|
+
|
|
108
|
+
# Operations
|
|
109
|
+
size_t copy(char* dest, size_t count, size_t pos)
|
|
110
|
+
size_t copy(char* dest, size_t count)
|
|
111
|
+
|
|
112
|
+
size_t find(string_view s, size_t pos)
|
|
113
|
+
size_t find(string_view s)
|
|
114
|
+
size_t find(const char* s, size_t pos, size_t n)
|
|
115
|
+
size_t find(const char* s, size_t pos)
|
|
116
|
+
size_t find(const char* s)
|
|
117
|
+
size_t find(char c, size_t pos)
|
|
118
|
+
size_t find(char c)
|
|
119
|
+
|
|
120
|
+
size_t rfind(string_view, size_t pos)
|
|
121
|
+
size_t rfind(string_view)
|
|
122
|
+
size_t rfind(const char* s, size_t pos, size_t n)
|
|
123
|
+
size_t rfind(const char* s, size_t pos)
|
|
124
|
+
size_t rfind(const char* s)
|
|
125
|
+
size_t rfind(char c, size_t pos)
|
|
126
|
+
size_t rfind(char c)
|
|
127
|
+
|
|
128
|
+
size_t find_first_of(string_view, size_t pos)
|
|
129
|
+
size_t find_first_of(string_view)
|
|
130
|
+
size_t find_first_of(const char* s, size_t pos, size_t n)
|
|
131
|
+
size_t find_first_of(const char* s, size_t pos)
|
|
132
|
+
size_t find_first_of(const char* s)
|
|
133
|
+
size_t find_first_of(char c, size_t pos)
|
|
134
|
+
size_t find_first_of(char c)
|
|
135
|
+
|
|
136
|
+
size_t find_first_not_of(string_view s, size_t pos)
|
|
137
|
+
size_t find_first_not_of(string_view s)
|
|
138
|
+
size_t find_first_not_of(const char* s, size_t pos, size_t n)
|
|
139
|
+
size_t find_first_not_of(const char* s, size_t pos)
|
|
140
|
+
size_t find_first_not_of(const char*)
|
|
141
|
+
size_t find_first_not_of(char c, size_t pos)
|
|
142
|
+
size_t find_first_not_of(char c)
|
|
143
|
+
|
|
144
|
+
size_t find_last_of(string_view s, size_t pos)
|
|
145
|
+
size_t find_last_of(string_view s)
|
|
146
|
+
size_t find_last_of(const char* s, size_t pos, size_t n)
|
|
147
|
+
size_t find_last_of(const char* s, size_t pos)
|
|
148
|
+
size_t find_last_of(const char* s)
|
|
149
|
+
size_t find_last_of(char c, size_t pos)
|
|
150
|
+
size_t find_last_of(char c)
|
|
151
|
+
|
|
152
|
+
size_t find_last_not_of(string_view s, size_t pos)
|
|
153
|
+
size_t find_last_not_of(string_view s)
|
|
154
|
+
size_t find_last_not_of(const char* s, size_t pos, size_t n)
|
|
155
|
+
size_t find_last_not_of(const char* s, size_t pos)
|
|
156
|
+
size_t find_last_not_of(const char* s)
|
|
157
|
+
size_t find_last_not_of(char c, size_t pos)
|
|
158
|
+
size_t find_last_not_of(char c)
|
|
159
|
+
|
|
160
|
+
string_view substr(size_t pos, size_t len) except +
|
|
161
|
+
string_view substr(size_t pos) except +
|
|
162
|
+
string_view substr()
|
|
163
|
+
|
|
164
|
+
int compare(string_view s)
|
|
165
|
+
int compare(size_t pos, size_t len, string_view s)
|
|
166
|
+
int compare(size_t pos, size_t len, string_view s, size_t subpos, size_t sublen)
|
|
167
|
+
int compare(const char* s)
|
|
168
|
+
int compare(size_t pos, size_t len, const char* s)
|
|
169
|
+
int compare(size_t pos, size_t len, const char* s , size_t n)
|
|
170
|
+
|
|
171
|
+
# C++20
|
|
172
|
+
bint starts_with(string_view s)
|
|
173
|
+
bint starts_with(char c)
|
|
174
|
+
bint starts_with(const char* s)
|
|
175
|
+
|
|
176
|
+
bint ends_with(string_view s)
|
|
177
|
+
bint ends_with(char c)
|
|
178
|
+
bint ends_with(const char* s)
|
|
179
|
+
|
|
180
|
+
# C++23
|
|
181
|
+
bint contains(string_view s)
|
|
182
|
+
bint contains(char c)
|
|
183
|
+
bint contains(const char* s)
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
from libcpp cimport bool
|
|
2
|
+
from .typeinfo cimport type_info
|
|
3
|
+
|
|
4
|
+
# This class is C++11-only
|
|
5
|
+
cdef extern from "<typeindex>" namespace "std" nogil:
|
|
6
|
+
cdef cppclass type_index:
|
|
7
|
+
type_index(const type_info &)
|
|
8
|
+
const char* name()
|
|
9
|
+
size_t hash_code()
|
|
10
|
+
bool operator==(const type_index &)
|
|
11
|
+
bool operator!=(const type_index &)
|
|
12
|
+
bool operator<(const type_index &)
|
|
13
|
+
bool operator<=(const type_index &)
|
|
14
|
+
bool operator>(const type_index &)
|
|
15
|
+
bool operator>=(const type_index &)
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
from libcpp cimport bool
|
|
2
|
+
|
|
3
|
+
cdef extern from "<typeinfo>" namespace "std" nogil:
|
|
4
|
+
cdef cppclass type_info:
|
|
5
|
+
const char* name()
|
|
6
|
+
int before(const type_info&)
|
|
7
|
+
bool operator==(const type_info&)
|
|
8
|
+
bool operator!=(const type_info&)
|
|
9
|
+
# C++11-only
|
|
10
|
+
size_t hash_code()
|