Cython 3.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- Cython/Build/BuildExecutable.py +169 -0
- Cython/Build/Cache.py +199 -0
- Cython/Build/Cythonize.py +323 -0
- Cython/Build/Dependencies.py +1306 -0
- Cython/Build/Distutils.py +1 -0
- Cython/Build/Inline.py +463 -0
- Cython/Build/IpythonMagic.py +560 -0
- Cython/Build/SharedModule.py +76 -0
- Cython/Build/Tests/TestCyCache.py +194 -0
- Cython/Build/Tests/TestCythonizeArgsParser.py +481 -0
- Cython/Build/Tests/TestDependencies.py +133 -0
- Cython/Build/Tests/TestInline.py +177 -0
- Cython/Build/Tests/TestIpythonMagic.py +287 -0
- Cython/Build/Tests/TestRecythonize.py +212 -0
- Cython/Build/Tests/TestStripLiterals.py +155 -0
- Cython/Build/Tests/__init__.py +1 -0
- Cython/Build/__init__.py +8 -0
- Cython/CodeWriter.py +811 -0
- Cython/Compiler/AnalysedTreeTransforms.py +97 -0
- Cython/Compiler/Annotate.py +326 -0
- Cython/Compiler/AutoDocTransforms.py +320 -0
- Cython/Compiler/Buffer.py +680 -0
- Cython/Compiler/Builtin.py +934 -0
- Cython/Compiler/CmdLine.py +259 -0
- Cython/Compiler/Code.pxd +148 -0
- Cython/Compiler/Code.py +3375 -0
- Cython/Compiler/CodeGeneration.py +33 -0
- Cython/Compiler/CythonScope.py +187 -0
- Cython/Compiler/Dataclass.py +868 -0
- Cython/Compiler/DebugFlags.py +24 -0
- Cython/Compiler/Errors.py +295 -0
- Cython/Compiler/ExprNodes.py +15267 -0
- Cython/Compiler/FlowControl.pxd +97 -0
- Cython/Compiler/FlowControl.py +1455 -0
- Cython/Compiler/FusedNode.py +1002 -0
- Cython/Compiler/Future.py +16 -0
- Cython/Compiler/Interpreter.py +57 -0
- Cython/Compiler/Lexicon.py +340 -0
- Cython/Compiler/LineTable.py +114 -0
- Cython/Compiler/Main.py +853 -0
- Cython/Compiler/MatchCaseNodes.py +259 -0
- Cython/Compiler/MemoryView.py +922 -0
- Cython/Compiler/ModuleNode.py +4024 -0
- Cython/Compiler/Naming.py +374 -0
- Cython/Compiler/Nodes.py +10826 -0
- Cython/Compiler/Optimize.py +5256 -0
- Cython/Compiler/Options.py +835 -0
- Cython/Compiler/ParseTreeTransforms.pxd +77 -0
- Cython/Compiler/ParseTreeTransforms.py +4509 -0
- Cython/Compiler/Parsing.pxd +9 -0
- Cython/Compiler/Parsing.py +4789 -0
- Cython/Compiler/Pipeline.py +439 -0
- Cython/Compiler/PyrexTypes.py +5762 -0
- Cython/Compiler/Pythran.py +232 -0
- Cython/Compiler/Scanning.pxd +40 -0
- Cython/Compiler/Scanning.py +577 -0
- Cython/Compiler/StringEncoding.py +347 -0
- Cython/Compiler/Symtab.py +3080 -0
- Cython/Compiler/Tests/TestBuffer.py +105 -0
- Cython/Compiler/Tests/TestBuiltin.py +72 -0
- Cython/Compiler/Tests/TestCmdLine.py +586 -0
- Cython/Compiler/Tests/TestCode.py +86 -0
- Cython/Compiler/Tests/TestFlowControl.py +65 -0
- Cython/Compiler/Tests/TestGrammar.py +202 -0
- Cython/Compiler/Tests/TestMemView.py +71 -0
- Cython/Compiler/Tests/TestParseTreeTransforms.py +285 -0
- Cython/Compiler/Tests/TestScanning.py +134 -0
- Cython/Compiler/Tests/TestSignatureMatching.py +73 -0
- Cython/Compiler/Tests/TestStringEncoding.py +33 -0
- Cython/Compiler/Tests/TestTreeFragment.py +63 -0
- Cython/Compiler/Tests/TestTreePath.py +103 -0
- Cython/Compiler/Tests/TestTypes.py +75 -0
- Cython/Compiler/Tests/TestUtilityLoad.py +112 -0
- Cython/Compiler/Tests/TestVisitor.py +61 -0
- Cython/Compiler/Tests/Utils.py +36 -0
- Cython/Compiler/Tests/__init__.py +1 -0
- Cython/Compiler/TreeFragment.py +278 -0
- Cython/Compiler/TreePath.py +303 -0
- Cython/Compiler/TypeInference.py +584 -0
- Cython/Compiler/TypeSlots.py +1181 -0
- Cython/Compiler/UFuncs.py +311 -0
- Cython/Compiler/UtilNodes.py +389 -0
- Cython/Compiler/UtilityCode.py +344 -0
- Cython/Compiler/Version.py +8 -0
- Cython/Compiler/Visitor.pxd +53 -0
- Cython/Compiler/Visitor.py +861 -0
- Cython/Compiler/__init__.py +1 -0
- Cython/Coverage.py +448 -0
- Cython/Debugger/Cygdb.py +175 -0
- Cython/Debugger/DebugWriter.py +82 -0
- Cython/Debugger/Tests/TestLibCython.py +275 -0
- Cython/Debugger/Tests/__init__.py +1 -0
- Cython/Debugger/Tests/cfuncs.c +8 -0
- Cython/Debugger/Tests/codefile +49 -0
- Cython/Debugger/Tests/test_libcython_in_gdb.py +578 -0
- Cython/Debugger/Tests/test_libpython_in_gdb.py +90 -0
- Cython/Debugger/__init__.py +1 -0
- Cython/Debugger/libcython.py +1548 -0
- Cython/Debugger/libpython.py +2821 -0
- Cython/Debugging.py +20 -0
- Cython/Distutils/__init__.py +2 -0
- Cython/Distutils/build_ext.py +139 -0
- Cython/Distutils/extension.py +96 -0
- Cython/Distutils/old_build_ext.py +351 -0
- Cython/Includes/cpython/__init__.pxd +173 -0
- Cython/Includes/cpython/array.pxd +174 -0
- Cython/Includes/cpython/bool.pxd +37 -0
- Cython/Includes/cpython/buffer.pxd +112 -0
- Cython/Includes/cpython/bytearray.pxd +33 -0
- Cython/Includes/cpython/bytes.pxd +200 -0
- Cython/Includes/cpython/cellobject.pxd +35 -0
- Cython/Includes/cpython/ceval.pxd +8 -0
- Cython/Includes/cpython/codecs.pxd +121 -0
- Cython/Includes/cpython/complex.pxd +60 -0
- Cython/Includes/cpython/contextvars.pxd +145 -0
- Cython/Includes/cpython/conversion.pxd +36 -0
- Cython/Includes/cpython/datetime.pxd +395 -0
- Cython/Includes/cpython/descr.pxd +26 -0
- Cython/Includes/cpython/dict.pxd +187 -0
- Cython/Includes/cpython/exc.pxd +263 -0
- Cython/Includes/cpython/fileobject.pxd +57 -0
- Cython/Includes/cpython/float.pxd +47 -0
- Cython/Includes/cpython/function.pxd +65 -0
- Cython/Includes/cpython/genobject.pxd +25 -0
- Cython/Includes/cpython/getargs.pxd +12 -0
- Cython/Includes/cpython/instance.pxd +25 -0
- Cython/Includes/cpython/iterator.pxd +36 -0
- Cython/Includes/cpython/iterobject.pxd +24 -0
- Cython/Includes/cpython/list.pxd +92 -0
- Cython/Includes/cpython/long.pxd +149 -0
- Cython/Includes/cpython/longintrepr.pxd +14 -0
- Cython/Includes/cpython/mapping.pxd +63 -0
- Cython/Includes/cpython/marshal.pxd +66 -0
- Cython/Includes/cpython/mem.pxd +120 -0
- Cython/Includes/cpython/memoryview.pxd +50 -0
- Cython/Includes/cpython/method.pxd +49 -0
- Cython/Includes/cpython/module.pxd +208 -0
- Cython/Includes/cpython/number.pxd +258 -0
- Cython/Includes/cpython/object.pxd +433 -0
- Cython/Includes/cpython/pycapsule.pxd +143 -0
- Cython/Includes/cpython/pylifecycle.pxd +68 -0
- Cython/Includes/cpython/pyport.pxd +8 -0
- Cython/Includes/cpython/pystate.pxd +95 -0
- Cython/Includes/cpython/pythread.pxd +53 -0
- Cython/Includes/cpython/ref.pxd +67 -0
- Cython/Includes/cpython/sequence.pxd +134 -0
- Cython/Includes/cpython/set.pxd +119 -0
- Cython/Includes/cpython/slice.pxd +70 -0
- Cython/Includes/cpython/time.pxd +129 -0
- Cython/Includes/cpython/tuple.pxd +72 -0
- Cython/Includes/cpython/type.pxd +53 -0
- Cython/Includes/cpython/unicode.pxd +639 -0
- Cython/Includes/cpython/version.pxd +32 -0
- Cython/Includes/cpython/weakref.pxd +78 -0
- Cython/Includes/libc/__init__.pxd +1 -0
- Cython/Includes/libc/complex.pxd +35 -0
- Cython/Includes/libc/errno.pxd +127 -0
- Cython/Includes/libc/float.pxd +43 -0
- Cython/Includes/libc/limits.pxd +28 -0
- Cython/Includes/libc/locale.pxd +46 -0
- Cython/Includes/libc/math.pxd +209 -0
- Cython/Includes/libc/setjmp.pxd +10 -0
- Cython/Includes/libc/signal.pxd +64 -0
- Cython/Includes/libc/stddef.pxd +9 -0
- Cython/Includes/libc/stdint.pxd +105 -0
- Cython/Includes/libc/stdio.pxd +80 -0
- Cython/Includes/libc/stdlib.pxd +72 -0
- Cython/Includes/libc/string.pxd +50 -0
- Cython/Includes/libc/threads.pxd +84 -0
- Cython/Includes/libc/time.pxd +51 -0
- Cython/Includes/libcpp/__init__.pxd +4 -0
- Cython/Includes/libcpp/algorithm.pxd +320 -0
- Cython/Includes/libcpp/any.pxd +16 -0
- Cython/Includes/libcpp/atomic.pxd +59 -0
- Cython/Includes/libcpp/barrier.pxd +22 -0
- Cython/Includes/libcpp/bit.pxd +29 -0
- Cython/Includes/libcpp/cast.pxd +12 -0
- Cython/Includes/libcpp/cmath.pxd +518 -0
- Cython/Includes/libcpp/complex.pxd +106 -0
- Cython/Includes/libcpp/deque.pxd +165 -0
- Cython/Includes/libcpp/exception.pxd +86 -0
- Cython/Includes/libcpp/execution.pxd +15 -0
- Cython/Includes/libcpp/forward_list.pxd +63 -0
- Cython/Includes/libcpp/functional.pxd +26 -0
- Cython/Includes/libcpp/future.pxd +103 -0
- Cython/Includes/libcpp/iterator.pxd +34 -0
- Cython/Includes/libcpp/latch.pxd +17 -0
- Cython/Includes/libcpp/limits.pxd +61 -0
- Cython/Includes/libcpp/list.pxd +117 -0
- Cython/Includes/libcpp/map.pxd +252 -0
- Cython/Includes/libcpp/memory.pxd +115 -0
- Cython/Includes/libcpp/mutex.pxd +130 -0
- Cython/Includes/libcpp/numbers.pxd +15 -0
- Cython/Includes/libcpp/numeric.pxd +131 -0
- Cython/Includes/libcpp/optional.pxd +34 -0
- Cython/Includes/libcpp/pair.pxd +1 -0
- Cython/Includes/libcpp/queue.pxd +25 -0
- Cython/Includes/libcpp/random.pxd +166 -0
- Cython/Includes/libcpp/semaphore.pxd +44 -0
- Cython/Includes/libcpp/set.pxd +228 -0
- Cython/Includes/libcpp/shared_mutex.pxd +72 -0
- Cython/Includes/libcpp/span.pxd +87 -0
- Cython/Includes/libcpp/stack.pxd +11 -0
- Cython/Includes/libcpp/stop_token.pxd +105 -0
- Cython/Includes/libcpp/string.pxd +355 -0
- Cython/Includes/libcpp/string_view.pxd +181 -0
- Cython/Includes/libcpp/typeindex.pxd +15 -0
- Cython/Includes/libcpp/typeinfo.pxd +10 -0
- Cython/Includes/libcpp/unordered_map.pxd +193 -0
- Cython/Includes/libcpp/unordered_set.pxd +152 -0
- Cython/Includes/libcpp/utility.pxd +30 -0
- Cython/Includes/libcpp/vector.pxd +186 -0
- Cython/Includes/openmp.pxd +50 -0
- Cython/Includes/posix/__init__.pxd +1 -0
- Cython/Includes/posix/dlfcn.pxd +14 -0
- Cython/Includes/posix/fcntl.pxd +86 -0
- Cython/Includes/posix/ioctl.pxd +4 -0
- Cython/Includes/posix/mman.pxd +101 -0
- Cython/Includes/posix/resource.pxd +57 -0
- Cython/Includes/posix/select.pxd +21 -0
- Cython/Includes/posix/signal.pxd +73 -0
- Cython/Includes/posix/stat.pxd +98 -0
- Cython/Includes/posix/stdio.pxd +37 -0
- Cython/Includes/posix/stdlib.pxd +29 -0
- Cython/Includes/posix/strings.pxd +9 -0
- Cython/Includes/posix/time.pxd +71 -0
- Cython/Includes/posix/types.pxd +30 -0
- Cython/Includes/posix/uio.pxd +26 -0
- Cython/Includes/posix/unistd.pxd +271 -0
- Cython/Includes/posix/wait.pxd +38 -0
- Cython/Plex/Actions.pxd +24 -0
- Cython/Plex/Actions.py +119 -0
- Cython/Plex/DFA.pxd +14 -0
- Cython/Plex/DFA.py +164 -0
- Cython/Plex/Errors.py +48 -0
- Cython/Plex/Lexicons.py +178 -0
- Cython/Plex/Machines.pxd +36 -0
- Cython/Plex/Machines.py +238 -0
- Cython/Plex/Regexps.py +539 -0
- Cython/Plex/Scanners.pxd +47 -0
- Cython/Plex/Scanners.py +360 -0
- Cython/Plex/Transitions.pxd +14 -0
- Cython/Plex/Transitions.py +239 -0
- Cython/Plex/__init__.py +34 -0
- Cython/Runtime/__init__.py +1 -0
- Cython/Runtime/refnanny.pyx +237 -0
- Cython/Shadow.py +690 -0
- Cython/Shadow.pyi +521 -0
- Cython/StringIOTree.py +170 -0
- Cython/Tempita/__init__.py +4 -0
- Cython/Tempita/_looper.py +154 -0
- Cython/Tempita/_tempita.py +1091 -0
- Cython/TestUtils.py +410 -0
- Cython/Tests/TestCodeWriter.py +128 -0
- Cython/Tests/TestCythonUtils.py +202 -0
- Cython/Tests/TestJediTyper.py +223 -0
- Cython/Tests/TestShadow.py +114 -0
- Cython/Tests/TestStringIOTree.py +67 -0
- Cython/Tests/TestTestUtils.py +90 -0
- Cython/Tests/__init__.py +1 -0
- Cython/Tests/xmlrunner.py +390 -0
- Cython/Utility/AsyncGen.c +1002 -0
- Cython/Utility/Buffer.c +875 -0
- Cython/Utility/BufferFormatFromTypeInfo.pxd +2 -0
- Cython/Utility/Builtins.c +776 -0
- Cython/Utility/CConvert.pyx +134 -0
- Cython/Utility/CMath.c +104 -0
- Cython/Utility/CommonStructures.c +118 -0
- Cython/Utility/Complex.c +378 -0
- Cython/Utility/Coroutine.c +2206 -0
- Cython/Utility/CpdefEnums.pyx +103 -0
- Cython/Utility/CppConvert.pyx +279 -0
- Cython/Utility/CppSupport.cpp +143 -0
- Cython/Utility/CythonFunction.c +1794 -0
- Cython/Utility/Dataclasses.c +185 -0
- Cython/Utility/Dataclasses.py +112 -0
- Cython/Utility/Embed.c +125 -0
- Cython/Utility/Exceptions.c +1012 -0
- Cython/Utility/ExtensionTypes.c +809 -0
- Cython/Utility/FunctionArguments.c +965 -0
- Cython/Utility/ImportExport.c +987 -0
- Cython/Utility/Lock.c +136 -0
- Cython/Utility/MemoryView.pxd +187 -0
- Cython/Utility/MemoryView.pyx +1481 -0
- Cython/Utility/MemoryView_C.c +1046 -0
- Cython/Utility/ModuleSetupCode.c +3059 -0
- Cython/Utility/NumpyImportArray.c +46 -0
- Cython/Utility/ObjectHandling.c +3342 -0
- Cython/Utility/Optimize.c +1589 -0
- Cython/Utility/Overflow.c +404 -0
- Cython/Utility/Printing.c +86 -0
- Cython/Utility/Profile.c +709 -0
- Cython/Utility/StringTools.c +1259 -0
- Cython/Utility/TestCyUtilityLoader.pyx +8 -0
- Cython/Utility/TestCythonScope.pyx +75 -0
- Cython/Utility/TestUtilityLoader.c +12 -0
- Cython/Utility/TypeConversion.c +1284 -0
- Cython/Utility/UFuncs.pyx +50 -0
- Cython/Utility/UFuncs_C.c +89 -0
- Cython/Utility/__init__.py +28 -0
- Cython/Utility/arrayarray.h +148 -0
- Cython/Utils.py +687 -0
- Cython/__init__.py +10 -0
- Cython/__init__.pyi +7 -0
- Cython/py.typed +0 -0
- cython-3.1.0.dist-info/COPYING.txt +19 -0
- cython-3.1.0.dist-info/LICENSE.txt +176 -0
- cython-3.1.0.dist-info/METADATA +636 -0
- cython-3.1.0.dist-info/RECORD +316 -0
- cython-3.1.0.dist-info/WHEEL +5 -0
- cython-3.1.0.dist-info/entry_points.txt +4 -0
- cython-3.1.0.dist-info/top_level.txt +3 -0
- cython.py +29 -0
- pyximport/__init__.py +4 -0
- pyximport/pyxbuild.py +160 -0
- pyximport/pyximport.py +482 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# POSIX additions to <stdio.h>.
|
|
2
|
+
# https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/stdio.h.html
|
|
3
|
+
|
|
4
|
+
from libc.stdio cimport FILE
|
|
5
|
+
from libc.stddef cimport wchar_t
|
|
6
|
+
from posix.types cimport off_t
|
|
7
|
+
|
|
8
|
+
cdef extern from "<stdio.h>" nogil:
|
|
9
|
+
# File descriptors
|
|
10
|
+
FILE *fdopen(int, const char *)
|
|
11
|
+
int fileno(FILE *)
|
|
12
|
+
|
|
13
|
+
# Pipes
|
|
14
|
+
FILE *popen(const char *, const char *)
|
|
15
|
+
int pclose(FILE *)
|
|
16
|
+
|
|
17
|
+
# Memory streams (POSIX.2008)
|
|
18
|
+
FILE *fmemopen(void *, size_t, const char *)
|
|
19
|
+
FILE *open_memstream(char **, size_t *)
|
|
20
|
+
FILE *open_wmemstream(wchar_t **, size_t *)
|
|
21
|
+
|
|
22
|
+
# Seek and tell with off_t
|
|
23
|
+
int fseeko(FILE *, off_t, int)
|
|
24
|
+
off_t ftello(FILE *)
|
|
25
|
+
|
|
26
|
+
# Locking (for multithreading)
|
|
27
|
+
void flockfile(FILE *)
|
|
28
|
+
int ftrylockfile(FILE *)
|
|
29
|
+
void funlockfile(FILE *)
|
|
30
|
+
int getc_unlocked(FILE *)
|
|
31
|
+
int getchar_unlocked()
|
|
32
|
+
int putc_unlocked(int, FILE *)
|
|
33
|
+
int putchar_unlocked(int)
|
|
34
|
+
|
|
35
|
+
# Reading lines and records (POSIX.2008)
|
|
36
|
+
ssize_t getline(char **, size_t *, FILE *)
|
|
37
|
+
ssize_t getdelim(char **, size_t *, int, FILE *)
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# POSIX additions to <stdlib.h>
|
|
2
|
+
# https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/stdlib.h.html
|
|
3
|
+
|
|
4
|
+
cdef extern from "<stdlib.h>" nogil:
|
|
5
|
+
void _Exit(int)
|
|
6
|
+
double drand48()
|
|
7
|
+
double erand48(unsigned short *)
|
|
8
|
+
int getsubopt(char **, char *const *, char **)
|
|
9
|
+
void lcong48(unsigned short *)
|
|
10
|
+
long lrand()
|
|
11
|
+
char *mkdtemp(char *)
|
|
12
|
+
int mkstemp(char *)
|
|
13
|
+
long mrand()
|
|
14
|
+
long nrand48(unsigned short *)
|
|
15
|
+
int posix_memalign(void **, size_t, size_t)
|
|
16
|
+
int posix_openpt(int)
|
|
17
|
+
char *ptsname(int)
|
|
18
|
+
int putenv(char *)
|
|
19
|
+
int rand_r(unsigned *)
|
|
20
|
+
long random()
|
|
21
|
+
char *realpath(const char *, char *)
|
|
22
|
+
unsigned short *seed48(unsigned short *)
|
|
23
|
+
int setenv(const char *, const char *, int)
|
|
24
|
+
void setkey(const char *)
|
|
25
|
+
char *setstate(char *)
|
|
26
|
+
void srand48(long)
|
|
27
|
+
void srandom(unsigned)
|
|
28
|
+
int unlockpt(int)
|
|
29
|
+
int unsetenv(const char *)
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
cdef extern from "<strings.h>" nogil:
|
|
2
|
+
int bcmp(const void *, const void *, size_t)
|
|
3
|
+
void bcopy(const void *, void *, size_t)
|
|
4
|
+
void bzero(void *, size_t)
|
|
5
|
+
int ffs(int)
|
|
6
|
+
char *index(const char *, int)
|
|
7
|
+
char *rindex(const char *, int)
|
|
8
|
+
int strcasecmp(const char *, const char *)
|
|
9
|
+
int strncasecmp(const char *, const char *, size_t)
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# https://pubs.opengroup.org/onlinepubs/009695399/basedefs/sys/time.h.html
|
|
2
|
+
|
|
3
|
+
from posix.types cimport suseconds_t, time_t, clockid_t, timer_t
|
|
4
|
+
from posix.signal cimport sigevent
|
|
5
|
+
|
|
6
|
+
cdef extern from "<sys/time.h>" nogil:
|
|
7
|
+
enum: CLOCK_REALTIME
|
|
8
|
+
enum: TIMER_ABSTIME
|
|
9
|
+
enum: CLOCK_MONOTONIC
|
|
10
|
+
|
|
11
|
+
# FreeBSD-specific clocks
|
|
12
|
+
enum: CLOCK_UPTIME
|
|
13
|
+
enum: CLOCK_UPTIME_PRECISE
|
|
14
|
+
enum: CLOCK_UPTIME_FAST
|
|
15
|
+
enum: CLOCK_REALTIME_PRECISE
|
|
16
|
+
enum: CLOCK_REALTIME_FAST
|
|
17
|
+
enum: CLOCK_MONOTONIC_PRECISE
|
|
18
|
+
enum: CLOCK_MONOTONIC_FAST
|
|
19
|
+
enum: CLOCK_SECOND
|
|
20
|
+
|
|
21
|
+
# Linux-specific clocks
|
|
22
|
+
enum: CLOCK_PROCESS_CPUTIME_ID
|
|
23
|
+
enum: CLOCK_THREAD_CPUTIME_ID
|
|
24
|
+
enum: CLOCK_MONOTONIC_RAW
|
|
25
|
+
enum: CLOCK_REALTIME_COARSE
|
|
26
|
+
enum: CLOCK_MONOTONIC_COARSE
|
|
27
|
+
enum: CLOCK_BOOTTIME
|
|
28
|
+
enum: CLOCK_REALTIME_ALARM
|
|
29
|
+
enum: CLOCK_BOOTTIME_ALARM
|
|
30
|
+
|
|
31
|
+
enum: ITIMER_REAL
|
|
32
|
+
enum: ITIMER_VIRTUAL
|
|
33
|
+
enum: ITIMER_PROF
|
|
34
|
+
|
|
35
|
+
cdef struct timezone:
|
|
36
|
+
int tz_minuteswest
|
|
37
|
+
int dsttime
|
|
38
|
+
|
|
39
|
+
cdef struct timeval:
|
|
40
|
+
time_t tv_sec
|
|
41
|
+
suseconds_t tv_usec
|
|
42
|
+
|
|
43
|
+
cdef struct timespec:
|
|
44
|
+
time_t tv_sec
|
|
45
|
+
long tv_nsec
|
|
46
|
+
|
|
47
|
+
cdef struct itimerval:
|
|
48
|
+
timeval it_interval
|
|
49
|
+
timeval it_value
|
|
50
|
+
|
|
51
|
+
cdef struct itimerspec:
|
|
52
|
+
timespec it_interval
|
|
53
|
+
timespec it_value
|
|
54
|
+
|
|
55
|
+
int nanosleep(const timespec *, timespec *)
|
|
56
|
+
|
|
57
|
+
int getitimer(int, itimerval *)
|
|
58
|
+
int gettimeofday(timeval *tp, timezone *tzp)
|
|
59
|
+
int setitimer(int, const itimerval *, itimerval *)
|
|
60
|
+
|
|
61
|
+
int clock_getcpuclockid(pid_t, clockid_t *)
|
|
62
|
+
int clock_getres(clockid_t, timespec *)
|
|
63
|
+
int clock_gettime(clockid_t, timespec *)
|
|
64
|
+
int clock_nanosleep(clockid_t, int, const timespec *, timespec *)
|
|
65
|
+
int clock_settime(clockid_t, const timespec *)
|
|
66
|
+
|
|
67
|
+
int timer_create(clockid_t, sigevent *, timer_t *)
|
|
68
|
+
int timer_delete(timer_t)
|
|
69
|
+
int timer_gettime(timer_t, itimerspec *)
|
|
70
|
+
int timer_getoverrun(timer_t)
|
|
71
|
+
int timer_settime(timer_t, int, const itimerspec *, itimerspec *)
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Note that the actual size of these types is system-dependent, and
|
|
2
|
+
# cannot be detected before C compile time. However, the generated C code
|
|
3
|
+
# will correctly use the actual size of these types *except* for
|
|
4
|
+
# determining promotion in binary arithmetic expressions involving
|
|
5
|
+
# mixed types. In this case, operands are promoted to the declared
|
|
6
|
+
# larger type, with a bias towards typedef types. Thus, with the
|
|
7
|
+
# declarations below, long + time_t will result in a time_t whereas
|
|
8
|
+
# long long + time_t will result in a long long which should be
|
|
9
|
+
# acceptable for either 32-bit or 64-bit signed time_t (though admittedly
|
|
10
|
+
# the POSIX standard doesn't even specify that time_t must be an integral
|
|
11
|
+
# type).
|
|
12
|
+
|
|
13
|
+
cdef extern from "<sys/types.h>":
|
|
14
|
+
ctypedef long blkcnt_t
|
|
15
|
+
ctypedef long blksize_t
|
|
16
|
+
ctypedef long clockid_t
|
|
17
|
+
ctypedef long dev_t
|
|
18
|
+
ctypedef long gid_t
|
|
19
|
+
ctypedef long id_t
|
|
20
|
+
ctypedef unsigned long ino_t
|
|
21
|
+
ctypedef long mode_t
|
|
22
|
+
ctypedef long nlink_t
|
|
23
|
+
ctypedef long off_t
|
|
24
|
+
ctypedef long pid_t
|
|
25
|
+
ctypedef struct sigset_t:
|
|
26
|
+
pass
|
|
27
|
+
ctypedef long suseconds_t
|
|
28
|
+
ctypedef long time_t
|
|
29
|
+
ctypedef long timer_t
|
|
30
|
+
ctypedef long uid_t
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_uio.h.html
|
|
2
|
+
|
|
3
|
+
from posix.types cimport off_t
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
cdef extern from "<sys/uio.h>" nogil:
|
|
7
|
+
|
|
8
|
+
cdef struct iovec:
|
|
9
|
+
void *iov_base
|
|
10
|
+
size_t iov_len
|
|
11
|
+
|
|
12
|
+
ssize_t readv (int fd, const iovec *iov, int iovcnt)
|
|
13
|
+
ssize_t writev(int fd, const iovec *iov, int iovcnt)
|
|
14
|
+
|
|
15
|
+
# Linux-specific, https://man7.org/linux/man-pages/man2/readv.2.html
|
|
16
|
+
ssize_t preadv (int fd, const iovec *iov, int iovcnt, off_t offset)
|
|
17
|
+
ssize_t pwritev(int fd, const iovec *iov, int iovcnt, off_t offset)
|
|
18
|
+
|
|
19
|
+
enum: RWF_DSYNC
|
|
20
|
+
enum: RWF_HIPRI
|
|
21
|
+
enum: RWF_SYNC
|
|
22
|
+
enum: RWF_NOWAIT
|
|
23
|
+
enum: RWF_APPEND
|
|
24
|
+
|
|
25
|
+
ssize_t preadv2 (int fd, const iovec *iov, int iovcnt, off_t offset, int flags)
|
|
26
|
+
ssize_t pwritev2(int fd, const iovec *iov, int iovcnt, off_t offset, int flags)
|
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
# http://www.opengroup.org/onlinepubs/009695399/basedefs/unistd.h.html
|
|
2
|
+
|
|
3
|
+
from posix.types cimport gid_t, pid_t, off_t, uid_t
|
|
4
|
+
|
|
5
|
+
cdef extern from "<unistd.h>" nogil:
|
|
6
|
+
|
|
7
|
+
#:NULL
|
|
8
|
+
|
|
9
|
+
enum: R_OK
|
|
10
|
+
enum: W_OK
|
|
11
|
+
enum: X_OK
|
|
12
|
+
enum: F_OK
|
|
13
|
+
|
|
14
|
+
enum: _CS_PATH
|
|
15
|
+
enum: _CS_POSIX_V6_ILP32_OFF32_CFLAGS
|
|
16
|
+
enum: _CS_POSIX_V6_ILP32_OFF32_LDFLAGS
|
|
17
|
+
enum: _CS_POSIX_V6_ILP32_OFF32_LIBS
|
|
18
|
+
enum: _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS
|
|
19
|
+
enum: _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS
|
|
20
|
+
enum: _CS_POSIX_V6_ILP32_OFFBIG_LIBS
|
|
21
|
+
enum: _CS_POSIX_V6_LP64_OFF64_CFLAGS
|
|
22
|
+
enum: _CS_POSIX_V6_LP64_OFF64_LDFLAGS
|
|
23
|
+
enum: _CS_POSIX_V6_LP64_OFF64_LIBS
|
|
24
|
+
enum: _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS
|
|
25
|
+
enum: _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS
|
|
26
|
+
enum: _CS_POSIX_V6_LPBIG_OFFBIG_LIBS
|
|
27
|
+
enum: _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS
|
|
28
|
+
|
|
29
|
+
enum: SEEK_SET
|
|
30
|
+
enum: SEEK_CUR
|
|
31
|
+
enum: SEEK_END
|
|
32
|
+
|
|
33
|
+
enum: F_LOCK
|
|
34
|
+
enum: F_TEST
|
|
35
|
+
enum: F_TLOCK
|
|
36
|
+
enum: F_ULOCK
|
|
37
|
+
|
|
38
|
+
enum: _PC_2_SYMLINKS
|
|
39
|
+
enum: _PC_ALLOC_SIZE_MIN
|
|
40
|
+
enum: _PC_ASYNC_IO
|
|
41
|
+
enum: _PC_CHOWN_RESTRICTED
|
|
42
|
+
enum: _PC_FILESIZEBITS
|
|
43
|
+
enum: _PC_LINK_MAX
|
|
44
|
+
enum: _PC_MAX_CANON
|
|
45
|
+
enum: _PC_MAX_INPUT
|
|
46
|
+
enum: _PC_NAME_MAX
|
|
47
|
+
enum: _PC_NO_TRUNC
|
|
48
|
+
enum: _PC_PATH_MAX
|
|
49
|
+
enum: _PC_PIPE_BUF
|
|
50
|
+
enum: _PC_PRIO_IO
|
|
51
|
+
enum: _PC_REC_INCR_XFER_SIZE
|
|
52
|
+
enum: _PC_REC_MIN_XFER_SIZE
|
|
53
|
+
enum: _PC_REC_XFER_ALIGN
|
|
54
|
+
enum: _PC_SYMLINK_MAX
|
|
55
|
+
enum: _PC_SYNC_IO
|
|
56
|
+
enum: _PC_VDISABLE
|
|
57
|
+
|
|
58
|
+
enum: _SC_2_C_BIND
|
|
59
|
+
enum: _SC_2_C_DEV
|
|
60
|
+
enum: _SC_2_CHAR_TERM
|
|
61
|
+
enum: _SC_2_FORT_DEV
|
|
62
|
+
enum: _SC_2_FORT_RUN
|
|
63
|
+
enum: _SC_2_LOCALEDEF
|
|
64
|
+
enum: _SC_2_PBS
|
|
65
|
+
enum: _SC_2_PBS_ACCOUNTING
|
|
66
|
+
enum: _SC_2_PBS_CHECKPOINT
|
|
67
|
+
enum: _SC_2_PBS_LOCATE
|
|
68
|
+
enum: _SC_2_PBS_MESSAGE
|
|
69
|
+
enum: _SC_2_PBS_TRACK
|
|
70
|
+
enum: _SC_2_SW_DEV
|
|
71
|
+
enum: _SC_2_UPE
|
|
72
|
+
enum: _SC_2_VERSION
|
|
73
|
+
enum: _SC_ADVISORY_INFO
|
|
74
|
+
enum: _SC_AIO_LISTIO_MAX
|
|
75
|
+
enum: _SC_AIO_MAX
|
|
76
|
+
enum: _SC_AIO_PRIO_DELTA_MAX
|
|
77
|
+
enum: _SC_ARG_MAX
|
|
78
|
+
enum: _SC_ASYNCHRONOUS_IO
|
|
79
|
+
enum: _SC_ATEXIT_MAX
|
|
80
|
+
enum: _SC_BARRIERS
|
|
81
|
+
enum: _SC_BC_BASE_MAX
|
|
82
|
+
enum: _SC_BC_DIM_MAX
|
|
83
|
+
enum: _SC_BC_SCALE_MAX
|
|
84
|
+
enum: _SC_BC_STRING_MAX
|
|
85
|
+
enum: _SC_CHILD_MAX
|
|
86
|
+
enum: _SC_CLK_TCK
|
|
87
|
+
enum: _SC_CLOCK_SELECTION
|
|
88
|
+
enum: _SC_COLL_WEIGHTS_MAX
|
|
89
|
+
enum: _SC_CPUTIME
|
|
90
|
+
enum: _SC_DELAYTIMER_MAX
|
|
91
|
+
enum: _SC_EXPR_NEST_MAX
|
|
92
|
+
enum: _SC_FSYNC
|
|
93
|
+
enum: _SC_GETGR_R_SIZE_MAX
|
|
94
|
+
enum: _SC_GETPW_R_SIZE_MAX
|
|
95
|
+
enum: _SC_HOST_NAME_MAX
|
|
96
|
+
enum: _SC_IOV_MAX
|
|
97
|
+
enum: _SC_IPV6
|
|
98
|
+
enum: _SC_JOB_CONTROL
|
|
99
|
+
enum: _SC_LINE_MAX
|
|
100
|
+
enum: _SC_LOGIN_NAME_MAX
|
|
101
|
+
enum: _SC_MAPPED_FILES
|
|
102
|
+
enum: _SC_MEMLOCK
|
|
103
|
+
enum: _SC_MEMLOCK_RANGE
|
|
104
|
+
enum: _SC_MEMORY_PROTECTION
|
|
105
|
+
enum: _SC_MESSAGE_PASSING
|
|
106
|
+
enum: _SC_MONOTONIC_CLOCK
|
|
107
|
+
enum: _SC_MQ_OPEN_MAX
|
|
108
|
+
enum: _SC_MQ_PRIO_MAX
|
|
109
|
+
enum: _SC_NGROUPS_MAX
|
|
110
|
+
enum: _SC_OPEN_MAX
|
|
111
|
+
enum: _SC_PAGE_SIZE
|
|
112
|
+
enum: _SC_PAGESIZE
|
|
113
|
+
enum: _SC_PRIORITIZED_IO
|
|
114
|
+
enum: _SC_PRIORITY_SCHEDULING
|
|
115
|
+
enum: _SC_RAW_SOCKETS
|
|
116
|
+
enum: _SC_RE_DUP_MAX
|
|
117
|
+
enum: _SC_READER_WRITER_LOCKS
|
|
118
|
+
enum: _SC_REALTIME_SIGNALS
|
|
119
|
+
enum: _SC_REGEXP
|
|
120
|
+
enum: _SC_RTSIG_MAX
|
|
121
|
+
enum: _SC_SAVED_IDS
|
|
122
|
+
enum: _SC_SEM_NSEMS_MAX
|
|
123
|
+
enum: _SC_SEM_VALUE_MAX
|
|
124
|
+
enum: _SC_SEMAPHORES
|
|
125
|
+
enum: _SC_SHARED_MEMORY_OBJECTS
|
|
126
|
+
enum: _SC_SHELL
|
|
127
|
+
enum: _SC_SIGQUEUE_MAX
|
|
128
|
+
enum: _SC_SPAWN
|
|
129
|
+
enum: _SC_SPIN_LOCKS
|
|
130
|
+
enum: _SC_SPORADIC_SERVER
|
|
131
|
+
enum: _SC_SS_REPL_MAX
|
|
132
|
+
enum: _SC_STREAM_MAX
|
|
133
|
+
enum: _SC_SYMLOOP_MAX
|
|
134
|
+
enum: _SC_SYNCHRONIZED_IO
|
|
135
|
+
enum: _SC_THREAD_ATTR_STACKADDR
|
|
136
|
+
enum: _SC_THREAD_ATTR_STACKSIZE
|
|
137
|
+
enum: _SC_THREAD_CPUTIME
|
|
138
|
+
enum: _SC_THREAD_DESTRUCTOR_ITERATIONS
|
|
139
|
+
enum: _SC_THREAD_KEYS_MAX
|
|
140
|
+
enum: _SC_THREAD_PRIO_INHERIT
|
|
141
|
+
enum: _SC_THREAD_PRIO_PROTECT
|
|
142
|
+
enum: _SC_THREAD_PRIORITY_SCHEDULING
|
|
143
|
+
enum: _SC_THREAD_PROCESS_SHARED
|
|
144
|
+
enum: _SC_THREAD_SAFE_FUNCTIONS
|
|
145
|
+
enum: _SC_THREAD_SPORADIC_SERVER
|
|
146
|
+
enum: _SC_THREAD_STACK_MIN
|
|
147
|
+
enum: _SC_THREAD_THREADS_MAX
|
|
148
|
+
enum: _SC_THREADS
|
|
149
|
+
enum: _SC_TIMEOUTS
|
|
150
|
+
enum: _SC_TIMER_MAX
|
|
151
|
+
enum: _SC_TIMERS
|
|
152
|
+
enum: _SC_TRACE
|
|
153
|
+
enum: _SC_TRACE_EVENT_FILTER
|
|
154
|
+
enum: _SC_TRACE_EVENT_NAME_MAX
|
|
155
|
+
enum: _SC_TRACE_INHERIT
|
|
156
|
+
enum: _SC_TRACE_LOG
|
|
157
|
+
enum: _SC_TRACE_NAME_MAX
|
|
158
|
+
enum: _SC_TRACE_SYS_MAX
|
|
159
|
+
enum: _SC_TRACE_USER_EVENT_MAX
|
|
160
|
+
enum: _SC_TTY_NAME_MAX
|
|
161
|
+
enum: _SC_TYPED_MEMORY_OBJECTS
|
|
162
|
+
enum: _SC_TZNAME_MAX
|
|
163
|
+
enum: _SC_V6_ILP32_OFF32
|
|
164
|
+
enum: _SC_V6_ILP32_OFFBIG
|
|
165
|
+
enum: _SC_V6_LP64_OFF64
|
|
166
|
+
enum: _SC_V6_LPBIG_OFFBIG
|
|
167
|
+
enum: _SC_VERSION
|
|
168
|
+
enum: _SC_XBS5_ILP32_OFF32
|
|
169
|
+
enum: _SC_XBS5_ILP32_OFFBIG
|
|
170
|
+
enum: _SC_XBS5_LP64_OFF64
|
|
171
|
+
enum: _SC_XBS5_LPBIG_OFFBIG
|
|
172
|
+
enum: _SC_XOPEN_CRYPT
|
|
173
|
+
enum: _SC_XOPEN_ENH_I18N
|
|
174
|
+
enum: _SC_XOPEN_LEGACY
|
|
175
|
+
enum: _SC_XOPEN_REALTIME
|
|
176
|
+
enum: _SC_XOPEN_REALTIME_THREADS
|
|
177
|
+
enum: _SC_XOPEN_SHM
|
|
178
|
+
enum: _SC_XOPEN_STREAMS
|
|
179
|
+
enum: _SC_XOPEN_UNIX
|
|
180
|
+
enum: _SC_XOPEN_VERSION
|
|
181
|
+
|
|
182
|
+
enum: STDIN_FILENO #0
|
|
183
|
+
enum: STDOUT_FILENO #1
|
|
184
|
+
enum: STDERR_FILENO #2
|
|
185
|
+
|
|
186
|
+
ctypedef unsigned useconds_t
|
|
187
|
+
|
|
188
|
+
int access(const char *, int)
|
|
189
|
+
unsigned alarm(unsigned)
|
|
190
|
+
int chdir(const char *)
|
|
191
|
+
int chown(const char *, uid_t, gid_t)
|
|
192
|
+
int close(int)
|
|
193
|
+
size_t confstr(int, char *, size_t)
|
|
194
|
+
char *crypt(const char *, const char *)
|
|
195
|
+
char *ctermid(char *)
|
|
196
|
+
int dup(int)
|
|
197
|
+
int dup2(int, int)
|
|
198
|
+
void encrypt(char[64], int)
|
|
199
|
+
int execl(const char *, const char *, ...)
|
|
200
|
+
int execle(const char *, const char *, ...)
|
|
201
|
+
int execlp(const char *, const char *, ...)
|
|
202
|
+
int execv(const char *, char *[])
|
|
203
|
+
int execve(const char *, char *[], char *[])
|
|
204
|
+
int execvp(const char *, char *[])
|
|
205
|
+
void _exit(int)
|
|
206
|
+
int fchown(int, uid_t, gid_t)
|
|
207
|
+
int fchdir(int)
|
|
208
|
+
int fdatasync(int)
|
|
209
|
+
pid_t fork()
|
|
210
|
+
long fpathconf(int, int)
|
|
211
|
+
int fsync(int)
|
|
212
|
+
int ftruncate(int, off_t)
|
|
213
|
+
char *getcwd(char *, size_t)
|
|
214
|
+
gid_t getegid()
|
|
215
|
+
uid_t geteuid()
|
|
216
|
+
gid_t getgid()
|
|
217
|
+
int getgroups(int, gid_t [])
|
|
218
|
+
long gethostid()
|
|
219
|
+
int gethostname(char *, size_t)
|
|
220
|
+
char *getlogin()
|
|
221
|
+
int getlogin_r(char *, size_t)
|
|
222
|
+
int getopt(int, char * [], const char *)
|
|
223
|
+
pid_t getpgid(pid_t)
|
|
224
|
+
pid_t getpgrp()
|
|
225
|
+
pid_t getpid()
|
|
226
|
+
pid_t getppid()
|
|
227
|
+
pid_t getsid(pid_t)
|
|
228
|
+
uid_t getuid()
|
|
229
|
+
char *getwd(char *)
|
|
230
|
+
int isatty(int)
|
|
231
|
+
int lchown(const char *, uid_t, gid_t)
|
|
232
|
+
int link(const char *, const char *)
|
|
233
|
+
int lockf(int, int, off_t)
|
|
234
|
+
off_t lseek(int, off_t, int)
|
|
235
|
+
int nice(int)
|
|
236
|
+
long pathconf(char *, int)
|
|
237
|
+
int pause()
|
|
238
|
+
int pipe(int [2])
|
|
239
|
+
ssize_t pread(int, void *, size_t, off_t)
|
|
240
|
+
ssize_t pwrite(int, const void *, size_t, off_t)
|
|
241
|
+
ssize_t read(int, void *, size_t)
|
|
242
|
+
ssize_t readlink(const char *, char *, size_t)
|
|
243
|
+
int rmdir(const char *)
|
|
244
|
+
int setegid(gid_t)
|
|
245
|
+
int seteuid(uid_t)
|
|
246
|
+
int setgid(gid_t)
|
|
247
|
+
int setpgid(pid_t, pid_t)
|
|
248
|
+
pid_t setpgrp()
|
|
249
|
+
int setregid(gid_t, gid_t)
|
|
250
|
+
int setreuid(uid_t, uid_t)
|
|
251
|
+
pid_t setsid()
|
|
252
|
+
int setuid(uid_t)
|
|
253
|
+
unsigned sleep(unsigned)
|
|
254
|
+
void swab(const void *, void *, ssize_t)
|
|
255
|
+
int symlink(const char *, const char *)
|
|
256
|
+
void sync()
|
|
257
|
+
long sysconf(int)
|
|
258
|
+
pid_t tcgetpgrp(int)
|
|
259
|
+
int tcsetpgrp(int, pid_t)
|
|
260
|
+
int truncate(const char *, off_t)
|
|
261
|
+
char *ttyname(int)
|
|
262
|
+
int ttyname_r(int, char *, size_t)
|
|
263
|
+
useconds_t ualarm(useconds_t, useconds_t)
|
|
264
|
+
int unlink(const char *)
|
|
265
|
+
int usleep(useconds_t)
|
|
266
|
+
pid_t vfork()
|
|
267
|
+
ssize_t write(int, const void *, size_t)
|
|
268
|
+
char *optarg
|
|
269
|
+
int optind
|
|
270
|
+
int opterr
|
|
271
|
+
int optopt
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_wait.h.html
|
|
2
|
+
|
|
3
|
+
from posix.types cimport pid_t, id_t
|
|
4
|
+
from posix.signal cimport siginfo_t
|
|
5
|
+
from posix.resource cimport rusage
|
|
6
|
+
|
|
7
|
+
cdef extern from "<sys/wait.h>" nogil:
|
|
8
|
+
enum: WNOHANG
|
|
9
|
+
enum: WUNTRACED
|
|
10
|
+
enum: WCONTINUED
|
|
11
|
+
enum: WEXITED
|
|
12
|
+
enum: WSTOPPED
|
|
13
|
+
enum: WNOWAIT
|
|
14
|
+
|
|
15
|
+
int WEXITSTATUS(int status)
|
|
16
|
+
int WIFCONTINUED(int status)
|
|
17
|
+
int WIFEXITED(int status)
|
|
18
|
+
int WIFSIGNALED(int status)
|
|
19
|
+
int WIFSTOPPED(int status)
|
|
20
|
+
int WSTOPSIG(int status)
|
|
21
|
+
int WTERMSIG(int status)
|
|
22
|
+
|
|
23
|
+
ctypedef int idtype_t
|
|
24
|
+
enum: P_ALL # idtype_t values
|
|
25
|
+
enum: P_PID
|
|
26
|
+
enum: P_PGID
|
|
27
|
+
|
|
28
|
+
pid_t wait(int *stat_loc)
|
|
29
|
+
pid_t waitpid(pid_t pid, int *status, int options)
|
|
30
|
+
int waitid(idtype_t idtype, id_t id, siginfo_t *infop, int options)
|
|
31
|
+
|
|
32
|
+
# wait3 was in POSIX until 2008 while wait4 was never standardized.
|
|
33
|
+
# Even so, these calls are in almost every Unix, always in sys/wait.h.
|
|
34
|
+
# Hence, posix.wait is the least surprising place to declare them for Cython.
|
|
35
|
+
# libc may require _XXX_SOURCE to be defined at C-compile time to provide them.
|
|
36
|
+
|
|
37
|
+
pid_t wait3(int *status, int options, rusage *rusage)
|
|
38
|
+
pid_t wait4(pid_t pid, int *status, int options, rusage *rusage)
|
Cython/Plex/Actions.pxd
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
cdef class Action:
|
|
2
|
+
cdef perform(self, token_stream, text)
|
|
3
|
+
|
|
4
|
+
cdef class Return(Action):
|
|
5
|
+
cdef object value
|
|
6
|
+
cdef perform(self, token_stream, text)
|
|
7
|
+
|
|
8
|
+
cdef class Call(Action):
|
|
9
|
+
cdef object function
|
|
10
|
+
cdef perform(self, token_stream, text)
|
|
11
|
+
|
|
12
|
+
cdef class Method(Action):
|
|
13
|
+
cdef str name
|
|
14
|
+
cdef dict kwargs
|
|
15
|
+
|
|
16
|
+
cdef class Begin(Action):
|
|
17
|
+
cdef object state_name
|
|
18
|
+
cdef perform(self, token_stream, text)
|
|
19
|
+
|
|
20
|
+
cdef class Ignore(Action):
|
|
21
|
+
cdef perform(self, token_stream, text)
|
|
22
|
+
|
|
23
|
+
cdef class Text(Action):
|
|
24
|
+
cdef perform(self, token_stream, text)
|
Cython/Plex/Actions.py
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Python Lexical Analyser
|
|
3
|
+
|
|
4
|
+
Actions for use in token specifications
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
class Action:
|
|
8
|
+
def perform(self, token_stream, text):
|
|
9
|
+
pass # abstract
|
|
10
|
+
|
|
11
|
+
def __copy__(self):
|
|
12
|
+
return self # immutable, no need to copy
|
|
13
|
+
|
|
14
|
+
def __deepcopy__(self, memo):
|
|
15
|
+
return self # immutable, no need to copy
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class Return(Action):
|
|
19
|
+
"""
|
|
20
|
+
Internal Plex action which causes |value| to
|
|
21
|
+
be returned as the value of the associated token
|
|
22
|
+
"""
|
|
23
|
+
|
|
24
|
+
def __init__(self, value):
|
|
25
|
+
self.value = value
|
|
26
|
+
|
|
27
|
+
def perform(self, token_stream, text):
|
|
28
|
+
return self.value
|
|
29
|
+
|
|
30
|
+
def __repr__(self):
|
|
31
|
+
return "Return(%r)" % self.value
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class Call(Action):
|
|
35
|
+
"""
|
|
36
|
+
Internal Plex action which causes a function to be called.
|
|
37
|
+
"""
|
|
38
|
+
|
|
39
|
+
def __init__(self, function):
|
|
40
|
+
self.function = function
|
|
41
|
+
|
|
42
|
+
def perform(self, token_stream, text):
|
|
43
|
+
return self.function(token_stream, text)
|
|
44
|
+
|
|
45
|
+
def __repr__(self):
|
|
46
|
+
return "Call(%s)" % self.function.__name__
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
class Method(Action):
|
|
50
|
+
"""
|
|
51
|
+
Plex action that calls a specific method on the token stream,
|
|
52
|
+
passing the matched text and any provided constant keyword arguments.
|
|
53
|
+
"""
|
|
54
|
+
|
|
55
|
+
def __init__(self, name, **kwargs):
|
|
56
|
+
self.name = name
|
|
57
|
+
self.kwargs = kwargs or None
|
|
58
|
+
|
|
59
|
+
def perform(self, token_stream, text):
|
|
60
|
+
method = getattr(token_stream, self.name)
|
|
61
|
+
# self.kwargs is almost always unused => avoid call overhead
|
|
62
|
+
return method(text, **self.kwargs) if self.kwargs is not None else method(text)
|
|
63
|
+
|
|
64
|
+
def __repr__(self):
|
|
65
|
+
kwargs = (
|
|
66
|
+
', '.join(sorted(['%s=%r' % item for item in self.kwargs.items()]))
|
|
67
|
+
if self.kwargs is not None else '')
|
|
68
|
+
return "Method(%s%s%s)" % (self.name, ', ' if kwargs else '', kwargs)
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
class Begin(Action):
|
|
72
|
+
"""
|
|
73
|
+
Begin(state_name) is a Plex action which causes the Scanner to
|
|
74
|
+
enter the state |state_name|. See the docstring of Plex.Lexicon
|
|
75
|
+
for more information.
|
|
76
|
+
"""
|
|
77
|
+
|
|
78
|
+
def __init__(self, state_name):
|
|
79
|
+
self.state_name = state_name
|
|
80
|
+
|
|
81
|
+
def perform(self, token_stream, text):
|
|
82
|
+
token_stream.begin(self.state_name)
|
|
83
|
+
|
|
84
|
+
def __repr__(self):
|
|
85
|
+
return "Begin(%s)" % self.state_name
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
class Ignore(Action):
|
|
89
|
+
"""
|
|
90
|
+
IGNORE is a Plex action which causes its associated token
|
|
91
|
+
to be ignored. See the docstring of Plex.Lexicon for more
|
|
92
|
+
information.
|
|
93
|
+
"""
|
|
94
|
+
|
|
95
|
+
def perform(self, token_stream, text):
|
|
96
|
+
return None
|
|
97
|
+
|
|
98
|
+
def __repr__(self):
|
|
99
|
+
return "IGNORE"
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
IGNORE = Ignore()
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
class Text(Action):
|
|
106
|
+
"""
|
|
107
|
+
TEXT is a Plex action which causes the text of a token to
|
|
108
|
+
be returned as the value of the token. See the docstring of
|
|
109
|
+
Plex.Lexicon for more information.
|
|
110
|
+
"""
|
|
111
|
+
|
|
112
|
+
def perform(self, token_stream, text):
|
|
113
|
+
return text
|
|
114
|
+
|
|
115
|
+
def __repr__(self):
|
|
116
|
+
return "TEXT"
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
TEXT = Text()
|
Cython/Plex/DFA.pxd
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
cimport cython
|
|
2
|
+
|
|
3
|
+
from . cimport Machines
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
@cython.final
|
|
7
|
+
cdef class StateMap:
|
|
8
|
+
cdef Machines.FastMachine new_machine
|
|
9
|
+
cdef dict old_to_new_dict
|
|
10
|
+
cdef dict new_to_old_dict
|
|
11
|
+
|
|
12
|
+
cdef old_to_new(self, set old_state_set)
|
|
13
|
+
cdef highest_priority_action(self, set state_set)
|
|
14
|
+
cdef make_key(self, set state_set)
|