pforge 1.0.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 (1090) hide show
  1. pforge/Builtins.py +288 -0
  2. pforge/BytecodeCaching.py +209 -0
  3. pforge/Bytecodes.py +124 -0
  4. pforge/CacheCleanup.py +59 -0
  5. pforge/Constants.py +510 -0
  6. pforge/Errors.py +104 -0
  7. pforge/HardImportRegistry.py +591 -0
  8. pforge/MainControl.py +1535 -0
  9. pforge/ModuleRegistry.py +401 -0
  10. pforge/OutputDirectories.py +314 -0
  11. pforge/Policies.py +125 -0
  12. pforge/PostProcessing.py +621 -0
  13. pforge/Progress.py +930 -0
  14. pforge/PythonFlavors.py +556 -0
  15. pforge/PythonOperators.py +319 -0
  16. pforge/PythonPrefixes.py +285 -0
  17. pforge/PythonVersions.py +594 -0
  18. pforge/Serialization.py +359 -0
  19. pforge/SourceCodeReferences.py +181 -0
  20. pforge/States.py +59 -0
  21. pforge/Tracing.py +776 -0
  22. pforge/TreeXML.py +178 -0
  23. pforge/Variables.py +597 -0
  24. pforge/Version.py +91 -0
  25. pforge/VersionCheck.py +364 -0
  26. pforge/__init__.py +35 -0
  27. pforge/__main__.py +340 -0
  28. pforge/__past__.py +280 -0
  29. pforge/build/AIXObjGenerator.py +153 -0
  30. pforge/build/AdaptPythonHeaderFiles.py +505 -0
  31. pforge/build/Backend.scons +555 -0
  32. pforge/build/CCompilerVersion.scons +70 -0
  33. pforge/build/ConstantBlobFormat.py +440 -0
  34. pforge/build/DataComposerInterface.py +217 -0
  35. pforge/build/Offsets.scons +189 -0
  36. pforge/build/Onefile.scons +220 -0
  37. pforge/build/SconsCaching.py +586 -0
  38. pforge/build/SconsCompilerSettings.py +2419 -0
  39. pforge/build/SconsControl.py +170 -0
  40. pforge/build/SconsHacks.py +259 -0
  41. pforge/build/SconsInterface.py +996 -0
  42. pforge/build/SconsProgress.py +104 -0
  43. pforge/build/SconsPythonBuild.py +248 -0
  44. pforge/build/SconsSourceIndex.py +353 -0
  45. pforge/build/SconsSpawn.py +594 -0
  46. pforge/build/SconsStableIncludePaths.py +277 -0
  47. pforge/build/SconsUtils.py +1388 -0
  48. pforge/build/WindowsObjGenerator.py +175 -0
  49. pforge/build/__init__.py +22 -0
  50. pforge/build/include/pforge/allocator.h +1024 -0
  51. pforge/build/include/pforge/blobs.h +130 -0
  52. pforge/build/include/pforge/builtins.h +106 -0
  53. pforge/build/include/pforge/calling.h +140 -0
  54. pforge/build/include/pforge/checkers.h +63 -0
  55. pforge/build/include/pforge/checksum_tools.h +33 -0
  56. pforge/build/include/pforge/compiled_asyncgen.h +285 -0
  57. pforge/build/include/pforge/compiled_cell.h +89 -0
  58. pforge/build/include/pforge/compiled_coroutine.h +282 -0
  59. pforge/build/include/pforge/compiled_frame.h +896 -0
  60. pforge/build/include/pforge/compiled_function.h +176 -0
  61. pforge/build/include/pforge/compiled_generator.h +310 -0
  62. pforge/build/include/pforge/compiled_method.h +64 -0
  63. pforge/build/include/pforge/compiled_types_common.h +117 -0
  64. pforge/build/include/pforge/constants.h +202 -0
  65. pforge/build/include/pforge/constants_blob.h +62 -0
  66. pforge/build/include/pforge/constants_blob_spec.h +116 -0
  67. pforge/build/include/pforge/cpython_api_compat.h +46 -0
  68. pforge/build/include/pforge/debug_settings.h +63 -0
  69. pforge/build/include/pforge/defines.h +79 -0
  70. pforge/build/include/pforge/environment_variables.h +38 -0
  71. pforge/build/include/pforge/environment_variables_system.h +57 -0
  72. pforge/build/include/pforge/exception_groups.h +631 -0
  73. pforge/build/include/pforge/exceptions.h +1495 -0
  74. pforge/build/include/pforge/filesystem_paths.h +130 -0
  75. pforge/build/include/pforge/freelists.h +162 -0
  76. pforge/build/include/pforge/gc_runtime.h +170 -0
  77. pforge/build/include/pforge/hedley.h +1825 -0
  78. pforge/build/include/pforge/helper/attributes.h +98 -0
  79. pforge/build/include/pforge/helper/boolean.h +107 -0
  80. pforge/build/include/pforge/helper/bytearrays.h +44 -0
  81. pforge/build/include/pforge/helper/bytes.h +42 -0
  82. pforge/build/include/pforge/helper/calling_generated.h +139 -0
  83. pforge/build/include/pforge/helper/comparisons_dual_eq.h +58 -0
  84. pforge/build/include/pforge/helper/comparisons_dual_ge.h +50 -0
  85. pforge/build/include/pforge/helper/comparisons_dual_gt.h +50 -0
  86. pforge/build/include/pforge/helper/comparisons_dual_le.h +58 -0
  87. pforge/build/include/pforge/helper/comparisons_dual_lt.h +58 -0
  88. pforge/build/include/pforge/helper/comparisons_dual_ne.h +50 -0
  89. pforge/build/include/pforge/helper/comparisons_eq.h +263 -0
  90. pforge/build/include/pforge/helper/comparisons_ge.h +207 -0
  91. pforge/build/include/pforge/helper/comparisons_gt.h +207 -0
  92. pforge/build/include/pforge/helper/comparisons_le.h +263 -0
  93. pforge/build/include/pforge/helper/comparisons_lt.h +263 -0
  94. pforge/build/include/pforge/helper/comparisons_ne.h +207 -0
  95. pforge/build/include/pforge/helper/complex.h +57 -0
  96. pforge/build/include/pforge/helper/dict_internals.h +123 -0
  97. pforge/build/include/pforge/helper/dictionaries.h +568 -0
  98. pforge/build/include/pforge/helper/floats.h +41 -0
  99. pforge/build/include/pforge/helper/import_hard.h +153 -0
  100. pforge/build/include/pforge/helper/indexes.h +53 -0
  101. pforge/build/include/pforge/helper/ints.h +188 -0
  102. pforge/build/include/pforge/helper/iterators.h +467 -0
  103. pforge/build/include/pforge/helper/lists.h +113 -0
  104. pforge/build/include/pforge/helper/lists_generated.h +43 -0
  105. pforge/build/include/pforge/helper/long_helpers.h +78 -0
  106. pforge/build/include/pforge/helper/mappings.h +67 -0
  107. pforge/build/include/pforge/helper/operations.h +126 -0
  108. pforge/build/include/pforge/helper/operations_binary_add.h +268 -0
  109. pforge/build/include/pforge/helper/operations_binary_bitand.h +118 -0
  110. pforge/build/include/pforge/helper/operations_binary_bitor.h +118 -0
  111. pforge/build/include/pforge/helper/operations_binary_bitxor.h +118 -0
  112. pforge/build/include/pforge/helper/operations_binary_divmod.h +113 -0
  113. pforge/build/include/pforge/helper/operations_binary_dual_add.h +45 -0
  114. pforge/build/include/pforge/helper/operations_binary_dual_sub.h +49 -0
  115. pforge/build/include/pforge/helper/operations_binary_floordiv.h +113 -0
  116. pforge/build/include/pforge/helper/operations_binary_lshift.h +109 -0
  117. pforge/build/include/pforge/helper/operations_binary_matmult.h +70 -0
  118. pforge/build/include/pforge/helper/operations_binary_mod.h +314 -0
  119. pforge/build/include/pforge/helper/operations_binary_mult.h +275 -0
  120. pforge/build/include/pforge/helper/operations_binary_olddiv.h +135 -0
  121. pforge/build/include/pforge/helper/operations_binary_pow.h +100 -0
  122. pforge/build/include/pforge/helper/operations_binary_rshift.h +109 -0
  123. pforge/build/include/pforge/helper/operations_binary_sub.h +142 -0
  124. pforge/build/include/pforge/helper/operations_binary_truediv.h +113 -0
  125. pforge/build/include/pforge/helper/operations_builtin_types.h +268 -0
  126. pforge/build/include/pforge/helper/operations_inplace_add.h +181 -0
  127. pforge/build/include/pforge/helper/operations_inplace_bitand.h +84 -0
  128. pforge/build/include/pforge/helper/operations_inplace_bitor.h +84 -0
  129. pforge/build/include/pforge/helper/operations_inplace_bitxor.h +84 -0
  130. pforge/build/include/pforge/helper/operations_inplace_floordiv.h +103 -0
  131. pforge/build/include/pforge/helper/operations_inplace_lshift.h +70 -0
  132. pforge/build/include/pforge/helper/operations_inplace_matmult.h +68 -0
  133. pforge/build/include/pforge/helper/operations_inplace_mod.h +226 -0
  134. pforge/build/include/pforge/helper/operations_inplace_mult.h +192 -0
  135. pforge/build/include/pforge/helper/operations_inplace_olddiv.h +123 -0
  136. pforge/build/include/pforge/helper/operations_inplace_pow.h +95 -0
  137. pforge/build/include/pforge/helper/operations_inplace_rshift.h +70 -0
  138. pforge/build/include/pforge/helper/operations_inplace_sub.h +110 -0
  139. pforge/build/include/pforge/helper/operations_inplace_truediv.h +103 -0
  140. pforge/build/include/pforge/helper/pow_helpers.h +41 -0
  141. pforge/build/include/pforge/helper/raising.h +130 -0
  142. pforge/build/include/pforge/helper/rangeobjects.h +75 -0
  143. pforge/build/include/pforge/helper/repeat_helpers.h +41 -0
  144. pforge/build/include/pforge/helper/richcomparisons.h +39 -0
  145. pforge/build/include/pforge/helper/sequences.h +42 -0
  146. pforge/build/include/pforge/helper/sets.h +30 -0
  147. pforge/build/include/pforge/helper/slices.h +320 -0
  148. pforge/build/include/pforge/helper/strings.h +41 -0
  149. pforge/build/include/pforge/helper/subscripts.h +463 -0
  150. pforge/build/include/pforge/helper/tuples.h +220 -0
  151. pforge/build/include/pforge/helpers.h +512 -0
  152. pforge/build/include/pforge/importing.h +180 -0
  153. pforge/build/include/pforge/incbin.h +360 -0
  154. pforge/build/include/pforge/jit_sources.h +34 -0
  155. pforge/build/include/pforge/prelude.h +610 -0
  156. pforge/build/include/pforge/printing.h +92 -0
  157. pforge/build/include/pforge/python_internals_access.h +461 -0
  158. pforge/build/include/pforge/python_pgo.h +66 -0
  159. pforge/build/include/pforge/python_pgo_spec.h +69 -0
  160. pforge/build/include/pforge/safe_string_ops.h +78 -0
  161. pforge/build/include/pforge/string_functions.h +99 -0
  162. pforge/build/include/pforge/threading.h +158 -0
  163. pforge/build/include/pforge/tracing.h +86 -0
  164. pforge/build/include/pforge/type_aliases.h +42 -0
  165. pforge/build/include/pforge/unfreezing.h +200 -0
  166. pforge/build/inline_copy/appdirs/LICENSE.txt +23 -0
  167. pforge/build/inline_copy/appdirs/appdirs.py +611 -0
  168. pforge/build/inline_copy/bin/scons.py +68 -0
  169. pforge/build/inline_copy/jinja2/LICENSE.rst +28 -0
  170. pforge/build/inline_copy/jinja2/README.rst +2 -0
  171. pforge/build/inline_copy/jinja2/jinja2/__init__.py +72 -0
  172. pforge/build/inline_copy/jinja2/jinja2/_compat.py +105 -0
  173. pforge/build/inline_copy/jinja2/jinja2/_identifier.py +2 -0
  174. pforge/build/inline_copy/jinja2/jinja2/bccache.py +361 -0
  175. pforge/build/inline_copy/jinja2/jinja2/compiler.py +1721 -0
  176. pforge/build/inline_copy/jinja2/jinja2/constants.py +32 -0
  177. pforge/build/inline_copy/jinja2/jinja2/debug.py +378 -0
  178. pforge/build/inline_copy/jinja2/jinja2/defaults.py +56 -0
  179. pforge/build/inline_copy/jinja2/jinja2/environment.py +1276 -0
  180. pforge/build/inline_copy/jinja2/jinja2/exceptions.py +146 -0
  181. pforge/build/inline_copy/jinja2/jinja2/ext.py +627 -0
  182. pforge/build/inline_copy/jinja2/jinja2/filters.py +1190 -0
  183. pforge/build/inline_copy/jinja2/jinja2/idtracking.py +286 -0
  184. pforge/build/inline_copy/jinja2/jinja2/lexer.py +739 -0
  185. pforge/build/inline_copy/jinja2/jinja2/loaders.py +481 -0
  186. pforge/build/inline_copy/jinja2/jinja2/meta.py +106 -0
  187. pforge/build/inline_copy/jinja2/jinja2/nativetypes.py +220 -0
  188. pforge/build/inline_copy/jinja2/jinja2/nodes.py +999 -0
  189. pforge/build/inline_copy/jinja2/jinja2/optimizer.py +49 -0
  190. pforge/build/inline_copy/jinja2/jinja2/parser.py +903 -0
  191. pforge/build/inline_copy/jinja2/jinja2/runtime.py +808 -0
  192. pforge/build/inline_copy/jinja2/jinja2/sandbox.py +488 -0
  193. pforge/build/inline_copy/jinja2/jinja2/tests.py +174 -0
  194. pforge/build/inline_copy/jinja2/jinja2/utils.py +642 -0
  195. pforge/build/inline_copy/jinja2/jinja2/visitor.py +87 -0
  196. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Action.py +1619 -0
  197. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Builder.py +918 -0
  198. pforge/build/inline_copy/lib/scons-4.10.1/SCons/CacheDir.py +404 -0
  199. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Conftest.py +870 -0
  200. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Debug.py +254 -0
  201. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Defaults.py +760 -0
  202. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Environment.py +2910 -0
  203. pforge/build/inline_copy/lib/scons-4.10.1/SCons/EnvironmentValues.py +119 -0
  204. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Errors.py +222 -0
  205. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Executor.py +665 -0
  206. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Memoize.py +242 -0
  207. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Node/Alias.py +150 -0
  208. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Node/FS.py +3861 -0
  209. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Node/__init__.py +1807 -0
  210. pforge/build/inline_copy/lib/scons-4.10.1/SCons/PathList.py +227 -0
  211. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Platform/__init__.py +381 -0
  212. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Platform/aix.py +80 -0
  213. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Platform/cygwin.py +62 -0
  214. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Platform/darwin.py +71 -0
  215. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Platform/hpux.py +45 -0
  216. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Platform/irix.py +41 -0
  217. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Platform/mingw.py +35 -0
  218. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Platform/os2.py +56 -0
  219. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Platform/posix.py +125 -0
  220. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Platform/virtualenv.py +135 -0
  221. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Platform/win32.py +447 -0
  222. pforge/build/inline_copy/lib/scons-4.10.1/SCons/SConf.py +1174 -0
  223. pforge/build/inline_copy/lib/scons-4.10.1/SCons/SConsign.py +442 -0
  224. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Scanner/C.py +333 -0
  225. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Scanner/Dir.py +131 -0
  226. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Scanner/Prog.py +114 -0
  227. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Scanner/RC.py +57 -0
  228. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Scanner/__init__.py +438 -0
  229. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Script/Interactive.py +377 -0
  230. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Script/Main.py +1601 -0
  231. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Script/SConsOptions.py +1260 -0
  232. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Script/SConscript.py +713 -0
  233. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Script/__init__.py +498 -0
  234. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Subst.py +1003 -0
  235. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Taskmaster/Job.py +762 -0
  236. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Taskmaster/__init__.py +1137 -0
  237. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/386asm.py +61 -0
  238. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/GettextCommon.py +429 -0
  239. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/MSCommon/MSVC/Config.py +396 -0
  240. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/MSCommon/MSVC/Dispatcher.py +84 -0
  241. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/MSCommon/MSVC/Exceptions.py +56 -0
  242. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/MSCommon/MSVC/Kind.py +668 -0
  243. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/MSCommon/MSVC/Policy.py +330 -0
  244. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/MSCommon/MSVC/Registry.py +121 -0
  245. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/MSCommon/MSVC/ScriptArguments.py +1103 -0
  246. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/MSCommon/MSVC/SetupEnvDefault.py +236 -0
  247. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/MSCommon/MSVC/Util.py +494 -0
  248. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/MSCommon/MSVC/Warnings.py +35 -0
  249. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/MSCommon/MSVC/WinSDK.py +264 -0
  250. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/MSCommon/MSVC/__init__.py +56 -0
  251. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/MSCommon/__init__.py +101 -0
  252. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/MSCommon/arch.py +66 -0
  253. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/MSCommon/common.py +653 -0
  254. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/MSCommon/netframework.py +82 -0
  255. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/MSCommon/sdk.py +412 -0
  256. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/MSCommon/vc.py +2949 -0
  257. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/MSCommon/vs.py +647 -0
  258. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/PharLapCommon.py +116 -0
  259. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/__init__.py +893 -0
  260. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/aixc++.py +43 -0
  261. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/aixcc.py +74 -0
  262. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/aixcxx.py +77 -0
  263. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/aixlink.py +78 -0
  264. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/applelink.py +209 -0
  265. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/ar.py +63 -0
  266. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/as.py +49 -0
  267. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/asm.py +78 -0
  268. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/bcc32.py +81 -0
  269. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/c++.py +44 -0
  270. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/cc.py +105 -0
  271. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/clang.py +91 -0
  272. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/clangCommon/__init__.py +18 -0
  273. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/clangxx.py +99 -0
  274. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/cxx.py +95 -0
  275. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/cyglink.py +235 -0
  276. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/default.py +45 -0
  277. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/filesystem.py +94 -0
  278. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/g++.py +45 -0
  279. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/gas.py +56 -0
  280. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/gcc.py +108 -0
  281. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/gnulink.py +73 -0
  282. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/gxx.py +80 -0
  283. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/hpc++.py +45 -0
  284. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/hpcc.py +53 -0
  285. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/hpcxx.py +85 -0
  286. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/hplink.py +72 -0
  287. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/icc.py +59 -0
  288. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/icl.py +52 -0
  289. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/ilink32.py +60 -0
  290. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/install.py +510 -0
  291. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/intelc.py +617 -0
  292. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/link.py +72 -0
  293. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/linkCommon/LoadableModule.py +131 -0
  294. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/linkCommon/SharedLibrary.py +218 -0
  295. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/linkCommon/__init__.py +175 -0
  296. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/linkloc.py +112 -0
  297. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/m4.py +63 -0
  298. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/masm.py +77 -0
  299. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/mingw.py +224 -0
  300. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/msgfmt.py +132 -0
  301. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/msginit.py +137 -0
  302. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/msgmerge.py +125 -0
  303. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/mslib.py +78 -0
  304. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/mslink.py +344 -0
  305. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/mssdk.py +52 -0
  306. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/msvc.py +333 -0
  307. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/msvs.py +2197 -0
  308. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/mwcc.py +207 -0
  309. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/mwld.py +108 -0
  310. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/nasm.py +72 -0
  311. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/rpcgen.py +70 -0
  312. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/tlib.py +53 -0
  313. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/wix.py +104 -0
  314. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Tool/xgettext.py +337 -0
  315. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Util/__init__.py +1423 -0
  316. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Util/envs.py +350 -0
  317. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Util/filelock.py +151 -0
  318. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Util/hashes.py +406 -0
  319. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Util/sctypes.py +383 -0
  320. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Util/stats.py +224 -0
  321. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Utilities/ConfigureCache.py +171 -0
  322. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Utilities/__init__.py +0 -0
  323. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Utilities/sconsign.py +492 -0
  324. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Variables/BoolVariable.py +105 -0
  325. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Variables/EnumVariable.py +148 -0
  326. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Variables/ListVariable.py +237 -0
  327. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Variables/PackageVariable.py +136 -0
  328. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Variables/PathVariable.py +174 -0
  329. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Variables/__init__.py +468 -0
  330. pforge/build/inline_copy/lib/scons-4.10.1/SCons/Warnings.py +300 -0
  331. pforge/build/inline_copy/lib/scons-4.10.1/SCons/__init__.py +9 -0
  332. pforge/build/inline_copy/lib/scons-4.10.1/SCons/compat/__init__.py +104 -0
  333. pforge/build/inline_copy/lib/scons-4.10.1/SCons/compat/_scons_dbm.py +42 -0
  334. pforge/build/inline_copy/lib/scons-4.10.1/SCons/compat/win32.py +101 -0
  335. pforge/build/inline_copy/lib/scons-4.10.1/SCons/cpp.py +684 -0
  336. pforge/build/inline_copy/lib/scons-4.10.1/SCons/dblite.py +351 -0
  337. pforge/build/inline_copy/lib/scons-4.10.1/SCons/exitfuncs.py +59 -0
  338. pforge/build/inline_copy/markupsafe/LICENSE.rst +28 -0
  339. pforge/build/inline_copy/markupsafe/markupsafe/__init__.py +327 -0
  340. pforge/build/inline_copy/markupsafe/markupsafe/_compat.py +33 -0
  341. pforge/build/inline_copy/markupsafe/markupsafe/_constants.py +264 -0
  342. pforge/build/inline_copy/markupsafe/markupsafe/_native.py +69 -0
  343. pforge/build/inline_copy/pkg_resources/pkg_resources/__init__.py +3275 -0
  344. pforge/build/inline_copy/pkg_resources/pkg_resources/py31compat.py +21 -0
  345. pforge/build/inline_copy/python_hacl/LICENSE.txt +201 -0
  346. pforge/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.c +1430 -0
  347. pforge/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.h +66 -0
  348. pforge/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.c +463 -0
  349. pforge/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.h +66 -0
  350. pforge/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.c +1273 -0
  351. pforge/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.h +204 -0
  352. pforge/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.c +734 -0
  353. pforge/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.h +131 -0
  354. pforge/build/inline_copy/python_hacl/hacl_312/Hacl_Streaming_Types.h +83 -0
  355. pforge/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt128_Verified.h +346 -0
  356. pforge/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt_8_16_32_64.h +107 -0
  357. pforge/build/inline_copy/python_hacl/hacl_312/include/krml/fstar_uint128_struct_endianness.h +68 -0
  358. pforge/build/inline_copy/python_hacl/hacl_312/include/krml/internal/target.h +293 -0
  359. pforge/build/inline_copy/python_hacl/hacl_312/include/krml/lowstar_endianness.h +231 -0
  360. pforge/build/inline_copy/python_hacl/hacl_312/include/krml/types.h +14 -0
  361. pforge/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_MD5.h +56 -0
  362. pforge/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA1.h +56 -0
  363. pforge/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA2.h +164 -0
  364. pforge/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA3.h +65 -0
  365. pforge/build/inline_copy/python_hacl/hacl_312/python_hacl_namespaces.h +89 -0
  366. pforge/build/inline_copy/stubgen/astunparse.py +938 -0
  367. pforge/build/inline_copy/stubgen/six.py +998 -0
  368. pforge/build/inline_copy/stubgen/stubgen.py +850 -0
  369. pforge/build/inline_copy/tqdm/tqdm/__init__.py +40 -0
  370. pforge/build/inline_copy/tqdm/tqdm/_main.py +9 -0
  371. pforge/build/inline_copy/tqdm/tqdm/_monitor.py +97 -0
  372. pforge/build/inline_copy/tqdm/tqdm/_tqdm.py +9 -0
  373. pforge/build/inline_copy/tqdm/tqdm/_tqdm_notebook.py +9 -0
  374. pforge/build/inline_copy/tqdm/tqdm/_tqdm_pandas.py +24 -0
  375. pforge/build/inline_copy/tqdm/tqdm/_utils.py +12 -0
  376. pforge/build/inline_copy/tqdm/tqdm/auto.py +44 -0
  377. pforge/build/inline_copy/tqdm/tqdm/autonotebook.py +28 -0
  378. pforge/build/inline_copy/tqdm/tqdm/dask.py +46 -0
  379. pforge/build/inline_copy/tqdm/tqdm/notebook.py +316 -0
  380. pforge/build/inline_copy/tqdm/tqdm/std.py +1527 -0
  381. pforge/build/inline_copy/tqdm/tqdm/tk.py +207 -0
  382. pforge/build/inline_copy/tqdm/tqdm/utils.py +351 -0
  383. pforge/build/inline_copy/tqdm/tqdm/version.py +2 -0
  384. pforge/build/inline_copy/yaml/LICENSE +20 -0
  385. pforge/build/inline_copy/yaml/yaml/__init__.py +427 -0
  386. pforge/build/inline_copy/yaml/yaml/composer.py +139 -0
  387. pforge/build/inline_copy/yaml/yaml/constructor.py +748 -0
  388. pforge/build/inline_copy/yaml/yaml/cyaml.py +101 -0
  389. pforge/build/inline_copy/yaml/yaml/dumper.py +62 -0
  390. pforge/build/inline_copy/yaml/yaml/emitter.py +1137 -0
  391. pforge/build/inline_copy/yaml/yaml/error.py +75 -0
  392. pforge/build/inline_copy/yaml/yaml/events.py +86 -0
  393. pforge/build/inline_copy/yaml/yaml/loader.py +63 -0
  394. pforge/build/inline_copy/yaml/yaml/nodes.py +49 -0
  395. pforge/build/inline_copy/yaml/yaml/parser.py +589 -0
  396. pforge/build/inline_copy/yaml/yaml/reader.py +185 -0
  397. pforge/build/inline_copy/yaml/yaml/representer.py +389 -0
  398. pforge/build/inline_copy/yaml/yaml/resolver.py +227 -0
  399. pforge/build/inline_copy/yaml/yaml/scanner.py +1435 -0
  400. pforge/build/inline_copy/yaml/yaml/serializer.py +111 -0
  401. pforge/build/inline_copy/yaml/yaml/tokens.py +104 -0
  402. pforge/build/inline_copy/zlib/LICENSE +22 -0
  403. pforge/build/inline_copy/zlib/crc32.c +991 -0
  404. pforge/build/inline_copy/zlib/crc32.h +9446 -0
  405. pforge/build/inline_copy/zlib/zconf.h +397 -0
  406. pforge/build/inline_copy/zlib/zutil.h +275 -0
  407. pforge/build/inline_copy/zstd/LICENSE.txt +30 -0
  408. pforge/build/inline_copy/zstd/common/bitstream.h +463 -0
  409. pforge/build/inline_copy/zstd/common/compiler.h +288 -0
  410. pforge/build/inline_copy/zstd/common/cpu.h +213 -0
  411. pforge/build/inline_copy/zstd/common/debug.h +107 -0
  412. pforge/build/inline_copy/zstd/common/entropy_common.c +360 -0
  413. pforge/build/inline_copy/zstd/common/error_private.c +56 -0
  414. pforge/build/inline_copy/zstd/common/error_private.h +80 -0
  415. pforge/build/inline_copy/zstd/common/fse.h +715 -0
  416. pforge/build/inline_copy/zstd/common/fse_decompress.c +393 -0
  417. pforge/build/inline_copy/zstd/common/huf.h +361 -0
  418. pforge/build/inline_copy/zstd/common/mem.h +426 -0
  419. pforge/build/inline_copy/zstd/common/xxhash.c +826 -0
  420. pforge/build/inline_copy/zstd/common/xxhash.h +285 -0
  421. pforge/build/inline_copy/zstd/common/zstd_common.c +83 -0
  422. pforge/build/inline_copy/zstd/common/zstd_deps.h +111 -0
  423. pforge/build/inline_copy/zstd/common/zstd_errors.h +95 -0
  424. pforge/build/inline_copy/zstd/common/zstd_internal.h +478 -0
  425. pforge/build/inline_copy/zstd/decompress/huf_decompress.c +1350 -0
  426. pforge/build/inline_copy/zstd/decompress/zstd_ddict.c +244 -0
  427. pforge/build/inline_copy/zstd/decompress/zstd_ddict.h +44 -0
  428. pforge/build/inline_copy/zstd/decompress/zstd_decompress.c +1930 -0
  429. pforge/build/inline_copy/zstd/decompress/zstd_decompress_block.c +1540 -0
  430. pforge/build/inline_copy/zstd/decompress/zstd_decompress_block.h +62 -0
  431. pforge/build/inline_copy/zstd/decompress/zstd_decompress_internal.h +190 -0
  432. pforge/build/inline_copy/zstd/zstd.h +2391 -0
  433. pforge/build/python_internal_offset/offsets_3.13-Windows-x86-gil-debug.json +6 -0
  434. pforge/build/python_internal_offset/offsets_3.13-Windows-x86-gil.json +6 -0
  435. pforge/build/python_internal_offset/offsets_3.13-Windows-x86_64-gil-debug.json +6 -0
  436. pforge/build/python_internal_offset/offsets_3.13-Windows-x86_64-gil.json +6 -0
  437. pforge/build/python_internal_offset/offsets_3.14-Windows-x86-gil-debug.json +7 -0
  438. pforge/build/python_internal_offset/offsets_3.14-Windows-x86-gil.json +7 -0
  439. pforge/build/python_internal_offset/offsets_3.14-Windows-x86_64-gil-debug.json +7 -0
  440. pforge/build/python_internal_offset/offsets_3.14-Windows-x86_64-gil.json +7 -0
  441. pforge/build/python_internal_offset/offsets_3.15-Windows-x86-gil-debug.json +7 -0
  442. pforge/build/python_internal_offset/offsets_3.15-Windows-x86-gil.json +7 -0
  443. pforge/build/python_internal_offset/offsets_3.15-Windows-x86_64-gil-debug.json +7 -0
  444. pforge/build/python_internal_offset/offsets_3.15-Windows-x86_64-gil.json +7 -0
  445. pforge/build/static_src/CompiledAsyncgenType.c +2393 -0
  446. pforge/build/static_src/CompiledCellType.c +324 -0
  447. pforge/build/static_src/CompiledCodeHelpers.c +2387 -0
  448. pforge/build/static_src/CompiledCoroutineType.c +2061 -0
  449. pforge/build/static_src/CompiledFrameLocalsProxyType.c +868 -0
  450. pforge/build/static_src/CompiledFrameType.c +1752 -0
  451. pforge/build/static_src/CompiledFunctionType.c +3608 -0
  452. pforge/build/static_src/CompiledGeneratorType.c +2064 -0
  453. pforge/build/static_src/CompiledGeneratorTypeUncompiledIntegration.c +2708 -0
  454. pforge/build/static_src/CompiledMethodType.c +701 -0
  455. pforge/build/static_src/HelpersAllocator.c +1132 -0
  456. pforge/build/static_src/HelpersAttributes.c +1261 -0
  457. pforge/build/static_src/HelpersBuiltin.c +1104 -0
  458. pforge/build/static_src/HelpersBuiltinTypeMethods.c +3678 -0
  459. pforge/build/static_src/HelpersBytes.c +148 -0
  460. pforge/build/static_src/HelpersCalling.c +400 -0
  461. pforge/build/static_src/HelpersCallingGenerated.c +14688 -0
  462. pforge/build/static_src/HelpersChecksumTools.c +72 -0
  463. pforge/build/static_src/HelpersClasses.c +94 -0
  464. pforge/build/static_src/HelpersComparisonDualEq.c +201 -0
  465. pforge/build/static_src/HelpersComparisonDualGe.c +139 -0
  466. pforge/build/static_src/HelpersComparisonDualGt.c +139 -0
  467. pforge/build/static_src/HelpersComparisonDualLe.c +201 -0
  468. pforge/build/static_src/HelpersComparisonDualLt.c +201 -0
  469. pforge/build/static_src/HelpersComparisonDualNe.c +139 -0
  470. pforge/build/static_src/HelpersComparisonEq.c +12140 -0
  471. pforge/build/static_src/HelpersComparisonEqUtils.c +174 -0
  472. pforge/build/static_src/HelpersComparisonGe.c +11910 -0
  473. pforge/build/static_src/HelpersComparisonGt.c +11894 -0
  474. pforge/build/static_src/HelpersComparisonLe.c +12032 -0
  475. pforge/build/static_src/HelpersComparisonLt.c +12016 -0
  476. pforge/build/static_src/HelpersComparisonNe.c +12014 -0
  477. pforge/build/static_src/HelpersConsole.c +233 -0
  478. pforge/build/static_src/HelpersConstantsBlob.c +1780 -0
  479. pforge/build/static_src/HelpersDeepcopy.c +810 -0
  480. pforge/build/static_src/HelpersDialogs.c +232 -0
  481. pforge/build/static_src/HelpersDictionaries.c +4383 -0
  482. pforge/build/static_src/HelpersDictionariesGenerated.c +476 -0
  483. pforge/build/static_src/HelpersDictionariesSetGenerated.c +1043 -0
  484. pforge/build/static_src/HelpersDumpBacktraces.c +157 -0
  485. pforge/build/static_src/HelpersEnvironmentVariables.c +68 -0
  486. pforge/build/static_src/HelpersEnvironmentVariablesSystem.c +125 -0
  487. pforge/build/static_src/HelpersExceptions.c +322 -0
  488. pforge/build/static_src/HelpersFiles.c +366 -0
  489. pforge/build/static_src/HelpersFilesystemPaths.c +1636 -0
  490. pforge/build/static_src/HelpersFloats.c +107 -0
  491. pforge/build/static_src/HelpersHeapStorage.c +99 -0
  492. pforge/build/static_src/HelpersImport.c +604 -0
  493. pforge/build/static_src/HelpersImportHard.c +644 -0
  494. pforge/build/static_src/HelpersJitSources.c +52 -0
  495. pforge/build/static_src/HelpersLists.c +1214 -0
  496. pforge/build/static_src/HelpersListsGenerated.c +568 -0
  497. pforge/build/static_src/HelpersMappings.c +49 -0
  498. pforge/build/static_src/HelpersMatching.c +212 -0
  499. pforge/build/static_src/HelpersOperationBinaryAdd.c +6751 -0
  500. pforge/build/static_src/HelpersOperationBinaryAddUtils.c +834 -0
  501. pforge/build/static_src/HelpersOperationBinaryBitand.c +2744 -0
  502. pforge/build/static_src/HelpersOperationBinaryBitor.c +2744 -0
  503. pforge/build/static_src/HelpersOperationBinaryBitxor.c +2744 -0
  504. pforge/build/static_src/HelpersOperationBinaryDivmod.c +2412 -0
  505. pforge/build/static_src/HelpersOperationBinaryDivmodUtils.c +36 -0
  506. pforge/build/static_src/HelpersOperationBinaryDualAdd.c +176 -0
  507. pforge/build/static_src/HelpersOperationBinaryDualSub.c +242 -0
  508. pforge/build/static_src/HelpersOperationBinaryFloordiv.c +2428 -0
  509. pforge/build/static_src/HelpersOperationBinaryLshift.c +2852 -0
  510. pforge/build/static_src/HelpersOperationBinaryMatmult.c +459 -0
  511. pforge/build/static_src/HelpersOperationBinaryMod.c +6555 -0
  512. pforge/build/static_src/HelpersOperationBinaryMult.c +6712 -0
  513. pforge/build/static_src/HelpersOperationBinaryMultUtils.c +142 -0
  514. pforge/build/static_src/HelpersOperationBinaryOlddiv.c +2361 -0
  515. pforge/build/static_src/HelpersOperationBinaryPow.c +2923 -0
  516. pforge/build/static_src/HelpersOperationBinaryPowUtils.c +29 -0
  517. pforge/build/static_src/HelpersOperationBinaryRshift.c +2712 -0
  518. pforge/build/static_src/HelpersOperationBinarySub.c +2880 -0
  519. pforge/build/static_src/HelpersOperationBinaryTruediv.c +2421 -0
  520. pforge/build/static_src/HelpersOperationInplaceAdd.c +5219 -0
  521. pforge/build/static_src/HelpersOperationInplaceAddUtils.c +151 -0
  522. pforge/build/static_src/HelpersOperationInplaceBitand.c +1830 -0
  523. pforge/build/static_src/HelpersOperationInplaceBitor.c +1830 -0
  524. pforge/build/static_src/HelpersOperationInplaceBitxor.c +1830 -0
  525. pforge/build/static_src/HelpersOperationInplaceFloordiv.c +2609 -0
  526. pforge/build/static_src/HelpersOperationInplaceLshift.c +1598 -0
  527. pforge/build/static_src/HelpersOperationInplaceMatmult.c +607 -0
  528. pforge/build/static_src/HelpersOperationInplaceMod.c +4766 -0
  529. pforge/build/static_src/HelpersOperationInplaceMult.c +4695 -0
  530. pforge/build/static_src/HelpersOperationInplaceOlddiv.c +2557 -0
  531. pforge/build/static_src/HelpersOperationInplacePow.c +3063 -0
  532. pforge/build/static_src/HelpersOperationInplaceRshift.c +1538 -0
  533. pforge/build/static_src/HelpersOperationInplaceSub.c +2900 -0
  534. pforge/build/static_src/HelpersOperationInplaceTruediv.c +2616 -0
  535. pforge/build/static_src/HelpersProfiling.c +107 -0
  536. pforge/build/static_src/HelpersPythonPgo.c +1137 -0
  537. pforge/build/static_src/HelpersRaising.c +473 -0
  538. pforge/build/static_src/HelpersSafeStrings.c +282 -0
  539. pforge/build/static_src/HelpersSequences.c +179 -0
  540. pforge/build/static_src/HelpersSlices.c +87 -0
  541. pforge/build/static_src/HelpersStrings.c +1260 -0
  542. pforge/build/static_src/HelpersTuples.c +180 -0
  543. pforge/build/static_src/HelpersTypes.c +1240 -0
  544. pforge/build/static_src/HelpersWarnings.c +86 -0
  545. pforge/build/static_src/InspectPatcher.c +700 -0
  546. pforge/build/static_src/MainProgram.c +2611 -0
  547. pforge/build/static_src/MetaPathBasedLoader.c +3817 -0
  548. pforge/build/static_src/MetaPathBasedLoaderImportlibMetadataDistribution.c +135 -0
  549. pforge/build/static_src/MetaPathBasedLoaderResourceReader.c +218 -0
  550. pforge/build/static_src/MetaPathBasedLoaderResourceReaderFiles.c +845 -0
  551. pforge/build/static_src/OnefileBootstrap.c +2098 -0
  552. pforge/build/static_src/OnefileSplashScreen.cpp +301 -0
  553. pforge/code_generation/AnnotateFunctionCodes.py +234 -0
  554. pforge/code_generation/AsyncgenCodes.py +199 -0
  555. pforge/code_generation/AttributeCodes.py +360 -0
  556. pforge/code_generation/BinaryOperationHelperDefinitions.py +740 -0
  557. pforge/code_generation/BranchCodes.py +68 -0
  558. pforge/code_generation/BuiltinCodes.py +642 -0
  559. pforge/code_generation/CallCodes.py +1280 -0
  560. pforge/code_generation/ClassCodes.py +288 -0
  561. pforge/code_generation/CodeGeneration.py +1228 -0
  562. pforge/code_generation/CodeHelperSelection.py +84 -0
  563. pforge/code_generation/CodeHelpers.py +459 -0
  564. pforge/code_generation/CodeObjectCodes.py +33 -0
  565. pforge/code_generation/ComparisonCodes.py +575 -0
  566. pforge/code_generation/ComparisonHelperDefinitions.py +158 -0
  567. pforge/code_generation/ConditionalCodes.py +236 -0
  568. pforge/code_generation/ConstantCodes.py +454 -0
  569. pforge/code_generation/Contexts.py +1275 -0
  570. pforge/code_generation/CoroutineCodes.py +265 -0
  571. pforge/code_generation/CtypesCodes.py +49 -0
  572. pforge/code_generation/DeferredReleaseCodes.py +68 -0
  573. pforge/code_generation/DictCodes.py +946 -0
  574. pforge/code_generation/Emission.py +69 -0
  575. pforge/code_generation/ErrorCodes.py +457 -0
  576. pforge/code_generation/EvalCodes.py +464 -0
  577. pforge/code_generation/ExceptionCodes.py +378 -0
  578. pforge/code_generation/ExpressionCTypeSelectionHelpers.py +230 -0
  579. pforge/code_generation/ExpressionCodes.py +64 -0
  580. pforge/code_generation/FrameCodes.py +669 -0
  581. pforge/code_generation/FunctionCodes.py +1064 -0
  582. pforge/code_generation/GeneratorCodes.py +230 -0
  583. pforge/code_generation/GlobalConstants.py +286 -0
  584. pforge/code_generation/GlobalsLocalsCodes.py +226 -0
  585. pforge/code_generation/IdCodes.py +54 -0
  586. pforge/code_generation/ImportCodes.py +789 -0
  587. pforge/code_generation/Indentation.py +34 -0
  588. pforge/code_generation/IndexCodes.py +53 -0
  589. pforge/code_generation/IntegerCodes.py +111 -0
  590. pforge/code_generation/IteratorCodes.py +588 -0
  591. pforge/code_generation/JitCodes.py +47 -0
  592. pforge/code_generation/LabelCodes.py +68 -0
  593. pforge/code_generation/LineNumberCodes.py +98 -0
  594. pforge/code_generation/ListCodes.py +506 -0
  595. pforge/code_generation/LoaderCodes.py +449 -0
  596. pforge/code_generation/LocalsDictCodes.py +370 -0
  597. pforge/code_generation/LoopCodes.py +111 -0
  598. pforge/code_generation/MatchCodes.py +68 -0
  599. pforge/code_generation/ModuleCodes.py +313 -0
  600. pforge/code_generation/Namify.py +292 -0
  601. pforge/code_generation/NetworkxCodes.py +54 -0
  602. pforge/code_generation/OperationCodes.py +404 -0
  603. pforge/code_generation/PackageResourceCodes.py +1129 -0
  604. pforge/code_generation/PgoCodes.py +217 -0
  605. pforge/code_generation/PrintCodes.py +96 -0
  606. pforge/code_generation/PythonAPICodes.py +279 -0
  607. pforge/code_generation/PythonSourceCodeGeneration.py +1247 -0
  608. pforge/code_generation/RaisingCodes.py +490 -0
  609. pforge/code_generation/Reports.py +118 -0
  610. pforge/code_generation/ReturnCodes.py +166 -0
  611. pforge/code_generation/SetCodes.py +199 -0
  612. pforge/code_generation/SliceCodes.py +468 -0
  613. pforge/code_generation/SpecialConstantData.py +76 -0
  614. pforge/code_generation/StringCodes.py +406 -0
  615. pforge/code_generation/SubscriptCodes.py +255 -0
  616. pforge/code_generation/TensorflowCodes.py +57 -0
  617. pforge/code_generation/TryCodes.py +360 -0
  618. pforge/code_generation/TupleCodes.py +116 -0
  619. pforge/code_generation/TypeAliasCodes.py +182 -0
  620. pforge/code_generation/VariableCodes.py +596 -0
  621. pforge/code_generation/VariableDeclarations.py +432 -0
  622. pforge/code_generation/YieldCodes.py +274 -0
  623. pforge/code_generation/__init__.py +22 -0
  624. pforge/code_generation/c_types/CTypeBases.py +191 -0
  625. pforge/code_generation/c_types/CTypeBooleans.py +105 -0
  626. pforge/code_generation/c_types/CTypeCFloats.py +62 -0
  627. pforge/code_generation/c_types/CTypeCLongs.py +46 -0
  628. pforge/code_generation/c_types/CTypeModuleDictVariables.py +114 -0
  629. pforge/code_generation/c_types/CTypePforgeBooleans.py +151 -0
  630. pforge/code_generation/c_types/CTypePforgeInts.py +201 -0
  631. pforge/code_generation/c_types/CTypePforgeVoids.py +110 -0
  632. pforge/code_generation/c_types/CTypePyObjectPointers.py +709 -0
  633. pforge/code_generation/c_types/CTypeVoids.py +93 -0
  634. pforge/code_generation/c_types/__init__.py +22 -0
  635. pforge/code_generation/templates/CodeTemplatesAsyncgens.py +108 -0
  636. pforge/code_generation/templates/CodeTemplatesConstants.py +323 -0
  637. pforge/code_generation/templates/CodeTemplatesCoroutines.py +111 -0
  638. pforge/code_generation/templates/CodeTemplatesExceptions.py +81 -0
  639. pforge/code_generation/templates/CodeTemplatesFrames.py +225 -0
  640. pforge/code_generation/templates/CodeTemplatesFunction.py +131 -0
  641. pforge/code_generation/templates/CodeTemplatesGeneratorFunction.py +131 -0
  642. pforge/code_generation/templates/CodeTemplatesIterators.py +40 -0
  643. pforge/code_generation/templates/CodeTemplatesLoader.py +183 -0
  644. pforge/code_generation/templates/CodeTemplatesModules.py +714 -0
  645. pforge/code_generation/templates/CodeTemplatesVariables.py +439 -0
  646. pforge/code_generation/templates/TemplateDebugWrapper.py +83 -0
  647. pforge/code_generation/templates/__init__.py +22 -0
  648. pforge/code_generation/templates_c/CodeTemplateCallsMethodPositional.c.j2 +324 -0
  649. pforge/code_generation/templates_c/CodeTemplateCallsMixed.c.j2 +146 -0
  650. pforge/code_generation/templates_c/CodeTemplateCallsPositional.c.j2 +694 -0
  651. pforge/code_generation/templates_c/CodeTemplateCallsPositionalMethodDescr.c.j2 +169 -0
  652. pforge/code_generation/templates_c/CodeTemplateMakeListHinted.c.j2 +41 -0
  653. pforge/code_generation/templates_c/CodeTemplateMakeListSmall.c.j2 +44 -0
  654. pforge/code_generation/templates_c/HelperBuiltinMethodOperation.c.j2 +56 -0
  655. pforge/code_generation/templates_c/HelperDictionaryCopy.c.j2 +334 -0
  656. pforge/code_generation/templates_c/HelperDictionarySet.c.j2 +613 -0
  657. pforge/code_generation/templates_c/HelperImportHard.c.j2 +40 -0
  658. pforge/code_generation/templates_c/HelperLongTools.c.j2 +56 -0
  659. pforge/code_generation/templates_c/HelperObjectTools.c.j2 +23 -0
  660. pforge/code_generation/templates_c/HelperOperationBinary.c.j2 +151 -0
  661. pforge/code_generation/templates_c/HelperOperationBinaryDual.c.j2 +118 -0
  662. pforge/code_generation/templates_c/HelperOperationComparison.c.j2 +355 -0
  663. pforge/code_generation/templates_c/HelperOperationComparisonBytes.c.j2 +118 -0
  664. pforge/code_generation/templates_c/HelperOperationComparisonDual.c.j2 +89 -0
  665. pforge/code_generation/templates_c/HelperOperationComparisonFloat.c.j2 +34 -0
  666. pforge/code_generation/templates_c/HelperOperationComparisonInt.c.j2 +35 -0
  667. pforge/code_generation/templates_c/HelperOperationComparisonList.c.j2 +131 -0
  668. pforge/code_generation/templates_c/HelperOperationComparisonLong.c.j2 +160 -0
  669. pforge/code_generation/templates_c/HelperOperationComparisonStr.c.j2 +118 -0
  670. pforge/code_generation/templates_c/HelperOperationComparisonTuple.c.j2 +102 -0
  671. pforge/code_generation/templates_c/HelperOperationComparisonUnicode.c.j2 +118 -0
  672. pforge/code_generation/templates_c/HelperOperationInplace.c.j2 +290 -0
  673. pforge/code_generation/templates_c/HelperSlotsBinary.c.j2 +441 -0
  674. pforge/code_generation/templates_c/HelperSlotsBytes.c.j2 +54 -0
  675. pforge/code_generation/templates_c/HelperSlotsCommon.c.j2 +74 -0
  676. pforge/code_generation/templates_c/HelperSlotsFloat.c.j2 +387 -0
  677. pforge/code_generation/templates_c/HelperSlotsInt.c.j2 +414 -0
  678. pforge/code_generation/templates_c/HelperSlotsList.c.j2 +62 -0
  679. pforge/code_generation/templates_c/HelperSlotsLong.c.j2 +232 -0
  680. pforge/code_generation/templates_c/HelperSlotsSet.c.j2 +50 -0
  681. pforge/code_generation/templates_c/HelperSlotsStr.c.j2 +58 -0
  682. pforge/code_generation/templates_c/HelperSlotsTuple.c.j2 +61 -0
  683. pforge/code_generation/templates_c/HelperSlotsUnicode.c.j2 +65 -0
  684. pforge/containers/Namedtuples.py +63 -0
  685. pforge/containers/OrderedDicts.py +191 -0
  686. pforge/containers/OrderedSets.py +43 -0
  687. pforge/containers/OrderedSetsFallback.py +142 -0
  688. pforge/containers/__init__.py +22 -0
  689. pforge/distutils/Build.py +79 -0
  690. pforge/distutils/DistutilsCommands.py +516 -0
  691. pforge/distutils/__init__.py +22 -0
  692. pforge/finalizations/Finalization.py +38 -0
  693. pforge/finalizations/FinalizeMarkups.py +124 -0
  694. pforge/finalizations/__init__.py +22 -0
  695. pforge/format/BiomeFormatter.py +147 -0
  696. pforge/format/FileFormatting.py +392 -0
  697. pforge/format/PythonFormatting.py +477 -0
  698. pforge/format/YamlChecker.py +239 -0
  699. pforge/format/YamlFormatter.py +476 -0
  700. pforge/format/__init__.py +28 -0
  701. pforge/format/biome.json +10 -0
  702. pforge/freezer/DllDependenciesCommon.py +221 -0
  703. pforge/freezer/DllDependenciesMacOS.py +642 -0
  704. pforge/freezer/DllDependenciesPosix.py +256 -0
  705. pforge/freezer/DllDependenciesWin32.py +683 -0
  706. pforge/freezer/DllDependenciesWin32DependsExe.py +331 -0
  707. pforge/freezer/DllDependenciesWin32PEFile.py +130 -0
  708. pforge/freezer/DllDependenciesWin32WinDepends.py +329 -0
  709. pforge/freezer/ImportDetection.py +367 -0
  710. pforge/freezer/IncludedDataFiles.py +1319 -0
  711. pforge/freezer/IncludedEntryPoints.py +568 -0
  712. pforge/freezer/LinuxApp.py +256 -0
  713. pforge/freezer/MacOSApp.py +270 -0
  714. pforge/freezer/Onefile.py +364 -0
  715. pforge/freezer/Standalone.py +845 -0
  716. pforge/freezer/__init__.py +22 -0
  717. pforge/importing/FakeModules.py +117 -0
  718. pforge/importing/IgnoreListing.py +449 -0
  719. pforge/importing/ImportCache.py +98 -0
  720. pforge/importing/ImportResolving.py +187 -0
  721. pforge/importing/Importing.py +1729 -0
  722. pforge/importing/ImportingResults.py +48 -0
  723. pforge/importing/PreloadedPackages.py +169 -0
  724. pforge/importing/Recursion.py +881 -0
  725. pforge/importing/StandardLibrary.py +459 -0
  726. pforge/importing/__init__.py +22 -0
  727. pforge/installer/Installer.py +147 -0
  728. pforge/installer/LinuxInstaller.py +137 -0
  729. pforge/installer/MacOSDmg.py +197 -0
  730. pforge/installer/WindowsInstaller.py +162 -0
  731. pforge/installer/__init__.py +22 -0
  732. pforge/installer/backends/AppImageBackend.py +261 -0
  733. pforge/installer/backends/NsisBackend.py +522 -0
  734. pforge/installer/backends/NsisTemplate.nsi +105 -0
  735. pforge/installer/backends/__init__.py +26 -0
  736. pforge/nodes/AsyncgenNodes.py +89 -0
  737. pforge/nodes/AttributeLookupNodes.py +127 -0
  738. pforge/nodes/AttributeNodes.py +400 -0
  739. pforge/nodes/AttributeNodesGenerated.py +10978 -0
  740. pforge/nodes/BuiltinAllNodes.py +116 -0
  741. pforge/nodes/BuiltinAnyNodes.py +125 -0
  742. pforge/nodes/BuiltinComplexNodes.py +92 -0
  743. pforge/nodes/BuiltinDecodingNodes.py +55 -0
  744. pforge/nodes/BuiltinDecoratorNodes.py +92 -0
  745. pforge/nodes/BuiltinDictNodes.py +231 -0
  746. pforge/nodes/BuiltinFormatNodes.py +165 -0
  747. pforge/nodes/BuiltinHashNodes.py +70 -0
  748. pforge/nodes/BuiltinInputNodes.py +46 -0
  749. pforge/nodes/BuiltinIntegerNodes.py +194 -0
  750. pforge/nodes/BuiltinIteratorNodes.py +743 -0
  751. pforge/nodes/BuiltinLenNodes.py +64 -0
  752. pforge/nodes/BuiltinNextNodes.py +118 -0
  753. pforge/nodes/BuiltinOpenNodes.py +103 -0
  754. pforge/nodes/BuiltinOperationNodeBasesGenerated.py +7382 -0
  755. pforge/nodes/BuiltinRangeNodes.py +701 -0
  756. pforge/nodes/BuiltinRefNodes.py +328 -0
  757. pforge/nodes/BuiltinSumNodes.py +111 -0
  758. pforge/nodes/BuiltinTemplateNodes.py +74 -0
  759. pforge/nodes/BuiltinTypeNodes.py +491 -0
  760. pforge/nodes/BuiltinVarsNodes.py +51 -0
  761. pforge/nodes/BytesNodes.py +830 -0
  762. pforge/nodes/CallNodes.py +220 -0
  763. pforge/nodes/Checkers.py +58 -0
  764. pforge/nodes/ChildrenHavingMixins.py +24956 -0
  765. pforge/nodes/ClassNodes.py +581 -0
  766. pforge/nodes/CodeObjectSpecs.py +518 -0
  767. pforge/nodes/ComparisonNodes.py +691 -0
  768. pforge/nodes/ConditionalNodes.py +946 -0
  769. pforge/nodes/ConstantRefNodes.py +1894 -0
  770. pforge/nodes/ContainerMakingNodes.py +412 -0
  771. pforge/nodes/ContainerOperationNodes.py +97 -0
  772. pforge/nodes/CoroutineNodes.py +126 -0
  773. pforge/nodes/CtypesNodes.py +52 -0
  774. pforge/nodes/DictionaryNodes.py +1571 -0
  775. pforge/nodes/ExceptionNodes.py +467 -0
  776. pforge/nodes/ExecEvalNodes.py +246 -0
  777. pforge/nodes/ExpressionBases.py +1356 -0
  778. pforge/nodes/ExpressionBasesGenerated.py +3183 -0
  779. pforge/nodes/ExpressionShapeMixins.py +965 -0
  780. pforge/nodes/FrameNodes.py +516 -0
  781. pforge/nodes/FunctionAttributeNodes.py +105 -0
  782. pforge/nodes/FunctionNodes.py +1347 -0
  783. pforge/nodes/FutureSpecs.py +227 -0
  784. pforge/nodes/GeneratorNodes.py +204 -0
  785. pforge/nodes/GlobalsLocalsNodes.py +226 -0
  786. pforge/nodes/HardImportNodes.py +52 -0
  787. pforge/nodes/HardImportNodesGenerated.py +5059 -0
  788. pforge/nodes/ImportHardNodes.py +193 -0
  789. pforge/nodes/ImportNodes.py +1542 -0
  790. pforge/nodes/IndicatorMixins.py +82 -0
  791. pforge/nodes/IterationHandles.py +412 -0
  792. pforge/nodes/KeyValuePairNodes.py +381 -0
  793. pforge/nodes/ListOperationNodes.py +534 -0
  794. pforge/nodes/LocalsDictNodes.py +778 -0
  795. pforge/nodes/LocalsScopes.py +539 -0
  796. pforge/nodes/LoopNodes.py +605 -0
  797. pforge/nodes/MatchNodes.py +63 -0
  798. pforge/nodes/ModuleAttributeNodes.py +209 -0
  799. pforge/nodes/ModuleNodes.py +1233 -0
  800. pforge/nodes/NetworkxNodes.py +46 -0
  801. pforge/nodes/NodeBases.py +957 -0
  802. pforge/nodes/NodeMakingHelpers.py +500 -0
  803. pforge/nodes/NodeMetaClasses.py +171 -0
  804. pforge/nodes/OperatorNodes.py +1094 -0
  805. pforge/nodes/OperatorNodesUnary.py +406 -0
  806. pforge/nodes/OsSysNodes.py +344 -0
  807. pforge/nodes/OutlineNodes.py +504 -0
  808. pforge/nodes/PackageMetadataNodes.py +999 -0
  809. pforge/nodes/PackageResourceNodes.py +566 -0
  810. pforge/nodes/PrintNodes.py +178 -0
  811. pforge/nodes/ReturnNodes.py +258 -0
  812. pforge/nodes/RuntimePathNodes.py +44 -0
  813. pforge/nodes/SideEffectNodes.py +142 -0
  814. pforge/nodes/SliceNodes.py +401 -0
  815. pforge/nodes/StatementBasesGenerated.py +3896 -0
  816. pforge/nodes/StatementNodes.py +299 -0
  817. pforge/nodes/StrNodes.py +989 -0
  818. pforge/nodes/StringConcatenationNodes.py +130 -0
  819. pforge/nodes/SubscriptNodes.py +248 -0
  820. pforge/nodes/TensorflowNodes.py +39 -0
  821. pforge/nodes/TryNodes.py +523 -0
  822. pforge/nodes/TypeMatchNodes.py +68 -0
  823. pforge/nodes/TypeNodes.py +450 -0
  824. pforge/nodes/VariableAssignNodes.py +1256 -0
  825. pforge/nodes/VariableDelNodes.py +364 -0
  826. pforge/nodes/VariableNameNodes.py +156 -0
  827. pforge/nodes/VariableRefNodes.py +886 -0
  828. pforge/nodes/VariableReleaseNodes.py +179 -0
  829. pforge/nodes/YieldNodes.py +124 -0
  830. pforge/nodes/__init__.py +22 -0
  831. pforge/nodes/shapes/BuiltinTypeShapes.py +4461 -0
  832. pforge/nodes/shapes/ControlFlowDescriptions.py +224 -0
  833. pforge/nodes/shapes/IteratorShapes.py +70 -0
  834. pforge/nodes/shapes/ShapeMixins.py +272 -0
  835. pforge/nodes/shapes/StandardShapes.py +1417 -0
  836. pforge/nodes/shapes/__init__.py +22 -0
  837. pforge/optimizations/BytecodeDemotion.py +103 -0
  838. pforge/optimizations/FunctionInlining.py +113 -0
  839. pforge/optimizations/Graphs.py +73 -0
  840. pforge/optimizations/Optimization.py +429 -0
  841. pforge/optimizations/OptimizeBuiltinCalls.py +1668 -0
  842. pforge/optimizations/Tags.py +86 -0
  843. pforge/optimizations/TraceCollections.py +1523 -0
  844. pforge/optimizations/__init__.py +22 -0
  845. pforge/optimizations/bench_startup.py +62 -0
  846. pforge/optimizations/bench_tags.py +55 -0
  847. pforge/optimizations/value_traces/ValueTraces.py +61 -0
  848. pforge/optimizations/value_traces/ValueTracesGenerated.py +1920 -0
  849. pforge/optimizations/value_traces/ValueTracesStatic.py +1596 -0
  850. pforge/optimizations/value_traces/__init__.py +22 -0
  851. pforge/options/BuildPackage.py +193 -0
  852. pforge/options/BuildPackageCommon.py +109 -0
  853. pforge/options/CommandLineOptionsTools.py +359 -0
  854. pforge/options/OptionParsing.py +3385 -0
  855. pforge/options/Options.py +3736 -0
  856. pforge/options/PathSpecs.py +246 -0
  857. pforge/options/Poetry.py +96 -0
  858. pforge/options/UvBuild.py +159 -0
  859. pforge/options/__init__.py +22 -0
  860. pforge/package_config/__init__.py +22 -0
  861. pforge/pgo/Pgo.py +865 -0
  862. pforge/pgo/PgoFormat.py +240 -0
  863. pforge/pgo/__init__.py +22 -0
  864. pforge/plugins/Hooks.py +437 -0
  865. pforge/plugins/PluginBase.py +2267 -0
  866. pforge/plugins/Plugins.py +2681 -0
  867. pforge/plugins/PluginsUsage.py +72 -0
  868. pforge/plugins/YamlPluginBase.py +132 -0
  869. pforge/plugins/__init__.py +22 -0
  870. pforge/plugins/standard/AntiBloatPlugin.py +1134 -0
  871. pforge/plugins/standard/ConsiderPyLintAnnotationsPlugin.py +97 -0
  872. pforge/plugins/standard/DataFilesPlugin.py +347 -0
  873. pforge/plugins/standard/DelvewheelPlugin.py +161 -0
  874. pforge/plugins/standard/DillPlugin/DillPlugin.c +40 -0
  875. pforge/plugins/standard/DillPlugin/cloudpickle-postLoad.py +69 -0
  876. pforge/plugins/standard/DillPlugin/dill-postLoad.py +228 -0
  877. pforge/plugins/standard/DillPlugin.py +152 -0
  878. pforge/plugins/standard/DllFilesPlugin.py +564 -0
  879. pforge/plugins/standard/EnumPlugin.py +67 -0
  880. pforge/plugins/standard/EventletPlugin.py +37 -0
  881. pforge/plugins/standard/GeventPlugin.py +66 -0
  882. pforge/plugins/standard/GiPlugin.py +278 -0
  883. pforge/plugins/standard/GlfwPlugin.py +179 -0
  884. pforge/plugins/standard/ImplicitImports.py +1023 -0
  885. pforge/plugins/standard/KivyPlugin.py +143 -0
  886. pforge/plugins/standard/MatplotlibPlugin.py +260 -0
  887. pforge/plugins/standard/MultiprocessingPlugin.py +372 -0
  888. pforge/plugins/standard/NumbaPlugin.py +110 -0
  889. pforge/plugins/standard/NumpyPlugin.py +37 -0
  890. pforge/plugins/standard/OptionsNannyPlugin.py +145 -0
  891. pforge/plugins/standard/PbrPlugin.py +65 -0
  892. pforge/plugins/standard/PkgResourcesPlugin.py +171 -0
  893. pforge/plugins/standard/PlaywrightPlugin.py +181 -0
  894. pforge/plugins/standard/PmwPlugin.py +249 -0
  895. pforge/plugins/standard/PySidePyQtPlugin.py +1830 -0
  896. pforge/plugins/standard/PywebViewPlugin.py +85 -0
  897. pforge/plugins/standard/SourceInclusionPlugin.py +671 -0
  898. pforge/plugins/standard/SpacyPlugin.py +138 -0
  899. pforge/plugins/standard/TensorflowPlugin.py +37 -0
  900. pforge/plugins/standard/TkinterPlugin.py +636 -0
  901. pforge/plugins/standard/TorchHubPlugin.py +521 -0
  902. pforge/plugins/standard/TorchJitPlugin.py +236 -0
  903. pforge/plugins/standard/TorchPlugin.py +37 -0
  904. pforge/plugins/standard/TransformersPlugin.py +333 -0
  905. pforge/plugins/standard/TrioPlugin.py +35 -0
  906. pforge/plugins/standard/UpxPlugin.py +191 -0
  907. pforge/plugins/standard/__init__.py +22 -0
  908. pforge/plugins/standard/standard.pforge-package.config.yml +10867 -0
  909. pforge/plugins/standard/stdlib.pforge-package.config.yml +410 -0
  910. pforge/plugins/standard/stdlib2.pforge-package.config.yml +72 -0
  911. pforge/plugins/standard/stdlib3.pforge-package.config.yml +100 -0
  912. pforge/reports/CompilationReportReader.py +134 -0
  913. pforge/reports/LicenseReport.rst.j2 +44 -0
  914. pforge/reports/Reports.py +1560 -0
  915. pforge/reports/__init__.py +22 -0
  916. pforge/specs/BuiltinBytesOperationSpecs.py +196 -0
  917. pforge/specs/BuiltinDictOperationSpecs.py +96 -0
  918. pforge/specs/BuiltinListOperationSpecs.py +83 -0
  919. pforge/specs/BuiltinParameterSpecs.py +953 -0
  920. pforge/specs/BuiltinStrOperationSpecs.py +215 -0
  921. pforge/specs/BuiltinTypeOperationSpecs.py +37 -0
  922. pforge/specs/BuiltinUnicodeOperationSpecs.py +132 -0
  923. pforge/specs/HardImportSpecs.py +275 -0
  924. pforge/specs/ParameterSpecs.py +683 -0
  925. pforge/specs/__init__.py +22 -0
  926. pforge/targets/TargetLinux.py +278 -0
  927. pforge/targets/TargetMatrix.py +415 -0
  928. pforge/targets/TargetNative.py +132 -0
  929. pforge/targets/TargetPython.py +914 -0
  930. pforge/targets/TargetWASI.py +124 -0
  931. pforge/targets/TargetWin32.py +304 -0
  932. pforge/targets/Targets.py +378 -0
  933. pforge/targets/__init__.py +22 -0
  934. pforge/tools/Basics.py +60 -0
  935. pforge/tools/__init__.py +22 -0
  936. pforge/tools/commercial/__init__.py +22 -0
  937. pforge/tools/data_composer/DataComposer.py +764 -0
  938. pforge/tools/data_composer/__init__.py +22 -0
  939. pforge/tools/data_composer/__main__.py +42 -0
  940. pforge/tools/environments/CreateEnvironment.py +72 -0
  941. pforge/tools/environments/Virtualenv.py +219 -0
  942. pforge/tools/environments/__init__.py +22 -0
  943. pforge/tools/general/__init__.py +22 -0
  944. pforge/tools/general/dll_report/__init__.py +22 -0
  945. pforge/tools/general/dll_report/__main__.py +87 -0
  946. pforge/tools/general/extract_poetry_config/__init__.py +22 -0
  947. pforge/tools/general/extract_poetry_config/__main__.py +144 -0
  948. pforge/tools/general/extract_uv_config/__init__.py +24 -0
  949. pforge/tools/general/extract_uv_config/__main__.py +202 -0
  950. pforge/tools/general/find_module/FindModuleCode.py +127 -0
  951. pforge/tools/general/find_module/__init__.py +22 -0
  952. pforge/tools/general/generate_header/GenerateHeader.py +168 -0
  953. pforge/tools/general/generate_header/GenerateOffsets.py +395 -0
  954. pforge/tools/general/generate_header/__init__.py +22 -0
  955. pforge/tools/onefile_compressor/OnefileCompressor.py +535 -0
  956. pforge/tools/onefile_compressor/__init__.py +22 -0
  957. pforge/tools/onefile_compressor/__main__.py +42 -0
  958. pforge/tools/podman/Container.py +850 -0
  959. pforge/tools/podman/Podman.py +58 -0
  960. pforge/tools/podman/__init__.py +22 -0
  961. pforge/tools/podman/__main__.py +173 -0
  962. pforge/tools/podman/containers/CI.containerfile +69 -0
  963. pforge/tools/podman/containers/Python-Minor-Versions.containerfile.j2 +39 -0
  964. pforge/tools/profiler/__init__.py +22 -0
  965. pforge/tools/profiler/__main__.py +96 -0
  966. pforge/tools/scanning/DisplayDistributions.py +60 -0
  967. pforge/tools/scanning/DisplayPackageDLLs.py +159 -0
  968. pforge/tools/scanning/DisplayPackageData.py +78 -0
  969. pforge/tools/scanning/__init__.py +22 -0
  970. pforge/tools/specialize/CTypeDescriptions.py +1931 -0
  971. pforge/tools/specialize/Common.py +454 -0
  972. pforge/tools/specialize/SpecializeC.py +1896 -0
  973. pforge/tools/specialize/SpecializePython.py +1356 -0
  974. pforge/tools/specialize/__init__.py +22 -0
  975. pforge/tools/testing/Common.py +2190 -0
  976. pforge/tools/testing/Constructs.py +54 -0
  977. pforge/tools/testing/Coverage.py +197 -0
  978. pforge/tools/testing/DocTests.py +159 -0
  979. pforge/tools/testing/OutputComparison.py +492 -0
  980. pforge/tools/testing/Pythons.py +37 -0
  981. pforge/tools/testing/RuntimeTracing.py +296 -0
  982. pforge/tools/testing/SearchModes.py +292 -0
  983. pforge/tools/testing/Valgrind.py +106 -0
  984. pforge/tools/testing/__init__.py +22 -0
  985. pforge/tools/testing/check_reference_counts/__init__.py +22 -0
  986. pforge/tools/testing/check_reference_counts/__main__.py +108 -0
  987. pforge/tools/testing/compare_with_cpython/__init__.py +22 -0
  988. pforge/tools/testing/compare_with_cpython/__main__.py +1107 -0
  989. pforge/tools/testing/find_sxs_modules/__init__.py +22 -0
  990. pforge/tools/testing/find_sxs_modules/__main__.py +74 -0
  991. pforge/tools/testing/measure_construct_performance/__init__.py +22 -0
  992. pforge/tools/testing/measure_construct_performance/__main__.py +291 -0
  993. pforge/tools/testing/run_pforge_tests/__init__.py +22 -0
  994. pforge/tools/testing/run_pforge_tests/__main__.py +1146 -0
  995. pforge/tools/watch/AutoStage.py +462 -0
  996. pforge/tools/watch/Common.py +54 -0
  997. pforge/tools/watch/Conda.py +128 -0
  998. pforge/tools/watch/GitHub.py +116 -0
  999. pforge/tools/watch/Pacman.py +76 -0
  1000. pforge/tools/watch/Pipenv.py +165 -0
  1001. pforge/tools/watch/__init__.py +22 -0
  1002. pforge/tools/watch/__main__.py +727 -0
  1003. pforge/tree/Building.py +1595 -0
  1004. pforge/tree/ComplexCallHelperFunctions.py +2279 -0
  1005. pforge/tree/Extractions.py +75 -0
  1006. pforge/tree/FutureSpecState.py +76 -0
  1007. pforge/tree/InternalModule.py +99 -0
  1008. pforge/tree/Operations.py +108 -0
  1009. pforge/tree/ReformulationAssertStatements.py +110 -0
  1010. pforge/tree/ReformulationAssignmentStatements.py +1513 -0
  1011. pforge/tree/ReformulationBooleanExpressions.py +100 -0
  1012. pforge/tree/ReformulationCallExpressions.py +336 -0
  1013. pforge/tree/ReformulationClasses.py +403 -0
  1014. pforge/tree/ReformulationClasses3.py +1519 -0
  1015. pforge/tree/ReformulationComparisonExpressions.py +177 -0
  1016. pforge/tree/ReformulationContractionExpressions.py +809 -0
  1017. pforge/tree/ReformulationDictionaryCreation.py +308 -0
  1018. pforge/tree/ReformulationExecStatements.py +387 -0
  1019. pforge/tree/ReformulationForLoopStatements.py +218 -0
  1020. pforge/tree/ReformulationFunctionStatements.py +1306 -0
  1021. pforge/tree/ReformulationImportStatements.py +350 -0
  1022. pforge/tree/ReformulationLambdaExpressions.py +196 -0
  1023. pforge/tree/ReformulationMatchStatements.py +902 -0
  1024. pforge/tree/ReformulationMultidist.py +83 -0
  1025. pforge/tree/ReformulationNamespacePackages.py +264 -0
  1026. pforge/tree/ReformulationPrintStatements.py +130 -0
  1027. pforge/tree/ReformulationSequenceCreation.py +443 -0
  1028. pforge/tree/ReformulationSubscriptExpressions.py +126 -0
  1029. pforge/tree/ReformulationTryExceptStatements.py +720 -0
  1030. pforge/tree/ReformulationTryFinallyStatements.py +244 -0
  1031. pforge/tree/ReformulationWhileLoopStatements.py +162 -0
  1032. pforge/tree/ReformulationWithStatements.py +394 -0
  1033. pforge/tree/ReformulationYieldExpressions.py +136 -0
  1034. pforge/tree/SourceHandling.py +522 -0
  1035. pforge/tree/SyntaxErrors.py +245 -0
  1036. pforge/tree/TreeHelpers.py +759 -0
  1037. pforge/tree/VariableClosure.py +554 -0
  1038. pforge/tree/__init__.py +22 -0
  1039. pforge/utils/AppDirs.py +148 -0
  1040. pforge/utils/CStrings.py +208 -0
  1041. pforge/utils/Diffs.py +192 -0
  1042. pforge/utils/Distributions.py +901 -0
  1043. pforge/utils/Download.py +466 -0
  1044. pforge/utils/Execution.py +1154 -0
  1045. pforge/utils/FileOperations.py +2481 -0
  1046. pforge/utils/Hashing.py +159 -0
  1047. pforge/utils/Images.py +75 -0
  1048. pforge/utils/Importing.py +392 -0
  1049. pforge/utils/InlineCopies.py +132 -0
  1050. pforge/utils/InstalledPythons.py +281 -0
  1051. pforge/utils/InstanceCounters.py +89 -0
  1052. pforge/utils/Jinja2.py +195 -0
  1053. pforge/utils/Json.py +96 -0
  1054. pforge/utils/LinuxPython.py +365 -0
  1055. pforge/utils/MemoryUsage.py +166 -0
  1056. pforge/utils/ModuleNames.py +384 -0
  1057. pforge/utils/PackageResources.py +67 -0
  1058. pforge/utils/PrivatePipSpace.py +1317 -0
  1059. pforge/utils/Profiling.py +243 -0
  1060. pforge/utils/PythonPrefetch.py +391 -0
  1061. pforge/utils/ReExecute.py +120 -0
  1062. pforge/utils/Rest.py +63 -0
  1063. pforge/utils/SharedLibraries.py +1623 -0
  1064. pforge/utils/Shebang.py +114 -0
  1065. pforge/utils/Signing.py +500 -0
  1066. pforge/utils/SlotMetaClasses.py +60 -0
  1067. pforge/utils/StaticLibraries.py +422 -0
  1068. pforge/utils/ThreadedExecutor.py +90 -0
  1069. pforge/utils/Timing.py +201 -0
  1070. pforge/utils/Toml.py +65 -0
  1071. pforge/utils/Utils.py +643 -0
  1072. pforge/utils/WasiPython.py +428 -0
  1073. pforge/utils/WasiSDK.py +226 -0
  1074. pforge/utils/Wasmtime.py +178 -0
  1075. pforge/utils/WindowsFileUsage.py +338 -0
  1076. pforge/utils/WindowsResources.py +659 -0
  1077. pforge/utils/Yaml.py +1143 -0
  1078. pforge/utils/Zipfiles.py +131 -0
  1079. pforge/utils/__init__.py +22 -0
  1080. pforge/utils/requirements-private.txt +26 -0
  1081. pforge-1.0.0.data/scripts/compile-python-for-pforge-linux.sh +232 -0
  1082. pforge-1.0.0.dist-info/METADATA +2228 -0
  1083. pforge-1.0.0.dist-info/RECORD +1090 -0
  1084. pforge-1.0.0.dist-info/WHEEL +5 -0
  1085. pforge-1.0.0.dist-info/entry_points.txt +11 -0
  1086. pforge-1.0.0.dist-info/licenses/LICENSE-RUNTIME.txt +57 -0
  1087. pforge-1.0.0.dist-info/licenses/LICENSE.txt +661 -0
  1088. pforge-1.0.0.dist-info/licenses/NOTICE.txt +11 -0
  1089. pforge-1.0.0.dist-info/top_level.txt +1 -0
  1090. pforge-1.0.0.dist-info/zip-safe +1 -0
