kirin-toolchain 0.13.0__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (374) hide show
  1. kirin_toolchain-0.13.0/.github/dependabot.yml +7 -0
  2. kirin_toolchain-0.13.0/.github/workflows/ci.yml +77 -0
  3. kirin_toolchain-0.13.0/.github/workflows/devdoc.yml +48 -0
  4. kirin_toolchain-0.13.0/.github/workflows/doc.yml +44 -0
  5. kirin_toolchain-0.13.0/.github/workflows/isort.yml +18 -0
  6. kirin_toolchain-0.13.0/.github/workflows/lint.yml +21 -0
  7. kirin_toolchain-0.13.0/.github/workflows/pub_doc.yml +53 -0
  8. kirin_toolchain-0.13.0/.github/workflows/release.yml +90 -0
  9. kirin_toolchain-0.13.0/.gitignore +189 -0
  10. kirin_toolchain-0.13.0/.pre-commit-config.yaml +24 -0
  11. kirin_toolchain-0.13.0/LICENSE +234 -0
  12. kirin_toolchain-0.13.0/PKG-INFO +42 -0
  13. kirin_toolchain-0.13.0/README.md +30 -0
  14. kirin_toolchain-0.13.0/docs/101.md +33 -0
  15. kirin_toolchain-0.13.0/docs/analysis.md +106 -0
  16. kirin_toolchain-0.13.0/docs/assets/favicon.ico +0 -0
  17. kirin_toolchain-0.13.0/docs/assets/food-printing.png +0 -0
  18. kirin_toolchain-0.13.0/docs/assets/logo-black-horizontal.svg +47 -0
  19. kirin_toolchain-0.13.0/docs/assets/logo-small-black.svg +40 -0
  20. kirin_toolchain-0.13.0/docs/assets/logo-small-white.svg +47 -0
  21. kirin_toolchain-0.13.0/docs/assets/logo-white-horizontal.svg +54 -0
  22. kirin_toolchain-0.13.0/docs/blog/.authors.yml +6 -0
  23. kirin_toolchain-0.13.0/docs/blog/index.md +1 -0
  24. kirin_toolchain-0.13.0/docs/blog/posts/2024-nov-11-mission.md +197 -0
  25. kirin_toolchain-0.13.0/docs/blog/posts/typeinfer-basic.png +0 -0
  26. kirin_toolchain-0.13.0/docs/codegen.md +4 -0
  27. kirin_toolchain-0.13.0/docs/comparison.md +4 -0
  28. kirin_toolchain-0.13.0/docs/contrib.md +60 -0
  29. kirin_toolchain-0.13.0/docs/cookbook/foodlang/analysis.md +337 -0
  30. kirin_toolchain-0.13.0/docs/cookbook/foodlang/cf_rewrite.md +138 -0
  31. kirin_toolchain-0.13.0/docs/cookbook/foodlang/codegen.md +136 -0
  32. kirin_toolchain-0.13.0/docs/cookbook/index.md +15 -0
  33. kirin_toolchain-0.13.0/docs/def.md +300 -0
  34. kirin_toolchain-0.13.0/docs/dialects/cf.md +125 -0
  35. kirin_toolchain-0.13.0/docs/dialects/func.md +94 -0
  36. kirin_toolchain-0.13.0/docs/dialects/ilist.md +89 -0
  37. kirin_toolchain-0.13.0/docs/dialects/python/core.md +95 -0
  38. kirin_toolchain-0.13.0/docs/dialects/python/data.md +32 -0
  39. kirin_toolchain-0.13.0/docs/dialects/python/index.md +10 -0
  40. kirin_toolchain-0.13.0/docs/dialects/python/sfunc.md +61 -0
  41. kirin_toolchain-0.13.0/docs/dialects/python/sugar.md +30 -0
  42. kirin_toolchain-0.13.0/docs/dialects/scf.md +125 -0
  43. kirin_toolchain-0.13.0/docs/index.md +332 -0
  44. kirin_toolchain-0.13.0/docs/install.md +77 -0
  45. kirin_toolchain-0.13.0/docs/interp.md +162 -0
  46. kirin_toolchain-0.13.0/docs/scripts/gen_ref_nav.py +46 -0
  47. kirin_toolchain-0.13.0/docs/stylesheets/extra.css +22 -0
  48. kirin_toolchain-0.13.0/example/food/attrs.py +13 -0
  49. kirin_toolchain-0.13.0/example/food/dialect.py +3 -0
  50. kirin_toolchain-0.13.0/example/food/emit.py +94 -0
  51. kirin_toolchain-0.13.0/example/food/group.py +23 -0
  52. kirin_toolchain-0.13.0/example/food/interp.py +46 -0
  53. kirin_toolchain-0.13.0/example/food/lattice.py +96 -0
  54. kirin_toolchain-0.13.0/example/food/recept.py +127 -0
  55. kirin_toolchain-0.13.0/example/food/rewrite.py +43 -0
  56. kirin_toolchain-0.13.0/example/food/script.py +112 -0
  57. kirin_toolchain-0.13.0/example/food/stmts.py +43 -0
  58. kirin_toolchain-0.13.0/example/simple.py +34 -0
  59. kirin_toolchain-0.13.0/justfile +22 -0
  60. kirin_toolchain-0.13.0/mkdocs.yml +172 -0
  61. kirin_toolchain-0.13.0/pyproject.toml +93 -0
  62. kirin_toolchain-0.13.0/scripts/griffe_ext.py +258 -0
  63. kirin_toolchain-0.13.0/scripts/release.py +111 -0
  64. kirin_toolchain-0.13.0/src/kirin/__init__.py +7 -0
  65. kirin_toolchain-0.13.0/src/kirin/analysis/__init__.py +24 -0
  66. kirin_toolchain-0.13.0/src/kirin/analysis/callgraph.py +61 -0
  67. kirin_toolchain-0.13.0/src/kirin/analysis/cfg.py +112 -0
  68. kirin_toolchain-0.13.0/src/kirin/analysis/const/__init__.py +20 -0
  69. kirin_toolchain-0.13.0/src/kirin/analysis/const/_visitor.py +2 -0
  70. kirin_toolchain-0.13.0/src/kirin/analysis/const/_visitor.pyi +8 -0
  71. kirin_toolchain-0.13.0/src/kirin/analysis/const/lattice.py +219 -0
  72. kirin_toolchain-0.13.0/src/kirin/analysis/const/prop.py +116 -0
  73. kirin_toolchain-0.13.0/src/kirin/analysis/forward.py +100 -0
  74. kirin_toolchain-0.13.0/src/kirin/analysis/typeinfer/__init__.py +5 -0
  75. kirin_toolchain-0.13.0/src/kirin/analysis/typeinfer/analysis.py +90 -0
  76. kirin_toolchain-0.13.0/src/kirin/analysis/typeinfer/solve.py +141 -0
  77. kirin_toolchain-0.13.0/src/kirin/decl/__init__.py +108 -0
  78. kirin_toolchain-0.13.0/src/kirin/decl/base.py +65 -0
  79. kirin_toolchain-0.13.0/src/kirin/decl/camel2snake.py +2 -0
  80. kirin_toolchain-0.13.0/src/kirin/decl/emit/__init__.py +0 -0
  81. kirin_toolchain-0.13.0/src/kirin/decl/emit/_create_fn.py +29 -0
  82. kirin_toolchain-0.13.0/src/kirin/decl/emit/_set_new_attribute.py +22 -0
  83. kirin_toolchain-0.13.0/src/kirin/decl/emit/dialect.py +8 -0
  84. kirin_toolchain-0.13.0/src/kirin/decl/emit/init.py +277 -0
  85. kirin_toolchain-0.13.0/src/kirin/decl/emit/name.py +10 -0
  86. kirin_toolchain-0.13.0/src/kirin/decl/emit/property.py +182 -0
  87. kirin_toolchain-0.13.0/src/kirin/decl/emit/repr.py +31 -0
  88. kirin_toolchain-0.13.0/src/kirin/decl/emit/traits.py +13 -0
  89. kirin_toolchain-0.13.0/src/kirin/decl/emit/typecheck.py +77 -0
  90. kirin_toolchain-0.13.0/src/kirin/decl/emit/verify.py +51 -0
  91. kirin_toolchain-0.13.0/src/kirin/decl/info.py +346 -0
  92. kirin_toolchain-0.13.0/src/kirin/decl/scan_fields.py +157 -0
  93. kirin_toolchain-0.13.0/src/kirin/decl/verify.py +69 -0
  94. kirin_toolchain-0.13.0/src/kirin/dialects/__init__.py +14 -0
  95. kirin_toolchain-0.13.0/src/kirin/dialects/_pprint_helper.py +53 -0
  96. kirin_toolchain-0.13.0/src/kirin/dialects/cf/__init__.py +20 -0
  97. kirin_toolchain-0.13.0/src/kirin/dialects/cf/constprop.py +51 -0
  98. kirin_toolchain-0.13.0/src/kirin/dialects/cf/dialect.py +3 -0
  99. kirin_toolchain-0.13.0/src/kirin/dialects/cf/emit.py +58 -0
  100. kirin_toolchain-0.13.0/src/kirin/dialects/cf/interp.py +24 -0
  101. kirin_toolchain-0.13.0/src/kirin/dialects/cf/stmts.py +68 -0
  102. kirin_toolchain-0.13.0/src/kirin/dialects/cf/typeinfer.py +27 -0
  103. kirin_toolchain-0.13.0/src/kirin/dialects/eltype.py +23 -0
  104. kirin_toolchain-0.13.0/src/kirin/dialects/func/__init__.py +20 -0
  105. kirin_toolchain-0.13.0/src/kirin/dialects/func/attrs.py +39 -0
  106. kirin_toolchain-0.13.0/src/kirin/dialects/func/constprop.py +138 -0
  107. kirin_toolchain-0.13.0/src/kirin/dialects/func/dialect.py +3 -0
  108. kirin_toolchain-0.13.0/src/kirin/dialects/func/emit.py +80 -0
  109. kirin_toolchain-0.13.0/src/kirin/dialects/func/interp.py +68 -0
  110. kirin_toolchain-0.13.0/src/kirin/dialects/func/stmts.py +233 -0
  111. kirin_toolchain-0.13.0/src/kirin/dialects/func/typeinfer.py +124 -0
  112. kirin_toolchain-0.13.0/src/kirin/dialects/ilist/__init__.py +33 -0
  113. kirin_toolchain-0.13.0/src/kirin/dialects/ilist/_dialect.py +3 -0
  114. kirin_toolchain-0.13.0/src/kirin/dialects/ilist/_wrapper.py +51 -0
  115. kirin_toolchain-0.13.0/src/kirin/dialects/ilist/interp.py +85 -0
  116. kirin_toolchain-0.13.0/src/kirin/dialects/ilist/lowering.py +25 -0
  117. kirin_toolchain-0.13.0/src/kirin/dialects/ilist/passes.py +32 -0
  118. kirin_toolchain-0.13.0/src/kirin/dialects/ilist/rewrite/__init__.py +3 -0
  119. kirin_toolchain-0.13.0/src/kirin/dialects/ilist/rewrite/const.py +45 -0
  120. kirin_toolchain-0.13.0/src/kirin/dialects/ilist/rewrite/list.py +38 -0
  121. kirin_toolchain-0.13.0/src/kirin/dialects/ilist/rewrite/unroll.py +131 -0
  122. kirin_toolchain-0.13.0/src/kirin/dialects/ilist/runtime.py +63 -0
  123. kirin_toolchain-0.13.0/src/kirin/dialects/ilist/stmts.py +102 -0
  124. kirin_toolchain-0.13.0/src/kirin/dialects/ilist/typeinfer.py +120 -0
  125. kirin_toolchain-0.13.0/src/kirin/dialects/lowering/__init__.py +7 -0
  126. kirin_toolchain-0.13.0/src/kirin/dialects/lowering/call.py +48 -0
  127. kirin_toolchain-0.13.0/src/kirin/dialects/lowering/cf.py +206 -0
  128. kirin_toolchain-0.13.0/src/kirin/dialects/lowering/func.py +134 -0
  129. kirin_toolchain-0.13.0/src/kirin/dialects/math/__init__.py +41 -0
  130. kirin_toolchain-0.13.0/src/kirin/dialects/math/_gen.py +176 -0
  131. kirin_toolchain-0.13.0/src/kirin/dialects/math/dialect.py +3 -0
  132. kirin_toolchain-0.13.0/src/kirin/dialects/math/interp.py +190 -0
  133. kirin_toolchain-0.13.0/src/kirin/dialects/math/stmts.py +369 -0
  134. kirin_toolchain-0.13.0/src/kirin/dialects/module.py +139 -0
  135. kirin_toolchain-0.13.0/src/kirin/dialects/py/__init__.py +40 -0
  136. kirin_toolchain-0.13.0/src/kirin/dialects/py/assertion.py +91 -0
  137. kirin_toolchain-0.13.0/src/kirin/dialects/py/assign.py +103 -0
  138. kirin_toolchain-0.13.0/src/kirin/dialects/py/attr.py +59 -0
  139. kirin_toolchain-0.13.0/src/kirin/dialects/py/base.py +34 -0
  140. kirin_toolchain-0.13.0/src/kirin/dialects/py/binop/__init__.py +23 -0
  141. kirin_toolchain-0.13.0/src/kirin/dialects/py/binop/_dialect.py +3 -0
  142. kirin_toolchain-0.13.0/src/kirin/dialects/py/binop/interp.py +60 -0
  143. kirin_toolchain-0.13.0/src/kirin/dialects/py/binop/julia.py +33 -0
  144. kirin_toolchain-0.13.0/src/kirin/dialects/py/binop/lowering.py +22 -0
  145. kirin_toolchain-0.13.0/src/kirin/dialects/py/binop/stmts.py +79 -0
  146. kirin_toolchain-0.13.0/src/kirin/dialects/py/binop/typeinfer.py +108 -0
  147. kirin_toolchain-0.13.0/src/kirin/dialects/py/boolop.py +84 -0
  148. kirin_toolchain-0.13.0/src/kirin/dialects/py/builtin.py +78 -0
  149. kirin_toolchain-0.13.0/src/kirin/dialects/py/cmp/__init__.py +16 -0
  150. kirin_toolchain-0.13.0/src/kirin/dialects/py/cmp/_dialect.py +3 -0
  151. kirin_toolchain-0.13.0/src/kirin/dialects/py/cmp/interp.py +48 -0
  152. kirin_toolchain-0.13.0/src/kirin/dialects/py/cmp/julia.py +33 -0
  153. kirin_toolchain-0.13.0/src/kirin/dialects/py/cmp/lowering.py +45 -0
  154. kirin_toolchain-0.13.0/src/kirin/dialects/py/cmp/stmts.py +62 -0
  155. kirin_toolchain-0.13.0/src/kirin/dialects/py/constant.py +79 -0
  156. kirin_toolchain-0.13.0/src/kirin/dialects/py/indexing.py +251 -0
  157. kirin_toolchain-0.13.0/src/kirin/dialects/py/iterable.py +90 -0
  158. kirin_toolchain-0.13.0/src/kirin/dialects/py/len.py +57 -0
  159. kirin_toolchain-0.13.0/src/kirin/dialects/py/list/__init__.py +15 -0
  160. kirin_toolchain-0.13.0/src/kirin/dialects/py/list/_dialect.py +3 -0
  161. kirin_toolchain-0.13.0/src/kirin/dialects/py/list/interp.py +21 -0
  162. kirin_toolchain-0.13.0/src/kirin/dialects/py/list/lowering.py +25 -0
  163. kirin_toolchain-0.13.0/src/kirin/dialects/py/list/stmts.py +22 -0
  164. kirin_toolchain-0.13.0/src/kirin/dialects/py/list/typeinfer.py +54 -0
  165. kirin_toolchain-0.13.0/src/kirin/dialects/py/range.py +76 -0
  166. kirin_toolchain-0.13.0/src/kirin/dialects/py/slice.py +120 -0
  167. kirin_toolchain-0.13.0/src/kirin/dialects/py/tuple.py +109 -0
  168. kirin_toolchain-0.13.0/src/kirin/dialects/py/unary/__init__.py +24 -0
  169. kirin_toolchain-0.13.0/src/kirin/dialects/py/unary/_dialect.py +3 -0
  170. kirin_toolchain-0.13.0/src/kirin/dialects/py/unary/constprop.py +20 -0
  171. kirin_toolchain-0.13.0/src/kirin/dialects/py/unary/interp.py +24 -0
  172. kirin_toolchain-0.13.0/src/kirin/dialects/py/unary/julia.py +21 -0
  173. kirin_toolchain-0.13.0/src/kirin/dialects/py/unary/lowering.py +22 -0
  174. kirin_toolchain-0.13.0/src/kirin/dialects/py/unary/stmts.py +33 -0
  175. kirin_toolchain-0.13.0/src/kirin/dialects/py/unary/typeinfer.py +23 -0
  176. kirin_toolchain-0.13.0/src/kirin/dialects/py/unpack.py +90 -0
  177. kirin_toolchain-0.13.0/src/kirin/dialects/scf/__init__.py +23 -0
  178. kirin_toolchain-0.13.0/src/kirin/dialects/scf/_dialect.py +3 -0
  179. kirin_toolchain-0.13.0/src/kirin/dialects/scf/absint.py +64 -0
  180. kirin_toolchain-0.13.0/src/kirin/dialects/scf/constprop.py +140 -0
  181. kirin_toolchain-0.13.0/src/kirin/dialects/scf/interp.py +35 -0
  182. kirin_toolchain-0.13.0/src/kirin/dialects/scf/lowering.py +123 -0
  183. kirin_toolchain-0.13.0/src/kirin/dialects/scf/stmts.py +250 -0
  184. kirin_toolchain-0.13.0/src/kirin/dialects/scf/trim.py +36 -0
  185. kirin_toolchain-0.13.0/src/kirin/dialects/scf/typeinfer.py +58 -0
  186. kirin_toolchain-0.13.0/src/kirin/dialects/scf/unroll.py +92 -0
  187. kirin_toolchain-0.13.0/src/kirin/emit/__init__.py +3 -0
  188. kirin_toolchain-0.13.0/src/kirin/emit/abc.py +89 -0
  189. kirin_toolchain-0.13.0/src/kirin/emit/abc.pyi +38 -0
  190. kirin_toolchain-0.13.0/src/kirin/emit/exceptions.py +5 -0
  191. kirin_toolchain-0.13.0/src/kirin/emit/julia.py +63 -0
  192. kirin_toolchain-0.13.0/src/kirin/emit/str.py +51 -0
  193. kirin_toolchain-0.13.0/src/kirin/exceptions.py +59 -0
  194. kirin_toolchain-0.13.0/src/kirin/graph.py +34 -0
  195. kirin_toolchain-0.13.0/src/kirin/idtable.py +57 -0
  196. kirin_toolchain-0.13.0/src/kirin/interp/__init__.py +39 -0
  197. kirin_toolchain-0.13.0/src/kirin/interp/abstract.py +253 -0
  198. kirin_toolchain-0.13.0/src/kirin/interp/base.py +438 -0
  199. kirin_toolchain-0.13.0/src/kirin/interp/concrete.py +62 -0
  200. kirin_toolchain-0.13.0/src/kirin/interp/exceptions.py +26 -0
  201. kirin_toolchain-0.13.0/src/kirin/interp/frame.py +151 -0
  202. kirin_toolchain-0.13.0/src/kirin/interp/impl.py +197 -0
  203. kirin_toolchain-0.13.0/src/kirin/interp/result.py +93 -0
  204. kirin_toolchain-0.13.0/src/kirin/interp/state.py +71 -0
  205. kirin_toolchain-0.13.0/src/kirin/interp/table.py +40 -0
  206. kirin_toolchain-0.13.0/src/kirin/interp/value.py +73 -0
  207. kirin_toolchain-0.13.0/src/kirin/ir/__init__.py +46 -0
  208. kirin_toolchain-0.13.0/src/kirin/ir/attrs/__init__.py +20 -0
  209. kirin_toolchain-0.13.0/src/kirin/ir/attrs/_types.py +8 -0
  210. kirin_toolchain-0.13.0/src/kirin/ir/attrs/_types.pyi +13 -0
  211. kirin_toolchain-0.13.0/src/kirin/ir/attrs/abc.py +46 -0
  212. kirin_toolchain-0.13.0/src/kirin/ir/attrs/py.py +45 -0
  213. kirin_toolchain-0.13.0/src/kirin/ir/attrs/types.py +522 -0
  214. kirin_toolchain-0.13.0/src/kirin/ir/dialect.py +125 -0
  215. kirin_toolchain-0.13.0/src/kirin/ir/group.py +249 -0
  216. kirin_toolchain-0.13.0/src/kirin/ir/method.py +118 -0
  217. kirin_toolchain-0.13.0/src/kirin/ir/nodes/__init__.py +7 -0
  218. kirin_toolchain-0.13.0/src/kirin/ir/nodes/base.py +149 -0
  219. kirin_toolchain-0.13.0/src/kirin/ir/nodes/block.py +458 -0
  220. kirin_toolchain-0.13.0/src/kirin/ir/nodes/region.py +337 -0
  221. kirin_toolchain-0.13.0/src/kirin/ir/nodes/stmt.py +713 -0
  222. kirin_toolchain-0.13.0/src/kirin/ir/nodes/view.py +142 -0
  223. kirin_toolchain-0.13.0/src/kirin/ir/ssa.py +204 -0
  224. kirin_toolchain-0.13.0/src/kirin/ir/traits/__init__.py +36 -0
  225. kirin_toolchain-0.13.0/src/kirin/ir/traits/abc.py +42 -0
  226. kirin_toolchain-0.13.0/src/kirin/ir/traits/basic.py +78 -0
  227. kirin_toolchain-0.13.0/src/kirin/ir/traits/callable.py +51 -0
  228. kirin_toolchain-0.13.0/src/kirin/ir/traits/lowering/__init__.py +2 -0
  229. kirin_toolchain-0.13.0/src/kirin/ir/traits/lowering/call.py +37 -0
  230. kirin_toolchain-0.13.0/src/kirin/ir/traits/lowering/context.py +120 -0
  231. kirin_toolchain-0.13.0/src/kirin/ir/traits/region/__init__.py +2 -0
  232. kirin_toolchain-0.13.0/src/kirin/ir/traits/region/ssacfg.py +22 -0
  233. kirin_toolchain-0.13.0/src/kirin/ir/traits/symbol.py +57 -0
  234. kirin_toolchain-0.13.0/src/kirin/ir/use.py +17 -0
  235. kirin_toolchain-0.13.0/src/kirin/lattice/__init__.py +13 -0
  236. kirin_toolchain-0.13.0/src/kirin/lattice/abc.py +128 -0
  237. kirin_toolchain-0.13.0/src/kirin/lattice/empty.py +25 -0
  238. kirin_toolchain-0.13.0/src/kirin/lattice/mixin.py +51 -0
  239. kirin_toolchain-0.13.0/src/kirin/lowering/__init__.py +7 -0
  240. kirin_toolchain-0.13.0/src/kirin/lowering/binding.py +65 -0
  241. kirin_toolchain-0.13.0/src/kirin/lowering/core.py +72 -0
  242. kirin_toolchain-0.13.0/src/kirin/lowering/dialect.py +35 -0
  243. kirin_toolchain-0.13.0/src/kirin/lowering/dialect.pyi +183 -0
  244. kirin_toolchain-0.13.0/src/kirin/lowering/frame.py +171 -0
  245. kirin_toolchain-0.13.0/src/kirin/lowering/result.py +68 -0
  246. kirin_toolchain-0.13.0/src/kirin/lowering/state.py +441 -0
  247. kirin_toolchain-0.13.0/src/kirin/lowering/stream.py +53 -0
  248. kirin_toolchain-0.13.0/src/kirin/passes/__init__.py +3 -0
  249. kirin_toolchain-0.13.0/src/kirin/passes/abc.py +44 -0
  250. kirin_toolchain-0.13.0/src/kirin/passes/aggressive/__init__.py +1 -0
  251. kirin_toolchain-0.13.0/src/kirin/passes/aggressive/fold.py +43 -0
  252. kirin_toolchain-0.13.0/src/kirin/passes/fold.py +45 -0
  253. kirin_toolchain-0.13.0/src/kirin/passes/inline.py +25 -0
  254. kirin_toolchain-0.13.0/src/kirin/passes/typeinfer.py +25 -0
  255. kirin_toolchain-0.13.0/src/kirin/prelude.py +197 -0
  256. kirin_toolchain-0.13.0/src/kirin/print/__init__.py +15 -0
  257. kirin_toolchain-0.13.0/src/kirin/print/printable.py +141 -0
  258. kirin_toolchain-0.13.0/src/kirin/print/printer.py +415 -0
  259. kirin_toolchain-0.13.0/src/kirin/py.typed +0 -0
  260. kirin_toolchain-0.13.0/src/kirin/registry.py +105 -0
  261. kirin_toolchain-0.13.0/src/kirin/registry.pyi +52 -0
  262. kirin_toolchain-0.13.0/src/kirin/rewrite/__init__.py +14 -0
  263. kirin_toolchain-0.13.0/src/kirin/rewrite/abc.py +43 -0
  264. kirin_toolchain-0.13.0/src/kirin/rewrite/aggressive/__init__.py +1 -0
  265. kirin_toolchain-0.13.0/src/kirin/rewrite/aggressive/fold.py +43 -0
  266. kirin_toolchain-0.13.0/src/kirin/rewrite/alias.py +16 -0
  267. kirin_toolchain-0.13.0/src/kirin/rewrite/apply_type.py +47 -0
  268. kirin_toolchain-0.13.0/src/kirin/rewrite/call2invoke.py +34 -0
  269. kirin_toolchain-0.13.0/src/kirin/rewrite/chain.py +39 -0
  270. kirin_toolchain-0.13.0/src/kirin/rewrite/compactify.py +288 -0
  271. kirin_toolchain-0.13.0/src/kirin/rewrite/cse.py +48 -0
  272. kirin_toolchain-0.13.0/src/kirin/rewrite/dce.py +19 -0
  273. kirin_toolchain-0.13.0/src/kirin/rewrite/fixpoint.py +34 -0
  274. kirin_toolchain-0.13.0/src/kirin/rewrite/fold.py +57 -0
  275. kirin_toolchain-0.13.0/src/kirin/rewrite/getfield.py +21 -0
  276. kirin_toolchain-0.13.0/src/kirin/rewrite/getitem.py +37 -0
  277. kirin_toolchain-0.13.0/src/kirin/rewrite/inline.py +143 -0
  278. kirin_toolchain-0.13.0/src/kirin/rewrite/result.py +15 -0
  279. kirin_toolchain-0.13.0/src/kirin/rewrite/walk.py +83 -0
  280. kirin_toolchain-0.13.0/src/kirin/rewrite/wrap_const.py +55 -0
  281. kirin_toolchain-0.13.0/src/kirin/source.py +21 -0
  282. kirin_toolchain-0.13.0/src/kirin/symbol_table.py +27 -0
  283. kirin_toolchain-0.13.0/src/kirin/types.py +34 -0
  284. kirin_toolchain-0.13.0/src/kirin/worklist.py +30 -0
  285. kirin_toolchain-0.13.0/test/analysis/dataflow/test_cfg.py +36 -0
  286. kirin_toolchain-0.13.0/test/analysis/dataflow/test_constprop.py +333 -0
  287. kirin_toolchain-0.13.0/test/analysis/dataflow/test_non_pure_const.py +42 -0
  288. kirin_toolchain-0.13.0/test/analysis/dataflow/typeinfer/test_inter_method.py +30 -0
  289. kirin_toolchain-0.13.0/test/analysis/dataflow/typeinfer/test_unstable.py +36 -0
  290. kirin_toolchain-0.13.0/test/analysis/test_callgraph.py +36 -0
  291. kirin_toolchain-0.13.0/test/dialects/__init__.py +0 -0
  292. kirin_toolchain-0.13.0/test/dialects/math/__init__.py +0 -0
  293. kirin_toolchain-0.13.0/test/dialects/math/test_basic.py +366 -0
  294. kirin_toolchain-0.13.0/test/dialects/pyrules/__init__.py +0 -0
  295. kirin_toolchain-0.13.0/test/dialects/pyrules/test_getitem.py +57 -0
  296. kirin_toolchain-0.13.0/test/dialects/pystmts/__init__.py +0 -0
  297. kirin_toolchain-0.13.0/test/dialects/pystmts/test_coll_add.py +18 -0
  298. kirin_toolchain-0.13.0/test/dialects/pystmts/test_getattr.py +22 -0
  299. kirin_toolchain-0.13.0/test/dialects/pystmts/test_getitem.py +80 -0
  300. kirin_toolchain-0.13.0/test/dialects/pystmts/test_range.py +38 -0
  301. kirin_toolchain-0.13.0/test/dialects/pystmts/test_slice.py +46 -0
  302. kirin_toolchain-0.13.0/test/dialects/scf/__init__.py +0 -0
  303. kirin_toolchain-0.13.0/test/dialects/scf/test_constprop.py +102 -0
  304. kirin_toolchain-0.13.0/test/dialects/scf/test_fold.py +19 -0
  305. kirin_toolchain-0.13.0/test/dialects/scf/test_for.py +62 -0
  306. kirin_toolchain-0.13.0/test/dialects/scf/test_ifelse.py +45 -0
  307. kirin_toolchain-0.13.0/test/dialects/scf/test_typeinfer.py +29 -0
  308. kirin_toolchain-0.13.0/test/dialects/scf/test_unroll.py +27 -0
  309. kirin_toolchain-0.13.0/test/dialects/test_dummy.py +32 -0
  310. kirin_toolchain-0.13.0/test/dialects/test_ilist.py +169 -0
  311. kirin_toolchain-0.13.0/test/dialects/test_ilist2list.py +30 -0
  312. kirin_toolchain-0.13.0/test/dialects/test_ilist_wrapper.py +77 -0
  313. kirin_toolchain-0.13.0/test/dialects/test_numpy.py +18 -0
  314. kirin_toolchain-0.13.0/test/dialects/test_pytypes.py +113 -0
  315. kirin_toolchain-0.13.0/test/emit/__init__.py +0 -0
  316. kirin_toolchain-0.13.0/test/emit/test_julia.py +73 -0
  317. kirin_toolchain-0.13.0/test/interp/test_func.py +90 -0
  318. kirin_toolchain-0.13.0/test/interp/test_select.py +46 -0
  319. kirin_toolchain-0.13.0/test/ir/test_duplicated.py +18 -0
  320. kirin_toolchain-0.13.0/test/ir/test_group.py +47 -0
  321. kirin_toolchain-0.13.0/test/ir/test_isequal.py +28 -0
  322. kirin_toolchain-0.13.0/test/ir/test_region.py +15 -0
  323. kirin_toolchain-0.13.0/test/ir/test_stmt.py +41 -0
  324. kirin_toolchain-0.13.0/test/lowering/__init__.py +0 -0
  325. kirin_toolchain-0.13.0/test/lowering/test_binding.py +17 -0
  326. kirin_toolchain-0.13.0/test/lowering/test_closure.py +61 -0
  327. kirin_toolchain-0.13.0/test/lowering/test_for.py +90 -0
  328. kirin_toolchain-0.13.0/test/lowering/test_func.py +106 -0
  329. kirin_toolchain-0.13.0/test/lowering/test_ifelse.py +115 -0
  330. kirin_toolchain-0.13.0/test/lowering/test_list.py +23 -0
  331. kirin_toolchain-0.13.0/test/lowering/test_with.py +38 -0
  332. kirin_toolchain-0.13.0/test/passes/__init__.py +0 -0
  333. kirin_toolchain-0.13.0/test/passes/test_inline_pass.py +42 -0
  334. kirin_toolchain-0.13.0/test/print/__init__.py +0 -0
  335. kirin_toolchain-0.13.0/test/print/test_basic.py +95 -0
  336. kirin_toolchain-0.13.0/test/program/py/aha/__init__.py +0 -0
  337. kirin_toolchain-0.13.0/test/program/py/aha/gaga.py +15 -0
  338. kirin_toolchain-0.13.0/test/program/py/aha/hoho.py +11 -0
  339. kirin_toolchain-0.13.0/test/program/py/test_87.py +19 -0
  340. kirin_toolchain-0.13.0/test/program/py/test_abs.py +18 -0
  341. kirin_toolchain-0.13.0/test/program/py/test_aggressive.py +55 -0
  342. kirin_toolchain-0.13.0/test/program/py/test_basic.py +300 -0
  343. kirin_toolchain-0.13.0/test/program/py/test_closure.py +21 -0
  344. kirin_toolchain-0.13.0/test/program/py/test_cmp.py +53 -0
  345. kirin_toolchain-0.13.0/test/program/py/test_const.py +14 -0
  346. kirin_toolchain-0.13.0/test/program/py/test_doc.py +13 -0
  347. kirin_toolchain-0.13.0/test/program/py/test_glob_pi.py +14 -0
  348. kirin_toolchain-0.13.0/test/program/py/test_global_hint.py +11 -0
  349. kirin_toolchain-0.13.0/test/program/py/test_index.py +18 -0
  350. kirin_toolchain-0.13.0/test/program/py/test_list_append.py +31 -0
  351. kirin_toolchain-0.13.0/test/program/py/test_loop.py +38 -0
  352. kirin_toolchain-0.13.0/test/program/py/test_noreturn.py +23 -0
  353. kirin_toolchain-0.13.0/test/program/py/test_signature.py +20 -0
  354. kirin_toolchain-0.13.0/test/program/py/test_tuple_hint.py +11 -0
  355. kirin_toolchain-0.13.0/test/rules/test_alias.py +41 -0
  356. kirin_toolchain-0.13.0/test/rules/test_apply_type.py +33 -0
  357. kirin_toolchain-0.13.0/test/rules/test_cfg_compactify.py +132 -0
  358. kirin_toolchain-0.13.0/test/rules/test_compactify.py +155 -0
  359. kirin_toolchain-0.13.0/test/rules/test_cse.py +61 -0
  360. kirin_toolchain-0.13.0/test/rules/test_dce.py +33 -0
  361. kirin_toolchain-0.13.0/test/rules/test_fold.py +45 -0
  362. kirin_toolchain-0.13.0/test/rules/test_fold_br.py +34 -0
  363. kirin_toolchain-0.13.0/test/rules/test_getitem.py +26 -0
  364. kirin_toolchain-0.13.0/test/rules/test_inline.py +180 -0
  365. kirin_toolchain-0.13.0/test/stmt/__init__.py +0 -0
  366. kirin_toolchain-0.13.0/test/stmt/decl.py +74 -0
  367. kirin_toolchain-0.13.0/test/stmt/test_from_python_call.py +142 -0
  368. kirin_toolchain-0.13.0/test/stmt/test_init.py +74 -0
  369. kirin_toolchain-0.13.0/test/stmt/test_scan_fields.py +97 -0
  370. kirin_toolchain-0.13.0/test/stmt/test_statement.py +48 -0
  371. kirin_toolchain-0.13.0/test/verify/__init__.py +0 -0
  372. kirin_toolchain-0.13.0/test/verify/test_method_verify.py +22 -0
  373. kirin_toolchain-0.13.0/test/verify/test_typecheck.py +16 -0
  374. kirin_toolchain-0.13.0/uv.lock +1752 -0
