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.
Files changed (333) hide show
  1. Cython/Build/BuildExecutable.py +169 -0
  2. Cython/Build/Cache.py +199 -0
  3. Cython/Build/Cythonize.py +350 -0
  4. Cython/Build/Dependencies.py +1314 -0
  5. Cython/Build/Distutils.py +1 -0
  6. Cython/Build/Inline.py +463 -0
  7. Cython/Build/IpythonMagic.py +560 -0
  8. Cython/Build/SharedModule.py +94 -0
  9. Cython/Build/Tests/TestCyCache.py +194 -0
  10. Cython/Build/Tests/TestCythonizeArgsParser.py +481 -0
  11. Cython/Build/Tests/TestDependencies.py +133 -0
  12. Cython/Build/Tests/TestInline.py +177 -0
  13. Cython/Build/Tests/TestIpythonMagic.py +287 -0
  14. Cython/Build/Tests/TestRecythonize.py +212 -0
  15. Cython/Build/Tests/TestStripLiterals.py +155 -0
  16. Cython/Build/Tests/__init__.py +1 -0
  17. Cython/Build/__init__.py +11 -0
  18. Cython/CodeWriter.py +815 -0
  19. Cython/Compiler/AnalysedTreeTransforms.py +97 -0
  20. Cython/Compiler/Annotate.py +328 -0
  21. Cython/Compiler/AutoDocTransforms.py +320 -0
  22. Cython/Compiler/Buffer.py +680 -0
  23. Cython/Compiler/Builtin.py +984 -0
  24. Cython/Compiler/CmdLine.py +263 -0
  25. Cython/Compiler/Code.pxd +149 -0
  26. Cython/Compiler/Code.py +3746 -0
  27. Cython/Compiler/Code.pyd +0 -0
  28. Cython/Compiler/CodeGeneration.py +33 -0
  29. Cython/Compiler/CythonScope.py +191 -0
  30. Cython/Compiler/Dataclass.py +864 -0
  31. Cython/Compiler/DebugFlags.py +24 -0
  32. Cython/Compiler/Errors.py +297 -0
  33. Cython/Compiler/ExprNodes.py +15562 -0
  34. Cython/Compiler/FlowControl.pxd +97 -0
  35. Cython/Compiler/FlowControl.py +1451 -0
  36. Cython/Compiler/FlowControl.pyd +0 -0
  37. Cython/Compiler/FusedNode.py +971 -0
  38. Cython/Compiler/FusedNode.pyd +0 -0
  39. Cython/Compiler/Future.py +16 -0
  40. Cython/Compiler/Interpreter.py +57 -0
  41. Cython/Compiler/Lexicon.py +421 -0
  42. Cython/Compiler/LineTable.py +114 -0
  43. Cython/Compiler/LineTable.pyd +0 -0
  44. Cython/Compiler/Main.py +857 -0
  45. Cython/Compiler/MatchCaseNodes.py +259 -0
  46. Cython/Compiler/MemoryView.py +905 -0
  47. Cython/Compiler/ModuleNode.py +4235 -0
  48. Cython/Compiler/Naming.py +363 -0
  49. Cython/Compiler/Nodes.py +10831 -0
  50. Cython/Compiler/Optimize.py +5288 -0
  51. Cython/Compiler/Options.py +843 -0
  52. Cython/Compiler/ParseTreeTransforms.pxd +78 -0
  53. Cython/Compiler/ParseTreeTransforms.py +4638 -0
  54. Cython/Compiler/Parsing.pxd +9 -0
  55. Cython/Compiler/Parsing.py +4775 -0
  56. Cython/Compiler/Parsing.pyd +0 -0
  57. Cython/Compiler/Pipeline.py +439 -0
  58. Cython/Compiler/PyrexTypes.py +5870 -0
  59. Cython/Compiler/Pythran.py +232 -0
  60. Cython/Compiler/Scanning.pxd +48 -0
  61. Cython/Compiler/Scanning.py +701 -0
  62. Cython/Compiler/Scanning.pyd +0 -0
  63. Cython/Compiler/StringEncoding.py +298 -0
  64. Cython/Compiler/Symtab.py +3073 -0
  65. Cython/Compiler/Tests/TestBuffer.py +105 -0
  66. Cython/Compiler/Tests/TestBuiltin.py +72 -0
  67. Cython/Compiler/Tests/TestCmdLine.py +586 -0
  68. Cython/Compiler/Tests/TestCode.py +144 -0
  69. Cython/Compiler/Tests/TestFlowControl.py +65 -0
  70. Cython/Compiler/Tests/TestGrammar.py +202 -0
  71. Cython/Compiler/Tests/TestMemView.py +71 -0
  72. Cython/Compiler/Tests/TestParseTreeTransforms.py +285 -0
  73. Cython/Compiler/Tests/TestScanning.py +134 -0
  74. Cython/Compiler/Tests/TestSignatureMatching.py +73 -0
  75. Cython/Compiler/Tests/TestStringEncoding.py +21 -0
  76. Cython/Compiler/Tests/TestTreeFragment.py +63 -0
  77. Cython/Compiler/Tests/TestTreePath.py +103 -0
  78. Cython/Compiler/Tests/TestTypes.py +75 -0
  79. Cython/Compiler/Tests/TestUtilityLoad.py +112 -0
  80. Cython/Compiler/Tests/TestVisitor.py +61 -0
  81. Cython/Compiler/Tests/Utils.py +36 -0
  82. Cython/Compiler/Tests/__init__.py +1 -0
  83. Cython/Compiler/TreeFragment.py +278 -0
  84. Cython/Compiler/TreePath.py +303 -0
  85. Cython/Compiler/TypeInference.py +591 -0
  86. Cython/Compiler/TypeSlots.py +1174 -0
  87. Cython/Compiler/UFuncs.py +311 -0
  88. Cython/Compiler/UtilNodes.py +389 -0
  89. Cython/Compiler/UtilityCode.py +344 -0
  90. Cython/Compiler/Version.py +8 -0
  91. Cython/Compiler/Visitor.pxd +53 -0
  92. Cython/Compiler/Visitor.py +861 -0
  93. Cython/Compiler/Visitor.pyd +0 -0
  94. Cython/Compiler/__init__.py +1 -0
  95. Cython/Coverage.py +448 -0
  96. Cython/Debugger/Cygdb.py +177 -0
  97. Cython/Debugger/DebugWriter.py +82 -0
  98. Cython/Debugger/Tests/TestLibCython.py +275 -0
  99. Cython/Debugger/Tests/__init__.py +1 -0
  100. Cython/Debugger/Tests/cfuncs.c +8 -0
  101. Cython/Debugger/Tests/codefile +49 -0
  102. Cython/Debugger/Tests/test_libcython_in_gdb.py +578 -0
  103. Cython/Debugger/Tests/test_libpython_in_gdb.py +90 -0
  104. Cython/Debugger/__init__.py +1 -0
  105. Cython/Debugger/libcython.py +1548 -0
  106. Cython/Debugger/libpython.py +2821 -0
  107. Cython/Debugging.py +20 -0
  108. Cython/Distutils/__init__.py +2 -0
  109. Cython/Distutils/build_ext.py +139 -0
  110. Cython/Distutils/extension.py +96 -0
  111. Cython/Distutils/old_build_ext.py +351 -0
  112. Cython/Includes/cpython/__init__.pxd +173 -0
  113. Cython/Includes/cpython/array.pxd +178 -0
  114. Cython/Includes/cpython/bool.pxd +37 -0
  115. Cython/Includes/cpython/buffer.pxd +112 -0
  116. Cython/Includes/cpython/bytearray.pxd +33 -0
  117. Cython/Includes/cpython/bytes.pxd +200 -0
  118. Cython/Includes/cpython/cellobject.pxd +35 -0
  119. Cython/Includes/cpython/ceval.pxd +8 -0
  120. Cython/Includes/cpython/codecs.pxd +121 -0
  121. Cython/Includes/cpython/complex.pxd +60 -0
  122. Cython/Includes/cpython/contextvars.pxd +145 -0
  123. Cython/Includes/cpython/conversion.pxd +36 -0
  124. Cython/Includes/cpython/datetime.pxd +395 -0
  125. Cython/Includes/cpython/descr.pxd +26 -0
  126. Cython/Includes/cpython/dict.pxd +187 -0
  127. Cython/Includes/cpython/exc.pxd +263 -0
  128. Cython/Includes/cpython/fileobject.pxd +57 -0
  129. Cython/Includes/cpython/float.pxd +47 -0
  130. Cython/Includes/cpython/function.pxd +65 -0
  131. Cython/Includes/cpython/genobject.pxd +25 -0
  132. Cython/Includes/cpython/getargs.pxd +12 -0
  133. Cython/Includes/cpython/instance.pxd +25 -0
  134. Cython/Includes/cpython/iterator.pxd +36 -0
  135. Cython/Includes/cpython/iterobject.pxd +24 -0
  136. Cython/Includes/cpython/list.pxd +92 -0
  137. Cython/Includes/cpython/long.pxd +149 -0
  138. Cython/Includes/cpython/longintrepr.pxd +14 -0
  139. Cython/Includes/cpython/mapping.pxd +63 -0
  140. Cython/Includes/cpython/marshal.pxd +66 -0
  141. Cython/Includes/cpython/mem.pxd +120 -0
  142. Cython/Includes/cpython/memoryview.pxd +50 -0
  143. Cython/Includes/cpython/method.pxd +49 -0
  144. Cython/Includes/cpython/module.pxd +208 -0
  145. Cython/Includes/cpython/number.pxd +258 -0
  146. Cython/Includes/cpython/object.pxd +433 -0
  147. Cython/Includes/cpython/pycapsule.pxd +143 -0
  148. Cython/Includes/cpython/pylifecycle.pxd +68 -0
  149. Cython/Includes/cpython/pyport.pxd +8 -0
  150. Cython/Includes/cpython/pystate.pxd +95 -0
  151. Cython/Includes/cpython/pythread.pxd +53 -0
  152. Cython/Includes/cpython/ref.pxd +141 -0
  153. Cython/Includes/cpython/sequence.pxd +134 -0
  154. Cython/Includes/cpython/set.pxd +119 -0
  155. Cython/Includes/cpython/slice.pxd +70 -0
  156. Cython/Includes/cpython/time.pxd +129 -0
  157. Cython/Includes/cpython/tuple.pxd +72 -0
  158. Cython/Includes/cpython/type.pxd +53 -0
  159. Cython/Includes/cpython/unicode.pxd +639 -0
  160. Cython/Includes/cpython/version.pxd +32 -0
  161. Cython/Includes/cpython/weakref.pxd +78 -0
  162. Cython/Includes/libc/__init__.pxd +1 -0
  163. Cython/Includes/libc/complex.pxd +35 -0
  164. Cython/Includes/libc/errno.pxd +127 -0
  165. Cython/Includes/libc/float.pxd +43 -0
  166. Cython/Includes/libc/limits.pxd +28 -0
  167. Cython/Includes/libc/locale.pxd +46 -0
  168. Cython/Includes/libc/math.pxd +209 -0
  169. Cython/Includes/libc/setjmp.pxd +10 -0
  170. Cython/Includes/libc/signal.pxd +64 -0
  171. Cython/Includes/libc/stddef.pxd +9 -0
  172. Cython/Includes/libc/stdint.pxd +105 -0
  173. Cython/Includes/libc/stdio.pxd +80 -0
  174. Cython/Includes/libc/stdlib.pxd +72 -0
  175. Cython/Includes/libc/string.pxd +50 -0
  176. Cython/Includes/libc/threads.pxd +234 -0
  177. Cython/Includes/libc/time.pxd +52 -0
  178. Cython/Includes/libcpp/__init__.pxd +4 -0
  179. Cython/Includes/libcpp/algorithm.pxd +320 -0
  180. Cython/Includes/libcpp/any.pxd +16 -0
  181. Cython/Includes/libcpp/atomic.pxd +59 -0
  182. Cython/Includes/libcpp/barrier.pxd +22 -0
  183. Cython/Includes/libcpp/bit.pxd +29 -0
  184. Cython/Includes/libcpp/cast.pxd +12 -0
  185. Cython/Includes/libcpp/cmath.pxd +518 -0
  186. Cython/Includes/libcpp/complex.pxd +106 -0
  187. Cython/Includes/libcpp/condition_variable.pxd +322 -0
  188. Cython/Includes/libcpp/deque.pxd +165 -0
  189. Cython/Includes/libcpp/exception.pxd +86 -0
  190. Cython/Includes/libcpp/execution.pxd +15 -0
  191. Cython/Includes/libcpp/forward_list.pxd +63 -0
  192. Cython/Includes/libcpp/functional.pxd +26 -0
  193. Cython/Includes/libcpp/future.pxd +103 -0
  194. Cython/Includes/libcpp/iterator.pxd +34 -0
  195. Cython/Includes/libcpp/latch.pxd +17 -0
  196. Cython/Includes/libcpp/limits.pxd +61 -0
  197. Cython/Includes/libcpp/list.pxd +117 -0
  198. Cython/Includes/libcpp/map.pxd +252 -0
  199. Cython/Includes/libcpp/memory.pxd +115 -0
  200. Cython/Includes/libcpp/mutex.pxd +387 -0
  201. Cython/Includes/libcpp/numbers.pxd +15 -0
  202. Cython/Includes/libcpp/numeric.pxd +131 -0
  203. Cython/Includes/libcpp/optional.pxd +34 -0
  204. Cython/Includes/libcpp/pair.pxd +1 -0
  205. Cython/Includes/libcpp/queue.pxd +25 -0
  206. Cython/Includes/libcpp/random.pxd +166 -0
  207. Cython/Includes/libcpp/semaphore.pxd +43 -0
  208. Cython/Includes/libcpp/set.pxd +228 -0
  209. Cython/Includes/libcpp/shared_mutex.pxd +96 -0
  210. Cython/Includes/libcpp/span.pxd +87 -0
  211. Cython/Includes/libcpp/stack.pxd +11 -0
  212. Cython/Includes/libcpp/stop_token.pxd +117 -0
  213. Cython/Includes/libcpp/string.pxd +355 -0
  214. Cython/Includes/libcpp/string_view.pxd +183 -0
  215. Cython/Includes/libcpp/typeindex.pxd +15 -0
  216. Cython/Includes/libcpp/typeinfo.pxd +10 -0
  217. Cython/Includes/libcpp/unordered_map.pxd +193 -0
  218. Cython/Includes/libcpp/unordered_set.pxd +152 -0
  219. Cython/Includes/libcpp/utility.pxd +30 -0
  220. Cython/Includes/libcpp/vector.pxd +186 -0
  221. Cython/Includes/numpy/math.pxd +150 -0
  222. Cython/Includes/openmp.pxd +50 -0
  223. Cython/Includes/posix/__init__.pxd +1 -0
  224. Cython/Includes/posix/dlfcn.pxd +14 -0
  225. Cython/Includes/posix/fcntl.pxd +86 -0
  226. Cython/Includes/posix/ioctl.pxd +4 -0
  227. Cython/Includes/posix/mman.pxd +101 -0
  228. Cython/Includes/posix/resource.pxd +57 -0
  229. Cython/Includes/posix/select.pxd +21 -0
  230. Cython/Includes/posix/signal.pxd +73 -0
  231. Cython/Includes/posix/stat.pxd +98 -0
  232. Cython/Includes/posix/stdio.pxd +37 -0
  233. Cython/Includes/posix/stdlib.pxd +29 -0
  234. Cython/Includes/posix/strings.pxd +9 -0
  235. Cython/Includes/posix/time.pxd +71 -0
  236. Cython/Includes/posix/types.pxd +30 -0
  237. Cython/Includes/posix/uio.pxd +26 -0
  238. Cython/Includes/posix/unistd.pxd +271 -0
  239. Cython/Includes/posix/wait.pxd +38 -0
  240. Cython/Plex/Actions.pxd +24 -0
  241. Cython/Plex/Actions.py +119 -0
  242. Cython/Plex/Actions.pyd +0 -0
  243. Cython/Plex/DFA.pxd +14 -0
  244. Cython/Plex/DFA.py +164 -0
  245. Cython/Plex/DFA.pyd +0 -0
  246. Cython/Plex/Errors.py +48 -0
  247. Cython/Plex/Lexicons.py +178 -0
  248. Cython/Plex/Machines.pxd +36 -0
  249. Cython/Plex/Machines.py +238 -0
  250. Cython/Plex/Machines.pyd +0 -0
  251. Cython/Plex/Regexps.py +535 -0
  252. Cython/Plex/Scanners.pxd +45 -0
  253. Cython/Plex/Scanners.py +328 -0
  254. Cython/Plex/Scanners.pyd +0 -0
  255. Cython/Plex/Transitions.pxd +14 -0
  256. Cython/Plex/Transitions.py +239 -0
  257. Cython/Plex/Transitions.pyd +0 -0
  258. Cython/Plex/__init__.py +34 -0
  259. Cython/Runtime/__init__.py +1 -0
  260. Cython/Runtime/refnanny.pyd +0 -0
  261. Cython/Runtime/refnanny.pyx +237 -0
  262. Cython/Shadow.py +690 -0
  263. Cython/Shadow.pyi +521 -0
  264. Cython/StringIOTree.py +170 -0
  265. Cython/StringIOTree.pyd +0 -0
  266. Cython/Tempita/__init__.py +4 -0
  267. Cython/Tempita/_looper.py +154 -0
  268. Cython/Tempita/_tempita.py +1091 -0
  269. Cython/Tempita/_tempita.pyd +0 -0
  270. Cython/TestUtils.py +422 -0
  271. Cython/Tests/TestCodeWriter.py +128 -0
  272. Cython/Tests/TestCythonUtils.py +202 -0
  273. Cython/Tests/TestJediTyper.py +223 -0
  274. Cython/Tests/TestShadow.py +114 -0
  275. Cython/Tests/TestStringIOTree.py +67 -0
  276. Cython/Tests/TestTestUtils.py +90 -0
  277. Cython/Tests/__init__.py +1 -0
  278. Cython/Tests/xmlrunner.py +390 -0
  279. Cython/Utility/AsyncGen.c +1031 -0
  280. Cython/Utility/Buffer.c +865 -0
  281. Cython/Utility/BufferFormatFromTypeInfo.pxd +2 -0
  282. Cython/Utility/Builtins.c +810 -0
  283. Cython/Utility/CConvert.pyx +134 -0
  284. Cython/Utility/CMath.c +104 -0
  285. Cython/Utility/CommonStructures.c +226 -0
  286. Cython/Utility/Complex.c +378 -0
  287. Cython/Utility/Coroutine.c +2300 -0
  288. Cython/Utility/CpdefEnums.pyx +103 -0
  289. Cython/Utility/CppConvert.pyx +282 -0
  290. Cython/Utility/CppSupport.cpp +151 -0
  291. Cython/Utility/CythonFunction.c +1832 -0
  292. Cython/Utility/Dataclasses.c +101 -0
  293. Cython/Utility/Embed.c +121 -0
  294. Cython/Utility/Exceptions.c +1016 -0
  295. Cython/Utility/ExtensionTypes.c +996 -0
  296. Cython/Utility/FunctionArguments.c +1043 -0
  297. Cython/Utility/FusedFunction.pyx +44 -0
  298. Cython/Utility/ImportExport.c +907 -0
  299. Cython/Utility/MemoryView.pxd +188 -0
  300. Cython/Utility/MemoryView.pyx +1482 -0
  301. Cython/Utility/MemoryView_C.c +927 -0
  302. Cython/Utility/ModuleSetupCode.c +3203 -0
  303. Cython/Utility/NumpyImportArray.c +46 -0
  304. Cython/Utility/ObjectHandling.c +3273 -0
  305. Cython/Utility/Optimize.c +1603 -0
  306. Cython/Utility/Overflow.c +384 -0
  307. Cython/Utility/Printing.c +86 -0
  308. Cython/Utility/Profile.c +732 -0
  309. Cython/Utility/StringTools.c +1379 -0
  310. Cython/Utility/Synchronization.c +399 -0
  311. Cython/Utility/TString.c +356 -0
  312. Cython/Utility/TestCyUtilityLoader.pyx +8 -0
  313. Cython/Utility/TestCythonScope.pyx +75 -0
  314. Cython/Utility/TestUtilityLoader.c +12 -0
  315. Cython/Utility/TypeConversion.c +1385 -0
  316. Cython/Utility/UFuncs.pyx +50 -0
  317. Cython/Utility/UFuncs_C.c +89 -0
  318. Cython/Utility/__init__.py +28 -0
  319. Cython/Utility/arrayarray.h +167 -0
  320. Cython/Utils.py +687 -0
  321. Cython/Utils.pyd +0 -0
  322. Cython/__init__.py +10 -0
  323. Cython/__init__.pyi +7 -0
  324. Cython/py.typed +0 -0
  325. cython-3.2.0.dist-info/METADATA +85 -0
  326. cython-3.2.0.dist-info/RECORD +333 -0
  327. cython-3.2.0.dist-info/WHEEL +5 -0
  328. cython-3.2.0.dist-info/entry_points.txt +4 -0
  329. cython-3.2.0.dist-info/top_level.txt +3 -0
  330. cython.py +29 -0
  331. pyximport/__init__.py +4 -0
  332. pyximport/pyxbuild.py +160 -0
  333. 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
@@ -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