Cython 3.1.0a1__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.
Files changed (301) hide show
  1. Cython/Build/BuildExecutable.py +169 -0
  2. Cython/Build/Cache.py +199 -0
  3. Cython/Build/Cythonize.py +250 -0
  4. Cython/Build/Dependencies.py +1275 -0
  5. Cython/Build/Distutils.py +1 -0
  6. Cython/Build/Inline.py +342 -0
  7. Cython/Build/IpythonMagic.py +560 -0
  8. Cython/Build/Tests/TestCyCache.py +119 -0
  9. Cython/Build/Tests/TestCythonizeArgsParser.py +481 -0
  10. Cython/Build/Tests/TestDependencies.py +133 -0
  11. Cython/Build/Tests/TestInline.py +112 -0
  12. Cython/Build/Tests/TestIpythonMagic.py +287 -0
  13. Cython/Build/Tests/TestRecythonize.py +212 -0
  14. Cython/Build/Tests/TestStripLiterals.py +155 -0
  15. Cython/Build/Tests/__init__.py +1 -0
  16. Cython/Build/__init__.py +8 -0
  17. Cython/CodeWriter.py +811 -0
  18. Cython/Compiler/AnalysedTreeTransforms.py +97 -0
  19. Cython/Compiler/Annotate.py +326 -0
  20. Cython/Compiler/AutoDocTransforms.py +314 -0
  21. Cython/Compiler/Buffer.py +680 -0
  22. Cython/Compiler/Builtin.py +862 -0
  23. Cython/Compiler/CmdLine.py +243 -0
  24. Cython/Compiler/Code.pxd +145 -0
  25. Cython/Compiler/Code.py +3328 -0
  26. Cython/Compiler/CodeGeneration.py +33 -0
  27. Cython/Compiler/CythonScope.py +179 -0
  28. Cython/Compiler/Dataclass.py +868 -0
  29. Cython/Compiler/DebugFlags.py +21 -0
  30. Cython/Compiler/Errors.py +295 -0
  31. Cython/Compiler/ExprNodes.py +15051 -0
  32. Cython/Compiler/FlowControl.pxd +97 -0
  33. Cython/Compiler/FlowControl.py +1438 -0
  34. Cython/Compiler/FusedNode.py +998 -0
  35. Cython/Compiler/Future.py +16 -0
  36. Cython/Compiler/Interpreter.py +57 -0
  37. Cython/Compiler/Lexicon.py +340 -0
  38. Cython/Compiler/LineTable.py +114 -0
  39. Cython/Compiler/Main.py +779 -0
  40. Cython/Compiler/MatchCaseNodes.py +259 -0
  41. Cython/Compiler/MemoryView.py +860 -0
  42. Cython/Compiler/ModuleNode.py +4065 -0
  43. Cython/Compiler/Naming.py +369 -0
  44. Cython/Compiler/Nodes.py +10557 -0
  45. Cython/Compiler/Optimize.py +5269 -0
  46. Cython/Compiler/Options.py +828 -0
  47. Cython/Compiler/ParseTreeTransforms.pxd +78 -0
  48. Cython/Compiler/ParseTreeTransforms.py +4441 -0
  49. Cython/Compiler/Parsing.pxd +9 -0
  50. Cython/Compiler/Parsing.py +4797 -0
  51. Cython/Compiler/Pipeline.py +425 -0
  52. Cython/Compiler/PyrexTypes.py +5572 -0
  53. Cython/Compiler/Pythran.py +223 -0
  54. Cython/Compiler/Scanning.pxd +40 -0
  55. Cython/Compiler/Scanning.py +574 -0
  56. Cython/Compiler/StringEncoding.py +347 -0
  57. Cython/Compiler/Symtab.py +2998 -0
  58. Cython/Compiler/Tests/TestBuffer.py +105 -0
  59. Cython/Compiler/Tests/TestBuiltin.py +72 -0
  60. Cython/Compiler/Tests/TestCmdLine.py +573 -0
  61. Cython/Compiler/Tests/TestCode.py +86 -0
  62. Cython/Compiler/Tests/TestFlowControl.py +65 -0
  63. Cython/Compiler/Tests/TestGrammar.py +202 -0
  64. Cython/Compiler/Tests/TestMemView.py +71 -0
  65. Cython/Compiler/Tests/TestParseTreeTransforms.py +285 -0
  66. Cython/Compiler/Tests/TestScanning.py +134 -0
  67. Cython/Compiler/Tests/TestSignatureMatching.py +73 -0
  68. Cython/Compiler/Tests/TestStringEncoding.py +33 -0
  69. Cython/Compiler/Tests/TestTreeFragment.py +63 -0
  70. Cython/Compiler/Tests/TestTreePath.py +93 -0
  71. Cython/Compiler/Tests/TestTypes.py +75 -0
  72. Cython/Compiler/Tests/TestUtilityLoad.py +112 -0
  73. Cython/Compiler/Tests/TestVisitor.py +61 -0
  74. Cython/Compiler/Tests/Utils.py +36 -0
  75. Cython/Compiler/Tests/__init__.py +1 -0
  76. Cython/Compiler/TreeFragment.py +278 -0
  77. Cython/Compiler/TreePath.py +290 -0
  78. Cython/Compiler/TypeInference.py +584 -0
  79. Cython/Compiler/TypeSlots.py +1181 -0
  80. Cython/Compiler/UFuncs.py +311 -0
  81. Cython/Compiler/UtilNodes.py +387 -0
  82. Cython/Compiler/UtilityCode.py +274 -0
  83. Cython/Compiler/Version.py +8 -0
  84. Cython/Compiler/Visitor.pxd +53 -0
  85. Cython/Compiler/Visitor.py +861 -0
  86. Cython/Compiler/__init__.py +1 -0
  87. Cython/Coverage.py +443 -0
  88. Cython/Debugger/Cygdb.py +179 -0
  89. Cython/Debugger/DebugWriter.py +82 -0
  90. Cython/Debugger/Tests/TestLibCython.py +275 -0
  91. Cython/Debugger/Tests/__init__.py +1 -0
  92. Cython/Debugger/Tests/cfuncs.c +8 -0
  93. Cython/Debugger/Tests/codefile +49 -0
  94. Cython/Debugger/Tests/test_libcython_in_gdb.py +578 -0
  95. Cython/Debugger/Tests/test_libpython_in_gdb.py +90 -0
  96. Cython/Debugger/__init__.py +1 -0
  97. Cython/Debugger/libcython.py +1549 -0
  98. Cython/Debugger/libpython.py +2821 -0
  99. Cython/Debugging.py +20 -0
  100. Cython/Distutils/__init__.py +2 -0
  101. Cython/Distutils/build_ext.py +137 -0
  102. Cython/Distutils/extension.py +96 -0
  103. Cython/Distutils/old_build_ext.py +351 -0
  104. Cython/Includes/cpython/__init__.pxd +173 -0
  105. Cython/Includes/cpython/array.pxd +174 -0
  106. Cython/Includes/cpython/bool.pxd +37 -0
  107. Cython/Includes/cpython/buffer.pxd +112 -0
  108. Cython/Includes/cpython/bytearray.pxd +33 -0
  109. Cython/Includes/cpython/bytes.pxd +200 -0
  110. Cython/Includes/cpython/cellobject.pxd +35 -0
  111. Cython/Includes/cpython/ceval.pxd +8 -0
  112. Cython/Includes/cpython/codecs.pxd +121 -0
  113. Cython/Includes/cpython/complex.pxd +55 -0
  114. Cython/Includes/cpython/contextvars.pxd +141 -0
  115. Cython/Includes/cpython/conversion.pxd +36 -0
  116. Cython/Includes/cpython/datetime.pxd +384 -0
  117. Cython/Includes/cpython/descr.pxd +26 -0
  118. Cython/Includes/cpython/dict.pxd +187 -0
  119. Cython/Includes/cpython/exc.pxd +263 -0
  120. Cython/Includes/cpython/fileobject.pxd +57 -0
  121. Cython/Includes/cpython/float.pxd +47 -0
  122. Cython/Includes/cpython/function.pxd +65 -0
  123. Cython/Includes/cpython/genobject.pxd +25 -0
  124. Cython/Includes/cpython/getargs.pxd +12 -0
  125. Cython/Includes/cpython/instance.pxd +25 -0
  126. Cython/Includes/cpython/iterator.pxd +36 -0
  127. Cython/Includes/cpython/iterobject.pxd +24 -0
  128. Cython/Includes/cpython/list.pxd +92 -0
  129. Cython/Includes/cpython/long.pxd +149 -0
  130. Cython/Includes/cpython/longintrepr.pxd +19 -0
  131. Cython/Includes/cpython/mapping.pxd +63 -0
  132. Cython/Includes/cpython/marshal.pxd +66 -0
  133. Cython/Includes/cpython/mem.pxd +120 -0
  134. Cython/Includes/cpython/memoryview.pxd +50 -0
  135. Cython/Includes/cpython/method.pxd +49 -0
  136. Cython/Includes/cpython/module.pxd +208 -0
  137. Cython/Includes/cpython/number.pxd +258 -0
  138. Cython/Includes/cpython/object.pxd +433 -0
  139. Cython/Includes/cpython/pycapsule.pxd +143 -0
  140. Cython/Includes/cpython/pylifecycle.pxd +68 -0
  141. Cython/Includes/cpython/pyport.pxd +8 -0
  142. Cython/Includes/cpython/pystate.pxd +95 -0
  143. Cython/Includes/cpython/pythread.pxd +53 -0
  144. Cython/Includes/cpython/ref.pxd +67 -0
  145. Cython/Includes/cpython/sequence.pxd +134 -0
  146. Cython/Includes/cpython/set.pxd +119 -0
  147. Cython/Includes/cpython/slice.pxd +70 -0
  148. Cython/Includes/cpython/time.pxd +129 -0
  149. Cython/Includes/cpython/tuple.pxd +72 -0
  150. Cython/Includes/cpython/type.pxd +53 -0
  151. Cython/Includes/cpython/unicode.pxd +639 -0
  152. Cython/Includes/cpython/version.pxd +32 -0
  153. Cython/Includes/cpython/weakref.pxd +42 -0
  154. Cython/Includes/libc/__init__.pxd +1 -0
  155. Cython/Includes/libc/complex.pxd +35 -0
  156. Cython/Includes/libc/errno.pxd +127 -0
  157. Cython/Includes/libc/float.pxd +43 -0
  158. Cython/Includes/libc/limits.pxd +28 -0
  159. Cython/Includes/libc/locale.pxd +46 -0
  160. Cython/Includes/libc/math.pxd +209 -0
  161. Cython/Includes/libc/setjmp.pxd +10 -0
  162. Cython/Includes/libc/signal.pxd +64 -0
  163. Cython/Includes/libc/stddef.pxd +9 -0
  164. Cython/Includes/libc/stdint.pxd +105 -0
  165. Cython/Includes/libc/stdio.pxd +80 -0
  166. Cython/Includes/libc/stdlib.pxd +72 -0
  167. Cython/Includes/libc/string.pxd +50 -0
  168. Cython/Includes/libc/time.pxd +47 -0
  169. Cython/Includes/libcpp/__init__.pxd +4 -0
  170. Cython/Includes/libcpp/algorithm.pxd +320 -0
  171. Cython/Includes/libcpp/any.pxd +16 -0
  172. Cython/Includes/libcpp/atomic.pxd +59 -0
  173. Cython/Includes/libcpp/bit.pxd +29 -0
  174. Cython/Includes/libcpp/cast.pxd +12 -0
  175. Cython/Includes/libcpp/cmath.pxd +518 -0
  176. Cython/Includes/libcpp/complex.pxd +106 -0
  177. Cython/Includes/libcpp/deque.pxd +165 -0
  178. Cython/Includes/libcpp/execution.pxd +15 -0
  179. Cython/Includes/libcpp/forward_list.pxd +63 -0
  180. Cython/Includes/libcpp/functional.pxd +26 -0
  181. Cython/Includes/libcpp/iterator.pxd +34 -0
  182. Cython/Includes/libcpp/limits.pxd +61 -0
  183. Cython/Includes/libcpp/list.pxd +117 -0
  184. Cython/Includes/libcpp/map.pxd +252 -0
  185. Cython/Includes/libcpp/memory.pxd +115 -0
  186. Cython/Includes/libcpp/numbers.pxd +15 -0
  187. Cython/Includes/libcpp/numeric.pxd +131 -0
  188. Cython/Includes/libcpp/optional.pxd +34 -0
  189. Cython/Includes/libcpp/pair.pxd +1 -0
  190. Cython/Includes/libcpp/queue.pxd +25 -0
  191. Cython/Includes/libcpp/random.pxd +166 -0
  192. Cython/Includes/libcpp/set.pxd +228 -0
  193. Cython/Includes/libcpp/stack.pxd +11 -0
  194. Cython/Includes/libcpp/string.pxd +333 -0
  195. Cython/Includes/libcpp/typeindex.pxd +15 -0
  196. Cython/Includes/libcpp/typeinfo.pxd +10 -0
  197. Cython/Includes/libcpp/unordered_map.pxd +193 -0
  198. Cython/Includes/libcpp/unordered_set.pxd +152 -0
  199. Cython/Includes/libcpp/utility.pxd +30 -0
  200. Cython/Includes/libcpp/vector.pxd +167 -0
  201. Cython/Includes/openmp.pxd +50 -0
  202. Cython/Includes/posix/__init__.pxd +1 -0
  203. Cython/Includes/posix/dlfcn.pxd +14 -0
  204. Cython/Includes/posix/fcntl.pxd +86 -0
  205. Cython/Includes/posix/ioctl.pxd +4 -0
  206. Cython/Includes/posix/mman.pxd +101 -0
  207. Cython/Includes/posix/resource.pxd +57 -0
  208. Cython/Includes/posix/select.pxd +21 -0
  209. Cython/Includes/posix/signal.pxd +73 -0
  210. Cython/Includes/posix/stat.pxd +98 -0
  211. Cython/Includes/posix/stdio.pxd +37 -0
  212. Cython/Includes/posix/stdlib.pxd +29 -0
  213. Cython/Includes/posix/strings.pxd +9 -0
  214. Cython/Includes/posix/time.pxd +71 -0
  215. Cython/Includes/posix/types.pxd +30 -0
  216. Cython/Includes/posix/uio.pxd +26 -0
  217. Cython/Includes/posix/unistd.pxd +271 -0
  218. Cython/Includes/posix/wait.pxd +38 -0
  219. Cython/Plex/Actions.pxd +24 -0
  220. Cython/Plex/Actions.py +119 -0
  221. Cython/Plex/DFA.pxd +14 -0
  222. Cython/Plex/DFA.py +164 -0
  223. Cython/Plex/Errors.py +48 -0
  224. Cython/Plex/Lexicons.py +178 -0
  225. Cython/Plex/Machines.pxd +36 -0
  226. Cython/Plex/Machines.py +238 -0
  227. Cython/Plex/Regexps.py +539 -0
  228. Cython/Plex/Scanners.pxd +47 -0
  229. Cython/Plex/Scanners.py +360 -0
  230. Cython/Plex/Transitions.pxd +14 -0
  231. Cython/Plex/Transitions.py +239 -0
  232. Cython/Plex/__init__.py +34 -0
  233. Cython/Runtime/__init__.py +1 -0
  234. Cython/Runtime/refnanny.pyx +261 -0
  235. Cython/Shadow.py +656 -0
  236. Cython/Shadow.pyi +521 -0
  237. Cython/StringIOTree.py +170 -0
  238. Cython/Tempita/__init__.py +4 -0
  239. Cython/Tempita/_looper.py +154 -0
  240. Cython/Tempita/_tempita.py +1091 -0
  241. Cython/TestUtils.py +417 -0
  242. Cython/Tests/TestCodeWriter.py +128 -0
  243. Cython/Tests/TestCythonUtils.py +202 -0
  244. Cython/Tests/TestJediTyper.py +223 -0
  245. Cython/Tests/TestShadow.py +114 -0
  246. Cython/Tests/TestStringIOTree.py +67 -0
  247. Cython/Tests/TestTestUtils.py +90 -0
  248. Cython/Tests/__init__.py +1 -0
  249. Cython/Tests/xmlrunner.py +390 -0
  250. Cython/Utility/AsyncGen.c +1263 -0
  251. Cython/Utility/Buffer.c +875 -0
  252. Cython/Utility/Builtins.c +660 -0
  253. Cython/Utility/CConvert.pyx +134 -0
  254. Cython/Utility/CMath.c +95 -0
  255. Cython/Utility/CommonStructures.c +139 -0
  256. Cython/Utility/Complex.c +378 -0
  257. Cython/Utility/Coroutine.c +2413 -0
  258. Cython/Utility/CpdefEnums.pyx +108 -0
  259. Cython/Utility/CppConvert.pyx +279 -0
  260. Cython/Utility/CppSupport.cpp +133 -0
  261. Cython/Utility/CythonFunction.c +1851 -0
  262. Cython/Utility/Dataclasses.c +185 -0
  263. Cython/Utility/Dataclasses.py +112 -0
  264. Cython/Utility/Embed.c +125 -0
  265. Cython/Utility/Exceptions.c +1017 -0
  266. Cython/Utility/ExtensionTypes.c +797 -0
  267. Cython/Utility/FunctionArguments.c +573 -0
  268. Cython/Utility/ImportExport.c +912 -0
  269. Cython/Utility/MemoryView.pyx +1478 -0
  270. Cython/Utility/MemoryView_C.c +992 -0
  271. Cython/Utility/ModuleSetupCode.c +2501 -0
  272. Cython/Utility/NumpyImportArray.c +46 -0
  273. Cython/Utility/ObjectHandling.c +3054 -0
  274. Cython/Utility/Optimize.c +1533 -0
  275. Cython/Utility/Overflow.c +404 -0
  276. Cython/Utility/Printing.c +86 -0
  277. Cython/Utility/Profile.c +660 -0
  278. Cython/Utility/StringTools.c +1206 -0
  279. Cython/Utility/TestCyUtilityLoader.pyx +8 -0
  280. Cython/Utility/TestCythonScope.pyx +75 -0
  281. Cython/Utility/TestUtilityLoader.c +12 -0
  282. Cython/Utility/TypeConversion.c +1329 -0
  283. Cython/Utility/UFuncs.pyx +50 -0
  284. Cython/Utility/UFuncs_C.c +89 -0
  285. Cython/Utility/__init__.py +28 -0
  286. Cython/Utility/arrayarray.h +143 -0
  287. Cython/Utils.py +687 -0
  288. Cython/__init__.py +10 -0
  289. Cython/__init__.pyi +7 -0
  290. Cython/py.typed +0 -0
  291. Cython-3.1.0a1.dist-info/COPYING.txt +19 -0
  292. Cython-3.1.0a1.dist-info/LICENSE.txt +176 -0
  293. Cython-3.1.0a1.dist-info/METADATA +67 -0
  294. Cython-3.1.0a1.dist-info/RECORD +301 -0
  295. Cython-3.1.0a1.dist-info/WHEEL +5 -0
  296. Cython-3.1.0a1.dist-info/entry_points.txt +4 -0
  297. Cython-3.1.0a1.dist-info/top_level.txt +3 -0
  298. cython.py +29 -0
  299. pyximport/__init__.py +4 -0
  300. pyximport/pyxbuild.py +160 -0
  301. pyximport/pyximport.py +482 -0