@@ -0,0 +1,7 @@
1
+ version: 2
2
+ updates:
3
+ # Maintain dependencies for GitHub Actions
4
+ - package-ecosystem: "github-actions"
5
+ directory: "/"
6
+ schedule:
7
+ interval: "weekly"
@@ -0,0 +1,77 @@
1
+ name: CI
2
+
3
+ on:
4
+ pull_request:
5
+ push:
6
+ branches:
7
+ - main
8
+ schedule:
9
+ - cron: '00 01 * * *'
10
+ concurrency:
11
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
12
+ cancel-in-progress: true
13
+
14
+ # See: https://github.com/pdm-project/pdm/issues/1879
15
+ env:
16
+ PDM_DEPS: 'urllib3<2'
17
+
18
+ jobs:
19
+ build:
20
+ runs-on: ubuntu-latest
21
+ strategy:
22
+ matrix:
23
+ python-version: ["3.10", "3.11", "3.12"]
24
+
25
+ steps:
26
+ - uses: actions/checkout@v4
27
+ - name: Install uv
28
+ uses: astral-sh/setup-uv@v5
29
+ with:
30
+ # Install a specific version of uv.
31
+ version: "0.5.1"
32
+ enable-cache: true
33
+ cache-dependency-glob: "uv.lock"
34
+ - name: Set up Python ${{ matrix.python-version }}
35
+ run: uv python install ${{ matrix.python-version }}
36
+ - name: Install the project
37
+ run: uv sync --all-extras --dev --index="https://${{ secrets.JFROG_USER}}:${{ secrets.JFROG_TOKEN }}@quera.jfrog.io/artifactory/api/pypi/kirin/simple/ https://${{ secrets.JFROG_USER}}:${{ secrets.JFROG_TOKEN }}@quera.jfrog.io/artifactory/api/pypi/quera-pypi-algo/simple/"
38
+ - name: Run tests
39
+ # For example, using `pytest`
40
+ run: uv run just coverage
41
+ - name: Upload Coverage to Codecov
42
+ uses: codecov/codecov-action@v5
43
+ with:
44
+ files: coverage.xml # optional
45
+ fail_ci_if_error: true # optional (default = false)
46
+ verbose: true # optional (default = false)
47
+ token: ${{ secrets.CODECOV_TOKEN }} # required
48
+ - name: Archive code coverage results
49
+ if: matrix.python-version == '3.12'
50
+ uses: actions/upload-artifact@v4
51
+ with:
52
+ name: code-coverage-report
53
+ path: coverage.xml
54
+ retention-days: 2
55
+ post:
56
+ runs-on: ubuntu-latest
57
+ needs: build
58
+ if: github.event.pull_request
59
+ steps:
60
+ - uses: actions/checkout@v4
61
+ - name: download covearge
62
+ uses: actions/download-artifact@v4
63
+ with:
64
+ name: code-coverage-report
65
+ - name: check coverage
66
+ run: |
67
+ if [ -f coverage.xml ]; then
68
+ echo "Coverage file exists"
69
+ else
70
+ echo "Coverage file does not exist"
71
+ exit 1
72
+ fi
73
+ - name: post covearge
74
+ uses: orgoro/coverage@v3.2
75
+ with:
76
+ coverageFile: coverage.xml
77
+ token: ${{ secrets.GITHUB_TOKEN }}
@@ -0,0 +1,48 @@
1
+ name: Deploy Devopment Branch Docs
2
+ on:
3
+ push:
4
+ branches:
5
+ - main
6
+
7
+ concurrency:
8
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
9
+ cancel-in-progress: true
10
+
11
+ jobs:
12
+ documentation:
13
+ name: Deploy dev documentation
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - uses: actions/checkout@v4
17
+ with:
18
+ fetch-depth: 0
19
+ - name: Install uv
20
+ uses: astral-sh/setup-uv@v5
21
+ with:
22
+ # Install a specific version of uv.
23
+ version: "0.5.1"
24
+ enable-cache: true
25
+ cache-dependency-glob: "uv.lock"
26
+ - name: Install Documentation dependencies
27
+ run: uv sync --group doc --index="https://${{ secrets.JFROG_USER}}:${{ secrets.JFROG_TOKEN }}@quera.jfrog.io/artifactory/api/pypi/kirin/simple/ https://${{ secrets.JFROG_USER}}:${{ secrets.JFROG_TOKEN }}@quera.jfrog.io/artifactory/api/pypi/quera-pypi-algo/simple/"
28
+ - name: Set up build cache
29
+ uses: actions/cache@v4
30
+ id: cache
31
+ with:
32
+ key: mkdocs-material-${{ github.ref }}
33
+ path: .cache
34
+ restore-keys: |
35
+ mkdocs-material-
36
+ # derived from:
37
+ # https://github.com/RemoteCloud/public-documentation/blob/dev/.github/workflows/build_docs.yml
38
+ - name: Configure Git user
39
+ run: |
40
+ git config --local user.email "github-actions[bot]@users.noreply.github.com"
41
+ git config --local user.name "github-actions[bot]"
42
+ - name: Deploy documentation
43
+ env:
44
+ GH_TOKEN: ${{ secrets.GH_TOKEN }}
45
+ GOOGLE_ANALYTICS_KEY: ${{ secrets.GOOGLE_ANALYTICS_KEY }}
46
+ run: |
47
+ git fetch origin gh-pages --depth=1
48
+ uv run mike deploy -p dev
@@ -0,0 +1,44 @@
1
+ name: Documentation (preview)
2
+ on:
3
+ pull_request:
4
+ types:
5
+ - opened
6
+ - reopened
7
+ - synchronize
8
+ - closed
9
+ concurrency:
10
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
11
+ cancel-in-progress: true
12
+
13
+ jobs:
14
+ documentation:
15
+ name: Deploy preview documentation
16
+ runs-on: ubuntu-latest
17
+ steps:
18
+ - uses: actions/checkout@v4
19
+ - name: Install uv
20
+ uses: astral-sh/setup-uv@v5
21
+ with:
22
+ # Install a specific version of uv.
23
+ version: "0.5.1"
24
+ enable-cache: true
25
+ cache-dependency-glob: "uv.lock"
26
+ - name: Install Documentation dependencies
27
+ run: uv sync --group doc --index="https://${{ secrets.JFROG_USER}}:${{ secrets.JFROG_TOKEN }}@quera.jfrog.io/artifactory/api/pypi/kirin/simple/ https://${{ secrets.JFROG_USER}}:${{ secrets.JFROG_TOKEN }}@quera.jfrog.io/artifactory/api/pypi/quera-pypi-algo/simple/"
28
+ - name: Set up build cache
29
+ uses: actions/cache@v4
30
+ id: cache
31
+ with:
32
+ key: mkdocs-material-${{ github.ref }}
33
+ path: .cache
34
+ restore-keys: |
35
+ mkdocs-material-
36
+ - name: Depoly documentation
37
+ env:
38
+ GH_TOKEN: ${{ secrets.GH_TOKEN }}
39
+ run: |
40
+ uv run mkdocs build
41
+ - name: Deploy preview
42
+ uses: rossjrw/pr-preview-action@v1
43
+ with:
44
+ source-dir: ./site
@@ -0,0 +1,18 @@
1
+ name: Run isort
2
+ on:
3
+ pull_request:
4
+ push:
5
+ branches:
6
+ - main
7
+ concurrency:
8
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
9
+ cancel-in-progress: true
10
+
11
+ jobs:
12
+ build:
13
+ runs-on: ubuntu-latest
14
+ steps:
15
+ - uses: actions/checkout@v4
16
+ - uses: isort/isort-action@v1
17
+ with:
18
+ sortPaths: "src" # only sort files in the src directory
@@ -0,0 +1,21 @@
1
+ name: Lint
2
+ on:
3
+ pull_request:
4
+ push:
5
+ branches:
6
+ - main
7
+ concurrency:
8
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
9
+ cancel-in-progress: true
10
+
11
+ jobs:
12
+ ruff:
13
+ runs-on: ubuntu-latest
14
+ steps:
15
+ - uses: actions/checkout@v4
16
+ - uses: chartboost/ruff-action@v1
17
+ black:
18
+ runs-on: ubuntu-latest
19
+ steps:
20
+ - uses: actions/checkout@v4
21
+ - uses: psf/black@stable
@@ -0,0 +1,53 @@
1
+ name: Deploy Release Docs
2
+ on:
3
+ push:
4
+ tags:
5
+ - "v*"
6
+
7
+ concurrency:
8
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
9
+ cancel-in-progress: true
10
+
11
+ jobs:
12
+ documentation:
13
+ name: Deploy release documentation
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - uses: actions/checkout@v4
17
+ with:
18
+ fetch-depth: 0
19
+ - name: Install uv
20
+ uses: astral-sh/setup-uv@v5
21
+ with:
22
+ # Install a specific version of uv.
23
+ version: "0.5.1"
24
+ enable-cache: true
25
+ cache-dependency-glob: "uv.lock"
26
+ - name: Install Documentation dependencies
27
+ run: uv sync --group doc --index="https://${{ secrets.JFROG_USER}}:${{ secrets.JFROG_TOKEN }}@quera.jfrog.io/artifactory/api/pypi/kirin/simple/ https://${{ secrets.JFROG_USER}}:${{ secrets.JFROG_TOKEN }}@quera.jfrog.io/artifactory/api/pypi/quera-pypi-algo/simple/"
28
+ - name: Set up build cache
29
+ uses: actions/cache@v4
30
+ id: cache
31
+ with:
32
+ key: mkdocs-material-${{ github.ref }}
33
+ path: .cache
34
+ restore-keys: |
35
+ mkdocs-material-
36
+ # derived from:
37
+ # https://github.com/RemoteCloud/public-documentation/blob/dev/.github/workflows/build_docs.yml
38
+ - name: Configure Git user
39
+ run: |
40
+ git config --local user.email "github-actions[bot]@users.noreply.github.com"
41
+ git config --local user.name "github-actions[bot]"
42
+ - name: Set release notes tag
43
+ run: |
44
+ export TAG_PATH=${{ github.ref }}
45
+ echo ${TAG_PATH}
46
+ echo "TAG_VERSION=${TAG_PATH##*/}" >> $GITHUB_ENV
47
+ echo ${TAG_VERSION}
48
+ - name: Deploy documentation
49
+ env:
50
+ GH_TOKEN: ${{ secrets.GH_TOKEN }}
51
+ run: |
52
+ git fetch origin gh-pages --depth=1
53
+ uv run mike deploy --update-alias --push ${TAG_VERSION} latest
@@ -0,0 +1,90 @@
1
+ name: Publish Python 🐍 distribution 📦 to PyPI and TestPyPI
2
+
3
+ on: push
4
+
5
+ jobs:
6
+ build:
7
+ name: Build distribution 📦
8
+ runs-on: ubuntu-latest
9
+
10
+ steps:
11
+ - uses: actions/checkout@v4
12
+ - name: Install uv
13
+ uses: astral-sh/setup-uv@v4
14
+ with:
15
+ # Install a specific version of uv.
16
+ version: "0.5.5"
17
+ - name: Install the project
18
+ run: uv sync --all-extras --dev
19
+ - name: Build distribution 📦
20
+ run: uv build
21
+ - name: Store the distribution packages
22
+ uses: actions/upload-artifact@v4
23
+ with:
24
+ name: python-package-distributions
25
+ path: dist/
26
+
27
+ publish-to-pypi:
28
+ name: >-
29
+ Publish Python 🐍 distribution 📦 to PyPI
30
+ if: startsWith(github.ref, 'refs/tags/') # only publish to PyPI on tag pushes
31
+ needs:
32
+ - build
33
+ runs-on: ubuntu-latest
34
+ environment:
35
+ name: pypi
36
+ url: https://pypi.org/p/kirin-toolchain # Replace <package-name> with your PyPI project name
37
+ permissions:
38
+ id-token: write # IMPORTANT: mandatory for trusted publishing
39
+
40
+ steps:
41
+ - name: Download all the dists
42
+ uses: actions/download-artifact@v4
43
+ with:
44
+ name: python-package-distributions
45
+ path: dist/
46
+ - name: Publish distribution 📦 to PyPI
47
+ uses: pypa/gh-action-pypi-publish@release/v1
48
+
49
+ github-release:
50
+ name: >-
51
+ Sign the Python 🐍 distribution 📦 with Sigstore
52
+ and upload them to GitHub Release
53
+ needs:
54
+ - publish-to-pypi
55
+ runs-on: ubuntu-latest
56
+
57
+ permissions:
58
+ contents: write # IMPORTANT: mandatory for making GitHub Releases
59
+ id-token: write # IMPORTANT: mandatory for sigstore
60
+
61
+ steps:
62
+ - name: Download all the dists
63
+ uses: actions/download-artifact@v4
64
+ with:
65
+ name: python-package-distributions
66
+ path: dist/
67
+ - name: Sign the dists with Sigstore
68
+ uses: sigstore/gh-action-sigstore-python@v3.0.0
69
+ with:
70
+ inputs: >-
71
+ ./dist/*.tar.gz
72
+ ./dist/*.whl
73
+ - name: Create GitHub Release
74
+ env:
75
+ GITHUB_TOKEN: ${{ github.token }}
76
+ run: >-
77
+ gh release create
78
+ '${{ github.ref_name }}'
79
+ --repo '${{ github.repository }}'
80
+ --notes ""
81
+ - name: Upload artifact signatures to GitHub Release
82
+ env:
83
+ GITHUB_TOKEN: ${{ github.token }}
84
+ # Upload to GitHub Release using the `gh` CLI.
85
+ # `dist/` contains the built packages, and the
86
+ # sigstore-produced signatures and certificates.
87
+ run: >-
88
+ gh release upload
89
+ '${{ github.ref_name }}' dist/**
90
+ --repo '${{ github.repository }}'
@@ -0,0 +1,189 @@
1
+ # random
2
+ job.json
3
+ out.txt
4
+ .DS_Store
5
+ tests/data/jobs/
6
+ main.html
7
+ debug/
8
+
9
+ **/flair-python.code-workspace
10
+
11
+ # Byte-compiled / optimized / DLL files
12
+ __pycache__/
13
+ *.py[cod]
14
+ *$py.class
15
+
16
+ # C extensions
17
+ *.so
18
+
19
+ # Distribution / packaging
20
+ .Python
21
+ build/
22
+ develop-eggs/
23
+ dist/
24
+ downloads/
25
+ eggs/
26
+ .eggs/
27
+ lib/
28
+ lib64/
29
+ parts/
30
+ sdist/
31
+ var/
32
+ wheels/
33
+ share/python-wheels/
34
+ *.egg-info/
35
+ .installed.cfg
36
+ *.egg
37
+ MANIFEST
38
+
39
+ # PyInstaller
40
+ # Usually these files are written by a python script from a template
41
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
42
+ *.manifest
43
+ *.spec
44
+
45
+ # Installer logs
46
+ pip-log.txt
47
+ pip-delete-this-directory.txt
48
+
49
+ # Unit test / coverage reports
50
+ htmlcov/
51
+ .tox/
52
+ .nox/
53
+ .coverage
54
+ .coverage.*
55
+ .cache
56
+ nosetests.xml
57
+ coverage.xml
58
+ *.cover
59
+ *.py,cover
60
+ .hypothesis/
61
+ .pytest_cache/
62
+ cover/
63
+
64
+ # Translations
65
+ *.mo
66
+ *.pot
67
+
68
+ # Django stuff:
69
+ *.log
70
+ local_settings.py
71
+ db.sqlite3
72
+ db.sqlite3-journal
73
+
74
+ # Flask stuff:
75
+ instance/
76
+ .webassets-cache
77
+
78
+ # Scrapy stuff:
79
+ .scrapy
80
+
81
+ # Sphinx documentation
82
+ docs/_build/
83
+
84
+ # doc slides
85
+ docs/slides/**/**.pdf
86
+ docs/slides/build/**/**.png
87
+ **/**/**.pptx
88
+
89
+ # mkdocs
90
+ site/
91
+ docs/reference/bloqade/
92
+
93
+ # PyBuilder
94
+ .pybuilder/
95
+ target/
96
+
97
+ # Jupyter Notebook
98
+ .ipynb_checkpoints
99
+
100
+ # IPython
101
+ profile_default/
102
+ ipython_config.py
103
+
104
+ # pyenv
105
+ # For a library or package, you might want to ignore these files since the code is
106
+ # intended to run in multiple environments; otherwise, check them in:
107
+ # .python-version
108
+
109
+ # pipenv
110
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
111
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
112
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
113
+ # install all needed dependencies.
114
+ #Pipfile.lock
115
+
116
+ # poetry
117
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
118
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
119
+ # commonly ignored for libraries.
120
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
121
+ #poetry.lock
122
+
123
+ # pdm
124
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
125
+ #pdm.lock
126
+ # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
127
+ # in version control.
128
+ # https://pdm.fming.dev/#use-with-ide
129
+ .pdm.toml
130
+
131
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
132
+ __pypackages__/
133
+
134
+ # Celery stuff
135
+ celerybeat-schedule
136
+ celerybeat.pid
137
+
138
+ # SageMath parsed files
139
+ *.sage.py
140
+
141
+ # Environments
142
+ .env
143
+ .venv*
144
+ env/
145
+ venv/
146
+ ENV/
147
+ env.bak/
148
+ venv.bak/
149
+
150
+ # Spyder project settings
151
+ .spyderproject
152
+ .spyproject
153
+
154
+ # Rope project settings
155
+ .ropeproject
156
+
157
+ # mkdocs documentation
158
+ /site
159
+
160
+ # mypy
161
+ .mypy_cache/
162
+ .dmypy.json
163
+ dmypy.json
164
+
165
+ # Pyre type checker
166
+ .pyre/
167
+
168
+ # pytype static type analyzer
169
+ .pytype/
170
+
171
+ # Cython debug symbols
172
+ cython_debug/
173
+
174
+ # PyCharm
175
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
176
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
177
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
178
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
179
+ #.idea/
180
+
181
+ .vscode
182
+ !.vscode/settings.json
183
+ .pdm-python
184
+ main.py
185
+ *.ipynb
186
+ *.json
187
+ .ruff_cache
188
+ .python-version
189
+ !package.json
@@ -0,0 +1,24 @@
1
+ # See https://pre-commit.com for more information
2
+ # See https://pre-commit.com/hooks.html for more hooks
3
+ repos:
4
+ - repo: https://github.com/pre-commit/pre-commit-hooks
5
+ rev: v5.0.0
6
+ hooks:
7
+ - id: check-yaml
8
+ args: ['--unsafe']
9
+ - id: end-of-file-fixer
10
+ - id: trailing-whitespace
11
+ - repo: https://github.com/pycqa/isort
12
+ rev: 5.13.2
13
+ hooks:
14
+ - id: isort
15
+ name: isort (python)
16
+ - repo: https://github.com/psf/black
17
+ rev: 24.10.0
18
+ hooks:
19
+ - id: black
20
+ - repo: https://github.com/charliermarsh/ruff-pre-commit
21
+ # Ruff version.
22
+ rev: "v0.7.1"
23
+ hooks:
24
+ - id: ruff