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,101 @@
|
|
|
1
|
+
//////////////////// LoadDataclassesModule.proto /////////////////////
|
|
2
|
+
|
|
3
|
+
static PyObject *__Pyx_Load_dataclasses_Module(void);
|
|
4
|
+
|
|
5
|
+
//////////////////// LoadDataclassesModule /////////////////////
|
|
6
|
+
|
|
7
|
+
static PyObject *__Pyx_Load_dataclasses_Module(void) {
|
|
8
|
+
return PyImport_Import(PYIDENT("dataclasses"));
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
//////////////////// DataclassesCallHelper.proto ////////////////////////
|
|
12
|
+
|
|
13
|
+
static PyObject* __Pyx_DataclassesCallHelper(PyObject *callable, PyObject *kwds); /* proto */
|
|
14
|
+
|
|
15
|
+
//////////////////// DataclassesCallHelper ////////////////////////
|
|
16
|
+
|
|
17
|
+
// The signature of a few of the dataclasses module functions has
|
|
18
|
+
// been expanded over the years. Cython always passes the full set
|
|
19
|
+
// of arguments from the most recent version we know of, so needs
|
|
20
|
+
// to remove any arguments that don't exist on earlier versions.
|
|
21
|
+
|
|
22
|
+
static int __Pyx_DataclassesCallHelper_FilterToDict(PyObject *callable, PyObject *kwds, PyObject *new_kwds, PyObject *args_list, int is_kwonly) {
|
|
23
|
+
Py_ssize_t size, i;
|
|
24
|
+
size = PySequence_Size(args_list);
|
|
25
|
+
if (unlikely(size < 0)) return -1;
|
|
26
|
+
|
|
27
|
+
for (i=0; i<size; ++i) {
|
|
28
|
+
PyObject *key, *value;
|
|
29
|
+
int setitem_result;
|
|
30
|
+
key = PySequence_GetItem(args_list, i);
|
|
31
|
+
if (!key) return -1;
|
|
32
|
+
|
|
33
|
+
if (PyUnicode_Check(key) && (
|
|
34
|
+
PyUnicode_CompareWithASCIIString(key, "self") == 0 ||
|
|
35
|
+
// namedtuple constructor in fallback code
|
|
36
|
+
PyUnicode_CompareWithASCIIString(key, "_cls") == 0)) {
|
|
37
|
+
Py_DECREF(key);
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
value = PyDict_GetItem(kwds, key);
|
|
42
|
+
if (!value) {
|
|
43
|
+
if (is_kwonly) {
|
|
44
|
+
Py_DECREF(key);
|
|
45
|
+
continue;
|
|
46
|
+
} else {
|
|
47
|
+
// The most likely reason for this is that Cython
|
|
48
|
+
// hasn't kept up to date with the Python dataclasses module.
|
|
49
|
+
// To be nice to our users, try not to fail, but ask them
|
|
50
|
+
// to report a bug so we can keep up to date.
|
|
51
|
+
value = Py_None;
|
|
52
|
+
if (PyErr_WarnFormat(
|
|
53
|
+
PyExc_RuntimeWarning, 1,
|
|
54
|
+
"Argument %S not passed to %R. This is likely a bug in Cython so please report it.",
|
|
55
|
+
key, callable) == -1) {
|
|
56
|
+
Py_DECREF(key);
|
|
57
|
+
return -1;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
Py_INCREF(value);
|
|
62
|
+
setitem_result = PyDict_SetItem(new_kwds, key, value);
|
|
63
|
+
Py_DECREF(key);
|
|
64
|
+
Py_DECREF(value);
|
|
65
|
+
if (setitem_result == -1) return -1;
|
|
66
|
+
}
|
|
67
|
+
return 0;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
static PyObject* __Pyx_DataclassesCallHelper(PyObject *callable, PyObject *kwds) {
|
|
71
|
+
PyObject *new_kwds=NULL, *result=NULL;
|
|
72
|
+
PyObject *inspect;
|
|
73
|
+
PyObject *args_list=NULL, *kwonly_args_list=NULL, *getfullargspec_result=NULL;
|
|
74
|
+
|
|
75
|
+
// Going via inspect to work out what arguments to pass is unlikely to be the
|
|
76
|
+
// fastest thing ever. However, it is compatible, and only happens once
|
|
77
|
+
// at module-import time.
|
|
78
|
+
inspect = PyImport_ImportModule("inspect");
|
|
79
|
+
if (!inspect) goto bad;
|
|
80
|
+
getfullargspec_result = PyObject_CallMethodObjArgs(inspect, PYUNICODE("getfullargspec"), callable, NULL);
|
|
81
|
+
Py_DECREF(inspect);
|
|
82
|
+
if (!getfullargspec_result) goto bad;
|
|
83
|
+
args_list = PyObject_GetAttrString(getfullargspec_result, "args");
|
|
84
|
+
if (!args_list) goto bad;
|
|
85
|
+
kwonly_args_list = PyObject_GetAttrString(getfullargspec_result, "kwonlyargs");
|
|
86
|
+
if (!kwonly_args_list) goto bad;
|
|
87
|
+
|
|
88
|
+
new_kwds = PyDict_New();
|
|
89
|
+
if (!new_kwds) goto bad;
|
|
90
|
+
|
|
91
|
+
// copy over only those arguments that are in the specification
|
|
92
|
+
if (__Pyx_DataclassesCallHelper_FilterToDict(callable, kwds, new_kwds, args_list, 0) == -1) goto bad;
|
|
93
|
+
if (__Pyx_DataclassesCallHelper_FilterToDict(callable, kwds, new_kwds, kwonly_args_list, 1) == -1) goto bad;
|
|
94
|
+
result = PyObject_Call(callable, EMPTY(tuple), new_kwds);
|
|
95
|
+
bad:
|
|
96
|
+
Py_XDECREF(getfullargspec_result);
|
|
97
|
+
Py_XDECREF(args_list);
|
|
98
|
+
Py_XDECREF(kwonly_args_list);
|
|
99
|
+
Py_XDECREF(new_kwds);
|
|
100
|
+
return result;
|
|
101
|
+
}
|
Cython/Utility/Embed.c
ADDED
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
//////////////////// MainFunction ////////////////////
|
|
2
|
+
|
|
3
|
+
#ifdef __FreeBSD__
|
|
4
|
+
#include <floatingpoint.h>
|
|
5
|
+
#endif
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
{{for mname in embed_modules}}
|
|
9
|
+
__Pyx_PyMODINIT_FUNC PyInit_{{mname}}(void) CYTHON_SMALL_CODE; /*proto*/
|
|
10
|
+
{{endfor}}
|
|
11
|
+
|
|
12
|
+
#if defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS)
|
|
13
|
+
int {{wmain_method}}(int argc, wchar_t **argv)
|
|
14
|
+
#else
|
|
15
|
+
static int __Pyx_main(int argc, wchar_t **argv)
|
|
16
|
+
#endif
|
|
17
|
+
{
|
|
18
|
+
/* 754 requires that FP exceptions run in "no stop" mode by default,
|
|
19
|
+
* and until C vendors implement C99's ways to control FP exceptions,
|
|
20
|
+
* Python requires non-stop mode. Alas, some platforms enable FP
|
|
21
|
+
* exceptions by default. Here we disable them.
|
|
22
|
+
*/
|
|
23
|
+
#ifdef __FreeBSD__
|
|
24
|
+
fp_except_t m;
|
|
25
|
+
|
|
26
|
+
m = fpgetmask();
|
|
27
|
+
fpsetmask(m & ~FP_X_OFL);
|
|
28
|
+
#endif
|
|
29
|
+
|
|
30
|
+
{{for mname in (module_name,) + embed_modules}}
|
|
31
|
+
if (PyImport_AppendInittab("{{mname}}", PyInit_{{mname}}) < 0) return 1;
|
|
32
|
+
{{endfor}}
|
|
33
|
+
|
|
34
|
+
{
|
|
35
|
+
PyStatus status;
|
|
36
|
+
PyConfig config;
|
|
37
|
+
PyConfig_InitPythonConfig(&config);
|
|
38
|
+
// Disable parsing command line arguments
|
|
39
|
+
config.parse_argv = 0;
|
|
40
|
+
|
|
41
|
+
if (argc && argv) {
|
|
42
|
+
status = PyConfig_SetString(&config, &config.program_name, argv[0]);
|
|
43
|
+
if (PyStatus_Exception(status)) {
|
|
44
|
+
PyConfig_Clear(&config);
|
|
45
|
+
return 1;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
status = PyConfig_SetArgv(&config, argc, argv);
|
|
49
|
+
if (PyStatus_Exception(status)) {
|
|
50
|
+
PyConfig_Clear(&config);
|
|
51
|
+
return 1;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
status = Py_InitializeFromConfig(&config);
|
|
56
|
+
if (PyStatus_Exception(status)) {
|
|
57
|
+
PyConfig_Clear(&config);
|
|
58
|
+
return 1;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
PyConfig_Clear(&config);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
{ /* init module '{{module_name}}' as '__main__' */
|
|
65
|
+
PyObject* m = NULL;
|
|
66
|
+
{{module_is_main}} = 1;
|
|
67
|
+
m = PyImport_ImportModule("{{module_name}}");
|
|
68
|
+
|
|
69
|
+
if (!m && PyErr_Occurred()) {
|
|
70
|
+
PyErr_Print(); /* This exits with the right code if SystemExit. */
|
|
71
|
+
return 1;
|
|
72
|
+
}
|
|
73
|
+
Py_XDECREF(m);
|
|
74
|
+
}
|
|
75
|
+
if (Py_FinalizeEx() < 0)
|
|
76
|
+
return 2;
|
|
77
|
+
return 0;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
#if !defined(_WIN32) && !defined(WIN32) && !defined(MS_WINDOWS)
|
|
82
|
+
#include <locale.h>
|
|
83
|
+
|
|
84
|
+
int
|
|
85
|
+
{{main_method}}(int argc, char **argv)
|
|
86
|
+
{
|
|
87
|
+
if (!argc) {
|
|
88
|
+
return __Pyx_main(0, NULL);
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
int i, res;
|
|
92
|
+
wchar_t **argv_copy = (wchar_t **)malloc(sizeof(wchar_t*)*argc);
|
|
93
|
+
/* We need a second copy, as Python might modify the first one. */
|
|
94
|
+
wchar_t **argv_copy2 = (wchar_t **)malloc(sizeof(wchar_t*)*argc);
|
|
95
|
+
char *oldloc = strdup(setlocale(LC_ALL, NULL));
|
|
96
|
+
if (!argv_copy || !argv_copy2 || !oldloc) {
|
|
97
|
+
fprintf(stderr, "out of memory\\n");
|
|
98
|
+
free(argv_copy);
|
|
99
|
+
free(argv_copy2);
|
|
100
|
+
free(oldloc);
|
|
101
|
+
return 1;
|
|
102
|
+
}
|
|
103
|
+
res = 0;
|
|
104
|
+
setlocale(LC_ALL, "");
|
|
105
|
+
for (i = 0; i < argc; i++) {
|
|
106
|
+
argv_copy2[i] = argv_copy[i] = Py_DecodeLocale(argv[i], NULL);
|
|
107
|
+
if (!argv_copy[i]) res = 1; /* failure, but continue to simplify cleanup */
|
|
108
|
+
}
|
|
109
|
+
setlocale(LC_ALL, oldloc);
|
|
110
|
+
free(oldloc);
|
|
111
|
+
if (res == 0)
|
|
112
|
+
res = __Pyx_main(argc, argv_copy);
|
|
113
|
+
for (i = 0; i < argc; i++) {
|
|
114
|
+
PyMem_RawFree(argv_copy2[i]);
|
|
115
|
+
}
|
|
116
|
+
free(argv_copy);
|
|
117
|
+
free(argv_copy2);
|
|
118
|
+
return res;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
#endif
|