@@ -0,0 +1,243 @@
1
+ #
2
+ # Cython - Command Line Parsing
3
+ #
4
+
5
+
6
+ import os
7
+ from argparse import ArgumentParser, Action, SUPPRESS
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
+
71
+ def create_cython_argparser():
72
+ description = "Cython (https://cython.org/) is a compiler for code written in the "\
73
+ "Cython language. Cython is based on Pyrex by Greg Ewing."
74
+
75
+ parser = ArgumentParser(description=description, argument_default=SUPPRESS)
76
+
77
+ parser.add_argument("-V", "--version", dest='show_version', action='store_const', const=1,
78
+ help='Display version number of cython compiler')
79
+ parser.add_argument("-l", "--create-listing", dest='use_listing_file', action='store_const', const=1,
80
+ help='Write error messages to a listing file')
81
+ parser.add_argument("-I", "--include-dir", dest='include_path', action='append',
82
+ help='Search for include files in named directory '
83
+ '(multiple include directories are allowed).')
84
+ parser.add_argument("-o", "--output-file", dest='output_file', action='store', type=str,
85
+ help='Specify name of generated C file')
86
+ parser.add_argument("-t", "--timestamps", dest='timestamps', action='store_const', const=1,
87
+ help='Only compile newer source files')
88
+ parser.add_argument("-f", "--force", dest='timestamps', action='store_const', const=0,
89
+ help='Compile all source files (overrides implied -t)')
90
+ parser.add_argument("-v", "--verbose", dest='verbose', action='count',
91
+ help='Be verbose, print file names on multiple compilation')
92
+ parser.add_argument("-p", "--embed-positions", dest='embed_pos_in_docstring', action='store_const', const=1,
93
+ help='If specified, the positions in Cython files of each '
94
+ 'function definition is embedded in its docstring.')
95
+ parser.add_argument("--cleanup", dest='generate_cleanup_code', action='store', type=int,
96
+ help='Release interned objects on python exit, for memory debugging. '
97
+ 'Level indicates aggressiveness, default 0 releases nothing.')
98
+ parser.add_argument("-w", "--working", dest='working_path', action='store', type=str,
99
+ help='Sets the working directory for Cython (the directory modules are searched from)')
100
+ parser.add_argument("--gdb", action=SetGDBDebugAction, nargs=0,
101
+ help='Output debug information for cygdb')
102
+ parser.add_argument("--gdb-outdir", action=SetGDBDebugOutputAction, type=str,
103
+ help='Specify gdb debug information output directory. Implies --gdb.')
104
+ parser.add_argument("-D", "--no-docstrings", dest='docstrings', action='store_false',
105
+ help='Strip docstrings from the compiled module.')
106
+ parser.add_argument('-a', '--annotate', action='store_const', const='default', dest='annotate',
107
+ help='Produce a colorized HTML version of the source.')
108
+ parser.add_argument('--annotate-fullc', action='store_const', const='fullc', dest='annotate',
109
+ help='Produce a colorized HTML version of the source '
110
+ 'which includes entire generated C/C++-code.')
111
+ parser.add_argument("--annotate-coverage", dest='annotate_coverage_xml', action=SetAnnotateCoverageAction, type=str,
112
+ help='Annotate and include coverage information from cov.xml.')
113
+ parser.add_argument("--line-directives", dest='emit_linenums', action='store_true',
114
+ help='Produce #line directives pointing to the .pyx source')
115
+ parser.add_argument("-+", "--cplus", dest='cplus', action='store_const', const=1,
116
+ help='Output a C++ rather than C file.')
117
+ parser.add_argument('--embed', action='store_const', const='main',
118
+ help='Generate a main() function that embeds the Python interpreter. '
119
+ 'Pass --embed=<method_name> for a name other than main().')
120
+ parser.add_argument('-2', dest='language_level', action='store_const', const=2,
121
+ help='Compile based on Python-2 syntax and code semantics.')
122
+ parser.add_argument('-3', dest='language_level', action='store_const', const=3,
123
+ help='Compile based on Python-3 syntax and code semantics.')
124
+ parser.add_argument('--3str', dest='language_level', action='store_const', const='3',
125
+ help='Compile based on Python-3 syntax and code semantics (same as -3 since Cython 3.1).')
126
+ parser.add_argument("--lenient", action=SetLenientAction, nargs=0,
127
+ help='Change some compile time errors to runtime errors to '
128
+ 'improve Python compatibility')
129
+ parser.add_argument("--capi-reexport-cincludes", dest='capi_reexport_cincludes', action='store_true',
130
+ help='Add cincluded headers to any auto-generated header files.')
131
+ parser.add_argument("--fast-fail", dest='fast_fail', action='store_true',
132
+ help='Abort the compilation on the first error')
133
+ parser.add_argument("-Werror", "--warning-errors", dest='warning_errors', action='store_true',
134
+ help='Make all warnings into errors')
135
+ parser.add_argument("-Wextra", "--warning-extra", action=ActivateAllWarningsAction, nargs=0,
136
+ help='Enable extra warnings')
137
+
138
+ parser.add_argument('-X', '--directive', metavar='NAME=VALUE,...',
139
+ dest='compiler_directives', type=str,
140
+ action=ParseDirectivesAction,
141
+ help='Overrides a compiler directive')
142
+ parser.add_argument('-E', '--compile-time-env', metavar='NAME=VALUE,...',
143
+ dest='compile_time_env', type=str,
144
+ action=ParseCompileTimeEnvAction,
145
+ help='Provides compile time env like DEF would do.')
146
+ parser.add_argument("--module-name",
147
+ dest='module_name', type=str, action='store',
148
+ help='Fully qualified module name. If not given, is '
149
+ 'deduced from the import path if source file is in '
150
+ 'a package, or equals the filename otherwise.')
151
+ parser.add_argument('-M', '--depfile', action='store_true', help='produce depfiles for the sources')
152
+ parser.add_argument('sources', nargs='*', default=[])
153
+
154
+ # TODO: add help
155
+ parser.add_argument("-z", "--pre-import", dest='pre_import', action='store', type=str, help=SUPPRESS)
156
+ parser.add_argument("--convert-range", dest='convert_range', action='store_true', help=SUPPRESS)
157
+ parser.add_argument("--no-c-in-traceback", dest='c_line_in_traceback', action='store_false', help=SUPPRESS)
158
+ parser.add_argument("--cimport-from-pyx", dest='cimport_from_pyx', action='store_true', help=SUPPRESS)
159
+ parser.add_argument("--old-style-globals", dest='old_style_globals', action='store_true', help=SUPPRESS)
160
+
161
+ # debug stuff:
162
+ from . import DebugFlags
163
+ for name in vars(DebugFlags):
164
+ if name.startswith("debug"):
165
+ option_name = name.replace('_', '-')
166
+ parser.add_argument("--" + option_name, action='store_true', help=SUPPRESS)
167
+
168
+ return parser
169
+
170
+
171
+ def parse_command_line_raw(parser, args):
172
+ # special handling for --embed and --embed=xxxx as they aren't correctly parsed
173
+ def filter_out_embed_options(args):
174
+ with_embed, without_embed = [], []
175
+ for x in args:
176
+ if x == '--embed' or x.startswith('--embed='):
177
+ with_embed.append(x)
178
+ else:
179
+ without_embed.append(x)
180
+ return with_embed, without_embed
181
+
182
+ with_embed, args_without_embed = filter_out_embed_options(args)
183
+
184
+ arguments, unknown = parser.parse_known_args(args_without_embed)
185
+
186
+ sources = arguments.sources
187
+ del arguments.sources
188
+
189
+ # unknown can be either debug, embed or input files or really unknown
190
+ for option in unknown:
191
+ if option.startswith('-'):
192
+ parser.error("unknown option " + option)
193
+ else:
194
+ sources.append(option)
195
+
196
+ # embed-stuff must be handled extra:
197
+ for x in with_embed:
198
+ if x == '--embed':
199
+ name = 'main' # default value
200
+ else:
201
+ name = x[len('--embed='):]
202
+ setattr(arguments, 'embed', name)
203
+
204
+ return arguments, sources
205
+
206
+
207
+ def parse_command_line(args):
208
+ parser = create_cython_argparser()
209
+ arguments, sources = parse_command_line_raw(parser, args)
210
+
211
+ work_dir = getattr(arguments, 'working_path', '')
212
+ for source in sources:
213
+ if work_dir and not os.path.isabs(source):
214
+ source = os.path.join(work_dir, source)
215
+ if not os.path.exists(source):
216
+ import errno
217
+ raise FileNotFoundError(errno.ENOENT, os.strerror(errno.ENOENT), source)
218
+
219
+ options = Options.CompilationOptions(Options.default_options)
220
+ for name, value in vars(arguments).items():
221
+ if name.startswith('debug'):
222
+ from . import DebugFlags
223
+ if name in dir(DebugFlags):
224
+ setattr(DebugFlags, name, value)
225
+ else:
226
+ parser.error("Unknown debug flag: %s\n" % name)
227
+ elif hasattr(Options, name):
228
+ setattr(Options, name, value)
229
+ else:
230
+ setattr(options, name, value)
231
+
232
+ if options.use_listing_file and len(sources) > 1:
233
+ parser.error("cython: Only one source file allowed when using -o\n")
234
+ if len(sources) == 0 and not options.show_version:
235
+ parser.error("cython: Need at least one source file\n")
236
+ if Options.embed and len(sources) > 1:
237
+ parser.error("cython: Only one source file allowed when using --embed\n")
238
+ if options.module_name:
239
+ if options.timestamps:
240
+ parser.error("cython: Cannot use --module-name with --timestamps\n")
241
+ if len(sources) > 1:
242
+ parser.error("cython: Only one source file allowed when using --module-name\n")
243
+ return options, sources
@@ -0,0 +1,145 @@
1
+ cimport cython
2
+ from ..StringIOTree cimport StringIOTree
3
+
4
+
5
+ cdef class UtilityCodeBase(object):
6
+ cpdef format_code(self, code_string, replace_empty_lines=*)
7
+
8
+
9
+ cdef class UtilityCode(UtilityCodeBase):
10
+ cdef public object name
11
+ cdef public object proto
12
+ cdef public object impl
13
+ cdef public object init
14
+ cdef public object cleanup
15
+ cdef public object proto_block
16
+ cdef public object module_state_decls
17
+ cdef public object requires
18
+ cdef public dict _cache
19
+ cdef public list specialize_list
20
+ cdef public object file
21
+ cdef public tuple _parts_tuple
22
+
23
+ cpdef none_or_sub(self, s, context)
24
+ # TODO - Signature not compatible with previous declaration
25
+ #@cython.final
26
+ #cdef bint _put_code_section(self, writer, code_type: str) except -1
27
+
28
+
29
+ cdef class FunctionState:
30
+ cdef public set names_taken
31
+ cdef public object owner
32
+ cdef public object scope
33
+
34
+ cdef public object error_label
35
+ cdef public size_t label_counter
36
+ cdef public set labels_used
37
+ cdef public object return_label
38
+ cdef public object continue_label
39
+ cdef public object break_label
40
+ cdef public list yield_labels
41
+
42
+ cdef public object return_from_error_cleanup_label # not used in __init__ ?
43
+
44
+ cdef public object exc_vars
45
+ cdef public object current_except
46
+ cdef public bint in_try_finally
47
+ cdef public bint can_trace
48
+ cdef public bint gil_owned
49
+
50
+ cdef public list temps_allocated
51
+ cdef public dict temps_free
52
+ cdef public dict temps_used_type
53
+ cdef public set zombie_temps
54
+ cdef public size_t temp_counter
55
+ cdef public list collect_temps_stack
56
+
57
+ cdef public object closure_temps
58
+ cdef public bint should_declare_error_indicator
59
+ cdef public bint uses_error_indicator
60
+ cdef public bint error_without_exception
61
+
62
+ cdef public bint needs_refnanny
63
+
64
+ cpdef new_label(self, name=*)
65
+ cpdef tuple get_loop_labels(self)
66
+ cpdef set_loop_labels(self, labels)
67
+ cpdef tuple get_all_labels(self)
68
+ cpdef set_all_labels(self, labels)
69
+ cpdef start_collecting_temps(self)
70
+ cpdef stop_collecting_temps(self)
71
+
72
+ cpdef list temps_in_use(self)
73
+
74
+ cdef class IntConst:
75
+ cdef public object cname
76
+ cdef public object value
77
+ cdef public bint is_long
78
+
79
+ cdef class PyObjectConst:
80
+ cdef public object cname
81
+ cdef public object type
82
+
83
+ cdef class StringConst:
84
+ cdef public object cname
85
+ cdef public object text
86
+ cdef public object escaped_value
87
+ cdef public dict py_strings
88
+ cdef public list py_versions
89
+
90
+ cpdef get_py_string_const(self, encoding, identifier=*)
91
+
92
+ ## cdef class PyStringConst:
93
+ ## cdef public object cname
94
+ ## cdef public object encoding
95
+ ## cdef public bint is_str
96
+ ## cdef public bint is_unicode
97
+ ## cdef public bint intern
98
+
99
+ #class GlobalState(object):
100
+
101
+ #def funccontext_property(name):
102
+
103
+ cdef class CCodeWriter(object):
104
+ cdef readonly StringIOTree buffer
105
+ cdef readonly list pyclass_stack
106
+ cdef readonly object globalstate
107
+ cdef readonly object funcstate
108
+ cdef object code_config
109
+ cdef tuple last_pos
110
+ cdef tuple last_marked_pos
111
+ cdef Py_ssize_t level
112
+ cdef public Py_ssize_t call_level # debug-only, see Nodes.py
113
+ cdef bint bol
114
+
115
+ cpdef write(self, s)
116
+ @cython.final
117
+ cdef _write_lines(self, s)
118
+ cpdef _write_to_buffer(self, s)
119
+ cpdef put(self, code)
120
+ cpdef put_safe(self, code)
121
+ cpdef putln(self, code=*, bint safe=*)
122
+ @cython.final
123
+ cdef emit_marker(self)
124
+ @cython.final
125
+ cdef _build_marker(self, tuple pos)
126
+ @cython.final
127
+ cdef increase_indent(self)
128
+ @cython.final
129
+ cdef decrease_indent(self)
130
+ @cython.final
131
+ cdef indent(self)
132
+
133
+
134
+ cdef class PyrexCodeWriter:
135
+ cdef public object f
136
+ cdef public Py_ssize_t level
137
+
138
+
139
+ cdef class PyxCodeWriter:
140
+ cdef public StringIOTree buffer
141
+ cdef public object context
142
+ cdef object encoding
143
+ cdef Py_ssize_t level
144
+ cdef Py_ssize_t original_level
145
+ cdef dict _insertion_points