puyapy 0.1.0__tar.gz

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 (898) hide show
  1. puyapy-0.1.0/PKG-INFO +156 -0
  2. puyapy-0.1.0/README.md +136 -0
  3. puyapy-0.1.0/pyproject.toml +186 -0
  4. puyapy-0.1.0/src/puya/ARCHITECTURE.md +91 -0
  5. puyapy-0.1.0/src/puya/__init__.py +6 -0
  6. puyapy-0.1.0/src/puya/__main__.py +101 -0
  7. puyapy-0.1.0/src/puya/_typeshed/stdlib/VERSIONS +301 -0
  8. puyapy-0.1.0/src/puya/_typeshed/stdlib/_collections_abc.pyi +94 -0
  9. puyapy-0.1.0/src/puya/_typeshed/stdlib/_typeshed/README.md +34 -0
  10. puyapy-0.1.0/src/puya/_typeshed/stdlib/_typeshed/__init__.pyi +318 -0
  11. puyapy-0.1.0/src/puya/_typeshed/stdlib/_typeshed/dbapi.pyi +37 -0
  12. puyapy-0.1.0/src/puya/_typeshed/stdlib/_typeshed/wsgi.pyi +44 -0
  13. puyapy-0.1.0/src/puya/_typeshed/stdlib/_typeshed/xml.pyi +9 -0
  14. puyapy-0.1.0/src/puya/_typeshed/stdlib/abc.pyi +49 -0
  15. puyapy-0.1.0/src/puya/_typeshed/stdlib/builtins.pyi +2052 -0
  16. puyapy-0.1.0/src/puya/_typeshed/stdlib/collections/__init__.pyi +478 -0
  17. puyapy-0.1.0/src/puya/_typeshed/stdlib/collections/abc.pyi +2 -0
  18. puyapy-0.1.0/src/puya/_typeshed/stdlib/enum.pyi +317 -0
  19. puyapy-0.1.0/src/puya/_typeshed/stdlib/sys.pyi +372 -0
  20. puyapy-0.1.0/src/puya/_typeshed/stdlib/types.pyi +641 -0
  21. puyapy-0.1.0/src/puya/_typeshed/stdlib/typing.pyi +979 -0
  22. puyapy-0.1.0/src/puya/_typeshed/stdlib/typing_extensions.pyi +498 -0
  23. puyapy-0.1.0/src/puya/_typeshed/stubs/mypy-extensions/@tests/stubtest_allowlist.txt +2 -0
  24. puyapy-0.1.0/src/puya/_typeshed/stubs/mypy-extensions/METADATA.toml +4 -0
  25. puyapy-0.1.0/src/puya/_typeshed/stubs/mypy-extensions/mypy_extensions.pyi +218 -0
  26. puyapy-0.1.0/src/puya/_vendor/mypy/.version +1 -0
  27. puyapy-0.1.0/src/puya/_vendor/mypy/__init__.py +1 -0
  28. puyapy-0.1.0/src/puya/_vendor/mypy/__main__.py +37 -0
  29. puyapy-0.1.0/src/puya/_vendor/mypy/api.py +94 -0
  30. puyapy-0.1.0/src/puya/_vendor/mypy/applytype.py +155 -0
  31. puyapy-0.1.0/src/puya/_vendor/mypy/argmap.py +268 -0
  32. puyapy-0.1.0/src/puya/_vendor/mypy/binder.py +538 -0
  33. puyapy-0.1.0/src/puya/_vendor/mypy/bogus_type.py +27 -0
  34. puyapy-0.1.0/src/puya/_vendor/mypy/build.py +3557 -0
  35. puyapy-0.1.0/src/puya/_vendor/mypy/checker.py +8329 -0
  36. puyapy-0.1.0/src/puya/_vendor/mypy/checkexpr.py +6585 -0
  37. puyapy-0.1.0/src/puya/_vendor/mypy/checkmember.py +1345 -0
  38. puyapy-0.1.0/src/puya/_vendor/mypy/checkpattern.py +802 -0
  39. puyapy-0.1.0/src/puya/_vendor/mypy/checkstrformat.py +1109 -0
  40. puyapy-0.1.0/src/puya/_vendor/mypy/config_parser.py +657 -0
  41. puyapy-0.1.0/src/puya/_vendor/mypy/constant_fold.py +187 -0
  42. puyapy-0.1.0/src/puya/_vendor/mypy/constraints.py +1613 -0
  43. puyapy-0.1.0/src/puya/_vendor/mypy/copytype.py +133 -0
  44. puyapy-0.1.0/src/puya/_vendor/mypy/defaults.py +46 -0
  45. puyapy-0.1.0/src/puya/_vendor/mypy/dmypy/__init__.py +0 -0
  46. puyapy-0.1.0/src/puya/_vendor/mypy/dmypy/__main__.py +6 -0
  47. puyapy-0.1.0/src/puya/_vendor/mypy/dmypy/client.py +749 -0
  48. puyapy-0.1.0/src/puya/_vendor/mypy/dmypy_os.py +42 -0
  49. puyapy-0.1.0/src/puya/_vendor/mypy/dmypy_server.py +1107 -0
  50. puyapy-0.1.0/src/puya/_vendor/mypy/dmypy_util.py +58 -0
  51. puyapy-0.1.0/src/puya/_vendor/mypy/erasetype.py +278 -0
  52. puyapy-0.1.0/src/puya/_vendor/mypy/errorcodes.py +276 -0
  53. puyapy-0.1.0/src/puya/_vendor/mypy/errors.py +1279 -0
  54. puyapy-0.1.0/src/puya/_vendor/mypy/evalexpr.py +204 -0
  55. puyapy-0.1.0/src/puya/_vendor/mypy/expandtype.py +509 -0
  56. puyapy-0.1.0/src/puya/_vendor/mypy/exprtotype.py +206 -0
  57. puyapy-0.1.0/src/puya/_vendor/mypy/fastparse.py +2141 -0
  58. puyapy-0.1.0/src/puya/_vendor/mypy/find_sources.py +243 -0
  59. puyapy-0.1.0/src/puya/_vendor/mypy/fixup.py +426 -0
  60. puyapy-0.1.0/src/puya/_vendor/mypy/freetree.py +23 -0
  61. puyapy-0.1.0/src/puya/_vendor/mypy/fscache.py +309 -0
  62. puyapy-0.1.0/src/puya/_vendor/mypy/fswatcher.py +106 -0
  63. puyapy-0.1.0/src/puya/_vendor/mypy/gclogger.py +47 -0
  64. puyapy-0.1.0/src/puya/_vendor/mypy/git.py +34 -0
  65. puyapy-0.1.0/src/puya/_vendor/mypy/graph_utils.py +112 -0
  66. puyapy-0.1.0/src/puya/_vendor/mypy/indirection.py +121 -0
  67. puyapy-0.1.0/src/puya/_vendor/mypy/infer.py +75 -0
  68. puyapy-0.1.0/src/puya/_vendor/mypy/inspections.py +627 -0
  69. puyapy-0.1.0/src/puya/_vendor/mypy/ipc.py +310 -0
  70. puyapy-0.1.0/src/puya/_vendor/mypy/join.py +868 -0
  71. puyapy-0.1.0/src/puya/_vendor/mypy/literals.py +306 -0
  72. puyapy-0.1.0/src/puya/_vendor/mypy/lookup.py +61 -0
  73. puyapy-0.1.0/src/puya/_vendor/mypy/main.py +1545 -0
  74. puyapy-0.1.0/src/puya/_vendor/mypy/maptype.py +106 -0
  75. puyapy-0.1.0/src/puya/_vendor/mypy/meet.py +1129 -0
  76. puyapy-0.1.0/src/puya/_vendor/mypy/memprofile.py +121 -0
  77. puyapy-0.1.0/src/puya/_vendor/mypy/message_registry.py +323 -0
  78. puyapy-0.1.0/src/puya/_vendor/mypy/messages.py +3158 -0
  79. puyapy-0.1.0/src/puya/_vendor/mypy/metastore.py +226 -0
  80. puyapy-0.1.0/src/puya/_vendor/mypy/mixedtraverser.py +112 -0
  81. puyapy-0.1.0/src/puya/_vendor/mypy/modulefinder.py +895 -0
  82. puyapy-0.1.0/src/puya/_vendor/mypy/moduleinspect.py +180 -0
  83. puyapy-0.1.0/src/puya/_vendor/mypy/mro.py +62 -0
  84. puyapy-0.1.0/src/puya/_vendor/mypy/nodes.py +4105 -0
  85. puyapy-0.1.0/src/puya/_vendor/mypy/operators.py +126 -0
  86. puyapy-0.1.0/src/puya/_vendor/mypy/options.py +550 -0
  87. puyapy-0.1.0/src/puya/_vendor/mypy/parse.py +22 -0
  88. puyapy-0.1.0/src/puya/_vendor/mypy/partially_defined.py +675 -0
  89. puyapy-0.1.0/src/puya/_vendor/mypy/patterns.py +148 -0
  90. puyapy-0.1.0/src/puya/_vendor/mypy/plugin.py +901 -0
  91. puyapy-0.1.0/src/puya/_vendor/mypy/plugins/__init__.py +0 -0
  92. puyapy-0.1.0/src/puya/_vendor/mypy/plugins/attrs.py +1116 -0
  93. puyapy-0.1.0/src/puya/_vendor/mypy/plugins/common.py +439 -0
  94. puyapy-0.1.0/src/puya/_vendor/mypy/plugins/ctypes.py +245 -0
  95. puyapy-0.1.0/src/puya/_vendor/mypy/plugins/dataclasses.py +1101 -0
  96. puyapy-0.1.0/src/puya/_vendor/mypy/plugins/default.py +518 -0
  97. puyapy-0.1.0/src/puya/_vendor/mypy/plugins/enums.py +258 -0
  98. puyapy-0.1.0/src/puya/_vendor/mypy/plugins/functools.py +103 -0
  99. puyapy-0.1.0/src/puya/_vendor/mypy/plugins/proper_plugin.py +175 -0
  100. puyapy-0.1.0/src/puya/_vendor/mypy/plugins/singledispatch.py +224 -0
  101. puyapy-0.1.0/src/puya/_vendor/mypy/py.typed +1 -0
  102. puyapy-0.1.0/src/puya/_vendor/mypy/pyinfo.py +78 -0
  103. puyapy-0.1.0/src/puya/_vendor/mypy/reachability.py +362 -0
  104. puyapy-0.1.0/src/puya/_vendor/mypy/refinfo.py +92 -0
  105. puyapy-0.1.0/src/puya/_vendor/mypy/renaming.py +568 -0
  106. puyapy-0.1.0/src/puya/_vendor/mypy/report.py +924 -0
  107. puyapy-0.1.0/src/puya/_vendor/mypy/scope.py +125 -0
  108. puyapy-0.1.0/src/puya/_vendor/mypy/semanal.py +6998 -0
  109. puyapy-0.1.0/src/puya/_vendor/mypy/semanal_classprop.py +187 -0
  110. puyapy-0.1.0/src/puya/_vendor/mypy/semanal_enum.py +250 -0
  111. puyapy-0.1.0/src/puya/_vendor/mypy/semanal_infer.py +128 -0
  112. puyapy-0.1.0/src/puya/_vendor/mypy/semanal_main.py +511 -0
  113. puyapy-0.1.0/src/puya/_vendor/mypy/semanal_namedtuple.py +662 -0
  114. puyapy-0.1.0/src/puya/_vendor/mypy/semanal_newtype.py +273 -0
  115. puyapy-0.1.0/src/puya/_vendor/mypy/semanal_pass1.py +156 -0
  116. puyapy-0.1.0/src/puya/_vendor/mypy/semanal_shared.py +493 -0
  117. puyapy-0.1.0/src/puya/_vendor/mypy/semanal_typeargs.py +265 -0
  118. puyapy-0.1.0/src/puya/_vendor/mypy/semanal_typeddict.py +557 -0
  119. puyapy-0.1.0/src/puya/_vendor/mypy/server/__init__.py +0 -0
  120. puyapy-0.1.0/src/puya/_vendor/mypy/server/astdiff.py +518 -0
  121. puyapy-0.1.0/src/puya/_vendor/mypy/server/astmerge.py +562 -0
  122. puyapy-0.1.0/src/puya/_vendor/mypy/server/aststrip.py +281 -0
  123. puyapy-0.1.0/src/puya/_vendor/mypy/server/deps.py +1137 -0
  124. puyapy-0.1.0/src/puya/_vendor/mypy/server/mergecheck.py +83 -0
  125. puyapy-0.1.0/src/puya/_vendor/mypy/server/objgraph.py +101 -0
  126. puyapy-0.1.0/src/puya/_vendor/mypy/server/subexpr.py +198 -0
  127. puyapy-0.1.0/src/puya/_vendor/mypy/server/target.py +11 -0
  128. puyapy-0.1.0/src/puya/_vendor/mypy/server/trigger.py +26 -0
  129. puyapy-0.1.0/src/puya/_vendor/mypy/server/update.py +1339 -0
  130. puyapy-0.1.0/src/puya/_vendor/mypy/sharedparse.py +112 -0
  131. puyapy-0.1.0/src/puya/_vendor/mypy/solve.py +527 -0
  132. puyapy-0.1.0/src/puya/_vendor/mypy/split_namespace.py +35 -0
  133. puyapy-0.1.0/src/puya/_vendor/mypy/state.py +28 -0
  134. puyapy-0.1.0/src/puya/_vendor/mypy/stats.py +494 -0
  135. puyapy-0.1.0/src/puya/_vendor/mypy/strconv.py +641 -0
  136. puyapy-0.1.0/src/puya/_vendor/mypy/stubdoc.py +481 -0
  137. puyapy-0.1.0/src/puya/_vendor/mypy/stubgen.py +1800 -0
  138. puyapy-0.1.0/src/puya/_vendor/mypy/stubgenc.py +947 -0
  139. puyapy-0.1.0/src/puya/_vendor/mypy/stubinfo.py +173 -0
  140. puyapy-0.1.0/src/puya/_vendor/mypy/stubtest.py +1978 -0
  141. puyapy-0.1.0/src/puya/_vendor/mypy/stubutil.py +778 -0
  142. puyapy-0.1.0/src/puya/_vendor/mypy/subtypes.py +1953 -0
  143. puyapy-0.1.0/src/puya/_vendor/mypy/suggestions.py +1046 -0
  144. puyapy-0.1.0/src/puya/_vendor/mypy/test/__init__.py +0 -0
  145. puyapy-0.1.0/src/puya/_vendor/mypy/test/config.py +28 -0
  146. puyapy-0.1.0/src/puya/_vendor/mypy/test/data.py +823 -0
  147. puyapy-0.1.0/src/puya/_vendor/mypy/test/helpers.py +476 -0
  148. puyapy-0.1.0/src/puya/_vendor/mypy/test/meta/__init__.py +0 -0
  149. puyapy-0.1.0/src/puya/_vendor/mypy/test/meta/_pytest.py +72 -0
  150. puyapy-0.1.0/src/puya/_vendor/mypy/test/meta/test_diff_helper.py +47 -0
  151. puyapy-0.1.0/src/puya/_vendor/mypy/test/meta/test_parse_data.py +72 -0
  152. puyapy-0.1.0/src/puya/_vendor/mypy/test/meta/test_update_data.py +134 -0
  153. puyapy-0.1.0/src/puya/_vendor/mypy/test/test_find_sources.py +376 -0
  154. puyapy-0.1.0/src/puya/_vendor/mypy/test/test_ref_info.py +45 -0
  155. puyapy-0.1.0/src/puya/_vendor/mypy/test/testapi.py +45 -0
  156. puyapy-0.1.0/src/puya/_vendor/mypy/test/testargs.py +76 -0
  157. puyapy-0.1.0/src/puya/_vendor/mypy/test/testcheck.py +319 -0
  158. puyapy-0.1.0/src/puya/_vendor/mypy/test/testcmdline.py +152 -0
  159. puyapy-0.1.0/src/puya/_vendor/mypy/test/testconstraints.py +120 -0
  160. puyapy-0.1.0/src/puya/_vendor/mypy/test/testdaemon.py +132 -0
  161. puyapy-0.1.0/src/puya/_vendor/mypy/test/testdeps.py +77 -0
  162. puyapy-0.1.0/src/puya/_vendor/mypy/test/testdiff.py +67 -0
  163. puyapy-0.1.0/src/puya/_vendor/mypy/test/testerrorstream.py +45 -0
  164. puyapy-0.1.0/src/puya/_vendor/mypy/test/testfinegrained.py +438 -0
  165. puyapy-0.1.0/src/puya/_vendor/mypy/test/testfinegrainedcache.py +18 -0
  166. puyapy-0.1.0/src/puya/_vendor/mypy/test/testformatter.py +85 -0
  167. puyapy-0.1.0/src/puya/_vendor/mypy/test/testfscache.py +101 -0
  168. puyapy-0.1.0/src/puya/_vendor/mypy/test/testgraph.py +83 -0
  169. puyapy-0.1.0/src/puya/_vendor/mypy/test/testinfer.py +373 -0
  170. puyapy-0.1.0/src/puya/_vendor/mypy/test/testipc.py +112 -0
  171. puyapy-0.1.0/src/puya/_vendor/mypy/test/testmerge.py +238 -0
  172. puyapy-0.1.0/src/puya/_vendor/mypy/test/testmodulefinder.py +278 -0
  173. puyapy-0.1.0/src/puya/_vendor/mypy/test/testmypyc.py +14 -0
  174. puyapy-0.1.0/src/puya/_vendor/mypy/test/testparse.py +97 -0
  175. puyapy-0.1.0/src/puya/_vendor/mypy/test/testpep561.py +211 -0
  176. puyapy-0.1.0/src/puya/_vendor/mypy/test/testpythoneval.py +116 -0
  177. puyapy-0.1.0/src/puya/_vendor/mypy/test/testreports.py +54 -0
  178. puyapy-0.1.0/src/puya/_vendor/mypy/test/testsemanal.py +209 -0
  179. puyapy-0.1.0/src/puya/_vendor/mypy/test/testsolve.py +285 -0
  180. puyapy-0.1.0/src/puya/_vendor/mypy/test/teststubgen.py +1409 -0
  181. puyapy-0.1.0/src/puya/_vendor/mypy/test/teststubinfo.py +12 -0
  182. puyapy-0.1.0/src/puya/_vendor/mypy/test/teststubtest.py +2223 -0
  183. puyapy-0.1.0/src/puya/_vendor/mypy/test/testsubtypes.py +303 -0
  184. puyapy-0.1.0/src/puya/_vendor/mypy/test/testtransform.py +64 -0
  185. puyapy-0.1.0/src/puya/_vendor/mypy/test/testtypegen.py +83 -0
  186. puyapy-0.1.0/src/puya/_vendor/mypy/test/testtypes.py +1551 -0
  187. puyapy-0.1.0/src/puya/_vendor/mypy/test/testutil.py +22 -0
  188. puyapy-0.1.0/src/puya/_vendor/mypy/test/typefixture.py +415 -0
  189. puyapy-0.1.0/src/puya/_vendor/mypy/test/update_data.py +87 -0
  190. puyapy-0.1.0/src/puya/_vendor/mypy/test/visitors.py +63 -0
  191. puyapy-0.1.0/src/puya/_vendor/mypy/traverser.py +961 -0
  192. puyapy-0.1.0/src/puya/_vendor/mypy/treetransform.py +800 -0
  193. puyapy-0.1.0/src/puya/_vendor/mypy/tvar_scope.py +147 -0
  194. puyapy-0.1.0/src/puya/_vendor/mypy/type_visitor.py +564 -0
  195. puyapy-0.1.0/src/puya/_vendor/mypy/typeanal.py +2361 -0
  196. puyapy-0.1.0/src/puya/_vendor/mypy/typeops.py +1069 -0
  197. puyapy-0.1.0/src/puya/_vendor/mypy/types.py +3683 -0
  198. puyapy-0.1.0/src/puya/_vendor/mypy/types_utils.py +166 -0
  199. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/LICENSE +237 -0
  200. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/VERSIONS +301 -0
  201. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/__future__.pyi +36 -0
  202. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/__main__.pyi +3 -0
  203. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/_ast.pyi +608 -0
  204. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/_bisect.pyi +84 -0
  205. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/_bootlocale.pyi +1 -0
  206. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/_codecs.pyi +138 -0
  207. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/_collections_abc.pyi +94 -0
  208. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/_compat_pickle.pyi +8 -0
  209. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/_compression.pyi +25 -0
  210. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/_csv.pyi +90 -0
  211. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/_ctypes.pyi +207 -0
  212. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/_curses.pyi +557 -0
  213. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/_decimal.pyi +281 -0
  214. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/_dummy_thread.pyi +27 -0
  215. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/_dummy_threading.pyi +169 -0
  216. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/_heapq.pyi +12 -0
  217. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/_imp.pyi +28 -0
  218. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/_json.pyi +50 -0
  219. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/_locale.pyi +100 -0
  220. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/_markupbase.pyi +16 -0
  221. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/_msi.pyi +91 -0
  222. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/_operator.pyi +156 -0
  223. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/_osx_support.pyi +41 -0
  224. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/_posixsubprocess.pyi +32 -0
  225. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/_py_abc.pyi +14 -0
  226. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/_pydecimal.pyi +43 -0
  227. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/_random.pyi +12 -0
  228. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/_sitebuiltins.pyi +17 -0
  229. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/_socket.pyi +719 -0
  230. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/_stat.pyi +103 -0
  231. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/_thread.pyi +48 -0
  232. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/_threading_local.pyi +17 -0
  233. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/_tkinter.pyi +135 -0
  234. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/_tracemalloc.pyi +17 -0
  235. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/_typeshed/README.md +34 -0
  236. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/_typeshed/__init__.pyi +318 -0
  237. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/_typeshed/dbapi.pyi +37 -0
  238. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/_typeshed/wsgi.pyi +44 -0
  239. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/_typeshed/xml.pyi +9 -0
  240. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/_warnings.pyi +32 -0
  241. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/_weakref.pyi +41 -0
  242. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/_weakrefset.pyi +51 -0
  243. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/_winapi.pyi +258 -0
  244. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/abc.pyi +49 -0
  245. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/aifc.pyi +91 -0
  246. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/antigravity.pyi +3 -0
  247. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/argparse.pyi +570 -0
  248. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/array.pyi +92 -0
  249. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/ast.pyi +302 -0
  250. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/asynchat.pyi +21 -0
  251. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/asyncio/__init__.pyi +43 -0
  252. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/asyncio/base_events.pyi +473 -0
  253. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/asyncio/base_futures.pyi +20 -0
  254. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/asyncio/base_subprocess.pyi +62 -0
  255. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/asyncio/base_tasks.pyi +9 -0
  256. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/asyncio/constants.pyi +20 -0
  257. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/asyncio/coroutines.pyi +28 -0
  258. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/asyncio/events.pyi +623 -0
  259. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/asyncio/exceptions.pyi +38 -0
  260. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/asyncio/format_helpers.pyi +20 -0
  261. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/asyncio/futures.pyi +66 -0
  262. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/asyncio/locks.pyi +116 -0
  263. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/asyncio/log.pyi +3 -0
  264. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/asyncio/mixins.pyi +9 -0
  265. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/asyncio/proactor_events.pyi +74 -0
  266. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/asyncio/protocols.pyi +34 -0
  267. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/asyncio/queues.pyi +40 -0
  268. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/asyncio/runners.pyi +35 -0
  269. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/asyncio/selector_events.pyi +8 -0
  270. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/asyncio/sslproto.pyi +161 -0
  271. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/asyncio/staggered.pyi +10 -0
  272. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/asyncio/streams.pyi +179 -0
  273. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/asyncio/subprocess.pyi +235 -0
  274. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/asyncio/taskgroups.pyi +25 -0
  275. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/asyncio/tasks.pyi +479 -0
  276. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/asyncio/threads.pyi +9 -0
  277. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/asyncio/timeouts.pyi +18 -0
  278. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/asyncio/transports.pyi +47 -0
  279. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/asyncio/trsock.pyi +98 -0
  280. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/asyncio/unix_events.pyi +127 -0
  281. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/asyncio/windows_events.pyi +84 -0
  282. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/asyncio/windows_utils.pyi +57 -0
  283. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/asyncore.pyi +89 -0
  284. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/atexit.pyi +12 -0
  285. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/audioop.pyi +42 -0
  286. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/base64.pyi +59 -0
  287. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/bdb.pyi +102 -0
  288. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/binascii.pyi +44 -0
  289. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/binhex.pyi +45 -0
  290. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/bisect.pyi +4 -0
  291. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/builtins.pyi +2052 -0
  292. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/bz2.pyi +146 -0
  293. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/cProfile.pyi +37 -0
  294. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/calendar.pyi +206 -0
  295. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/cgi.pyi +129 -0
  296. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/cgitb.pyi +33 -0
  297. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/chunk.pyi +20 -0
  298. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/cmath.pyi +43 -0
  299. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/cmd.pyi +46 -0
  300. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/code.pyi +33 -0
  301. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/codecs.pyi +294 -0
  302. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/codeop.pyi +13 -0
  303. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/collections/__init__.pyi +478 -0
  304. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/collections/abc.pyi +2 -0
  305. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/colorsys.pyi +13 -0
  306. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/compileall.pyi +111 -0
  307. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/concurrent/__init__.pyi +0 -0
  308. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/concurrent/futures/__init__.pyi +36 -0
  309. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/concurrent/futures/_base.pyi +102 -0
  310. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/concurrent/futures/process.pyi +192 -0
  311. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/concurrent/futures/thread.pyi +59 -0
  312. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/configparser.pyi +313 -0
  313. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/contextlib.pyi +207 -0
  314. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/contextvars.pyi +70 -0
  315. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/copy.pyi +16 -0
  316. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/copyreg.pyi +21 -0
  317. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/crypt.pyi +12 -0
  318. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/csv.pyi +155 -0
  319. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/ctypes/__init__.pyi +189 -0
  320. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/ctypes/util.pyi +6 -0
  321. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/ctypes/wintypes.pyi +240 -0
  322. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/curses/__init__.pyi +21 -0
  323. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/curses/ascii.pyi +63 -0
  324. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/curses/has_key.pyi +4 -0
  325. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/curses/panel.pyi +25 -0
  326. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/curses/textpad.pyi +13 -0
  327. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/dataclasses.pyi +322 -0
  328. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/datetime.pyi +331 -0
  329. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/dbm/__init__.pyi +94 -0
  330. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/dbm/dumb.pyi +31 -0
  331. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/dbm/gnu.pyi +40 -0
  332. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/dbm/ndbm.pyi +36 -0
  333. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/decimal.pyi +2 -0
  334. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/difflib.pyi +140 -0
  335. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/dis.pyi +141 -0
  336. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/__init__.pyi +5 -0
  337. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/archive_util.pyi +20 -0
  338. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/bcppcompiler.pyi +3 -0
  339. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/ccompiler.pyi +152 -0
  340. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/cmd.pyi +66 -0
  341. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/command/__init__.pyi +0 -0
  342. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/command/bdist.pyi +25 -0
  343. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/command/bdist_dumb.pyi +21 -0
  344. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/command/bdist_msi.pyi +45 -0
  345. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/command/bdist_packager.pyi +0 -0
  346. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/command/bdist_rpm.pyi +52 -0
  347. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/command/bdist_wininst.pyi +16 -0
  348. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/command/build.pyi +31 -0
  349. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/command/build_clib.pyi +27 -0
  350. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/command/build_ext.pyi +50 -0
  351. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/command/build_py.pyi +44 -0
  352. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/command/build_scripts.pyi +24 -0
  353. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/command/check.pyi +39 -0
  354. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/command/clean.pyi +17 -0
  355. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/command/config.pyi +83 -0
  356. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/command/install.pyi +63 -0
  357. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/command/install_data.pyi +19 -0
  358. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/command/install_egg_info.pyi +18 -0
  359. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/command/install_headers.pyi +16 -0
  360. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/command/install_lib.pyi +25 -0
  361. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/command/install_scripts.pyi +18 -0
  362. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/command/register.pyi +18 -0
  363. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/command/sdist.pyi +42 -0
  364. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/command/upload.pyi +17 -0
  365. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/config.pyi +17 -0
  366. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/core.pyi +57 -0
  367. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/cygwinccompiler.pyi +20 -0
  368. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/debug.pyi +1 -0
  369. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/dep_util.pyi +3 -0
  370. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/dir_util.pyi +13 -0
  371. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/dist.pyi +146 -0
  372. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/errors.pyi +19 -0
  373. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/extension.pyi +36 -0
  374. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/fancy_getopt.pyi +34 -0
  375. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/file_util.pyi +14 -0
  376. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/filelist.pyi +51 -0
  377. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/log.pyi +25 -0
  378. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/msvccompiler.pyi +3 -0
  379. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/spawn.pyi +2 -0
  380. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/sysconfig.pyi +22 -0
  381. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/text_file.pyi +21 -0
  382. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/unixccompiler.pyi +3 -0
  383. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/util.pyi +50 -0
  384. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/distutils/version.pyi +36 -0
  385. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/doctest.pyi +248 -0
  386. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/dummy_threading.pyi +2 -0
  387. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/email/__init__.pyi +29 -0
  388. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/email/_header_value_parser.pyi +398 -0
  389. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/email/base64mime.pyi +13 -0
  390. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/email/charset.pyi +34 -0
  391. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/email/contentmanager.pyi +11 -0
  392. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/email/encoders.pyi +8 -0
  393. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/email/errors.pyi +39 -0
  394. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/email/feedparser.pyi +24 -0
  395. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/email/generator.pyi +40 -0
  396. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/email/header.pyi +31 -0
  397. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/email/headerregistry.pyi +181 -0
  398. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/email/iterators.pyi +12 -0
  399. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/email/message.pyi +124 -0
  400. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/email/mime/__init__.pyi +0 -0
  401. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/email/mime/application.pyi +17 -0
  402. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/email/mime/audio.pyi +17 -0
  403. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/email/mime/base.pyi +8 -0
  404. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/email/mime/image.pyi +17 -0
  405. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/email/mime/message.pyi +8 -0
  406. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/email/mime/multipart.pyi +18 -0
  407. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/email/mime/nonmultipart.pyi +5 -0
  408. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/email/mime/text.pyi +9 -0
  409. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/email/parser.pyi +26 -0
  410. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/email/policy.pyi +82 -0
  411. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/email/quoprimime.pyi +28 -0
  412. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/email/utils.pyi +66 -0
  413. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/encodings/__init__.pyi +10 -0
  414. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/encodings/utf_8.pyi +21 -0
  415. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/encodings/utf_8_sig.pyi +22 -0
  416. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/ensurepip/__init__.pyi +12 -0
  417. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/enum.pyi +317 -0
  418. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/errno.pyi +222 -0
  419. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/faulthandler.pyi +13 -0
  420. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/fcntl.pyi +128 -0
  421. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/filecmp.pyi +58 -0
  422. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/fileinput.pyi +320 -0
  423. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/fnmatch.pyi +9 -0
  424. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/formatter.pyi +88 -0
  425. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/fractions.pyi +162 -0
  426. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/ftplib.pyi +178 -0
  427. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/functools.pyi +210 -0
  428. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/gc.pyi +43 -0
  429. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/genericpath.pyi +52 -0
  430. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/getopt.pyi +11 -0
  431. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/getpass.pyi +8 -0
  432. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/gettext.pyi +173 -0
  433. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/glob.pyi +42 -0
  434. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/graphlib.pyi +28 -0
  435. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/grp.pyi +22 -0
  436. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/gzip.pyi +169 -0
  437. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/hashlib.pyi +181 -0
  438. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/heapq.pyi +18 -0
  439. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/hmac.pyi +49 -0
  440. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/html/__init__.pyi +6 -0
  441. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/html/entities.pyi +6 -0
  442. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/html/parser.pyi +34 -0
  443. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/http/__init__.pyi +106 -0
  444. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/http/client.pyi +241 -0
  445. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/http/cookiejar.pyi +183 -0
  446. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/http/cookies.pyi +60 -0
  447. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/http/server.pyi +83 -0
  448. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/imaplib.pyi +168 -0
  449. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/imghdr.pyi +17 -0
  450. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/imp.pyi +62 -0
  451. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/importlib/__init__.pyi +24 -0
  452. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/importlib/abc.pyi +219 -0
  453. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/importlib/machinery.pyi +160 -0
  454. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/importlib/metadata/__init__.pyi +221 -0
  455. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/importlib/metadata/_meta.pyi +40 -0
  456. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/importlib/resources/__init__.pyi +46 -0
  457. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/importlib/resources/abc.pyi +12 -0
  458. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/importlib/util.pyi +43 -0
  459. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/inspect.pyi +652 -0
  460. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/io.pyi +196 -0
  461. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/ipaddress.pyi +208 -0
  462. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/itertools.pyi +278 -0
  463. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/json/__init__.pyi +61 -0
  464. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/json/decoder.pyi +32 -0
  465. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/json/encoder.pyi +38 -0
  466. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/json/tool.pyi +1 -0
  467. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/keyword.pyi +21 -0
  468. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/__init__.pyi +0 -0
  469. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/btm_matcher.pyi +28 -0
  470. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixer_base.pyi +43 -0
  471. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/__init__.pyi +0 -0
  472. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_apply.pyi +9 -0
  473. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_asserts.pyi +11 -0
  474. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_basestring.pyi +9 -0
  475. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_buffer.pyi +9 -0
  476. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_dict.pyi +17 -0
  477. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_except.pyi +15 -0
  478. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_exec.pyi +9 -0
  479. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_execfile.pyi +9 -0
  480. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_exitfunc.pyi +14 -0
  481. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_filter.pyi +10 -0
  482. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_funcattrs.pyi +9 -0
  483. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_future.pyi +9 -0
  484. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_getcwdu.pyi +9 -0
  485. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_has_key.pyi +9 -0
  486. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_idioms.pyi +16 -0
  487. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_import.pyi +17 -0
  488. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_imports.pyi +22 -0
  489. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_imports2.pyi +6 -0
  490. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_input.pyi +12 -0
  491. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_intern.pyi +10 -0
  492. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_isinstance.pyi +9 -0
  493. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_itertools.pyi +10 -0
  494. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_itertools_imports.pyi +8 -0
  495. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_long.pyi +8 -0
  496. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_map.pyi +10 -0
  497. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_metaclass.pyi +18 -0
  498. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_methodattrs.pyi +11 -0
  499. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_ne.pyi +9 -0
  500. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_next.pyi +20 -0
  501. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_nonzero.pyi +9 -0
  502. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_numliterals.pyi +9 -0
  503. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_operator.pyi +13 -0
  504. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_paren.pyi +9 -0
  505. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_print.pyi +13 -0
  506. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_raise.pyi +9 -0
  507. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_raw_input.pyi +9 -0
  508. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_reduce.pyi +9 -0
  509. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_reload.pyi +10 -0
  510. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_renames.pyi +18 -0
  511. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_repr.pyi +9 -0
  512. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_set_literal.pyi +8 -0
  513. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_standarderror.pyi +9 -0
  514. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_sys_exc.pyi +10 -0
  515. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_throw.pyi +9 -0
  516. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_tuple_params.pyi +18 -0
  517. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_types.pyi +9 -0
  518. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_unicode.pyi +13 -0
  519. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_urllib.pyi +15 -0
  520. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_ws_comma.pyi +13 -0
  521. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_xrange.pyi +21 -0
  522. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_xreadlines.pyi +9 -0
  523. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_zip.pyi +10 -0
  524. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/main.pyi +43 -0
  525. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/pgen2/__init__.pyi +9 -0
  526. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/pgen2/driver.pyi +27 -0
  527. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/pgen2/grammar.pyi +24 -0
  528. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/pgen2/literals.pyi +7 -0
  529. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/pgen2/parse.pyi +30 -0
  530. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/pgen2/pgen.pyi +50 -0
  531. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/pgen2/token.pyi +67 -0
  532. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/pgen2/tokenize.pyi +96 -0
  533. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/pygram.pyi +117 -0
  534. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/pytree.pyi +116 -0
  535. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lib2to3/refactor.pyi +83 -0
  536. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/linecache.pyi +23 -0
  537. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/locale.pyi +152 -0
  538. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/logging/__init__.pyi +879 -0
  539. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/logging/config.pyi +143 -0
  540. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/logging/handlers.pyi +275 -0
  541. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/lzma.pyi +197 -0
  542. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/macpath.pyi +104 -0
  543. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/mailbox.pyi +256 -0
  544. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/mailcap.pyi +11 -0
  545. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/marshal.pyi +33 -0
  546. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/math.pyi +151 -0
  547. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/mimetypes.pyi +56 -0
  548. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/mmap.pyi +117 -0
  549. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/modulefinder.pyi +76 -0
  550. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/msilib/__init__.pyi +177 -0
  551. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/msilib/schema.pyi +94 -0
  552. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/msilib/sequence.pyi +13 -0
  553. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/msilib/text.pyi +7 -0
  554. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/msvcrt.pyi +32 -0
  555. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/multiprocessing/__init__.pyi +92 -0
  556. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/multiprocessing/connection.pyi +74 -0
  557. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/multiprocessing/context.pyi +194 -0
  558. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/multiprocessing/dummy/__init__.pyi +78 -0
  559. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/multiprocessing/dummy/connection.pyi +39 -0
  560. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/multiprocessing/forkserver.pyi +31 -0
  561. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/multiprocessing/heap.pyi +36 -0
  562. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/multiprocessing/managers.pyi +218 -0
  563. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/multiprocessing/pool.pyi +130 -0
  564. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/multiprocessing/popen_fork.pyi +23 -0
  565. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/multiprocessing/popen_forkserver.pyi +16 -0
  566. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/multiprocessing/popen_spawn_posix.pyi +20 -0
  567. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/multiprocessing/popen_spawn_win32.pyi +30 -0
  568. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/multiprocessing/process.pyi +45 -0
  569. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/multiprocessing/queues.pyi +41 -0
  570. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/multiprocessing/reduction.pyi +94 -0
  571. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/multiprocessing/resource_sharer.pyi +20 -0
  572. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/multiprocessing/resource_tracker.pyi +18 -0
  573. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/multiprocessing/shared_memory.pyi +39 -0
  574. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/multiprocessing/sharedctypes.pyi +102 -0
  575. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/multiprocessing/spawn.pyi +32 -0
  576. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/multiprocessing/synchronize.pyi +54 -0
  577. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/multiprocessing/util.pyi +79 -0
  578. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/netrc.pyi +23 -0
  579. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/nis.pyi +9 -0
  580. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/nntplib.pyi +125 -0
  581. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/ntpath.pyi +119 -0
  582. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/nturl2path.pyi +2 -0
  583. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/numbers.pyi +129 -0
  584. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/opcode.pyi +63 -0
  585. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/operator.pyi +110 -0
  586. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/optparse.pyi +252 -0
  587. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/os/__init__.pyi +1117 -0
  588. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/os/path.pyi +8 -0
  589. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/ossaudiodev.pyi +132 -0
  590. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/parser.pyi +25 -0
  591. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/pathlib.pyi +240 -0
  592. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/pdb.pyi +181 -0
  593. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/pickle.pyi +286 -0
  594. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/pickletools.pyi +167 -0
  595. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/pipes.pyi +16 -0
  596. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/pkgutil.pyi +50 -0
  597. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/platform.pyi +69 -0
  598. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/plistlib.pyi +109 -0
  599. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/poplib.pyi +71 -0
  600. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/posix.pyi +364 -0
  601. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/posixpath.pyi +161 -0
  602. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/pprint.pyi +139 -0
  603. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/profile.pyi +31 -0
  604. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/pstats.pyi +79 -0
  605. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/pty.pyi +18 -0
  606. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/pwd.pyi +28 -0
  607. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/py_compile.pyi +46 -0
  608. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/pyclbr.pyi +66 -0
  609. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/pydoc.pyi +261 -0
  610. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/pydoc_data/__init__.pyi +0 -0
  611. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/pydoc_data/topics.pyi +1 -0
  612. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/pyexpat/__init__.pyi +80 -0
  613. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/pyexpat/errors.pyi +49 -0
  614. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/pyexpat/model.pyi +11 -0
  615. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/queue.pyi +58 -0
  616. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/quopri.pyi +11 -0
  617. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/random.pyi +138 -0
  618. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/re.pyi +290 -0
  619. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/readline.pyi +36 -0
  620. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/reprlib.pyi +65 -0
  621. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/resource.pyi +92 -0
  622. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/rlcompleter.pyi +9 -0
  623. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/runpy.pyi +24 -0
  624. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/sched.pyi +42 -0
  625. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/secrets.pyi +15 -0
  626. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/select.pyi +151 -0
  627. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/selectors.pyi +79 -0
  628. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/shelve.pyi +45 -0
  629. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/shlex.pyi +50 -0
  630. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/shutil.pyi +218 -0
  631. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/signal.pyi +191 -0
  632. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/site.pyi +27 -0
  633. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/smtpd.pyi +91 -0
  634. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/smtplib.pyi +204 -0
  635. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/sndhdr.pyi +14 -0
  636. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/socket.pyi +833 -0
  637. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/socketserver.pyi +168 -0
  638. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/spwd.pyi +41 -0
  639. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/sqlite3/__init__.pyi +1 -0
  640. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/sqlite3/dbapi2.pyi +486 -0
  641. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/sre_compile.pyi +11 -0
  642. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/sre_constants.pyi +130 -0
  643. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/sre_parse.pyi +125 -0
  644. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/ssl.pyi +538 -0
  645. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/stat.pyi +1 -0
  646. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/statistics.pyi +139 -0
  647. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/string.pyi +83 -0
  648. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/stringprep.pyi +27 -0
  649. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/struct.pyi +26 -0
  650. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/subprocess.pyi +2623 -0
  651. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/sunau.pyi +84 -0
  652. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/symbol.pyi +97 -0
  653. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/symtable.pyi +63 -0
  654. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/sys.pyi +372 -0
  655. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/sysconfig.pyi +44 -0
  656. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/syslog.pyi +47 -0
  657. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/tabnanny.pyi +16 -0
  658. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/tarfile.pyi +456 -0
  659. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/telnetlib.pyi +121 -0
  660. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/tempfile.pyi +649 -0
  661. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/termios.pyi +267 -0
  662. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/textwrap.pyi +103 -0
  663. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/this.pyi +2 -0
  664. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/threading.pyi +199 -0
  665. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/time.pyi +111 -0
  666. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/timeit.pyi +32 -0
  667. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/tkinter/__init__.pyi +3578 -0
  668. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/tkinter/colorchooser.pyi +20 -0
  669. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/tkinter/commondialog.pyi +14 -0
  670. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/tkinter/constants.pyi +80 -0
  671. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/tkinter/dialog.pyi +16 -0
  672. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/tkinter/dnd.pyi +19 -0
  673. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/tkinter/filedialog.pyi +152 -0
  674. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/tkinter/font.pyi +112 -0
  675. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/tkinter/messagebox.pyi +44 -0
  676. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/tkinter/scrolledtext.pyi +10 -0
  677. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/tkinter/simpledialog.pyi +54 -0
  678. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/tkinter/tix.pyi +300 -0
  679. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/tkinter/ttk.pyi +1196 -0
  680. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/token.pyi +159 -0
  681. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/tokenize.pyi +178 -0
  682. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/tomllib.pyi +10 -0
  683. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/trace.pyi +59 -0
  684. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/traceback.pyi +261 -0
  685. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/tracemalloc.pyi +124 -0
  686. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/tty.pyi +30 -0
  687. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/turtle.pyi +713 -0
  688. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/types.pyi +641 -0
  689. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/typing.pyi +979 -0
  690. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/typing_extensions.pyi +498 -0
  691. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/unicodedata.pyi +76 -0
  692. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/unittest/__init__.pyi +71 -0
  693. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/unittest/_log.pyi +28 -0
  694. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/unittest/async_case.pyi +19 -0
  695. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/unittest/case.pyi +328 -0
  696. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/unittest/loader.pyi +51 -0
  697. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/unittest/main.pyi +69 -0
  698. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/unittest/mock.pyi +481 -0
  699. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/unittest/result.pyi +46 -0
  700. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/unittest/runner.pyi +72 -0
  701. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/unittest/signals.pyi +15 -0
  702. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/unittest/suite.pyi +22 -0
  703. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/unittest/util.pyi +23 -0
  704. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/urllib/__init__.pyi +0 -0
  705. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/urllib/error.pyi +23 -0
  706. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/urllib/parse.pyi +210 -0
  707. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/urllib/request.pyi +397 -0
  708. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/urllib/response.pyi +59 -0
  709. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/urllib/robotparser.pyi +22 -0
  710. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/uu.pyi +13 -0
  711. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/uuid.pyi +100 -0
  712. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/venv/__init__.pyi +79 -0
  713. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/warnings.pyi +112 -0
  714. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/wave.pyi +78 -0
  715. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/weakref.pyi +150 -0
  716. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/webbrowser.pyi +74 -0
  717. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/winreg.pyi +103 -0
  718. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/winsound.pyi +29 -0
  719. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/wsgiref/__init__.pyi +0 -0
  720. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/wsgiref/handlers.pyi +91 -0
  721. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/wsgiref/headers.pyi +26 -0
  722. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/wsgiref/simple_server.pyi +37 -0
  723. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/wsgiref/types.pyi +32 -0
  724. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/wsgiref/util.pyi +24 -0
  725. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/wsgiref/validate.pyi +50 -0
  726. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/xdrlib.pyi +57 -0
  727. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/xml/__init__.pyi +1 -0
  728. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/xml/dom/NodeFilter.pyi +19 -0
  729. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/xml/dom/__init__.pyi +69 -0
  730. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/xml/dom/domreg.pyi +8 -0
  731. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/xml/dom/expatbuilder.pyi +100 -0
  732. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/xml/dom/minicompat.pyi +23 -0
  733. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/xml/dom/minidom.pyi +404 -0
  734. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/xml/dom/pulldom.pyi +93 -0
  735. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/xml/dom/xmlbuilder.pyi +108 -0
  736. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/xml/etree/ElementInclude.pyi +28 -0
  737. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/xml/etree/ElementPath.pyi +34 -0
  738. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/xml/etree/ElementTree.pyi +361 -0
  739. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/xml/etree/__init__.pyi +0 -0
  740. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/xml/etree/cElementTree.pyi +1 -0
  741. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/xml/parsers/__init__.pyi +1 -0
  742. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/xml/parsers/expat/__init__.pyi +1 -0
  743. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/xml/parsers/expat/errors.pyi +1 -0
  744. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/xml/parsers/expat/model.pyi +1 -0
  745. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/xml/sax/__init__.pyi +46 -0
  746. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/xml/sax/handler.pyi +55 -0
  747. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/xml/sax/saxutils.pyi +60 -0
  748. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/xml/sax/xmlreader.pyi +87 -0
  749. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/xmlrpc/__init__.pyi +0 -0
  750. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/xmlrpc/client.pyi +322 -0
  751. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/xmlrpc/server.pyi +143 -0
  752. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/xxlimited.pyi +23 -0
  753. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/zipapp.pyi +20 -0
  754. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/zipfile.pyi +314 -0
  755. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/zipimport.pyi +33 -0
  756. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/zlib.pyi +56 -0
  757. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stdlib/zoneinfo/__init__.pyi +38 -0
  758. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stubs/mypy-extensions/@tests/stubtest_allowlist.txt +2 -0
  759. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stubs/mypy-extensions/METADATA.toml +4 -0
  760. puyapy-0.1.0/src/puya/_vendor/mypy/typeshed/stubs/mypy-extensions/mypy_extensions.pyi +218 -0
  761. puyapy-0.1.0/src/puya/_vendor/mypy/typestate.py +323 -0
  762. puyapy-0.1.0/src/puya/_vendor/mypy/typetraverser.py +142 -0
  763. puyapy-0.1.0/src/puya/_vendor/mypy/typevars.py +93 -0
  764. puyapy-0.1.0/src/puya/_vendor/mypy/typevartuples.py +32 -0
  765. puyapy-0.1.0/src/puya/_vendor/mypy/util.py +828 -0
  766. puyapy-0.1.0/src/puya/_vendor/mypy/version.py +19 -0
  767. puyapy-0.1.0/src/puya/_vendor/mypy/visitor.py +621 -0
  768. puyapy-0.1.0/src/puya/_vendor/mypy/xml/mypy-html.css +104 -0
  769. puyapy-0.1.0/src/puya/_vendor/mypy/xml/mypy-html.xslt +81 -0
  770. puyapy-0.1.0/src/puya/_vendor/mypy/xml/mypy-txt.xslt +100 -0
  771. puyapy-0.1.0/src/puya/_vendor/mypy/xml/mypy.xsd +50 -0
  772. puyapy-0.1.0/src/puya/algo_constants.py +7 -0
  773. puyapy-0.1.0/src/puya/arc32.py +198 -0
  774. puyapy-0.1.0/src/puya/avm_type.py +8 -0
  775. puyapy-0.1.0/src/puya/awst/__init__.py +0 -0
  776. puyapy-0.1.0/src/puya/awst/function_traverser.py +218 -0
  777. puyapy-0.1.0/src/puya/awst/nodes.py +1295 -0
  778. puyapy-0.1.0/src/puya/awst/to_code_visitor.py +479 -0
  779. puyapy-0.1.0/src/puya/awst/visitors.py +254 -0
  780. puyapy-0.1.0/src/puya/awst/wtypes.py +466 -0
  781. puyapy-0.1.0/src/puya/awst_build/__init__.py +0 -0
  782. puyapy-0.1.0/src/puya/awst_build/base_mypy_visitor.py +308 -0
  783. puyapy-0.1.0/src/puya/awst_build/constants.py +118 -0
  784. puyapy-0.1.0/src/puya/awst_build/context.py +180 -0
  785. puyapy-0.1.0/src/puya/awst_build/contract.py +621 -0
  786. puyapy-0.1.0/src/puya/awst_build/eb/__init__.py +0 -0
  787. puyapy-0.1.0/src/puya/awst_build/eb/arc4/__init__.py +7 -0
  788. puyapy-0.1.0/src/puya/awst_build/eb/arc4/arrays.py +307 -0
  789. puyapy-0.1.0/src/puya/awst_build/eb/arc4/base.py +170 -0
  790. puyapy-0.1.0/src/puya/awst_build/eb/arc4/bool.py +80 -0
  791. puyapy-0.1.0/src/puya/awst_build/eb/arc4/numeric.py +178 -0
  792. puyapy-0.1.0/src/puya/awst_build/eb/arc4/string.py +59 -0
  793. puyapy-0.1.0/src/puya/awst_build/eb/arc4/struct.py +104 -0
  794. puyapy-0.1.0/src/puya/awst_build/eb/arc4/tuple.py +172 -0
  795. puyapy-0.1.0/src/puya/awst_build/eb/array.py +123 -0
  796. puyapy-0.1.0/src/puya/awst_build/eb/base.py +356 -0
  797. puyapy-0.1.0/src/puya/awst_build/eb/biguint.py +196 -0
  798. puyapy-0.1.0/src/puya/awst_build/eb/bool.py +80 -0
  799. puyapy-0.1.0/src/puya/awst_build/eb/bytes.py +365 -0
  800. puyapy-0.1.0/src/puya/awst_build/eb/bytes_backed.py +52 -0
  801. puyapy-0.1.0/src/puya/awst_build/eb/contracts.py +363 -0
  802. puyapy-0.1.0/src/puya/awst_build/eb/ensure_budget.py +103 -0
  803. puyapy-0.1.0/src/puya/awst_build/eb/intrinsics.py +297 -0
  804. puyapy-0.1.0/src/puya/awst_build/eb/named_int_constants.py +31 -0
  805. puyapy-0.1.0/src/puya/awst_build/eb/reference_types/__init__.py +0 -0
  806. puyapy-0.1.0/src/puya/awst_build/eb/reference_types/account.py +113 -0
  807. puyapy-0.1.0/src/puya/awst_build/eb/reference_types/application.py +62 -0
  808. puyapy-0.1.0/src/puya/awst_build/eb/reference_types/asset.py +118 -0
  809. puyapy-0.1.0/src/puya/awst_build/eb/reference_types/base.py +94 -0
  810. puyapy-0.1.0/src/puya/awst_build/eb/struct.py +57 -0
  811. puyapy-0.1.0/src/puya/awst_build/eb/subroutine.py +81 -0
  812. puyapy-0.1.0/src/puya/awst_build/eb/temporary_assignment.py +59 -0
  813. puyapy-0.1.0/src/puya/awst_build/eb/transaction.py +337 -0
  814. puyapy-0.1.0/src/puya/awst_build/eb/tuple.py +165 -0
  815. puyapy-0.1.0/src/puya/awst_build/eb/type_registry.py +117 -0
  816. puyapy-0.1.0/src/puya/awst_build/eb/uint64.py +174 -0
  817. puyapy-0.1.0/src/puya/awst_build/eb/unsigned_builtins.py +113 -0
  818. puyapy-0.1.0/src/puya/awst_build/eb/var_factory.py +8 -0
  819. puyapy-0.1.0/src/puya/awst_build/eb/void.py +19 -0
  820. puyapy-0.1.0/src/puya/awst_build/exceptions.py +11 -0
  821. puyapy-0.1.0/src/puya/awst_build/intrinsic_data.py +10202 -0
  822. puyapy-0.1.0/src/puya/awst_build/intrinsic_models.py +41 -0
  823. puyapy-0.1.0/src/puya/awst_build/main.py +76 -0
  824. puyapy-0.1.0/src/puya/awst_build/module.py +564 -0
  825. puyapy-0.1.0/src/puya/awst_build/subroutine.py +1209 -0
  826. puyapy-0.1.0/src/puya/awst_build/utils.py +321 -0
  827. puyapy-0.1.0/src/puya/codegen/__init__.py +0 -0
  828. puyapy-0.1.0/src/puya/codegen/builder.py +439 -0
  829. puyapy-0.1.0/src/puya/codegen/callgraph.py +35 -0
  830. puyapy-0.1.0/src/puya/codegen/context.py +12 -0
  831. puyapy-0.1.0/src/puya/codegen/emitprogram.py +21 -0
  832. puyapy-0.1.0/src/puya/codegen/ops.py +404 -0
  833. puyapy-0.1.0/src/puya/codegen/source_meta_retriever.py +41 -0
  834. puyapy-0.1.0/src/puya/codegen/stack.py +415 -0
  835. puyapy-0.1.0/src/puya/codegen/stack_assignment.py +22 -0
  836. puyapy-0.1.0/src/puya/codegen/stack_baileys.py +362 -0
  837. puyapy-0.1.0/src/puya/codegen/stack_frame_allocation.py +122 -0
  838. puyapy-0.1.0/src/puya/codegen/stack_koopmans.py +402 -0
  839. puyapy-0.1.0/src/puya/codegen/stack_simplify_teal.py +445 -0
  840. puyapy-0.1.0/src/puya/codegen/teal.py +177 -0
  841. puyapy-0.1.0/src/puya/codegen/teal_annotaters.py +261 -0
  842. puyapy-0.1.0/src/puya/codegen/teal_writer.py +96 -0
  843. puyapy-0.1.0/src/puya/codegen/utils.py +50 -0
  844. puyapy-0.1.0/src/puya/codegen/visitor.py +99 -0
  845. puyapy-0.1.0/src/puya/codegen/vla.py +99 -0
  846. puyapy-0.1.0/src/puya/compile.py +234 -0
  847. puyapy-0.1.0/src/puya/context.py +15 -0
  848. puyapy-0.1.0/src/puya/errors.py +99 -0
  849. puyapy-0.1.0/src/puya/ir/__init__.py +5 -0
  850. puyapy-0.1.0/src/puya/ir/arc4_router.py +683 -0
  851. puyapy-0.1.0/src/puya/ir/arc4_util.py +95 -0
  852. puyapy-0.1.0/src/puya/ir/avm_ops.py +2424 -0
  853. puyapy-0.1.0/src/puya/ir/avm_ops_models.py +47 -0
  854. puyapy-0.1.0/src/puya/ir/blocks_builder.py +152 -0
  855. puyapy-0.1.0/src/puya/ir/builder.py +2440 -0
  856. puyapy-0.1.0/src/puya/ir/context.py +113 -0
  857. puyapy-0.1.0/src/puya/ir/destructure/__init__.py +0 -0
  858. puyapy-0.1.0/src/puya/ir/destructure/coalesce_locals.py +155 -0
  859. puyapy-0.1.0/src/puya/ir/destructure/main.py +35 -0
  860. puyapy-0.1.0/src/puya/ir/destructure/parcopy.py +145 -0
  861. puyapy-0.1.0/src/puya/ir/destructure/remove_phi.py +121 -0
  862. puyapy-0.1.0/src/puya/ir/main.py +274 -0
  863. puyapy-0.1.0/src/puya/ir/models.py +682 -0
  864. puyapy-0.1.0/src/puya/ir/optimize/__init__.py +0 -0
  865. puyapy-0.1.0/src/puya/ir/optimize/arithmetic.py +372 -0
  866. puyapy-0.1.0/src/puya/ir/optimize/assignments.py +90 -0
  867. puyapy-0.1.0/src/puya/ir/optimize/collapse_blocks.py +166 -0
  868. puyapy-0.1.0/src/puya/ir/optimize/constant_propagation.py +205 -0
  869. puyapy-0.1.0/src/puya/ir/optimize/dead_code_elimination.py +126 -0
  870. puyapy-0.1.0/src/puya/ir/optimize/main.py +125 -0
  871. puyapy-0.1.0/src/puya/ir/ssa.py +223 -0
  872. puyapy-0.1.0/src/puya/ir/to_text_visitor.py +170 -0
  873. puyapy-0.1.0/src/puya/ir/types_.py +73 -0
  874. puyapy-0.1.0/src/puya/ir/visitor.py +169 -0
  875. puyapy-0.1.0/src/puya/ir/visitor_mem_replacer.py +34 -0
  876. puyapy-0.1.0/src/puya/ir/visitor_mutator.py +140 -0
  877. puyapy-0.1.0/src/puya/ir/vla.py +114 -0
  878. puyapy-0.1.0/src/puya/lib_embedded/_puyapy_.py +46 -0
  879. puyapy-0.1.0/src/puya/logging_config.py +204 -0
  880. puyapy-0.1.0/src/puya/metadata.py +103 -0
  881. puyapy-0.1.0/src/puya/options.py +24 -0
  882. puyapy-0.1.0/src/puya/parse.py +245 -0
  883. puyapy-0.1.0/src/puya/py.typed +0 -0
  884. puyapy-0.1.0/src/puya/utils.py +159 -0
  885. puyapy-0.1.0/src/puyapy-stubs/__init__.pyi +19 -0
  886. puyapy-0.1.0/src/puyapy-stubs/_array.pyi +58 -0
  887. puyapy-0.1.0/src/puyapy-stubs/_constants.pyi +38 -0
  888. puyapy-0.1.0/src/puyapy-stubs/_contract.pyi +10 -0
  889. puyapy-0.1.0/src/puyapy-stubs/_gen.pyi +5616 -0
  890. puyapy-0.1.0/src/puyapy-stubs/_hints.pyi +13 -0
  891. puyapy-0.1.0/src/puyapy-stubs/_primitives.pyi +173 -0
  892. puyapy-0.1.0/src/puyapy-stubs/_reference.pyi +143 -0
  893. puyapy-0.1.0/src/puyapy-stubs/_storage.pyi +16 -0
  894. puyapy-0.1.0/src/puyapy-stubs/_struct.pyi +22 -0
  895. puyapy-0.1.0/src/puyapy-stubs/_transactions.pyi +169 -0
  896. puyapy-0.1.0/src/puyapy-stubs/_unsigned_builtins.pyi +22 -0
  897. puyapy-0.1.0/src/puyapy-stubs/_util.pyi +20 -0
  898. puyapy-0.1.0/src/puyapy-stubs/arc4.pyi +253 -0
