Cython 3.2.0__cp39-abi3-win32.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 +350 -0
- Cython/Build/Dependencies.py +1314 -0
- Cython/Build/Distutils.py +1 -0
- Cython/Build/Inline.py +463 -0
- Cython/Build/IpythonMagic.py +560 -0
- Cython/Build/SharedModule.py +94 -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 +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 +984 -0
- Cython/Compiler/CmdLine.py +263 -0
- Cython/Compiler/Code.pxd +149 -0
- Cython/Compiler/Code.py +3746 -0
- Cython/Compiler/Code.pyd +0 -0
- Cython/Compiler/CodeGeneration.py +33 -0
- Cython/Compiler/CythonScope.py +191 -0
- Cython/Compiler/Dataclass.py +864 -0
- Cython/Compiler/DebugFlags.py +24 -0
- Cython/Compiler/Errors.py +297 -0
- Cython/Compiler/ExprNodes.py +15562 -0
- Cython/Compiler/FlowControl.pxd +97 -0
- Cython/Compiler/FlowControl.py +1451 -0
- Cython/Compiler/FlowControl.pyd +0 -0
- Cython/Compiler/FusedNode.py +971 -0
- Cython/Compiler/FusedNode.pyd +0 -0
- Cython/Compiler/Future.py +16 -0
- Cython/Compiler/Interpreter.py +57 -0
- Cython/Compiler/Lexicon.py +421 -0
- Cython/Compiler/LineTable.py +114 -0
- Cython/Compiler/LineTable.pyd +0 -0
- Cython/Compiler/Main.py +857 -0
- Cython/Compiler/MatchCaseNodes.py +259 -0
- Cython/Compiler/MemoryView.py +905 -0
- Cython/Compiler/ModuleNode.py +4235 -0
- Cython/Compiler/Naming.py +363 -0
- Cython/Compiler/Nodes.py +10831 -0
- Cython/Compiler/Optimize.py +5288 -0
- Cython/Compiler/Options.py +843 -0
- Cython/Compiler/ParseTreeTransforms.pxd +78 -0
- Cython/Compiler/ParseTreeTransforms.py +4638 -0
- Cython/Compiler/Parsing.pxd +9 -0
- Cython/Compiler/Parsing.py +4775 -0
- Cython/Compiler/Parsing.pyd +0 -0
- Cython/Compiler/Pipeline.py +439 -0
- Cython/Compiler/PyrexTypes.py +5870 -0
- Cython/Compiler/Pythran.py +232 -0
- Cython/Compiler/Scanning.pxd +48 -0
- Cython/Compiler/Scanning.py +701 -0
- Cython/Compiler/Scanning.pyd +0 -0
- Cython/Compiler/StringEncoding.py +298 -0
- Cython/Compiler/Symtab.py +3073 -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 +144 -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 +21 -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 +591 -0
- Cython/Compiler/TypeSlots.py +1174 -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/Visitor.pyd +0 -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 +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 +178 -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 +141 -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 +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 +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 +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/Plex/Actions.pxd +24 -0
- Cython/Plex/Actions.py +119 -0
- Cython/Plex/Actions.pyd +0 -0
- Cython/Plex/DFA.pxd +14 -0
- Cython/Plex/DFA.py +164 -0
- Cython/Plex/DFA.pyd +0 -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/Machines.pyd +0 -0
- Cython/Plex/Regexps.py +535 -0
- Cython/Plex/Scanners.pxd +45 -0
- Cython/Plex/Scanners.py +328 -0
- Cython/Plex/Scanners.pyd +0 -0
- Cython/Plex/Transitions.pxd +14 -0
- Cython/Plex/Transitions.py +239 -0
- Cython/Plex/Transitions.pyd +0 -0
- Cython/Plex/__init__.py +34 -0
- Cython/Runtime/__init__.py +1 -0
- Cython/Runtime/refnanny.pyd +0 -0
- Cython/Runtime/refnanny.pyx +237 -0
- Cython/Shadow.py +690 -0
- Cython/Shadow.pyi +521 -0
- Cython/StringIOTree.py +170 -0
- Cython/StringIOTree.pyd +0 -0
- Cython/Tempita/__init__.py +4 -0
- Cython/Tempita/_looper.py +154 -0
- Cython/Tempita/_tempita.py +1091 -0
- Cython/Tempita/_tempita.pyd +0 -0
- Cython/TestUtils.py +422 -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 +1031 -0
- Cython/Utility/Buffer.c +865 -0
- Cython/Utility/BufferFormatFromTypeInfo.pxd +2 -0
- Cython/Utility/Builtins.c +810 -0
- Cython/Utility/CConvert.pyx +134 -0
- Cython/Utility/CMath.c +104 -0
- Cython/Utility/CommonStructures.c +226 -0
- Cython/Utility/Complex.c +378 -0
- Cython/Utility/Coroutine.c +2300 -0
- Cython/Utility/CpdefEnums.pyx +103 -0
- Cython/Utility/CppConvert.pyx +282 -0
- Cython/Utility/CppSupport.cpp +151 -0
- Cython/Utility/CythonFunction.c +1832 -0
- Cython/Utility/Dataclasses.c +101 -0
- Cython/Utility/Embed.c +121 -0
- Cython/Utility/Exceptions.c +1016 -0
- Cython/Utility/ExtensionTypes.c +996 -0
- Cython/Utility/FunctionArguments.c +1043 -0
- Cython/Utility/FusedFunction.pyx +44 -0
- Cython/Utility/ImportExport.c +907 -0
- Cython/Utility/MemoryView.pxd +188 -0
- Cython/Utility/MemoryView.pyx +1482 -0
- Cython/Utility/MemoryView_C.c +927 -0
- Cython/Utility/ModuleSetupCode.c +3203 -0
- Cython/Utility/NumpyImportArray.c +46 -0
- Cython/Utility/ObjectHandling.c +3273 -0
- Cython/Utility/Optimize.c +1603 -0
- Cython/Utility/Overflow.c +384 -0
- Cython/Utility/Printing.c +86 -0
- Cython/Utility/Profile.c +732 -0
- Cython/Utility/StringTools.c +1379 -0
- Cython/Utility/Synchronization.c +399 -0
- Cython/Utility/TString.c +356 -0
- Cython/Utility/TestCyUtilityLoader.pyx +8 -0
- Cython/Utility/TestCythonScope.pyx +75 -0
- Cython/Utility/TestUtilityLoader.c +12 -0
- Cython/Utility/TypeConversion.c +1385 -0
- Cython/Utility/UFuncs.pyx +50 -0
- Cython/Utility/UFuncs_C.c +89 -0
- Cython/Utility/__init__.py +28 -0
- Cython/Utility/arrayarray.h +167 -0
- Cython/Utils.py +687 -0
- Cython/Utils.pyd +0 -0
- Cython/__init__.py +10 -0
- Cython/__init__.pyi +7 -0
- Cython/py.typed +0 -0
- cython-3.2.0.dist-info/METADATA +85 -0
- cython-3.2.0.dist-info/RECORD +333 -0
- cython-3.2.0.dist-info/WHEEL +5 -0
- cython-3.2.0.dist-info/entry_points.txt +4 -0
- cython-3.2.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,129 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Cython implementation of (parts of) the standard library time module.
|
|
3
|
+
|
|
4
|
+
Note: On implementations that lack a C-API for monotonic/perfcounter clocks
|
|
5
|
+
(like PyPy), the fallback code uses the system clock which may return absolute
|
|
6
|
+
time values from a different value range, differing from those provided by
|
|
7
|
+
Python's "time" module.
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
from libc.stdint cimport int64_t
|
|
11
|
+
from cpython.exc cimport PyErr_SetFromErrno
|
|
12
|
+
|
|
13
|
+
cdef extern from *:
|
|
14
|
+
"""
|
|
15
|
+
#if PY_VERSION_HEX >= 0x030d00b1 || defined(PyTime_t)
|
|
16
|
+
#define __Pyx_PyTime_t PyTime_t
|
|
17
|
+
#else
|
|
18
|
+
#define __Pyx_PyTime_t _PyTime_t
|
|
19
|
+
#endif
|
|
20
|
+
|
|
21
|
+
#if PY_VERSION_HEX >= 0x030d00b1 || defined(PyTime_TimeRaw)
|
|
22
|
+
static CYTHON_INLINE __Pyx_PyTime_t __Pyx_PyTime_TimeRaw(void) {
|
|
23
|
+
__Pyx_PyTime_t tic;
|
|
24
|
+
(void) PyTime_TimeRaw(&tic);
|
|
25
|
+
return tic;
|
|
26
|
+
}
|
|
27
|
+
#else
|
|
28
|
+
#define __Pyx_PyTime_TimeRaw() _PyTime_GetSystemClock()
|
|
29
|
+
#endif
|
|
30
|
+
|
|
31
|
+
#if PY_VERSION_HEX >= 0x030d00b1 || defined(PyTime_MonotonicRaw)
|
|
32
|
+
static CYTHON_INLINE __Pyx_PyTime_t __Pyx_PyTime_MonotonicRaw(void) {
|
|
33
|
+
__Pyx_PyTime_t tic;
|
|
34
|
+
(void) PyTime_MonotonicRaw(&tic);
|
|
35
|
+
return tic;
|
|
36
|
+
}
|
|
37
|
+
#elif CYTHON_COMPILING_IN_PYPY && !defined(_PyTime_GetMonotonicClock)
|
|
38
|
+
#define __Pyx_PyTime_MonotonicRaw() _PyTime_GetSystemClock()
|
|
39
|
+
#else
|
|
40
|
+
#define __Pyx_PyTime_MonotonicRaw() _PyTime_GetMonotonicClock()
|
|
41
|
+
#endif
|
|
42
|
+
|
|
43
|
+
#if PY_VERSION_HEX >= 0x030d00b1 || defined(PyTime_PerfCounterRaw)
|
|
44
|
+
static CYTHON_INLINE __Pyx_PyTime_t __Pyx_PyTime_PerfCounterRaw(void) {
|
|
45
|
+
__Pyx_PyTime_t tic;
|
|
46
|
+
(void) PyTime_PerfCounterRaw(&tic);
|
|
47
|
+
return tic;
|
|
48
|
+
}
|
|
49
|
+
#elif CYTHON_COMPILING_IN_PYPY && !defined(_PyTime_GetPerfCounter)
|
|
50
|
+
#define __Pyx_PyTime_PerfCounterRaw() __Pyx_PyTime_MonotonicRaw()
|
|
51
|
+
#else
|
|
52
|
+
#define __Pyx_PyTime_PerfCounterRaw() _PyTime_GetPerfCounter()
|
|
53
|
+
#endif
|
|
54
|
+
|
|
55
|
+
#if PY_VERSION_HEX >= 0x030d00b1 || defined(PyTime_AsSecondsDouble)
|
|
56
|
+
#define __Pyx_PyTime_AsSecondsDouble(t) PyTime_AsSecondsDouble(t)
|
|
57
|
+
#else
|
|
58
|
+
#define __Pyx_PyTime_AsSecondsDouble(t) _PyTime_AsSecondsDouble(t)
|
|
59
|
+
#endif
|
|
60
|
+
"""
|
|
61
|
+
ctypedef int64_t PyTime_t "__Pyx_PyTime_t"
|
|
62
|
+
|
|
63
|
+
ctypedef PyTime_t _PyTime_t "__Pyx_PyTime_t" # legacy, use "PyTime_t" instead
|
|
64
|
+
PyTime_t PyTime_TimeUnchecked "__Pyx_PyTime_TimeRaw" () noexcept nogil # legacy, use "PyTime_TimeRaw" instead
|
|
65
|
+
|
|
66
|
+
PyTime_t PyTime_TimeRaw "__Pyx_PyTime_TimeRaw" () noexcept nogil
|
|
67
|
+
PyTime_t PyTime_MonotonicRaw "__Pyx_PyTime_MonotonicRaw" () noexcept nogil
|
|
68
|
+
PyTime_t PyTime_PerfCounterRaw "__Pyx_PyTime_PerfCounterRaw" () noexcept nogil
|
|
69
|
+
double PyTime_AsSecondsDouble "__Pyx_PyTime_AsSecondsDouble" (PyTime_t t) noexcept nogil
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
from libc.time cimport (
|
|
73
|
+
tm,
|
|
74
|
+
time_t,
|
|
75
|
+
localtime as libc_localtime,
|
|
76
|
+
)
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
cdef inline double time() noexcept nogil:
|
|
80
|
+
cdef PyTime_t tic = PyTime_TimeRaw()
|
|
81
|
+
return PyTime_AsSecondsDouble(tic)
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
cdef inline int64_t time_ns() noexcept nogil:
|
|
85
|
+
return <int64_t> PyTime_TimeRaw()
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
cdef inline double perf_counter() noexcept nogil:
|
|
89
|
+
cdef PyTime_t tic = PyTime_PerfCounterRaw()
|
|
90
|
+
return PyTime_AsSecondsDouble(tic)
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
cdef inline int64_t perf_counter_ns() noexcept nogil:
|
|
94
|
+
return <int64_t> PyTime_PerfCounterRaw()
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
cdef inline double monotonic() noexcept nogil:
|
|
98
|
+
cdef PyTime_t tic = PyTime_MonotonicRaw()
|
|
99
|
+
return PyTime_AsSecondsDouble(tic)
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
cdef inline int64_t monotonic_ns() noexcept nogil:
|
|
103
|
+
return <int64_t> PyTime_MonotonicRaw()
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
cdef inline int _raise_from_errno() except -1 with gil:
|
|
107
|
+
PyErr_SetFromErrno(RuntimeError)
|
|
108
|
+
return <int> -1 # Let the C compiler know that this function always raises.
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
cdef inline tm localtime() except * nogil:
|
|
112
|
+
"""
|
|
113
|
+
Analogue to the stdlib time.localtime. The returned struct
|
|
114
|
+
has some entries that the stdlib version does not: tm_gmtoff, tm_zone
|
|
115
|
+
"""
|
|
116
|
+
cdef:
|
|
117
|
+
time_t tic = <time_t>time()
|
|
118
|
+
tm* result
|
|
119
|
+
|
|
120
|
+
result = libc_localtime(&tic)
|
|
121
|
+
if result is NULL:
|
|
122
|
+
_raise_from_errno()
|
|
123
|
+
# Fix 0-based date values (and the 1900-based year).
|
|
124
|
+
# See tmtotuple() in https://github.com/python/cpython/blob/master/Modules/timemodule.c
|
|
125
|
+
result.tm_year += 1900
|
|
126
|
+
result.tm_mon += 1
|
|
127
|
+
result.tm_wday = <int> ((result.tm_wday + 6) % 7)
|
|
128
|
+
result.tm_yday += 1
|
|
129
|
+
return result[0]
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
from .object cimport PyObject
|
|
2
|
+
|
|
3
|
+
cdef extern from "Python.h":
|
|
4
|
+
|
|
5
|
+
############################################################################
|
|
6
|
+
# Tuples
|
|
7
|
+
############################################################################
|
|
8
|
+
|
|
9
|
+
bint PyTuple_Check(object p)
|
|
10
|
+
# Return true if p is a tuple object or an instance of a subtype
|
|
11
|
+
# of the tuple type.
|
|
12
|
+
|
|
13
|
+
bint PyTuple_CheckExact(object p)
|
|
14
|
+
# Return true if p is a tuple object, but not an instance of a subtype of the tuple type.
|
|
15
|
+
|
|
16
|
+
tuple PyTuple_New(Py_ssize_t len)
|
|
17
|
+
# Return value: New reference.
|
|
18
|
+
# Return a new tuple object of size len, or NULL on failure.
|
|
19
|
+
|
|
20
|
+
tuple PyTuple_Pack(Py_ssize_t n, ...)
|
|
21
|
+
# Return value: New reference.
|
|
22
|
+
# Return a new tuple object of size n, or NULL on failure. The
|
|
23
|
+
# tuple values are initialized to the subsequent n C arguments
|
|
24
|
+
# pointing to Python objects. "PyTuple_Pack(2, a, b)" is
|
|
25
|
+
# equivalent to "Py_BuildValue("(OO)", a, b)".
|
|
26
|
+
|
|
27
|
+
Py_ssize_t PyTuple_Size(object p) except -1
|
|
28
|
+
# Take a pointer to a tuple object, and return the size of that tuple.
|
|
29
|
+
|
|
30
|
+
Py_ssize_t PyTuple_GET_SIZE(object p)
|
|
31
|
+
# Return the size of the tuple p, which must be non-NULL and point
|
|
32
|
+
# to a tuple; no error checking is performed.
|
|
33
|
+
|
|
34
|
+
PyObject* PyTuple_GetItem(object p, Py_ssize_t pos) except NULL
|
|
35
|
+
# Return value: Borrowed reference.
|
|
36
|
+
# Return the object at position pos in the tuple pointed to by
|
|
37
|
+
# p. If pos is out of bounds, return NULL and sets an IndexError
|
|
38
|
+
# exception.
|
|
39
|
+
|
|
40
|
+
PyObject* PyTuple_GET_ITEM(object p, Py_ssize_t pos)
|
|
41
|
+
# Return value: Borrowed reference.
|
|
42
|
+
# Like PyTuple_GetItem(), but does no checking of its arguments.
|
|
43
|
+
|
|
44
|
+
tuple PyTuple_GetSlice(object p, Py_ssize_t low, Py_ssize_t high)
|
|
45
|
+
# Return value: New reference.
|
|
46
|
+
# Take a slice of the tuple pointed to by p from low to high and return it as a new tuple.
|
|
47
|
+
|
|
48
|
+
int PyTuple_SetItem(object p, Py_ssize_t pos, object o) except -1
|
|
49
|
+
# Insert a reference to object o at position pos of the tuple
|
|
50
|
+
# pointed to by p. Return 0 on success.
|
|
51
|
+
#
|
|
52
|
+
# WARNING: This function _steals_ a reference to o.
|
|
53
|
+
|
|
54
|
+
void PyTuple_SET_ITEM(object p, Py_ssize_t pos, object o)
|
|
55
|
+
# Like PyTuple_SetItem(), but does no error checking, and should
|
|
56
|
+
# only be used to fill in brand new tuples.
|
|
57
|
+
#
|
|
58
|
+
# WARNING: This function _steals_ a reference to o.
|
|
59
|
+
|
|
60
|
+
int _PyTuple_Resize(PyObject **p, Py_ssize_t newsize) except -1
|
|
61
|
+
# Can be used to resize a tuple. newsize will be the new length of
|
|
62
|
+
# the tuple. Because tuples are supposed to be immutable, this
|
|
63
|
+
# should only be used if there is only one reference to the
|
|
64
|
+
# object. Do not use this if the tuple may already be known to
|
|
65
|
+
# some other part of the code. The tuple will always grow or
|
|
66
|
+
# shrink at the end. Think of this as destroying the old tuple and
|
|
67
|
+
# creating a new one, only more efficiently. Returns 0 on
|
|
68
|
+
# success. Client code should never assume that the resulting
|
|
69
|
+
# value of *p will be the same as before calling this function. If
|
|
70
|
+
# the object referenced by *p is replaced, the original *p is
|
|
71
|
+
# destroyed. On failure, returns -1 and sets *p to NULL, and
|
|
72
|
+
# raises MemoryError or SystemError.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
|
|
2
|
+
cdef extern from "Python.h":
|
|
3
|
+
# The C structure of the objects used to describe built-in types.
|
|
4
|
+
|
|
5
|
+
############################################################################
|
|
6
|
+
# 7.1.1 Type Objects
|
|
7
|
+
############################################################################
|
|
8
|
+
|
|
9
|
+
ctypedef class __builtin__.type [object PyTypeObject]:
|
|
10
|
+
pass
|
|
11
|
+
|
|
12
|
+
# PyObject* PyType_Type
|
|
13
|
+
# This is the type object for type objects; it is the same object
|
|
14
|
+
# as type and types.TypeType in the Python layer.
|
|
15
|
+
|
|
16
|
+
bint PyType_Check(object o)
|
|
17
|
+
# Return true if the object o is a type object, including
|
|
18
|
+
# instances of types derived from the standard type object. Return
|
|
19
|
+
# false in all other cases.
|
|
20
|
+
|
|
21
|
+
bint PyType_CheckExact(object o)
|
|
22
|
+
# Return true if the object o is a type object, but not a subtype
|
|
23
|
+
# of the standard type object. Return false in all other
|
|
24
|
+
# cases.
|
|
25
|
+
|
|
26
|
+
void PyType_Modified(type type)
|
|
27
|
+
# Invalidate the internal lookup cache for the type and all of its
|
|
28
|
+
# subtypes. This function must be called after any manual modification
|
|
29
|
+
# of the attributes or base classes of the type.
|
|
30
|
+
|
|
31
|
+
bint PyType_HasFeature(object o, int feature)
|
|
32
|
+
# Return true if the type object o sets the feature feature. Type
|
|
33
|
+
# features are denoted by single bit flags.
|
|
34
|
+
|
|
35
|
+
bint PyType_IS_GC(object o)
|
|
36
|
+
# Return true if the type object includes support for the cycle
|
|
37
|
+
# detector; this tests the type flag Py_TPFLAGS_HAVE_GC.
|
|
38
|
+
|
|
39
|
+
bint PyType_IsSubtype(type a, type b)
|
|
40
|
+
# Return true if a is a subtype of b.
|
|
41
|
+
|
|
42
|
+
object PyType_GenericAlloc(object type, Py_ssize_t nitems)
|
|
43
|
+
# Return value: New reference.
|
|
44
|
+
|
|
45
|
+
object PyType_GenericNew(type type, object args, object kwds)
|
|
46
|
+
# Return value: New reference.
|
|
47
|
+
|
|
48
|
+
bint PyType_Ready(type type) except -1
|
|
49
|
+
# Finalize a type object. This should be called on all type
|
|
50
|
+
# objects to finish their initialization. This function is
|
|
51
|
+
# responsible for adding inherited slots from a type's base
|
|
52
|
+
# class. Return 0 on success, or return -1 and sets an exception
|
|
53
|
+
# on error.
|