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,263 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Cython - Command Line Parsing
|
|
3
|
+
#
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
import os
|
|
7
|
+
from argparse import ArgumentParser, Action, SUPPRESS, RawDescriptionHelpFormatter
|
|
8
|
+
from . import Options
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class ParseDirectivesAction(Action):
|
|
12
|
+
def __call__(self, parser, namespace, values, option_string=None):
|
|
13
|
+
old_directives = dict(getattr(namespace, self.dest,
|
|
14
|
+
Options.get_directive_defaults()))
|
|
15
|
+
directives = Options.parse_directive_list(
|
|
16
|
+
values, relaxed_bool=True, current_settings=old_directives)
|
|
17
|
+
setattr(namespace, self.dest, directives)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class ParseOptionsAction(Action):
|
|
21
|
+
def __call__(self, parser, namespace, values, option_string=None):
|
|
22
|
+
options = dict(getattr(namespace, self.dest, {}))
|
|
23
|
+
for opt in values.split(','):
|
|
24
|
+
if '=' in opt:
|
|
25
|
+
n, v = opt.split('=', 1)
|
|
26
|
+
v = v.lower() not in ('false', 'f', '0', 'no')
|
|
27
|
+
else:
|
|
28
|
+
n, v = opt, True
|
|
29
|
+
options[n] = v
|
|
30
|
+
setattr(namespace, self.dest, options)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class ParseCompileTimeEnvAction(Action):
|
|
34
|
+
def __call__(self, parser, namespace, values, option_string=None):
|
|
35
|
+
old_env = dict(getattr(namespace, self.dest, {}))
|
|
36
|
+
new_env = Options.parse_compile_time_env(values, current_settings=old_env)
|
|
37
|
+
setattr(namespace, self.dest, new_env)
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class ActivateAllWarningsAction(Action):
|
|
41
|
+
def __call__(self, parser, namespace, values, option_string=None):
|
|
42
|
+
directives = getattr(namespace, 'compiler_directives', {})
|
|
43
|
+
directives.update(Options.extra_warnings)
|
|
44
|
+
namespace.compiler_directives = directives
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
class SetLenientAction(Action):
|
|
48
|
+
def __call__(self, parser, namespace, values, option_string=None):
|
|
49
|
+
namespace.error_on_unknown_names = False
|
|
50
|
+
namespace.error_on_uninitialized = False
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
class SetGDBDebugAction(Action):
|
|
54
|
+
def __call__(self, parser, namespace, values, option_string=None):
|
|
55
|
+
namespace.gdb_debug = True
|
|
56
|
+
namespace.output_dir = os.curdir
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
class SetGDBDebugOutputAction(Action):
|
|
60
|
+
def __call__(self, parser, namespace, values, option_string=None):
|
|
61
|
+
namespace.gdb_debug = True
|
|
62
|
+
namespace.output_dir = values
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
class SetAnnotateCoverageAction(Action):
|
|
66
|
+
def __call__(self, parser, namespace, values, option_string=None):
|
|
67
|
+
namespace.annotate = True
|
|
68
|
+
namespace.annotate_coverage_xml = values
|
|
69
|
+
|
|
70
|
+
def create_cython_argparser():
|
|
71
|
+
description = "Cython (https://cython.org/) is a compiler for code written in the "\
|
|
72
|
+
"Cython language. Cython is based on Pyrex by Greg Ewing."
|
|
73
|
+
|
|
74
|
+
parser = ArgumentParser(
|
|
75
|
+
description=description,
|
|
76
|
+
argument_default=SUPPRESS,
|
|
77
|
+
formatter_class=RawDescriptionHelpFormatter,
|
|
78
|
+
epilog="""\
|
|
79
|
+
Environment variables:
|
|
80
|
+
CYTHON_CACHE_DIR: the base directory containing Cython's caches."""
|
|
81
|
+
)
|
|
82
|
+
|
|
83
|
+
parser.add_argument("-V", "--version", dest='show_version', action='store_const', const=1,
|
|
84
|
+
help='Display version number of cython compiler')
|
|
85
|
+
parser.add_argument("-l", "--create-listing", dest='use_listing_file', action='store_const', const=1,
|
|
86
|
+
help='Write error messages to a listing file')
|
|
87
|
+
parser.add_argument("-I", "--include-dir", dest='include_path', action='append',
|
|
88
|
+
help='Search for include files in named directory '
|
|
89
|
+
'(multiple include directories are allowed).')
|
|
90
|
+
parser.add_argument("-o", "--output-file", dest='output_file', action='store', type=str,
|
|
91
|
+
help='Specify name of generated C file')
|
|
92
|
+
parser.add_argument("-t", "--timestamps", dest='timestamps', action='store_const', const=1,
|
|
93
|
+
help='Only compile newer source files')
|
|
94
|
+
parser.add_argument("-f", "--force", dest='timestamps', action='store_const', const=0,
|
|
95
|
+
help='Compile all source files (overrides implied -t)')
|
|
96
|
+
parser.add_argument("-v", "--verbose", dest='verbose', action='count',
|
|
97
|
+
help='Be verbose, print file names on multiple compilation')
|
|
98
|
+
parser.add_argument("-p", "--embed-positions", dest='embed_pos_in_docstring', action='store_const', const=1,
|
|
99
|
+
help='If specified, the positions in Cython files of each '
|
|
100
|
+
'function definition is embedded in its docstring.')
|
|
101
|
+
parser.add_argument("--cleanup", dest='generate_cleanup_code', action='store', type=int,
|
|
102
|
+
help='Release interned objects on python exit, for memory debugging. '
|
|
103
|
+
'Level indicates aggressiveness, default 0 releases nothing.')
|
|
104
|
+
parser.add_argument("--cache", dest='cache', action='store_true',
|
|
105
|
+
help='Enables Cython compilation cache.')
|
|
106
|
+
parser.add_argument("-w", "--working", dest='working_path', action='store', type=str,
|
|
107
|
+
help='Sets the working directory for Cython (the directory modules are searched from)')
|
|
108
|
+
parser.add_argument("--gdb", action=SetGDBDebugAction, nargs=0,
|
|
109
|
+
help='Output debug information for cygdb')
|
|
110
|
+
parser.add_argument("--gdb-outdir", action=SetGDBDebugOutputAction, type=str,
|
|
111
|
+
help='Specify gdb debug information output directory. Implies --gdb.')
|
|
112
|
+
parser.add_argument("-D", "--no-docstrings", dest='docstrings', action='store_false',
|
|
113
|
+
help='Strip docstrings from the compiled module.')
|
|
114
|
+
parser.add_argument('-a', '--annotate', action='store_const', const='default', dest='annotate',
|
|
115
|
+
help='Produce a colorized HTML version of the source.')
|
|
116
|
+
parser.add_argument('--annotate-fullc', action='store_const', const='fullc', dest='annotate',
|
|
117
|
+
help='Produce a colorized HTML version of the source '
|
|
118
|
+
'which includes entire generated C/C++-code.')
|
|
119
|
+
parser.add_argument("--annotate-coverage", dest='annotate_coverage_xml', action=SetAnnotateCoverageAction, type=str,
|
|
120
|
+
help='Annotate and include coverage information from cov.xml.')
|
|
121
|
+
parser.add_argument("--line-directives", dest='emit_linenums', action='store_true',
|
|
122
|
+
help='Produce #line directives pointing to the .pyx source')
|
|
123
|
+
parser.add_argument("-+", "--cplus", dest='cplus', action='store_const', const=1,
|
|
124
|
+
help='Output a C++ rather than C file.')
|
|
125
|
+
parser.add_argument('--embed', action='store_const', const='main',
|
|
126
|
+
help='Generate a main() function that embeds the Python interpreter. '
|
|
127
|
+
'Pass --embed=<method_name> for a name other than main().')
|
|
128
|
+
parser.add_argument('--embed-modules', action='store', type=comma_list,
|
|
129
|
+
help='')
|
|
130
|
+
parser.add_argument('-2', dest='language_level', action='store_const', const=2,
|
|
131
|
+
help='Compile based on Python-2 syntax and code semantics.')
|
|
132
|
+
parser.add_argument('-3', dest='language_level', action='store_const', const=3,
|
|
133
|
+
help='Compile based on Python-3 syntax and code semantics.')
|
|
134
|
+
parser.add_argument('--3str', dest='language_level', action='store_const', const='3',
|
|
135
|
+
help='Compile based on Python-3 syntax and code semantics (same as -3 since Cython 3.1).')
|
|
136
|
+
parser.add_argument("--lenient", action=SetLenientAction, nargs=0,
|
|
137
|
+
help='Change some compile time errors to runtime errors to '
|
|
138
|
+
'improve Python compatibility')
|
|
139
|
+
parser.add_argument("--capi-reexport-cincludes", dest='capi_reexport_cincludes', action='store_true',
|
|
140
|
+
help='Add cincluded headers to any auto-generated header files.')
|
|
141
|
+
parser.add_argument("--fast-fail", dest='fast_fail', action='store_true',
|
|
142
|
+
help='Abort the compilation on the first error')
|
|
143
|
+
parser.add_argument("-Werror", "--warning-errors", dest='warning_errors', action='store_true',
|
|
144
|
+
help='Make all warnings into errors')
|
|
145
|
+
parser.add_argument("-Wextra", "--warning-extra", action=ActivateAllWarningsAction, nargs=0,
|
|
146
|
+
help='Enable extra warnings')
|
|
147
|
+
|
|
148
|
+
parser.add_argument('-X', '--directive', metavar='NAME=VALUE,...',
|
|
149
|
+
dest='compiler_directives', type=str,
|
|
150
|
+
action=ParseDirectivesAction,
|
|
151
|
+
help='Overrides a compiler directive')
|
|
152
|
+
parser.add_argument('-E', '--compile-time-env', metavar='NAME=VALUE,...',
|
|
153
|
+
dest='compile_time_env', type=str,
|
|
154
|
+
action=ParseCompileTimeEnvAction,
|
|
155
|
+
help='Provides compile time env like DEF would do.')
|
|
156
|
+
parser.add_argument("--module-name",
|
|
157
|
+
dest='module_name', type=str, action='store',
|
|
158
|
+
help='Fully qualified module name. If not given, is '
|
|
159
|
+
'deduced from the import path if source file is in '
|
|
160
|
+
'a package, or equals the filename otherwise.')
|
|
161
|
+
parser.add_argument('-M', '--depfile', action='store_true', help='produce depfiles for the sources')
|
|
162
|
+
parser.add_argument("--generate-shared", dest='shared_c_file_path', action='store', type=str,
|
|
163
|
+
help='Generates shared module with specified name.')
|
|
164
|
+
parser.add_argument("--shared", dest='shared_utility_qualified_name', action='store', type=str,
|
|
165
|
+
help='Imports utility code from shared module specified by fully qualified module name.')
|
|
166
|
+
|
|
167
|
+
parser.add_argument('sources', nargs='*', default=[])
|
|
168
|
+
|
|
169
|
+
# TODO: add help
|
|
170
|
+
parser.add_argument("-z", "--pre-import", dest='pre_import', action='store', type=str, help=SUPPRESS)
|
|
171
|
+
parser.add_argument("--convert-range", dest='convert_range', action='store_true', help=SUPPRESS)
|
|
172
|
+
parser.add_argument("--no-c-in-traceback", dest='c_line_in_traceback', action='store_false', help=SUPPRESS)
|
|
173
|
+
parser.add_argument("--cimport-from-pyx", dest='cimport_from_pyx', action='store_true', help=SUPPRESS)
|
|
174
|
+
parser.add_argument("--old-style-globals", dest='old_style_globals', action='store_true', help=SUPPRESS)
|
|
175
|
+
|
|
176
|
+
# debug stuff:
|
|
177
|
+
from . import DebugFlags
|
|
178
|
+
for name in vars(DebugFlags):
|
|
179
|
+
if name.startswith("debug"):
|
|
180
|
+
option_name = name.replace('_', '-')
|
|
181
|
+
parser.add_argument("--" + option_name, action='store_true', help=SUPPRESS)
|
|
182
|
+
|
|
183
|
+
return parser
|
|
184
|
+
|
|
185
|
+
def comma_list(string):
|
|
186
|
+
return string.split(',')
|
|
187
|
+
|
|
188
|
+
def parse_command_line_raw(parser, args):
|
|
189
|
+
# special handling for --embed and --embed=xxxx as they aren't correctly parsed
|
|
190
|
+
def filter_out_embed_options(args):
|
|
191
|
+
with_embed, without_embed = [], []
|
|
192
|
+
for x in args:
|
|
193
|
+
if x == '--embed' or x.startswith('--embed='):
|
|
194
|
+
with_embed.append(x)
|
|
195
|
+
else:
|
|
196
|
+
without_embed.append(x)
|
|
197
|
+
return with_embed, without_embed
|
|
198
|
+
|
|
199
|
+
with_embed, args_without_embed = filter_out_embed_options(args)
|
|
200
|
+
|
|
201
|
+
arguments, unknown = parser.parse_known_args(args_without_embed)
|
|
202
|
+
|
|
203
|
+
sources = arguments.sources
|
|
204
|
+
del arguments.sources
|
|
205
|
+
|
|
206
|
+
# unknown can be either debug, embed or input files or really unknown
|
|
207
|
+
for option in unknown:
|
|
208
|
+
if option.startswith('-'):
|
|
209
|
+
parser.error("unknown option " + option)
|
|
210
|
+
else:
|
|
211
|
+
sources.append(option)
|
|
212
|
+
|
|
213
|
+
# embed-stuff must be handled extra:
|
|
214
|
+
for x in with_embed:
|
|
215
|
+
if x == '--embed':
|
|
216
|
+
name = 'main' # default value
|
|
217
|
+
else:
|
|
218
|
+
name = x[len('--embed='):]
|
|
219
|
+
setattr(arguments, 'embed', name)
|
|
220
|
+
|
|
221
|
+
return arguments, sources
|
|
222
|
+
|
|
223
|
+
|
|
224
|
+
def parse_command_line(args):
|
|
225
|
+
parser = create_cython_argparser()
|
|
226
|
+
arguments, sources = parse_command_line_raw(parser, args)
|
|
227
|
+
|
|
228
|
+
work_dir = getattr(arguments, 'working_path', '')
|
|
229
|
+
for source in sources:
|
|
230
|
+
if work_dir and not os.path.isabs(source):
|
|
231
|
+
source = os.path.join(work_dir, source)
|
|
232
|
+
if not os.path.exists(source):
|
|
233
|
+
import errno
|
|
234
|
+
raise FileNotFoundError(errno.ENOENT, os.strerror(errno.ENOENT), source)
|
|
235
|
+
|
|
236
|
+
options = Options.CompilationOptions(Options.default_options)
|
|
237
|
+
for name, value in vars(arguments).items():
|
|
238
|
+
if name.startswith('debug'):
|
|
239
|
+
from . import DebugFlags
|
|
240
|
+
if name in dir(DebugFlags):
|
|
241
|
+
setattr(DebugFlags, name, value)
|
|
242
|
+
else:
|
|
243
|
+
parser.error("Unknown debug flag: %s\n" % name)
|
|
244
|
+
elif hasattr(Options, name):
|
|
245
|
+
setattr(Options, name, value)
|
|
246
|
+
else:
|
|
247
|
+
setattr(options, name, value)
|
|
248
|
+
|
|
249
|
+
if options.use_listing_file and len(sources) > 1:
|
|
250
|
+
parser.error("cython: Only one source file allowed when using -o\n")
|
|
251
|
+
if options.shared_c_file_path:
|
|
252
|
+
if len(sources) > 0:
|
|
253
|
+
parser.error("cython: Source file not allowed when using --generate-shared\n")
|
|
254
|
+
elif len(sources) == 0 and not options.show_version:
|
|
255
|
+
parser.error("cython: Need at least one source file\n")
|
|
256
|
+
if Options.embed and len(sources) > 1:
|
|
257
|
+
parser.error("cython: Only one source file allowed when using --embed\n")
|
|
258
|
+
if options.module_name:
|
|
259
|
+
if options.timestamps:
|
|
260
|
+
parser.error("cython: Cannot use --module-name with --timestamps\n")
|
|
261
|
+
if len(sources) > 1:
|
|
262
|
+
parser.error("cython: Only one source file allowed when using --module-name\n")
|
|
263
|
+
return options, sources
|
Cython/Compiler/Code.pxd
ADDED
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
cimport cython
|
|
2
|
+
from ..StringIOTree cimport StringIOTree
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
cdef class AbstractUtilityCode:
|
|
6
|
+
pass
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
cdef class UtilityCodeBase(AbstractUtilityCode):
|
|
10
|
+
cpdef format_code(self, code_string, replace_empty_lines=*)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
cdef class UtilityCode(UtilityCodeBase):
|
|
14
|
+
cdef public object name
|
|
15
|
+
cdef public object proto
|
|
16
|
+
cdef public object export
|
|
17
|
+
cdef public object impl
|
|
18
|
+
cdef public object init
|
|
19
|
+
cdef public object cleanup
|
|
20
|
+
cdef object proto_block
|
|
21
|
+
cdef readonly object module_state_decls
|
|
22
|
+
cdef readonly object module_state_traverse
|
|
23
|
+
cdef readonly object module_state_clear
|
|
24
|
+
cdef public object requires
|
|
25
|
+
cdef dict _cache
|
|
26
|
+
cdef list specialize_list
|
|
27
|
+
cdef public object file
|
|
28
|
+
cdef readonly tuple _parts_tuple
|
|
29
|
+
cdef list shared_utility_functions
|
|
30
|
+
|
|
31
|
+
cpdef none_or_sub(self, s, context)
|
|
32
|
+
# TODO - Signature not compatible with previous declaration
|
|
33
|
+
#@cython.final
|
|
34
|
+
#cdef bint _put_code_section(self, writer, code_type: str) except -1
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
@cython.final
|
|
38
|
+
cdef class FunctionState:
|
|
39
|
+
cdef set names_taken
|
|
40
|
+
cdef public object owner
|
|
41
|
+
cdef public object scope
|
|
42
|
+
|
|
43
|
+
cdef public object error_label
|
|
44
|
+
cdef public size_t label_counter
|
|
45
|
+
cdef public set labels_used
|
|
46
|
+
cdef public object return_label
|
|
47
|
+
cdef public object continue_label
|
|
48
|
+
cdef public object break_label
|
|
49
|
+
cdef readonly list yield_labels
|
|
50
|
+
|
|
51
|
+
cdef public object return_from_error_cleanup_label # not used in __init__ ?
|
|
52
|
+
|
|
53
|
+
cdef public object exc_vars
|
|
54
|
+
cdef public object current_except
|
|
55
|
+
cdef public bint can_trace
|
|
56
|
+
cdef public bint gil_owned
|
|
57
|
+
|
|
58
|
+
cdef list temps_allocated
|
|
59
|
+
cdef dict temps_free
|
|
60
|
+
cdef dict temps_used_type
|
|
61
|
+
cdef set zombie_temps
|
|
62
|
+
cdef size_t temp_counter
|
|
63
|
+
cdef list collect_temps_stack
|
|
64
|
+
|
|
65
|
+
cdef readonly object closure_temps
|
|
66
|
+
cdef bint should_declare_error_indicator
|
|
67
|
+
cdef public bint uses_error_indicator
|
|
68
|
+
cdef public bint error_without_exception
|
|
69
|
+
|
|
70
|
+
cdef public bint needs_refnanny
|
|
71
|
+
|
|
72
|
+
cpdef new_label(self, name=*)
|
|
73
|
+
cpdef tuple get_loop_labels(self)
|
|
74
|
+
cpdef set_loop_labels(self, labels)
|
|
75
|
+
cpdef tuple get_all_labels(self)
|
|
76
|
+
cpdef set_all_labels(self, labels)
|
|
77
|
+
cpdef start_collecting_temps(self)
|
|
78
|
+
cpdef stop_collecting_temps(self)
|
|
79
|
+
|
|
80
|
+
cpdef list temps_in_use(self)
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
@cython.final
|
|
84
|
+
cdef class PyObjectConst:
|
|
85
|
+
cdef readonly object cname
|
|
86
|
+
cdef readonly object type
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
@cython.final
|
|
90
|
+
cdef class StringConst:
|
|
91
|
+
cdef readonly object cname
|
|
92
|
+
cdef readonly object text
|
|
93
|
+
cdef readonly object escaped_value
|
|
94
|
+
cdef readonly dict py_strings
|
|
95
|
+
cdef public bint c_used
|
|
96
|
+
|
|
97
|
+
cpdef get_py_string_const(self, encoding, identifier=*)
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
@cython.final
|
|
101
|
+
cdef class PyStringConst:
|
|
102
|
+
cdef readonly object cname
|
|
103
|
+
cdef readonly object encoding
|
|
104
|
+
cdef readonly bint is_unicode
|
|
105
|
+
cdef readonly bint intern
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
#class GlobalState(object):
|
|
109
|
+
|
|
110
|
+
#def funccontext_property(name):
|
|
111
|
+
|
|
112
|
+
cdef class CCodeWriter(object):
|
|
113
|
+
cdef readonly StringIOTree buffer
|
|
114
|
+
cdef readonly list pyclass_stack
|
|
115
|
+
cdef readonly object globalstate
|
|
116
|
+
cdef readonly FunctionState funcstate
|
|
117
|
+
cdef object code_config
|
|
118
|
+
cdef tuple last_pos
|
|
119
|
+
cdef tuple last_marked_pos
|
|
120
|
+
cdef Py_ssize_t level
|
|
121
|
+
cdef public Py_ssize_t call_level # debug-only, see Nodes.py
|
|
122
|
+
cdef bint bol
|
|
123
|
+
|
|
124
|
+
cpdef write(self, s)
|
|
125
|
+
cdef _write_lines(self, s)
|
|
126
|
+
cpdef _write_to_buffer(self, s)
|
|
127
|
+
cdef put_multilines(self, code)
|
|
128
|
+
cpdef put(self, code)
|
|
129
|
+
cpdef put_safe(self, code)
|
|
130
|
+
cpdef putln(self, code=*, bint safe=*)
|
|
131
|
+
cdef emit_marker(self)
|
|
132
|
+
cdef _build_marker(self, tuple pos)
|
|
133
|
+
cdef increase_indent(self)
|
|
134
|
+
cdef decrease_indent(self)
|
|
135
|
+
cdef indent(self)
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
cdef class PyrexCodeWriter:
|
|
139
|
+
cdef readonly object f
|
|
140
|
+
cdef readonly Py_ssize_t level
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
cdef class PyxCodeWriter:
|
|
144
|
+
cdef public StringIOTree buffer
|
|
145
|
+
cdef public object context
|
|
146
|
+
cdef object encoding
|
|
147
|
+
cdef Py_ssize_t level
|
|
148
|
+
cdef Py_ssize_t original_level
|
|
149
|
+
cdef dict _insertion_points
|