puyapy-0.1.0/PKG-INFO ADDED
@@ -0,0 +1,156 @@
1
+ Metadata-Version: 2.1
2
+ Name: puyapy
3
+ Version: 0.1.0
4
+ Summary:
5
+ Author: Adam Chidlow
6
+ Author-email: achidlow@users.noreply.github.com
7
+ Requires-Python: >=3.12,<4.0
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: Programming Language :: Python :: 3.12
10
+ Requires-Dist: attrs (>=23.1.0,<24.0.0)
11
+ Requires-Dist: docstring-parser (>=0.15,<0.16)
12
+ Requires-Dist: immutabledict (>=4.0.0,<5.0.0)
13
+ Requires-Dist: mypy_extensions (>=1.0.0,<2.0.0)
14
+ Requires-Dist: networkx (>=3.1,<4.0)
15
+ Requires-Dist: pycryptodomex (>=3.6.0,<4)
16
+ Requires-Dist: structlog (>=23.2.0,<24.0.0)
17
+ Requires-Dist: typing-extensions (>=4.8.0,<5.0.0)
18
+ Description-Content-Type: text/markdown
19
+
20
+ # PuyaPy - Python to TEAL compiler
21
+
22
+ > [!WARNING]
23
+ > PuyaPy is currently in alpha / developer preview. It is not recommended for production usage yet.
24
+
25
+ PuyaPy is an optimising TEAL compiler that allows you to write code to execute on the Algorand
26
+ Virtual Machine (AVM) with Python syntax.
27
+
28
+ [Project background and guiding principles](docs/principles.md).
29
+
30
+ PuyaPy supports a statically-typed subset of valid Python syntax. Importantly, that subset has
31
+ identical semantics when comparing Python behaviour and behaviour of the executed TEAL.
32
+ For example, `foo = spam() or eggs()` will only execute `eggs()` if `bool(spam())` is `False`.
33
+
34
+ ## Installation
35
+
36
+ The minimum supported Python version for running PuyaPy itself is 3.12.
37
+
38
+ You can install the developer preview of PuyaPy directly from this repo into your project virtualenv:
39
+ ```shell
40
+ pip install git+https://github.com/algorandfoundation/puya.git
41
+ ```
42
+ If you're using poetry for dependency and virutalenv management, the above URL should work with
43
+ `poetry add`.
44
+
45
+ Or if you just want to play with some examples, you can clone the repo and have a poke around.
46
+
47
+ ```shell
48
+ git clone https://github.com/algorandfoundation/puya.git
49
+ cd puya
50
+ poetry install
51
+ poetry shell
52
+ ```
53
+
54
+ Note that with this method you'll need to activate the virtual environment created by poetry
55
+ before using the puyapy command in each new shell that you open - you can do this by running
56
+ `poetry shell` in the `puya` directory.
57
+
58
+ ## Compiler usage
59
+
60
+ To check that you can run the `puyapy` command successfully after that, you can run the help command:
61
+
62
+ `puyapy -h`
63
+
64
+ To compile a contract or contracts, just supply the path(s) - either to the .py files themselves,
65
+ or the containing directories. In the case of containing directories, any contracts discovered
66
+ therein will be compiled, allowing you to compile multiple contracts at once. You can also supply
67
+ more than one path at a time to the compiler.
68
+
69
+ e.g. `puyapy my_project/` or `puyapy my_project/contract.py` will work to compile a single contract.
70
+
71
+ ## Language fundamentals
72
+
73
+ > [!NOTE]
74
+ > A more comprehensive guide is coming soon!
75
+
76
+ ### Contracts
77
+
78
+ A smart contract is defined within a single class. You can extend other contracts (through inheritance),
79
+ and also define standalone functions and reference them. This also works across different Python
80
+ packages - in other words, you can have a Python library with common functions and re-use that
81
+ library across multiple projects!
82
+
83
+ All contracts must inherit from the base class `puyapy.Contract` - either directly or indirectly,
84
+ which can include inheriting from `puyapy.ARC4Contract`. For a non-ARC4 contract, a contract class
85
+ must implement an `approval_program` and a `clear_state_program` method. For ARC4 contracts, these
86
+ methods will be implemented for you, although you can optionally provide a `clear_state_program`
87
+ (the default implementation just always approves).
88
+
89
+ As an example, this is a valid contract that always approves:
90
+
91
+ ```python
92
+ import puyapy
93
+
94
+ class Contract(puyapy.Contract):
95
+ def approval_program(self) -> bool:
96
+ return True
97
+
98
+ def clear_state_program(self) -> bool:
99
+ return True
100
+ ```
101
+
102
+ The return value of these methods can be either a `bool` that indicates whether the transaction
103
+ should approve or not, or a `puyapy.UInt64` value, where `UInt64(0)` indicates that the transaction
104
+ should be rejected and any other value indicates that it should be approved.
105
+
106
+ And here is a valid ARC4 contract:
107
+
108
+ ```python
109
+ import puyapy
110
+
111
+ class ABIContract(puyapy.ARC4Contract):
112
+ """This contract can be created, but otherwise does nothing"""
113
+ pass
114
+ ```
115
+
116
+ ### Primitive types
117
+
118
+ The primitive types of the AVM, `uint64` and `bytes[]` are represented by `puyapy.UInt64` and
119
+ `puyapy.Bytes` respectively. `puyapy.BigUInt` is also available for AVM supported wide-math
120
+ (up to 512 bits).
121
+
122
+ Note that Python builtin types such as `int` cannot be used as variables, for semantic compatibility
123
+ reasons - however you can define module level constants of this type.
124
+
125
+ ```python
126
+ from puyapy import UInt64, subroutine
127
+
128
+ SCALE = 100000
129
+ SCALED_PI = 314159
130
+
131
+ @subroutine
132
+ def circle_area(radius: UInt64) -> UInt64:
133
+ scaled_result = SCALED_PI * radius**2
134
+ result = scaled_result // SCALE
135
+ return result
136
+
137
+
138
+ ...
139
+
140
+
141
+
142
+ ```
143
+ ## Examples
144
+
145
+ There are many examples in this repo, here are some of the more useful ones that showcase what
146
+ is possible.
147
+
148
+ - [voting](examples/voting/voting.py)
149
+ - [AMM](examples/amm/contract.py)
150
+ - [auction](examples/TEALScript/auction/contract.py)
151
+ - [non-ABI calculator](examples/calculator/contract.py)
152
+ - [local storage](examples/local_storage)
153
+
154
+ The compiled output is available under the `out/` directory alongside these, e.g. the approval
155
+ TEAL for `voting` is available at [examples/voting/out/voting.approval.teal](examples/voting/out/voting.approval.teal).
156
+
puyapy-0.1.0/README.md ADDED
@@ -0,0 +1,136 @@
1
+ # PuyaPy - Python to TEAL compiler
2
+
3
+ > [!WARNING]
4
+ > PuyaPy is currently in alpha / developer preview. It is not recommended for production usage yet.
5
+
6
+ PuyaPy is an optimising TEAL compiler that allows you to write code to execute on the Algorand
7
+ Virtual Machine (AVM) with Python syntax.
8
+
9
+ [Project background and guiding principles](docs/principles.md).
10
+
11
+ PuyaPy supports a statically-typed subset of valid Python syntax. Importantly, that subset has
12
+ identical semantics when comparing Python behaviour and behaviour of the executed TEAL.
13
+ For example, `foo = spam() or eggs()` will only execute `eggs()` if `bool(spam())` is `False`.
14
+
15
+ ## Installation
16
+
17
+ The minimum supported Python version for running PuyaPy itself is 3.12.
18
+
19
+ You can install the developer preview of PuyaPy directly from this repo into your project virtualenv:
20
+ ```shell
21
+ pip install git+https://github.com/algorandfoundation/puya.git
22
+ ```
23
+ If you're using poetry for dependency and virutalenv management, the above URL should work with
24
+ `poetry add`.
25
+
26
+ Or if you just want to play with some examples, you can clone the repo and have a poke around.
27
+
28
+ ```shell
29
+ git clone https://github.com/algorandfoundation/puya.git
30
+ cd puya
31
+ poetry install
32
+ poetry shell
33
+ ```
34
+
35
+ Note that with this method you'll need to activate the virtual environment created by poetry
36
+ before using the puyapy command in each new shell that you open - you can do this by running
37
+ `poetry shell` in the `puya` directory.
38
+
39
+ ## Compiler usage
40
+
41
+ To check that you can run the `puyapy` command successfully after that, you can run the help command:
42
+
43
+ `puyapy -h`
44
+
45
+ To compile a contract or contracts, just supply the path(s) - either to the .py files themselves,
46
+ or the containing directories. In the case of containing directories, any contracts discovered
47
+ therein will be compiled, allowing you to compile multiple contracts at once. You can also supply
48
+ more than one path at a time to the compiler.
49
+
50
+ e.g. `puyapy my_project/` or `puyapy my_project/contract.py` will work to compile a single contract.
51
+
52
+ ## Language fundamentals
53
+
54
+ > [!NOTE]
55
+ > A more comprehensive guide is coming soon!
56
+
57
+ ### Contracts
58
+
59
+ A smart contract is defined within a single class. You can extend other contracts (through inheritance),
60
+ and also define standalone functions and reference them. This also works across different Python
61
+ packages - in other words, you can have a Python library with common functions and re-use that
62
+ library across multiple projects!
63
+
64
+ All contracts must inherit from the base class `puyapy.Contract` - either directly or indirectly,
65
+ which can include inheriting from `puyapy.ARC4Contract`. For a non-ARC4 contract, a contract class
66
+ must implement an `approval_program` and a `clear_state_program` method. For ARC4 contracts, these
67
+ methods will be implemented for you, although you can optionally provide a `clear_state_program`
68
+ (the default implementation just always approves).
69
+
70
+ As an example, this is a valid contract that always approves:
71
+
72
+ ```python
73
+ import puyapy
74
+
75
+ class Contract(puyapy.Contract):
76
+ def approval_program(self) -> bool:
77
+ return True
78
+
79
+ def clear_state_program(self) -> bool:
80
+ return True
81
+ ```
82
+
83
+ The return value of these methods can be either a `bool` that indicates whether the transaction
84
+ should approve or not, or a `puyapy.UInt64` value, where `UInt64(0)` indicates that the transaction
85
+ should be rejected and any other value indicates that it should be approved.
86
+
87
+ And here is a valid ARC4 contract:
88
+
89
+ ```python
90
+ import puyapy
91
+
92
+ class ABIContract(puyapy.ARC4Contract):
93
+ """This contract can be created, but otherwise does nothing"""
94
+ pass
95
+ ```
96
+
97
+ ### Primitive types
98
+
99
+ The primitive types of the AVM, `uint64` and `bytes[]` are represented by `puyapy.UInt64` and
100
+ `puyapy.Bytes` respectively. `puyapy.BigUInt` is also available for AVM supported wide-math
101
+ (up to 512 bits).
102
+
103
+ Note that Python builtin types such as `int` cannot be used as variables, for semantic compatibility
104
+ reasons - however you can define module level constants of this type.
105
+
106
+ ```python
107
+ from puyapy import UInt64, subroutine
108
+
109
+ SCALE = 100000
110
+ SCALED_PI = 314159
111
+
112
+ @subroutine
113
+ def circle_area(radius: UInt64) -> UInt64:
114
+ scaled_result = SCALED_PI * radius**2
115
+ result = scaled_result // SCALE
116
+ return result
117
+
118
+
119
+ ...
120
+
121
+
122
+
123
+ ```
124
+ ## Examples
125
+
126
+ There are many examples in this repo, here are some of the more useful ones that showcase what
127
+ is possible.
128
+
129
+ - [voting](examples/voting/voting.py)
130
+ - [AMM](examples/amm/contract.py)
131
+ - [auction](examples/TEALScript/auction/contract.py)
132
+ - [non-ABI calculator](examples/calculator/contract.py)
133
+ - [local storage](examples/local_storage)
134
+
135
+ The compiled output is available under the `out/` directory alongside these, e.g. the approval
136
+ TEAL for `voting` is available at [examples/voting/out/voting.approval.teal](examples/voting/out/voting.approval.teal).
@@ -0,0 +1,186 @@
1
+ [tool.poetry]
2
+ name = "puyapy"
3
+ version = "0.1.0"
4
+ description = ""
5
+ authors = ["Adam Chidlow <achidlow@users.noreply.github.com>"]
6
+ readme = "README.md"
7
+ packages = [
8
+ { include = "puya", from = "src" },
9
+ { include = "puyapy-stubs", from = "src" },
10
+ ]
11
+
12
+ [tool.poetry.dependencies]
13
+ python = "^3.12"
14
+ typing-extensions = "^4.8.0"
15
+ attrs = "^23.1.0"
16
+ structlog = "^23.2.0"
17
+ networkx = "^3.1"
18
+ docstring-parser = "^0.15"
19
+ pycryptodomex = ">=3.6.0,<4"
20
+ immutabledict = "^4.0.0"
21
+ # vendored mypy dependencies
22
+ mypy_extensions = "^1.0.0"
23
+
24
+
25
+ [tool.poetry.group.dev.dependencies]
26
+ black = {extras = ["d"], version = "^23.10.1"}
27
+ mypy = "1.7.0"
28
+ ruff = "^0.1.3"
29
+ pre-commit = "^3.3.3"
30
+ pytest = "^7.4.0"
31
+ pytest-xdist = {extras = ["psutil"], version = "^3.3.1"}
32
+ cattrs = "^23.1.2"
33
+ py-algorand-sdk = "^2.4.0"
34
+ ruff-lsp = "^0.0.45"
35
+ pytest-cov = "^4.1.0"
36
+ pip-audit = "^2.6.1"
37
+ algokit-utils = "^1.3.1"
38
+
39
+ [build-system]
40
+ requires = ["poetry-core"]
41
+ build-backend = "poetry.core.masonry.api"
42
+
43
+ [tool.poetry.scripts]
44
+ puyapy = "puya.__main__:main"
45
+
46
+ [tool.pytest.ini_options]
47
+ addopts = "-n auto --cov-config=.coveragerc"
48
+ testpaths = [
49
+ "tests"
50
+ ]
51
+
52
+ [tool.black]
53
+ line-length = 99
54
+ force-exclude = "src/puya/(_typeshed|_vendor)"
55
+
56
+ [tool.mypy]
57
+ python_version = "3.12"
58
+ strict = true
59
+ untyped_calls_exclude = [
60
+ "algosdk",
61
+ ]
62
+ exclude = [
63
+ "src/puya/_typeshed",
64
+ "src/puya/_vendor",
65
+ ]
66
+
67
+ [[tool.mypy.overrides]]
68
+ module = ["puyapy", "puyapy.*"]
69
+ disallow_any_unimported = true
70
+ disallow_any_expr = true
71
+ disallow_any_decorated = true
72
+ disallow_any_explicit = true
73
+
74
+ [[tool.mypy.overrides]]
75
+ module = ["algosdk", "algosdk.*"]
76
+ disallow_untyped_calls = false
77
+
78
+ [tool.ruff]
79
+ line-length = 99
80
+ select = [
81
+ # all possible codes as of this ruff version are listed here,
82
+ # ones we don't want/need are commented out to make it clear
83
+ # which have been omitted on purpose vs which ones get added
84
+ # in new ruff releases and should be considered for enabling
85
+ "F", # pyflakes
86
+ "E", "W", # pycodestyle
87
+ "C90", # mccabe
88
+ "I", # isort
89
+ "N", # PEP8 naming
90
+ "UP", # pyupgrade
91
+ "YTT", # flake8-2020
92
+ "ANN", # flake8-annotations
93
+ # "S", # flake8-bandit
94
+ # "BLE", # flake8-blind-except
95
+ "FBT", # flake8-boolean-trap
96
+ "B", # flake8-bugbear
97
+ "A", # flake8-builtins
98
+ # "COM", # flake8-commas
99
+ "C4", # flake8-comprehensions
100
+ "DTZ", # flake8-datetimez
101
+ "T10", # flake8-debugger
102
+ # "DJ", # flake8-django
103
+ # "EM", # flake8-errmsg
104
+ # "EXE", # flake8-executable
105
+ "ISC", # flake8-implicit-str-concat
106
+ "ICN", # flake8-import-conventions
107
+ # "G", # flake8-logging-format
108
+ # "INP", # flake8-no-pep420
109
+ "PIE", # flake8-pie
110
+ "T20", # flake8-print
111
+ "PYI", # flake8-pyi
112
+ "PT", # flake8-pytest-style
113
+ "Q", # flake8-quotes
114
+ "RSE", # flake8-raise
115
+ # "RET", # flake8-return
116
+ "SLF", # flake8-self
117
+ "SIM", # flake8-simplify
118
+ "TID", # flake8-tidy-imports
119
+ "TCH", # flake8-type-checking
120
+ "ARG", # flake8-unused-arguments
121
+ "PTH", # flake8-use-pathlib
122
+ "ERA", # eradicate
123
+ # "PD", # pandas-vet
124
+ "PGH", # pygrep-hooks
125
+ "PL", # pylint
126
+ # "TRY", # tryceratops
127
+ # "NPY", # NumPy-specific rules
128
+ "RUF", # Ruff-specific rules
129
+ ]
130
+ ignore = [
131
+ "ANN101", # no type for self
132
+ "ANN102", # no type for cls
133
+ "SIM108", # allow if-else in place of ternary
134
+ "PLR2004", # magic values... can't configure to ignore simple low value ints like 2
135
+ "PLW2901", # allow updating loop value...
136
+ "PYI025", # I can tell the difference between set and Set thank you very much
137
+ # TODO: REMOVE ALL THE BELOW vvv
138
+ "ERA001", # don't automatically remove commented out code
139
+ "T201", # allow prints (FOR NOW)
140
+ # TODO: REMOVE ALL THE BELOW AFTER REFACTORING BUILDING CODE vvv
141
+ "C901", # is too complex (> 10)
142
+ "PLR0911", # Too many return statements (> 6)
143
+ "PLR0912", # Too many branches (> 12)
144
+ "PLR0913", # Too many arguments to function call (> 5)
145
+ "PLR0915", # Too many statements (> 50)
146
+
147
+ ]
148
+ unfixable = [
149
+ # TODO: REMOVE THE BELOW
150
+ # "ERA001", # don't automatically remove commented out code
151
+ "F841", # don't delete unused local variables automatically
152
+ "B011", # don't automatically convert assert False -> raise AssertionError - we want the former
153
+ # in any smart contracts in this repo
154
+ ]
155
+ extend-exclude = [
156
+ "src/puya/_typeshed",
157
+ "src/puya/_vendor",
158
+ ]
159
+ [tool.ruff.per-file-ignores]
160
+ "src/**" = [
161
+ "PT", # no pytest rules
162
+ ]
163
+ "src/puyapy-stubs/**" = [
164
+ "PYI021", # allow docstrings in stubs
165
+ "PYI053", # allow "docstrings" in overloads
166
+ ]
167
+ "examples/**" = [
168
+ "PT", # no pytest rules
169
+ "B011", # allow assert False, "msg"
170
+ ]
171
+ "src/puya/awst_build/eb/**" = [
172
+ # TODO: remove the below
173
+ "ARG002",
174
+ ]
175
+
176
+ [tool.ruff.flake8-annotations]
177
+ allow-star-arg-any = true
178
+ suppress-none-returning = true
179
+ mypy-init-return = true
180
+
181
+ [tool.ruff.isort]
182
+ combine-as-imports = true
183
+ force-wrap-aliases = true
184
+
185
+ [tool.ruff.flake8-builtins]
186
+ builtins-ignorelist = ["id"]
@@ -0,0 +1,91 @@
1
+ # FAQ
2
+
3
+ ### There are too many things named "context"!
4
+ Yes
5
+
6
+ # Other
7
+
8
+ ## Layers
9
+
10
+ In top-down order:
11
+
12
+ - puya/
13
+ - compile.py
14
+ - codegen/
15
+ - ir/
16
+ - awst/
17
+ - metadata.py
18
+ - parse.py
19
+ - errors.py
20
+ - puyapy/
21
+
22
+ Nothing should ever import from something higher in the list.
23
+
24
+
25
+ ## IR Ops
26
+
27
+ TEAL spec doesn't have "types" for immediate args
28
+ (ie literal values that end up in the TEAL source)
29
+ This diverges from mypyc Value, which has an rtype always on the Value
30
+ class, even if that rtype is void.
31
+
32
+ We might not even be able to resolve the type of an int literal in the Python source,
33
+ until it's used in context with an actual AVM Type, eg:
34
+
35
+ UInt64(1) + 2
36
+ vs
37
+
38
+ UInt512(1) + 2
39
+
40
+ we don't know the "runtime type" of "2" until we expand the binary operation,
41
+ (we probably don't even know the type of "1" unless we handle the compound CallExpr and
42
+ IntLiteral together, which has some downsides).
43
+
44
+ Option 1: parallel hierarchies
45
+
46
+ ImmediateValue(ctx: mypy.nodes.Context)
47
+ -> IntLiteral
48
+ -> BytesLiteral
49
+ AVMValue(ctx: mypy.nodes.Context, rtype: RType)
50
+ -> Ops
51
+ -> ...
52
+
53
+ Option 2: one hierarchy, rtype not defined on Value
54
+
55
+ Value(ctx: mypy.nodes.Context)
56
+ -> ImmediateValue
57
+ -> IntLiteral
58
+ -> BytesLiteral
59
+ -> AVMValue(rtype: RType)
60
+ -> Ops
61
+ -> ...
62
+
63
+ Option 3: one hierarchy, rtype defined on Value but is optional
64
+
65
+ Value(ctx: mypy.nodes.Context, rtype: RType | None)
66
+ -> IntLiteral
67
+ -> BytesLiteral
68
+ -> Ops
69
+ -> ...
70
+
71
+
72
+ Option 1 is annoying dealing with unions everywhere, too much typing.
73
+
74
+ Out of Option 2 and Option 3, mishandling is probably more obvious in 2.
75
+
76
+ Selecting Option 2.
77
+
78
+
79
+ ## Puya AST
80
+
81
+ - no dependency on mypy past this point. We are insulated from either changes in mypy or changing to another parser
82
+ - Validate as much as possible during conversion - most source information at this point & early validation means less error compounding causing confusion.
83
+ - This means fully normalised, and only what is required remains. Much easier to reason about this new ast when converting to ir
84
+ - No python peculiarities eg a < b < c (which is the same as ((a < b) and (b < c)) _except_ that b is only evaluated once)
85
+ - e.g. a < func_with_side_effects() < c would be equivalent to (tmp = func_with_side_effects(); a < tmp and tmp < c)
86
+ - e.g., a and b and c *_returns_* the first one of (a, b, c) that is falsy or if all are truthy returns c, whilst only evaluating each of a, b, and c at most once (ie still short circuiting)
87
+ - Still high level though eg if else, not branch + go to
88
+ - All stubs fully resolved, ie no further dependence on “puyapy” component. This further insulates from python specifics. Maybe this ast can be target for other languages? Note: this includes any necessary ast code generation eg approval program for arc4
89
+ - All types fully resolved & checked
90
+
91
+
@@ -0,0 +1,6 @@
1
+ import pathlib
2
+ import sys
3
+
4
+ _VENDOR_PATH = pathlib.Path(__file__).parent / "_vendor"
5
+
6
+ sys.path.insert(0, str(_VENDOR_PATH))
@@ -0,0 +1,101 @@
1
+ import argparse
2
+ from pathlib import Path
3
+
4
+ from puya.compile import compile_to_teal
5
+ from puya.logging_config import LogLevel, configure_logging
6
+ from puya.options import PuyaOptions
7
+
8
+
9
+ def main() -> None:
10
+ parser = argparse.ArgumentParser(
11
+ prog="puya",
12
+ formatter_class=argparse.ArgumentDefaultsHelpFormatter,
13
+ )
14
+ parser.add_argument(
15
+ "-g", # -g chosen because it is the same option for debug in gcc
16
+ "--debug-level",
17
+ type=int,
18
+ choices=[0, 1, 2],
19
+ default=0,
20
+ help="debug information level",
21
+ )
22
+ parser.add_argument(
23
+ "-O",
24
+ "--optimization-level",
25
+ type=int,
26
+ choices=[0, 1, 2],
27
+ default=1,
28
+ help="set optimization level",
29
+ )
30
+ parser.add_argument(
31
+ "--output-teal",
32
+ action=argparse.BooleanOptionalAction,
33
+ default=True,
34
+ help="Output TEAL",
35
+ )
36
+ parser.add_argument(
37
+ "--output-arc32",
38
+ action=argparse.BooleanOptionalAction,
39
+ default=True,
40
+ help="Output ARC32 application.json",
41
+ )
42
+ parser.add_argument(
43
+ "--output-awst",
44
+ action=argparse.BooleanOptionalAction,
45
+ default=False,
46
+ help="output parsed result of AST",
47
+ )
48
+ parser.add_argument(
49
+ "--output-ssa-ir",
50
+ action=argparse.BooleanOptionalAction,
51
+ default=False,
52
+ help="output IR in SSA form",
53
+ )
54
+ parser.add_argument(
55
+ "--output-optimization-ir",
56
+ action=argparse.BooleanOptionalAction,
57
+ default=False,
58
+ help="output IR after each optimization",
59
+ )
60
+ parser.add_argument(
61
+ "--output-final-ir",
62
+ action=argparse.BooleanOptionalAction,
63
+ default=False,
64
+ help="output IR before codegen",
65
+ )
66
+ parser.add_argument(
67
+ "--output-cssa-ir",
68
+ action=argparse.BooleanOptionalAction,
69
+ default=False,
70
+ help="output IR in cssa form",
71
+ )
72
+ parser.add_argument(
73
+ "--output-post-ssa-ir",
74
+ action=argparse.BooleanOptionalAction,
75
+ default=False,
76
+ help="output IR post ssa form",
77
+ )
78
+ parser.add_argument(
79
+ "--output-parallel-copies-ir",
80
+ action=argparse.BooleanOptionalAction,
81
+ default=False,
82
+ help="output IR after parallel copy sequentialization",
83
+ )
84
+ parser.add_argument(
85
+ "--out-dir", type=Path, help="path for outputting artefacts", default=False
86
+ )
87
+ parser.add_argument(
88
+ "--log-level",
89
+ type=LogLevel.from_string,
90
+ choices=list(LogLevel),
91
+ )
92
+
93
+ parser.add_argument("paths", type=Path, nargs="+", metavar="PATH")
94
+ options = PuyaOptions()
95
+ parser.parse_args(namespace=options)
96
+ configure_logging(min_log_level=options.log_level)
97
+ compile_to_teal(options)
98
+
99
+
100
+ if __name__ == "__main__":
101
+ main()