pforge/Constants.py ADDED
@@ -0,0 +1,510 @@
1
+ # Copyright 2026, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
2
+
3
+
4
+ """Module for constants in Pforge.
5
+
6
+ This contains tools to compare, classify and test constants.
7
+ """
8
+
9
+ import math
10
+ import sys
11
+ from types import BuiltinFunctionType
12
+
13
+ from pforge.Builtins import builtin_type_names
14
+ from pforge.containers.Namedtuples import makeNamedtupleClass
15
+ from pforge.PythonVersions import python_version
16
+
17
+ from .__past__ import (
18
+ GenericAlias,
19
+ UnionType,
20
+ frozendict,
21
+ iterItems,
22
+ long,
23
+ unicode,
24
+ xrange,
25
+ )
26
+ from .Builtins import (
27
+ builtin_anon_names,
28
+ builtin_anon_value_list,
29
+ builtin_exception_values_list,
30
+ builtin_named_values_list,
31
+ )
32
+
33
+ NoneType = type(None)
34
+
35
+ EllipsisType = type(Ellipsis)
36
+
37
+
38
+ TargetVersionInfo = makeNamedtupleClass(
39
+ "TargetVersionInfo",
40
+ ("major", "minor", "micro", "releaselevel", "serial"),
41
+ )
42
+ TargetVersionInfo.__module__ = __name__
43
+
44
+ # Match the struct sequence attributes exposed by "sys.version_info".
45
+ TargetVersionInfo.n_fields = property(len)
46
+ TargetVersionInfo.n_sequence_fields = property(len)
47
+ TargetVersionInfo.n_unnamed_fields = property(lambda self: 0)
48
+
49
+
50
+ def compareConstants(a, b):
51
+ # Many many cases to deal with, pylint: disable=too-many-branches,too-many-return-statements
52
+
53
+ # Supposed fast path for comparison.
54
+ if type(a) is not type(b):
55
+ return False
56
+
57
+ # Now it's either not the same, or it is a container that contains NaN or it
58
+ # is a complex or float that is NaN, the other cases can use == at the end.
59
+ if type(a) is complex:
60
+ return compareConstants(a.imag, b.imag) and compareConstants(a.real, b.real)
61
+
62
+ if type(a) is float:
63
+ # Check sign first, -0.0 is not 0.0, or -nan is not nan, it has a
64
+ # different sign for a start.
65
+ if math.copysign(1.0, a) != math.copysign(1.0, b):
66
+ return False
67
+
68
+ if math.isnan(a) and math.isnan(b):
69
+ return True
70
+
71
+ return a == b
72
+
73
+ if type(a) in (tuple, list):
74
+ if len(a) != len(b):
75
+ return False
76
+
77
+ for ea, eb in zip(a, b):
78
+ if not compareConstants(ea, eb):
79
+ return False
80
+ return True
81
+
82
+ if type(a) is dict or type(a) is frozendict:
83
+ if len(a) != len(b):
84
+ return False
85
+
86
+ for ea1, ea2 in iterItems(a):
87
+ for eb1, eb2 in iterItems(b):
88
+ if compareConstants(ea1, eb1) and compareConstants(ea2, eb2):
89
+ break
90
+ else:
91
+ return False
92
+ return True
93
+
94
+ if type(a) in (frozenset, set):
95
+ if len(a) != len(b):
96
+ return False
97
+
98
+ for ea in a:
99
+ if ea not in b:
100
+ # Due to NaN values, we need to compare each set element with
101
+ # all the other set to be really sure.
102
+ for eb in b:
103
+ if compareConstants(ea, eb):
104
+ break
105
+ else:
106
+ return False
107
+ return True
108
+
109
+ if type(a) is xrange:
110
+ return str(a) == str(b)
111
+
112
+ # The NaN values of float and complex may let this fail, even if the
113
+ # constants are built in the same way, therefore above checks.
114
+ return a == b
115
+
116
+
117
+ # These built-in type references are kind of constant too. The list should be
118
+ # complete.
119
+ constant_builtin_types = (
120
+ int,
121
+ str,
122
+ float,
123
+ list,
124
+ tuple,
125
+ set,
126
+ dict,
127
+ slice,
128
+ complex,
129
+ xrange,
130
+ NoneType,
131
+ )
132
+
133
+ if python_version >= 0x300:
134
+ constant_builtin_types += (bytes,)
135
+ else:
136
+ constant_builtin_types += (
137
+ unicode,
138
+ long,
139
+ # This has no name in Python, but the natural one in C-API.
140
+ builtin_anon_names["instance"],
141
+ )
142
+
143
+ if python_version >= 0x3F0:
144
+ constant_builtin_types += (frozendict,)
145
+
146
+
147
+ def isConstant(constant):
148
+ # Too many cases and all return, that is how we do it here,
149
+ # pylint: disable=too-many-branches,too-many-return-statements
150
+
151
+ constant_type = type(constant)
152
+
153
+ if constant_type is dict or constant_type is frozendict:
154
+ for key, value in iterItems(constant):
155
+ if not isConstant(key):
156
+ return False
157
+ if not isConstant(value):
158
+ return False
159
+ return True
160
+ elif constant_type in (tuple, list):
161
+ for element_value in constant:
162
+ if not isConstant(element_value):
163
+ return False
164
+ return True
165
+ elif constant_type is slice:
166
+ if (
167
+ not isConstant(constant.start)
168
+ or not isConstant(constant.stop)
169
+ or not isConstant(constant.step)
170
+ ):
171
+ return False
172
+
173
+ return True
174
+ elif constant_type in (
175
+ str,
176
+ unicode,
177
+ complex,
178
+ int,
179
+ long,
180
+ bool,
181
+ float,
182
+ NoneType,
183
+ range,
184
+ bytes,
185
+ set,
186
+ frozenset,
187
+ xrange,
188
+ bytearray,
189
+ EllipsisType,
190
+ TargetVersionInfo,
191
+ ):
192
+ return True
193
+ elif constant in (NoneType, NotImplemented):
194
+ return True
195
+ elif constant in builtin_anon_value_list:
196
+ return True
197
+ elif constant_type is type:
198
+ # Maybe pre-build this as a set for quicker testing.
199
+ return (
200
+ constant.__name__ in builtin_type_names
201
+ or constant in builtin_exception_values_list
202
+ )
203
+ elif constant_type is BuiltinFunctionType and constant in builtin_named_values_list:
204
+ # TODO: Some others could also be usable and even interesting, but
205
+ # then probably should go into other node types, e.g. str.join is
206
+ # a candidate.
207
+ return True
208
+ elif constant_type is GenericAlias:
209
+ return True
210
+ elif constant_type is UnionType:
211
+ return True
212
+ elif constant is sys.version_info:
213
+ return True
214
+ else:
215
+ return False
216
+
217
+
218
+ def isMutable(constant):
219
+ """Is a constant mutable
220
+
221
+ That means a user of a reference to it, can modify it. Strings are
222
+ a prime example of immutable, dictionaries are mutable.
223
+ """
224
+ # Many cases and all return, that is how we do it here,
225
+ # pylint: disable=too-many-branches,too-many-return-statements
226
+
227
+ constant_type = type(constant)
228
+
229
+ if constant_type in (
230
+ str,
231
+ unicode,
232
+ complex,
233
+ int,
234
+ long,
235
+ bool,
236
+ float,
237
+ NoneType,
238
+ range,
239
+ bytes,
240
+ slice,
241
+ xrange,
242
+ type,
243
+ frozenset,
244
+ BuiltinFunctionType,
245
+ EllipsisType,
246
+ TargetVersionInfo,
247
+ ):
248
+ return False
249
+ elif constant_type in (dict, list, set, bytearray):
250
+ return True
251
+ elif constant_type is frozendict:
252
+ # The frozendict itself cannot be changed, but nested values may still
253
+ # be mutable and thus make copies necessary.
254
+ for key, value in iterItems(constant):
255
+ if isMutable(key) or isMutable(value):
256
+ return True
257
+ return False
258
+ elif constant_type is tuple:
259
+ for value in constant:
260
+ if isMutable(value):
261
+ return True
262
+ return False
263
+ elif constant is NotImplemented:
264
+ return False
265
+ elif constant_type is GenericAlias:
266
+ return isMutable(constant.__origin__) or isMutable(constant.__args__)
267
+ elif constant_type is UnionType:
268
+ return False
269
+ elif constant is sys.version_info:
270
+ return False
271
+ else:
272
+ assert False, repr(constant)
273
+
274
+
275
+ def isHashable(constant):
276
+ """Is a constant hashable
277
+
278
+ That means a user of a reference to it, can use it for dicts and set
279
+ keys. This is distinct from mutable, there is one types that is not
280
+ mutable, and still not hashable: slices.
281
+ """
282
+ # Many cases and all return, that is how we do it here,
283
+
284
+ constant_type = type(constant)
285
+
286
+ if constant_type in (
287
+ str,
288
+ unicode,
289
+ complex,
290
+ int,
291
+ long,
292
+ bool,
293
+ float,
294
+ NoneType,
295
+ xrange,
296
+ bytes,
297
+ type,
298
+ frozenset,
299
+ BuiltinFunctionType,
300
+ EllipsisType,
301
+ TargetVersionInfo,
302
+ ):
303
+ return True
304
+ elif constant_type in (dict, list, set, slice, bytearray):
305
+ return False
306
+ elif constant_type is frozendict:
307
+ # Hashability of a frozendict depends on both its keys and values.
308
+ for key, value in iterItems(constant):
309
+ if not isHashable(key) or not isHashable(value):
310
+ return False
311
+ return True
312
+ elif constant_type is tuple:
313
+ for value in constant:
314
+ if not isHashable(value):
315
+ return False
316
+ return True
317
+ else:
318
+ assert False, constant_type
319
+
320
+
321
+ def getUnhashableConstant(constant):
322
+ """Get one unhashable part of a constant."""
323
+
324
+ # Many cases and all return, that is how we do it here,
325
+ # pylint: disable=too-many-return-statements
326
+
327
+ constant_type = type(constant)
328
+
329
+ if constant_type in (
330
+ str,
331
+ unicode,
332
+ complex,
333
+ int,
334
+ long,
335
+ bool,
336
+ float,
337
+ NoneType,
338
+ xrange,
339
+ bytes,
340
+ type,
341
+ slice,
342
+ BuiltinFunctionType,
343
+ EllipsisType,
344
+ ):
345
+ return None
346
+ elif constant_type in (dict, list, set):
347
+ return constant
348
+ elif constant_type is frozendict:
349
+ for key, value in iterItems(constant):
350
+ res = getUnhashableConstant(key)
351
+ if res is not None:
352
+ return res
353
+
354
+ res = getUnhashableConstant(value)
355
+ if res is not None:
356
+ return res
357
+ return None
358
+ elif constant_type is tuple:
359
+ for value in constant:
360
+ res = getUnhashableConstant(value)
361
+ if res is not None:
362
+ return res
363
+ return None
364
+ elif constant in constant_builtin_types:
365
+ return None
366
+ else:
367
+ assert False, constant_type
368
+
369
+
370
+ def createConstantDict(keys, values):
371
+ # Create it proper size immediately.
372
+ constant_value = dict.fromkeys(keys, None)
373
+
374
+ for key, value in zip(keys, values):
375
+ constant_value[key] = value
376
+
377
+ return constant_value
378
+
379
+
380
+ def isCompileTimeConstantValue(value):
381
+ """Determine if a value will be usable at compile time."""
382
+ # This needs to match code in makeCompileTimeConstantReplacementNode
383
+ if isConstant(value):
384
+ return True
385
+ elif type(value) is type:
386
+ return True
387
+ else:
388
+ return False
389
+
390
+
391
+ if python_version < 0x3C0:
392
+
393
+ def isConstantImmortal(value):
394
+ # Not happening before 3.12, pylint: disable=unused-argument
395
+ return False
396
+
397
+ else:
398
+
399
+ def isConstantImmortal(value):
400
+ # TODO: Add way more than these few ones.
401
+ return value in (True, False, None)
402
+
403
+
404
+ # Shared empty values, it would cost time to create them locally.
405
+ the_empty_dict = {}
406
+ the_empty_list = []
407
+ the_empty_set = set()
408
+ the_empty_bytearray = bytearray()
409
+
410
+ the_empty_tuple = ()
411
+ the_empty_frozenset = frozenset()
412
+ the_empty_slice = slice(None)
413
+
414
+ if python_version >= 0x3F0:
415
+ the_empty_frozendict = frozendict()
416
+ else:
417
+ the_empty_frozendict = None
418
+
419
+ the_empty_unicode = unicode() # black doesn't let us write u"" anymore.
420
+
421
+
422
+ def getConstantValueGuide(constant, elements_only):
423
+ # Many cases and all return, that is how we do it here,
424
+ # pylint: disable=too-many-branches,too-many-return-statements
425
+ constant_type = type(constant)
426
+
427
+ if constant_type in (
428
+ str,
429
+ unicode,
430
+ complex,
431
+ int,
432
+ long,
433
+ bool,
434
+ float,
435
+ NoneType,
436
+ range,
437
+ bytes,
438
+ slice,
439
+ xrange,
440
+ type,
441
+ frozenset,
442
+ BuiltinFunctionType,
443
+ EllipsisType,
444
+ ):
445
+ return "i"
446
+ elif constant_type is list:
447
+ for element in constant:
448
+ if isMutable(element):
449
+ return ("%s" if elements_only else "L%s") % (
450
+ "".join(
451
+ getConstantValueGuide(element, elements_only=False)
452
+ for element in constant
453
+ ),
454
+ )
455
+
456
+ return "l"
457
+
458
+ elif constant_type is tuple:
459
+ # Empty tuples need no deep copy, not even a copy.
460
+ if not constant:
461
+ return "i"
462
+
463
+ return ("%s" if elements_only else "T%s") % (
464
+ "".join(
465
+ getConstantValueGuide(element, elements_only=False)
466
+ for element in constant
467
+ ),
468
+ )
469
+ elif constant_type is set:
470
+ return "S"
471
+ elif constant_type is bytearray:
472
+ return "B"
473
+ elif constant_type is dict:
474
+ for value in iterItems(constant):
475
+ if isMutable(value):
476
+ return "D"
477
+
478
+ return "d"
479
+ elif constant_type is frozendict:
480
+ if not isMutable(constant):
481
+ # Fully immutable content can be shared, no copy needed.
482
+ return "i"
483
+
484
+ return ("%s" if elements_only else "E%s") % (
485
+ "".join(
486
+ getConstantValueGuide(value, elements_only=False)
487
+ for _key, value in iterItems(constant)
488
+ ),
489
+ )
490
+ else:
491
+ return "?"
492
+
493
+
494
+ # Part of "Pforge", an optimizing Python compiler that is compatible and
495
+ # integrates with CPython, but also works on its own.
496
+ #
497
+ # Licensed under the GNU Affero General Public License, Version 3 (the "License");
498
+ # you may not use this file except in compliance with the License.
499
+ # You may obtain a copy of the License at
500
+ #
501
+ # https://www.gnu.org/licenses/agpl-3.0.txt
502
+ #
503
+ # See also: "Pforge Runtime Library Exception, Version 1.0" in file
504
+ # "LICENSE-RUNTIME.txt" for additional permissions granted under Section 7.
505
+ #
506
+ # Unless required by applicable law or agreed to in writing, software
507
+ # distributed under the License is distributed on an "AS IS" BASIS,
508
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
509
+ # See the License for the specific language governing permissions and
510
+ # limitations under the License.
pforge/Errors.py ADDED
@@ -0,0 +1,104 @@
1
+ # Copyright 2026, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
2
+
3
+
4
+ """For enhanced bug reporting, these exceptions should be used.
5
+
6
+ They ideally should point out what it ought to take for reproducing the
7
+ issue when output.
8
+
9
+ """
10
+
11
+ from pforge.code_generation.Indentation import indented
12
+
13
+
14
+ class PforgeErrorBase(Exception):
15
+ pass
16
+
17
+
18
+ class PforgeNodeError(PforgeErrorBase):
19
+ # Try to output more information about nodes passed.
20
+ def __str__(self):
21
+ try:
22
+ parts = [""]
23
+
24
+ for arg in self.args: # false alarm, pylint: disable=I0021,not-an-iterable
25
+ if hasattr(arg, "asXmlText"):
26
+ parts.append(indented("\n%s\n" % arg.asXmlText()))
27
+ else:
28
+ parts.append(str(arg))
29
+
30
+ parts.append("")
31
+ parts.append("The above information should be included in a bug report.")
32
+
33
+ return "\n".join(parts)
34
+ except Exception as e: # Catch all the things, pylint: disable=broad-except
35
+ return "<PforgeNodeError failed with %r>" % e
36
+
37
+
38
+ class PforgeOptimizationError(PforgeNodeError):
39
+ pass
40
+
41
+
42
+ class PforgeAssumptionError(AssertionError):
43
+ pass
44
+
45
+
46
+ class PforgeCodeDeficit(PforgeErrorBase):
47
+ pass
48
+
49
+
50
+ class PforgeNodeDesignError(Exception):
51
+ pass
52
+
53
+
54
+ class PforgeForbiddenImportEncounter(Exception):
55
+ """This import was an error to attempt and include it."""
56
+
57
+
58
+ class CodeTooComplexCode(Exception):
59
+ """The code of the module is too complex.
60
+
61
+ It cannot be compiled, with recursive code, and therefore the bytecode
62
+ should be used instead.
63
+
64
+ Example of this is "idnadata", spell-checker: ignore idnadata
65
+ """
66
+
67
+
68
+ class PforgeNotYetSupported(Exception):
69
+ """A feature is not yet supported, please help adding it."""
70
+
71
+
72
+ class PforgeForbiddenDLLEncounter(Exception):
73
+ """This DLL is not allowed to be included."""
74
+
75
+
76
+ class UnsupportedDependencyWalkerCall(Exception):
77
+ """The dependency walker cannot handle the paths it would analyze."""
78
+
79
+
80
+ class PforgeSyntaxError(Exception):
81
+ """The code cannot be read due to SyntaxError"""
82
+
83
+
84
+ class PforgeFilenameError(Exception):
85
+ """A filename is illegal and should not be used internally, but was."""
86
+
87
+
88
+ # Part of "Pforge", an optimizing Python compiler that is compatible and
89
+ # integrates with CPython, but also works on its own.
90
+ #
91
+ # Licensed under the GNU Affero General Public License, Version 3 (the "License");
92
+ # you may not use this file except in compliance with the License.
93
+ # You may obtain a copy of the License at
94
+ #
95
+ # https://www.gnu.org/licenses/agpl-3.0.txt
96
+ #
97
+ # See also: "Pforge Runtime Library Exception, Version 1.0" in file
98
+ # "LICENSE-RUNTIME.txt" for additional permissions granted under Section 7.
99
+ #
100
+ # Unless required by applicable law or agreed to in writing, software
101
+ # distributed under the License is distributed on an "AS IS" BASIS,
102
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
103
+ # See the License for the specific language governing permissions and
104
+ # limitations under the License.