Cython 3.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (316) hide show
  1. Cython/Build/BuildExecutable.py +169 -0
  2. Cython/Build/Cache.py +199 -0
  3. Cython/Build/Cythonize.py +323 -0
  4. Cython/Build/Dependencies.py +1306 -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 +76 -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 +8 -0
  18. Cython/CodeWriter.py +811 -0
  19. Cython/Compiler/AnalysedTreeTransforms.py +97 -0
  20. Cython/Compiler/Annotate.py +326 -0
  21. Cython/Compiler/AutoDocTransforms.py +320 -0
  22. Cython/Compiler/Buffer.py +680 -0
  23. Cython/Compiler/Builtin.py +934 -0
  24. Cython/Compiler/CmdLine.py +259 -0
  25. Cython/Compiler/Code.pxd +148 -0
  26. Cython/Compiler/Code.py +3375 -0
  27. Cython/Compiler/CodeGeneration.py +33 -0
  28. Cython/Compiler/CythonScope.py +187 -0
  29. Cython/Compiler/Dataclass.py +868 -0
  30. Cython/Compiler/DebugFlags.py +24 -0
  31. Cython/Compiler/Errors.py +295 -0
  32. Cython/Compiler/ExprNodes.py +15267 -0
  33. Cython/Compiler/FlowControl.pxd +97 -0
  34. Cython/Compiler/FlowControl.py +1455 -0
  35. Cython/Compiler/FusedNode.py +1002 -0
  36. Cython/Compiler/Future.py +16 -0
  37. Cython/Compiler/Interpreter.py +57 -0
  38. Cython/Compiler/Lexicon.py +340 -0
  39. Cython/Compiler/LineTable.py +114 -0
  40. Cython/Compiler/Main.py +853 -0
  41. Cython/Compiler/MatchCaseNodes.py +259 -0
  42. Cython/Compiler/MemoryView.py +922 -0
  43. Cython/Compiler/ModuleNode.py +4024 -0
  44. Cython/Compiler/Naming.py +374 -0
  45. Cython/Compiler/Nodes.py +10826 -0
  46. Cython/Compiler/Optimize.py +5256 -0
  47. Cython/Compiler/Options.py +835 -0
  48. Cython/Compiler/ParseTreeTransforms.pxd +77 -0
  49. Cython/Compiler/ParseTreeTransforms.py +4509 -0
  50. Cython/Compiler/Parsing.pxd +9 -0
  51. Cython/Compiler/Parsing.py +4789 -0
  52. Cython/Compiler/Pipeline.py +439 -0
  53. Cython/Compiler/PyrexTypes.py +5762 -0
  54. Cython/Compiler/Pythran.py +232 -0
  55. Cython/Compiler/Scanning.pxd +40 -0
  56. Cython/Compiler/Scanning.py +577 -0
  57. Cython/Compiler/StringEncoding.py +347 -0
  58. Cython/Compiler/Symtab.py +3080 -0
  59. Cython/Compiler/Tests/TestBuffer.py +105 -0
  60. Cython/Compiler/Tests/TestBuiltin.py +72 -0
  61. Cython/Compiler/Tests/TestCmdLine.py +586 -0
  62. Cython/Compiler/Tests/TestCode.py +86 -0
  63. Cython/Compiler/Tests/TestFlowControl.py +65 -0
  64. Cython/Compiler/Tests/TestGrammar.py +202 -0
  65. Cython/Compiler/Tests/TestMemView.py +71 -0
  66. Cython/Compiler/Tests/TestParseTreeTransforms.py +285 -0
  67. Cython/Compiler/Tests/TestScanning.py +134 -0
  68. Cython/Compiler/Tests/TestSignatureMatching.py +73 -0
  69. Cython/Compiler/Tests/TestStringEncoding.py +33 -0
  70. Cython/Compiler/Tests/TestTreeFragment.py +63 -0
  71. Cython/Compiler/Tests/TestTreePath.py +103 -0
  72. Cython/Compiler/Tests/TestTypes.py +75 -0
  73. Cython/Compiler/Tests/TestUtilityLoad.py +112 -0
  74. Cython/Compiler/Tests/TestVisitor.py +61 -0
  75. Cython/Compiler/Tests/Utils.py +36 -0
  76. Cython/Compiler/Tests/__init__.py +1 -0
  77. Cython/Compiler/TreeFragment.py +278 -0
  78. Cython/Compiler/TreePath.py +303 -0
  79. Cython/Compiler/TypeInference.py +584 -0
  80. Cython/Compiler/TypeSlots.py +1181 -0
  81. Cython/Compiler/UFuncs.py +311 -0
  82. Cython/Compiler/UtilNodes.py +389 -0
  83. Cython/Compiler/UtilityCode.py +344 -0
  84. Cython/Compiler/Version.py +8 -0
  85. Cython/Compiler/Visitor.pxd +53 -0
  86. Cython/Compiler/Visitor.py +861 -0
  87. Cython/Compiler/__init__.py +1 -0
  88. Cython/Coverage.py +448 -0
  89. Cython/Debugger/Cygdb.py +175 -0
  90. Cython/Debugger/DebugWriter.py +82 -0
  91. Cython/Debugger/Tests/TestLibCython.py +275 -0
  92. Cython/Debugger/Tests/__init__.py +1 -0
  93. Cython/Debugger/Tests/cfuncs.c +8 -0
  94. Cython/Debugger/Tests/codefile +49 -0
  95. Cython/Debugger/Tests/test_libcython_in_gdb.py +578 -0
  96. Cython/Debugger/Tests/test_libpython_in_gdb.py +90 -0
  97. Cython/Debugger/__init__.py +1 -0
  98. Cython/Debugger/libcython.py +1548 -0
  99. Cython/Debugger/libpython.py +2821 -0
  100. Cython/Debugging.py +20 -0
  101. Cython/Distutils/__init__.py +2 -0
  102. Cython/Distutils/build_ext.py +139 -0
  103. Cython/Distutils/extension.py +96 -0
  104. Cython/Distutils/old_build_ext.py +351 -0
  105. Cython/Includes/cpython/__init__.pxd +173 -0
  106. Cython/Includes/cpython/array.pxd +174 -0
  107. Cython/Includes/cpython/bool.pxd +37 -0
  108. Cython/Includes/cpython/buffer.pxd +112 -0
  109. Cython/Includes/cpython/bytearray.pxd +33 -0
  110. Cython/Includes/cpython/bytes.pxd +200 -0
  111. Cython/Includes/cpython/cellobject.pxd +35 -0
  112. Cython/Includes/cpython/ceval.pxd +8 -0
  113. Cython/Includes/cpython/codecs.pxd +121 -0
  114. Cython/Includes/cpython/complex.pxd +60 -0
  115. Cython/Includes/cpython/contextvars.pxd +145 -0
  116. Cython/Includes/cpython/conversion.pxd +36 -0
  117. Cython/Includes/cpython/datetime.pxd +395 -0
  118. Cython/Includes/cpython/descr.pxd +26 -0
  119. Cython/Includes/cpython/dict.pxd +187 -0
  120. Cython/Includes/cpython/exc.pxd +263 -0
  121. Cython/Includes/cpython/fileobject.pxd +57 -0
  122. Cython/Includes/cpython/float.pxd +47 -0
  123. Cython/Includes/cpython/function.pxd +65 -0
  124. Cython/Includes/cpython/genobject.pxd +25 -0
  125. Cython/Includes/cpython/getargs.pxd +12 -0
  126. Cython/Includes/cpython/instance.pxd +25 -0
  127. Cython/Includes/cpython/iterator.pxd +36 -0
  128. Cython/Includes/cpython/iterobject.pxd +24 -0
  129. Cython/Includes/cpython/list.pxd +92 -0
  130. Cython/Includes/cpython/long.pxd +149 -0
  131. Cython/Includes/cpython/longintrepr.pxd +14 -0
  132. Cython/Includes/cpython/mapping.pxd +63 -0
  133. Cython/Includes/cpython/marshal.pxd +66 -0
  134. Cython/Includes/cpython/mem.pxd +120 -0
  135. Cython/Includes/cpython/memoryview.pxd +50 -0
  136. Cython/Includes/cpython/method.pxd +49 -0
  137. Cython/Includes/cpython/module.pxd +208 -0
  138. Cython/Includes/cpython/number.pxd +258 -0
  139. Cython/Includes/cpython/object.pxd +433 -0
  140. Cython/Includes/cpython/pycapsule.pxd +143 -0
  141. Cython/Includes/cpython/pylifecycle.pxd +68 -0
  142. Cython/Includes/cpython/pyport.pxd +8 -0
  143. Cython/Includes/cpython/pystate.pxd +95 -0
  144. Cython/Includes/cpython/pythread.pxd +53 -0
  145. Cython/Includes/cpython/ref.pxd +67 -0
  146. Cython/Includes/cpython/sequence.pxd +134 -0
  147. Cython/Includes/cpython/set.pxd +119 -0
  148. Cython/Includes/cpython/slice.pxd +70 -0
  149. Cython/Includes/cpython/time.pxd +129 -0
  150. Cython/Includes/cpython/tuple.pxd +72 -0
  151. Cython/Includes/cpython/type.pxd +53 -0
  152. Cython/Includes/cpython/unicode.pxd +639 -0
  153. Cython/Includes/cpython/version.pxd +32 -0
  154. Cython/Includes/cpython/weakref.pxd +78 -0
  155. Cython/Includes/libc/__init__.pxd +1 -0
  156. Cython/Includes/libc/complex.pxd +35 -0
  157. Cython/Includes/libc/errno.pxd +127 -0
  158. Cython/Includes/libc/float.pxd +43 -0
  159. Cython/Includes/libc/limits.pxd +28 -0
  160. Cython/Includes/libc/locale.pxd +46 -0
  161. Cython/Includes/libc/math.pxd +209 -0
  162. Cython/Includes/libc/setjmp.pxd +10 -0
  163. Cython/Includes/libc/signal.pxd +64 -0
  164. Cython/Includes/libc/stddef.pxd +9 -0
  165. Cython/Includes/libc/stdint.pxd +105 -0
  166. Cython/Includes/libc/stdio.pxd +80 -0
  167. Cython/Includes/libc/stdlib.pxd +72 -0
  168. Cython/Includes/libc/string.pxd +50 -0
  169. Cython/Includes/libc/threads.pxd +84 -0
  170. Cython/Includes/libc/time.pxd +51 -0
  171. Cython/Includes/libcpp/__init__.pxd +4 -0
  172. Cython/Includes/libcpp/algorithm.pxd +320 -0
  173. Cython/Includes/libcpp/any.pxd +16 -0
  174. Cython/Includes/libcpp/atomic.pxd +59 -0
  175. Cython/Includes/libcpp/barrier.pxd +22 -0
  176. Cython/Includes/libcpp/bit.pxd +29 -0
  177. Cython/Includes/libcpp/cast.pxd +12 -0
  178. Cython/Includes/libcpp/cmath.pxd +518 -0
  179. Cython/Includes/libcpp/complex.pxd +106 -0
  180. Cython/Includes/libcpp/deque.pxd +165 -0
  181. Cython/Includes/libcpp/exception.pxd +86 -0
  182. Cython/Includes/libcpp/execution.pxd +15 -0
  183. Cython/Includes/libcpp/forward_list.pxd +63 -0
  184. Cython/Includes/libcpp/functional.pxd +26 -0
  185. Cython/Includes/libcpp/future.pxd +103 -0
  186. Cython/Includes/libcpp/iterator.pxd +34 -0
  187. Cython/Includes/libcpp/latch.pxd +17 -0
  188. Cython/Includes/libcpp/limits.pxd +61 -0
  189. Cython/Includes/libcpp/list.pxd +117 -0
  190. Cython/Includes/libcpp/map.pxd +252 -0
  191. Cython/Includes/libcpp/memory.pxd +115 -0
  192. Cython/Includes/libcpp/mutex.pxd +130 -0
  193. Cython/Includes/libcpp/numbers.pxd +15 -0
  194. Cython/Includes/libcpp/numeric.pxd +131 -0
  195. Cython/Includes/libcpp/optional.pxd +34 -0
  196. Cython/Includes/libcpp/pair.pxd +1 -0
  197. Cython/Includes/libcpp/queue.pxd +25 -0
  198. Cython/Includes/libcpp/random.pxd +166 -0
  199. Cython/Includes/libcpp/semaphore.pxd +44 -0
  200. Cython/Includes/libcpp/set.pxd +228 -0
  201. Cython/Includes/libcpp/shared_mutex.pxd +72 -0
  202. Cython/Includes/libcpp/span.pxd +87 -0
  203. Cython/Includes/libcpp/stack.pxd +11 -0
  204. Cython/Includes/libcpp/stop_token.pxd +105 -0
  205. Cython/Includes/libcpp/string.pxd +355 -0
  206. Cython/Includes/libcpp/string_view.pxd +181 -0
  207. Cython/Includes/libcpp/typeindex.pxd +15 -0
  208. Cython/Includes/libcpp/typeinfo.pxd +10 -0
  209. Cython/Includes/libcpp/unordered_map.pxd +193 -0
  210. Cython/Includes/libcpp/unordered_set.pxd +152 -0
  211. Cython/Includes/libcpp/utility.pxd +30 -0
  212. Cython/Includes/libcpp/vector.pxd +186 -0
  213. Cython/Includes/openmp.pxd +50 -0
  214. Cython/Includes/posix/__init__.pxd +1 -0
  215. Cython/Includes/posix/dlfcn.pxd +14 -0
  216. Cython/Includes/posix/fcntl.pxd +86 -0
  217. Cython/Includes/posix/ioctl.pxd +4 -0
  218. Cython/Includes/posix/mman.pxd +101 -0
  219. Cython/Includes/posix/resource.pxd +57 -0
  220. Cython/Includes/posix/select.pxd +21 -0
  221. Cython/Includes/posix/signal.pxd +73 -0
  222. Cython/Includes/posix/stat.pxd +98 -0
  223. Cython/Includes/posix/stdio.pxd +37 -0
  224. Cython/Includes/posix/stdlib.pxd +29 -0
  225. Cython/Includes/posix/strings.pxd +9 -0
  226. Cython/Includes/posix/time.pxd +71 -0
  227. Cython/Includes/posix/types.pxd +30 -0
  228. Cython/Includes/posix/uio.pxd +26 -0
  229. Cython/Includes/posix/unistd.pxd +271 -0
  230. Cython/Includes/posix/wait.pxd +38 -0
  231. Cython/Plex/Actions.pxd +24 -0
  232. Cython/Plex/Actions.py +119 -0
  233. Cython/Plex/DFA.pxd +14 -0
  234. Cython/Plex/DFA.py +164 -0
  235. Cython/Plex/Errors.py +48 -0
  236. Cython/Plex/Lexicons.py +178 -0
  237. Cython/Plex/Machines.pxd +36 -0
  238. Cython/Plex/Machines.py +238 -0
  239. Cython/Plex/Regexps.py +539 -0
  240. Cython/Plex/Scanners.pxd +47 -0
  241. Cython/Plex/Scanners.py +360 -0
  242. Cython/Plex/Transitions.pxd +14 -0
  243. Cython/Plex/Transitions.py +239 -0
  244. Cython/Plex/__init__.py +34 -0
  245. Cython/Runtime/__init__.py +1 -0
  246. Cython/Runtime/refnanny.pyx +237 -0
  247. Cython/Shadow.py +690 -0
  248. Cython/Shadow.pyi +521 -0
  249. Cython/StringIOTree.py +170 -0
  250. Cython/Tempita/__init__.py +4 -0
  251. Cython/Tempita/_looper.py +154 -0
  252. Cython/Tempita/_tempita.py +1091 -0
  253. Cython/TestUtils.py +410 -0
  254. Cython/Tests/TestCodeWriter.py +128 -0
  255. Cython/Tests/TestCythonUtils.py +202 -0
  256. Cython/Tests/TestJediTyper.py +223 -0
  257. Cython/Tests/TestShadow.py +114 -0
  258. Cython/Tests/TestStringIOTree.py +67 -0
  259. Cython/Tests/TestTestUtils.py +90 -0
  260. Cython/Tests/__init__.py +1 -0
  261. Cython/Tests/xmlrunner.py +390 -0
  262. Cython/Utility/AsyncGen.c +1002 -0
  263. Cython/Utility/Buffer.c +875 -0
  264. Cython/Utility/BufferFormatFromTypeInfo.pxd +2 -0
  265. Cython/Utility/Builtins.c +776 -0
  266. Cython/Utility/CConvert.pyx +134 -0
  267. Cython/Utility/CMath.c +104 -0
  268. Cython/Utility/CommonStructures.c +118 -0
  269. Cython/Utility/Complex.c +378 -0
  270. Cython/Utility/Coroutine.c +2206 -0
  271. Cython/Utility/CpdefEnums.pyx +103 -0
  272. Cython/Utility/CppConvert.pyx +279 -0
  273. Cython/Utility/CppSupport.cpp +143 -0
  274. Cython/Utility/CythonFunction.c +1794 -0
  275. Cython/Utility/Dataclasses.c +185 -0
  276. Cython/Utility/Dataclasses.py +112 -0
  277. Cython/Utility/Embed.c +125 -0
  278. Cython/Utility/Exceptions.c +1012 -0
  279. Cython/Utility/ExtensionTypes.c +809 -0
  280. Cython/Utility/FunctionArguments.c +965 -0
  281. Cython/Utility/ImportExport.c +987 -0
  282. Cython/Utility/Lock.c +136 -0
  283. Cython/Utility/MemoryView.pxd +187 -0
  284. Cython/Utility/MemoryView.pyx +1481 -0
  285. Cython/Utility/MemoryView_C.c +1046 -0
  286. Cython/Utility/ModuleSetupCode.c +3059 -0
  287. Cython/Utility/NumpyImportArray.c +46 -0
  288. Cython/Utility/ObjectHandling.c +3342 -0
  289. Cython/Utility/Optimize.c +1589 -0
  290. Cython/Utility/Overflow.c +404 -0
  291. Cython/Utility/Printing.c +86 -0
  292. Cython/Utility/Profile.c +709 -0
  293. Cython/Utility/StringTools.c +1259 -0
  294. Cython/Utility/TestCyUtilityLoader.pyx +8 -0
  295. Cython/Utility/TestCythonScope.pyx +75 -0
  296. Cython/Utility/TestUtilityLoader.c +12 -0
  297. Cython/Utility/TypeConversion.c +1284 -0
  298. Cython/Utility/UFuncs.pyx +50 -0
  299. Cython/Utility/UFuncs_C.c +89 -0
  300. Cython/Utility/__init__.py +28 -0
  301. Cython/Utility/arrayarray.h +148 -0
  302. Cython/Utils.py +687 -0
  303. Cython/__init__.py +10 -0
  304. Cython/__init__.pyi +7 -0
  305. Cython/py.typed +0 -0
  306. cython-3.1.0.dist-info/COPYING.txt +19 -0
  307. cython-3.1.0.dist-info/LICENSE.txt +176 -0
  308. cython-3.1.0.dist-info/METADATA +636 -0
  309. cython-3.1.0.dist-info/RECORD +316 -0
  310. cython-3.1.0.dist-info/WHEEL +5 -0
  311. cython-3.1.0.dist-info/entry_points.txt +4 -0
  312. cython-3.1.0.dist-info/top_level.txt +3 -0
  313. cython.py +29 -0
  314. pyximport/__init__.py +4 -0
  315. pyximport/pyxbuild.py +160 -0
  316. pyximport/pyximport.py +482 -0
@@ -0,0 +1,105 @@
1
+ # Longness only used for type promotion.
2
+ # Actual compile time size used for conversions.
3
+
4
+ # 7.18 Integer types <stdint.h>
5
+ cdef extern from "<stdint.h>" nogil:
6
+
7
+ # 7.18.1 Integer types
8
+ # 7.18.1.1 Exact-width integer types
9
+ ctypedef signed char int8_t
10
+ ctypedef signed short int16_t
11
+ ctypedef signed int int32_t
12
+ ctypedef signed long int64_t
13
+ ctypedef unsigned char uint8_t
14
+ ctypedef unsigned short uint16_t
15
+ ctypedef unsigned int uint32_t
16
+ ctypedef unsigned long long uint64_t
17
+ # 7.18.1.2 Minimum-width integer types
18
+ ctypedef signed char int_least8_t
19
+ ctypedef signed short int_least16_t
20
+ ctypedef signed int int_least32_t
21
+ ctypedef signed long int_least64_t
22
+ ctypedef unsigned char uint_least8_t
23
+ ctypedef unsigned short uint_least16_t
24
+ ctypedef unsigned int uint_least32_t
25
+ ctypedef unsigned long long uint_least64_t
26
+ # 7.18.1.3 Fastest minimum-width integer types
27
+ ctypedef signed char int_fast8_t
28
+ ctypedef signed short int_fast16_t
29
+ ctypedef signed int int_fast32_t
30
+ ctypedef signed long int_fast64_t
31
+ ctypedef unsigned char uint_fast8_t
32
+ ctypedef unsigned short uint_fast16_t
33
+ ctypedef unsigned int uint_fast32_t
34
+ ctypedef unsigned long long uint_fast64_t
35
+ # 7.18.1.4 Integer types capable of holding object pointers
36
+ ctypedef ssize_t intptr_t
37
+ ctypedef size_t uintptr_t
38
+ # 7.18.1.5 Greatest-width integer types
39
+ ctypedef signed long long intmax_t
40
+ ctypedef unsigned long long uintmax_t
41
+
42
+ # 7.18.2 Limits of specified-width integer types
43
+ # 7.18.2.1 Limits of exact-width integer types
44
+ int8_t INT8_MIN
45
+ int16_t INT16_MIN
46
+ int32_t INT32_MIN
47
+ int64_t INT64_MIN
48
+ int8_t INT8_MAX
49
+ int16_t INT16_MAX
50
+ int32_t INT32_MAX
51
+ int64_t INT64_MAX
52
+ uint8_t UINT8_MAX
53
+ uint16_t UINT16_MAX
54
+ uint32_t UINT32_MAX
55
+ uint64_t UINT64_MAX
56
+ #7.18.2.2 Limits of minimum-width integer types
57
+ int_least8_t INT_LEAST8_MIN
58
+ int_least16_t INT_LEAST16_MIN
59
+ int_least32_t INT_LEAST32_MIN
60
+ int_least64_t INT_LEAST64_MIN
61
+ int_least8_t INT_LEAST8_MAX
62
+ int_least16_t INT_LEAST16_MAX
63
+ int_least32_t INT_LEAST32_MAX
64
+ int_least64_t INT_LEAST64_MAX
65
+ uint_least8_t UINT_LEAST8_MAX
66
+ uint_least16_t UINT_LEAST16_MAX
67
+ uint_least32_t UINT_LEAST32_MAX
68
+ uint_least64_t UINT_LEAST64_MAX
69
+ #7.18.2.3 Limits of fastest minimum-width integer types
70
+ int_fast8_t INT_FAST8_MIN
71
+ int_fast16_t INT_FAST16_MIN
72
+ int_fast32_t INT_FAST32_MIN
73
+ int_fast64_t INT_FAST64_MIN
74
+ int_fast8_t INT_FAST8_MAX
75
+ int_fast16_t INT_FAST16_MAX
76
+ int_fast32_t INT_FAST32_MAX
77
+ int_fast64_t INT_FAST64_MAX
78
+ uint_fast8_t UINT_FAST8_MAX
79
+ uint_fast16_t UINT_FAST16_MAX
80
+ uint_fast32_t UINT_FAST32_MAX
81
+ uint_fast64_t UINT_FAST64_MAX
82
+ #7.18.2.4 Limits of integer types capable of holding object pointers
83
+ enum: INTPTR_MIN
84
+ enum: INTPTR_MAX
85
+ enum: UINTPTR_MAX
86
+ # 7.18.2.5 Limits of greatest-width integer types
87
+ enum: INTMAX_MAX
88
+ enum: INTMAX_MIN
89
+ enum: UINTMAX_MAX
90
+
91
+ # 7.18.3 Limits of other integer types
92
+ # ptrdiff_t
93
+ enum: PTRDIFF_MIN
94
+ enum: PTRDIFF_MAX
95
+ # sig_atomic_t
96
+ enum: SIG_ATOMIC_MIN
97
+ enum: SIG_ATOMIC_MAX
98
+ # size_t
99
+ size_t SIZE_MAX
100
+ # wchar_t
101
+ enum: WCHAR_MIN
102
+ enum: WCHAR_MAX
103
+ # wint_t
104
+ enum: WINT_MIN
105
+ enum: WINT_MAX
@@ -0,0 +1,80 @@
1
+ # 7.19 Input/output <stdio.h>
2
+
3
+
4
+ # deprecated cimports for backwards compatibility:
5
+ from libc.string cimport const_char, const_void
6
+
7
+
8
+ cdef extern from "<stdio.h>" nogil:
9
+
10
+ ctypedef struct FILE
11
+ cdef FILE *stdin
12
+ cdef FILE *stdout
13
+ cdef FILE *stderr
14
+
15
+ enum: FOPEN_MAX
16
+ enum: FILENAME_MAX
17
+ FILE *fopen (const char *filename, const char *opentype)
18
+ FILE *freopen (const char *filename, const char *opentype, FILE *stream)
19
+ FILE *fdopen (int fdescriptor, const char *opentype)
20
+ int fclose (FILE *stream)
21
+ int remove (const char *filename)
22
+ int rename (const char *oldname, const char *newname)
23
+ FILE *tmpfile ()
24
+
25
+ int remove (const char *pathname)
26
+ int rename (const char *oldpath, const char *newpath)
27
+
28
+ enum: _IOFBF
29
+ enum: _IOLBF
30
+ enum: _IONBF
31
+ int setvbuf (FILE *stream, char *buf, int mode, size_t size)
32
+ enum: BUFSIZ
33
+ void setbuf (FILE *stream, char *buf)
34
+
35
+ size_t fread (void *data, size_t size, size_t count, FILE *stream)
36
+ size_t fwrite (const void *data, size_t size, size_t count, FILE *stream)
37
+ int fflush (FILE *stream)
38
+
39
+ enum: EOF
40
+ void clearerr (FILE *stream)
41
+ int feof (FILE *stream)
42
+ int ferror (FILE *stream)
43
+
44
+ enum: SEEK_SET
45
+ enum: SEEK_CUR
46
+ enum: SEEK_END
47
+ int fseek (FILE *stream, long int offset, int whence)
48
+ void rewind (FILE *stream)
49
+ long int ftell (FILE *stream)
50
+
51
+ ctypedef struct fpos_t
52
+ ctypedef const fpos_t const_fpos_t "const fpos_t"
53
+ int fgetpos (FILE *stream, fpos_t *position)
54
+ int fsetpos (FILE *stream, const fpos_t *position)
55
+
56
+ int scanf (const char *template, ...)
57
+ int sscanf (const char *s, const char *template, ...)
58
+ int fscanf (FILE *stream, const char *template, ...)
59
+
60
+ int printf (const char *template, ...)
61
+ int sprintf (char *s, const char *template, ...)
62
+ int snprintf (char *s, size_t size, const char *template, ...)
63
+ int fprintf (FILE *stream, const char *template, ...)
64
+
65
+ void perror (const char *message)
66
+
67
+ char *gets (char *s)
68
+ char *fgets (char *s, int count, FILE *stream)
69
+ int getchar ()
70
+ int fgetc (FILE *stream)
71
+ int getc (FILE *stream)
72
+ int ungetc (int c, FILE *stream)
73
+
74
+ int puts (const char *s)
75
+ int fputs (const char *s, FILE *stream)
76
+ int putchar (int c)
77
+ int fputc (int c, FILE *stream)
78
+ int putc (int c, FILE *stream)
79
+
80
+ size_t getline(char **lineptr, size_t *n, FILE *stream)
@@ -0,0 +1,72 @@
1
+ # 7.20 General utilities <stdlib.h>
2
+
3
+ # deprecated cimports for backwards compatibility:
4
+ from libc.string cimport const_char, const_void
5
+
6
+
7
+ cdef extern from "<stdlib.h>" nogil:
8
+
9
+ # 7.20.1 Numeric conversion functions
10
+ int atoi (const char *string)
11
+ long atol (const char *string)
12
+ long long atoll (const char *string)
13
+ double atof (const char *string)
14
+ long strtol (const char *string, char **tailptr, int base)
15
+ unsigned long int strtoul (const char *string, char **tailptr, int base)
16
+ long long int strtoll (const char *string, char **tailptr, int base)
17
+ unsigned long long int strtoull (const char *string, char **tailptr, int base)
18
+ float strtof (const char *string, char **tailptr)
19
+ double strtod (const char *string, char **tailptr)
20
+ long double strtold (const char *string, char **tailptr)
21
+
22
+ # 7.20.2 Pseudo-random sequence generation functions
23
+ enum: RAND_MAX
24
+ int rand ()
25
+ void srand (unsigned int seed)
26
+
27
+ # 7.20.3 Memory management functions
28
+ void *calloc (size_t count, size_t eltsize)
29
+ void free (void *ptr)
30
+ void *malloc (size_t size)
31
+ void *realloc (void *ptr, size_t newsize)
32
+
33
+ # 7.20.4 Communication with the environment
34
+ enum: EXIT_FAILURE
35
+ enum: EXIT_SUCCESS
36
+ void exit (int status)
37
+ void _exit (int status)
38
+ int atexit (void (*function) ())
39
+ void abort ()
40
+ char *getenv (const char *name)
41
+ int system (const char *command)
42
+
43
+ #7.20.5 Searching and sorting utilities
44
+ void *bsearch (const void *key, const void *array,
45
+ size_t count, size_t size,
46
+ int (*compare)(const void *, const void *))
47
+ void qsort (void *array, size_t count, size_t size,
48
+ int (*compare)(const void *, const void *))
49
+
50
+ # 7.20.6 Integer arithmetic functions
51
+ int abs (int number)
52
+ long int labs (long int number)
53
+ long long int llabs (long long int number)
54
+ ctypedef struct div_t:
55
+ int quot
56
+ int rem
57
+ div_t div (int numerator, int denominator)
58
+ ctypedef struct ldiv_t:
59
+ long int quot
60
+ long int rem
61
+ ldiv_t ldiv (long int numerator, long int denominator)
62
+ ctypedef struct lldiv_t:
63
+ long long int quot
64
+ long long int rem
65
+ lldiv_t lldiv (long long int numerator, long long int denominator)
66
+
67
+
68
+ # 7.20.7 Multibyte/wide character conversion functions
69
+ # XXX TODO
70
+
71
+ # 7.20.8 Multibyte/wide string conversion functions
72
+ # XXX TODO
@@ -0,0 +1,50 @@
1
+ # 7.21 String handling <string.h>
2
+
3
+ cdef extern from *:
4
+ # deprecated backwards compatibility declarations
5
+ ctypedef const char const_char "const char"
6
+ ctypedef const signed char const_schar "const signed char"
7
+ ctypedef const unsigned char const_uchar "const unsigned char"
8
+ ctypedef const void const_void "const void"
9
+
10
+ cdef extern from "<string.h>" nogil:
11
+
12
+ void *memcpy (void *pto, const void *pfrom, size_t size)
13
+ void *memmove (void *pto, const void *pfrom, size_t size)
14
+ void *memset (void *block, int c, size_t size)
15
+ int memcmp (const void *a1, const void *a2, size_t size)
16
+ void *memchr (const void *block, int c, size_t size)
17
+
18
+ void *memchr (const void *block, int c, size_t size)
19
+ void *memrchr (const void *block, int c, size_t size)
20
+
21
+ size_t strlen (const char *s)
22
+ char *strcpy (char *pto, const char *pfrom)
23
+ char *strncpy (char *pto, const char *pfrom, size_t size)
24
+ char *strdup (const char *s)
25
+ char *strndup (const char *s, size_t size)
26
+ char *strcat (char *pto, const char *pfrom)
27
+ char *strncat (char *pto, const char *pfrom, size_t size)
28
+
29
+ int strcmp (const char *s1, const char *s2)
30
+ int strcasecmp (const char *s1, const char *s2)
31
+ int strncmp (const char *s1, const char *s2, size_t size)
32
+ int strncasecmp (const char *s1, const char *s2, size_t n)
33
+
34
+ int strcoll (const char *s1, const char *s2)
35
+ size_t strxfrm (char *pto, const char *pfrom, size_t size)
36
+
37
+ char *strerror (int errnum)
38
+
39
+ char *strchr (const char *string, int c)
40
+ char *strrchr (const char *string, int c)
41
+
42
+ char *strstr (const char *haystack, const char *needle)
43
+ char *strcasestr (const char *haystack, const char *needle)
44
+
45
+ size_t strcspn (const char *string, const char *stopset)
46
+ size_t strspn (const char *string, const char *set)
47
+ char * strpbrk (const char *string, const char *stopset)
48
+
49
+ char *strtok (char *newstring, const char *delimiters)
50
+ char *strsep (char **string_ptr, const char *delimiter)
@@ -0,0 +1,84 @@
1
+ from libc.time cimport timespec
2
+
3
+ cdef extern from *:
4
+ """
5
+ #include <string.h>
6
+ #include <threads.h>
7
+ static void __Pyx_once_flag_init(once_flag* flag) {
8
+ once_flag other = ONCE_FLAG_INIT;
9
+ memcpy(flag, &other, sizeof(once_flag));
10
+ }
11
+ """
12
+ void once_flag_init "__Pyx_once_flag_init"(once_flag*)
13
+
14
+ cdef extern from "<threads.h>" nogil:
15
+ ctypedef void (*_once_func_type)() noexcept nogil
16
+
17
+ # Threads
18
+ ctypedef struct thrd_t:
19
+ pass
20
+ # Declare as noexcept because you'll regret trying to throw a Python exception from it
21
+ # and nogil because it's a new thread, so you definitely don't have a Python threadstate yet.
22
+ ctypedef int (*thrd_start_t)(void*) noexcept nogil
23
+
24
+ int thrd_create(thrd_t*, thrd_start_t, void*)
25
+ int thrd_equal(thrd_t lhs, thrd_t rhs)
26
+ thrd_t thrd_current()
27
+ int thrd_sleep(const timespec* duration, timespec* remaining)
28
+ void thrd_yield()
29
+ void thrd_exit(int res)
30
+ void thrd_detach(thrd_t thr)
31
+ # Be very wary of deadlocks if calling thrd_join with the GIL.
32
+ int thrd_join(thrd_t, int *res)
33
+ enum:
34
+ thrd_success
35
+ thrd_nomem
36
+ thrd_timedout
37
+ thrd_busy
38
+ thrd_error
39
+
40
+ # Mutexes
41
+ ctypedef struct mtx_t:
42
+ pass
43
+ int mtx_init(mtx_t* mtx, int type)
44
+ int mtx_lock(mtx_t* mtx)
45
+ int mtx_timed_lock(mtx_t* mtx, const timespec* timepoint)
46
+ int mtx_trylock(mtx_t* mtx)
47
+ int mtx_unlock(mtx_t* mtx)
48
+ void mtx_destroy(mtx_t* mtx)
49
+ enum:
50
+ mtx_plain
51
+ mtx_recursive
52
+ mtx_timed
53
+
54
+ # call once. Potentially this may be hard to use with Cython's code generation
55
+ # (depending on the exact definition of "ONCE_FLAG_INIT").
56
+ # Use the helper function "once_flag_init" to do it non-statically.
57
+ ctypedef struct once_flag:
58
+ pass
59
+ once_flag ONCE_FLAG_INIT
60
+
61
+ # We strongly recommend not calling this with the GIL held.
62
+ void call_once(once_flag* flag, _once_func_type func) noexcept
63
+
64
+ # condition variables
65
+ ctypedef struct cnd_t:
66
+ pass
67
+ int cnd_init(cnd_t*)
68
+ int cnd_signal(cnd_t*)
69
+ int cnd_broadcast(cnd_t*)
70
+ # Be very wary of calling wait/timedwait with the GIL held.
71
+ int cnd_wait(cnd_t*, mtx_t*)
72
+ int cnd_timedwait(cnd_t*, mtx_t*, const timespec*)
73
+ void cnd_destroy(cnd_t*)
74
+
75
+ # Thread-local storage
76
+ ctypedef struct tss_t:
77
+ pass
78
+ enum:
79
+ TSS_DTOR_ITERATIONS
80
+ ctypedef void (*tss_dtor_t)(void*) noexcept nogil
81
+ int tss_create(tss_t* key, tss_dtor_t destructor)
82
+ void *tss_get(tss_t key)
83
+ int tss_set(tss_t key, void* val)
84
+ void tss_delete(tss_t key)
@@ -0,0 +1,51 @@
1
+ # https://en.wikipedia.org/wiki/C_date_and_time_functions
2
+
3
+ from libc.stddef cimport wchar_t
4
+
5
+ cdef extern from "<time.h>" nogil:
6
+ ctypedef long clock_t
7
+ ctypedef long time_t
8
+ struct timespec:
9
+ time_t tv_sec
10
+ long tv_nsec
11
+
12
+ enum: CLOCKS_PER_SEC
13
+ clock_t clock() # CPU time
14
+ time_t time(time_t *) # wall clock time since Unix epoch
15
+
16
+ cdef struct tm:
17
+ int tm_sec
18
+ int tm_min
19
+ int tm_hour
20
+ int tm_mday
21
+ int tm_mon
22
+ int tm_year
23
+ int tm_wday
24
+ int tm_yday
25
+ int tm_isdst
26
+ # GNU specific extensions
27
+ #char *tm_zone
28
+ #long tm_gmtoff
29
+
30
+ int daylight # global state
31
+ long timezone
32
+ char *tzname[2]
33
+ void tzset()
34
+
35
+ char *asctime(const tm *)
36
+ char *asctime_r(const tm *, char *)
37
+ char *ctime(const time_t *)
38
+ char *ctime_r(const time_t *, char *)
39
+ double difftime(time_t, time_t)
40
+ tm *getdate(const char *)
41
+ tm *gmtime(const time_t *)
42
+ tm *gmtime_r(const time_t *, tm *)
43
+ tm *localtime(const time_t *)
44
+ tm *localtime_r(const time_t *, tm *)
45
+ time_t mktime(tm *)
46
+ size_t strftime(char *, size_t, const char *, const tm *)
47
+ size_t wcsftime(wchar_t *str, size_t cnt, const wchar_t *fmt, tm *time)
48
+ int timespec_get(timespec *spec, int base)
49
+
50
+ # POSIX not stdC
51
+ char *strptime(const char *, const char *, tm *)
@@ -0,0 +1,4 @@
1
+ cdef extern from *:
2
+ ctypedef bint bool
3
+ ctypedef void* nullptr_t
4
+ nullptr_t nullptr