textforgers 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 (230) hide show
  1. textforgers-0.1.0/.github/workflows/ci.yml +123 -0
  2. textforgers-0.1.0/.gitignore +9 -0
  3. textforgers-0.1.0/Cargo.lock +726 -0
  4. textforgers-0.1.0/Cargo.toml +22 -0
  5. textforgers-0.1.0/LICENSE +674 -0
  6. textforgers-0.1.0/PKG-INFO +132 -0
  7. textforgers-0.1.0/README.md +116 -0
  8. textforgers-0.1.0/docs/architecture.md +63 -0
  9. textforgers-0.1.0/docs/development.md +94 -0
  10. textforgers-0.1.0/docs/releasing.md +44 -0
  11. textforgers-0.1.0/pyproject.toml +59 -0
  12. textforgers-0.1.0/python/textforge/__init__.py +212 -0
  13. textforgers-0.1.0/python/textforge/_native.pyi +58 -0
  14. textforgers-0.1.0/python/textforge/py.typed +0 -0
  15. textforgers-0.1.0/scripts/check.py +42 -0
  16. textforgers-0.1.0/src/lib.rs +357 -0
  17. textforgers-0.1.0/tests/test_api.py +230 -0
  18. textforgers-0.1.0/vendor/CORE_REVISION +1 -0
  19. textforgers-0.1.0/vendor/textforge/Cargo.lock +726 -0
  20. textforgers-0.1.0/vendor/textforge/Cargo.toml +48 -0
  21. textforgers-0.1.0/vendor/textforge/LICENSE +674 -0
  22. textforgers-0.1.0/vendor/textforge/README.md +335 -0
  23. textforgers-0.1.0/vendor/textforge/pipelines/batch-io/mixed-64.tft +64 -0
  24. textforgers-0.1.0/vendor/textforge/pipelines/batch-io/read-copy.tft +1 -0
  25. textforgers-0.1.0/vendor/textforge/pipelines/benchmark-comparison/normalize.tft +4 -0
  26. textforgers-0.1.0/vendor/textforge/pipelines/benchmark-comparison/wrap.tft +2 -0
  27. textforgers-0.1.0/vendor/textforge/pipelines/safe-file-io/mixed-64.tft +64 -0
  28. textforgers-0.1.0/vendor/textforge/pipelines/safe-file-io/read-copy.tft +1 -0
  29. textforgers-0.1.0/vendor/textforge/pipelines/steps-345/large-256.tft +256 -0
  30. textforgers-0.1.0/vendor/textforge/pipelines/steps-345/large-64.tft +64 -0
  31. textforgers-0.1.0/vendor/textforge/pipelines/steps-345/prepared-constants.tft +128 -0
  32. textforgers-0.1.0/vendor/textforge/pipelines/text/pipeline1.textforge +10 -0
  33. textforgers-0.1.0/vendor/textforge/pipelines/text/simple_pipeline.textforge +3 -0
  34. textforgers-0.1.0/vendor/textforge/pipelines/watcher-reliability/collection.tft +1 -0
  35. textforgers-0.1.0/vendor/textforge/pipelines/watcher-reliability/large-256.tft +256 -0
  36. textforgers-0.1.0/vendor/textforge/pipelines/watcher-reliability/large-64.tft +64 -0
  37. textforgers-0.1.0/vendor/textforge/src/api/block_builder.rs +73 -0
  38. textforgers-0.1.0/vendor/textforge/src/api/builder/test.rs +372 -0
  39. textforgers-0.1.0/vendor/textforge/src/api/builder/tree.rs +124 -0
  40. textforgers-0.1.0/vendor/textforge/src/api/builder.rs +83 -0
  41. textforgers-0.1.0/vendor/textforge/src/api/conditional_builder.rs +58 -0
  42. textforgers-0.1.0/vendor/textforge/src/api/mod.rs +1945 -0
  43. textforgers-0.1.0/vendor/textforge/src/api/portable/buffered.rs +277 -0
  44. textforgers-0.1.0/vendor/textforge/src/api/portable/error.rs +82 -0
  45. textforgers-0.1.0/vendor/textforge/src/api/portable/instruction.rs +222 -0
  46. textforgers-0.1.0/vendor/textforge/src/api/portable/mod.rs +187 -0
  47. textforgers-0.1.0/vendor/textforge/src/api/portable/path.rs +88 -0
  48. textforgers-0.1.0/vendor/textforge/src/api/portable/processor.rs +296 -0
  49. textforgers-0.1.0/vendor/textforge/src/api/portable/watchers.rs +216 -0
  50. textforgers-0.1.0/vendor/textforge/src/api/processor/buffered/adapter_tests.rs +172 -0
  51. textforgers-0.1.0/vendor/textforge/src/api/processor/buffered.rs +388 -0
  52. textforgers-0.1.0/vendor/textforge/src/api/processor/file_io.rs +137 -0
  53. textforgers-0.1.0/vendor/textforge/src/api/processor.rs +1162 -0
  54. textforgers-0.1.0/vendor/textforge/src/api/text_buffer/test.rs +210 -0
  55. textforgers-0.1.0/vendor/textforge/src/api/text_buffer.rs +519 -0
  56. textforgers-0.1.0/vendor/textforge/src/bin/atp-game.rs +1 -0
  57. textforgers-0.1.0/vendor/textforge/src/bin/atp-shell.rs +1 -0
  58. textforgers-0.1.0/vendor/textforge/src/bytecode/mod.rs +2 -0
  59. textforgers-0.1.0/vendor/textforge/src/bytecode/reader.rs +645 -0
  60. textforgers-0.1.0/vendor/textforge/src/bytecode/writer.rs +154 -0
  61. textforgers-0.1.0/vendor/textforge/src/context/execution_context.rs +208 -0
  62. textforgers-0.1.0/vendor/textforge/src/context/mod.rs +2 -0
  63. textforgers-0.1.0/vendor/textforge/src/context/static_context.rs +1 -0
  64. textforgers-0.1.0/vendor/textforge/src/globals/mod.rs +1 -0
  65. textforgers-0.1.0/vendor/textforge/src/globals/table.rs +524 -0
  66. textforgers-0.1.0/vendor/textforge/src/lib.rs +38 -0
  67. textforgers-0.1.0/vendor/textforge/src/macros/mod.rs +2 -0
  68. textforgers-0.1.0/vendor/textforge/src/macros/parse_args.rs +87 -0
  69. textforgers-0.1.0/vendor/textforge/src/macros/to_bytecode.rs +78 -0
  70. textforgers-0.1.0/vendor/textforge/src/main.rs +310 -0
  71. textforgers-0.1.0/vendor/textforge/src/parser/mod.rs +3 -0
  72. textforgers-0.1.0/vendor/textforge/src/parser/params.rs +964 -0
  73. textforgers-0.1.0/vendor/textforge/src/parser/resolve_var/preparation_test.rs +155 -0
  74. textforgers-0.1.0/vendor/textforge/src/parser/resolve_var.rs +438 -0
  75. textforgers-0.1.0/vendor/textforge/src/parser/structure/rules.rs +256 -0
  76. textforgers-0.1.0/vendor/textforge/src/parser/structure/test.rs +94 -0
  77. textforgers-0.1.0/vendor/textforge/src/parser/structure.rs +57 -0
  78. textforgers-0.1.0/vendor/textforge/src/text/mod.rs +2 -0
  79. textforgers-0.1.0/vendor/textforge/src/text/reader.rs +146 -0
  80. textforgers-0.1.0/vendor/textforge/src/text/writer.rs +48 -0
  81. textforgers-0.1.0/vendor/textforge/src/tokens/instructions/blk/mod.rs +123 -0
  82. textforgers-0.1.0/vendor/textforge/src/tokens/instructions/blk/test.rs +333 -0
  83. textforgers-0.1.0/vendor/textforge/src/tokens/instructions/cblk/mod.rs +95 -0
  84. textforgers-0.1.0/vendor/textforge/src/tokens/instructions/cblk/test.rs +335 -0
  85. textforgers-0.1.0/vendor/textforge/src/tokens/instructions/end/mod.rs +89 -0
  86. textforgers-0.1.0/vendor/textforge/src/tokens/instructions/end/test.rs +1 -0
  87. textforgers-0.1.0/vendor/textforge/src/tokens/instructions/eval/mod.rs +114 -0
  88. textforgers-0.1.0/vendor/textforge/src/tokens/instructions/eval/test.rs +512 -0
  89. textforgers-0.1.0/vendor/textforge/src/tokens/instructions/ifdc/mod.rs +118 -0
  90. textforgers-0.1.0/vendor/textforge/src/tokens/instructions/ifdc/test.rs +72 -0
  91. textforgers-0.1.0/vendor/textforge/src/tokens/instructions/iter/mod.rs +90 -0
  92. textforgers-0.1.0/vendor/textforge/src/tokens/instructions/iter/test.rs +1 -0
  93. textforgers-0.1.0/vendor/textforge/src/tokens/instructions/mod.rs +10 -0
  94. textforgers-0.1.0/vendor/textforge/src/tokens/instructions/mutv/mod.rs +103 -0
  95. textforgers-0.1.0/vendor/textforge/src/tokens/instructions/mutv/test.rs +346 -0
  96. textforgers-0.1.0/vendor/textforge/src/tokens/instructions/null/mod.rs +67 -0
  97. textforgers-0.1.0/vendor/textforge/src/tokens/instructions/null/test.rs +1 -0
  98. textforgers-0.1.0/vendor/textforge/src/tokens/instructions/val/mod.rs +108 -0
  99. textforgers-0.1.0/vendor/textforge/src/tokens/instructions/val/test.rs +360 -0
  100. textforgers-0.1.0/vendor/textforge/src/tokens/instructions/var/mod.rs +108 -0
  101. textforgers-0.1.0/vendor/textforge/src/tokens/instructions/var/test.rs +240 -0
  102. textforgers-0.1.0/vendor/textforge/src/tokens/mod.rs +98 -0
  103. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/atb/mod.rs +107 -0
  104. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/atb/test.rs +227 -0
  105. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/ate/mod.rs +104 -0
  106. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/ate/test.rs +167 -0
  107. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/cfw/mod.rs +69 -0
  108. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/cfw/test.rs +133 -0
  109. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/clw/mod.rs +79 -0
  110. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/clw/test.rs +147 -0
  111. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/ctc/mod.rs +159 -0
  112. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/ctc/test.rs +213 -0
  113. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/ctr/mod.rs +128 -0
  114. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/ctr/test.rs +202 -0
  115. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/cts/mod.rs +108 -0
  116. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/cts/test.rs +179 -0
  117. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/dla/mod.rs +100 -0
  118. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/dla/test.rs +189 -0
  119. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/dlb/mod.rs +106 -0
  120. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/dlb/test.rs +169 -0
  121. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/dlc/mod.rs +139 -0
  122. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/dlc/test.rs +185 -0
  123. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/dlf/mod.rs +82 -0
  124. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/dlf/test.rs +141 -0
  125. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/dll/mod.rs +76 -0
  126. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/dll/test.rs +142 -0
  127. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/dls/mod.rs +96 -0
  128. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/dls/test.rs +194 -0
  129. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/emj/mod.rs +142 -0
  130. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/emj/test.rs +255 -0
  131. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/htmle/mod.rs +77 -0
  132. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/htmle/test.rs +133 -0
  133. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/htmlu/mod.rs +76 -0
  134. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/htmlu/test.rs +147 -0
  135. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/ins/mod.rs +121 -0
  136. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/ins/test.rs +216 -0
  137. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/jcmc/mod.rs +80 -0
  138. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/jcmc/test.rs +150 -0
  139. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/jkbc/mod.rs +82 -0
  140. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/jkbc/test.rs +147 -0
  141. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/jpsc/mod.rs +75 -0
  142. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/jpsc/test.rs +147 -0
  143. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/jsnc/mod.rs +82 -0
  144. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/jsnc/test.rs +145 -0
  145. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/jsone/mod.rs +80 -0
  146. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/jsone/test.rs +155 -0
  147. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/jsonu/mod.rs +80 -0
  148. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/jsonu/test.rs +175 -0
  149. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/mod.rs +52 -0
  150. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/padl/mod.rs +104 -0
  151. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/padl/test.rs +210 -0
  152. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/padr/mod.rs +103 -0
  153. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/padr/test.rs +177 -0
  154. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/raw/mod.rs +146 -0
  155. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/raw/test.rs +212 -0
  156. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/rcw/mod.rs +165 -0
  157. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/rcw/test.rs +239 -0
  158. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/rev/mod.rs +65 -0
  159. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/rev/test.rs +126 -0
  160. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/rfw/mod.rs +144 -0
  161. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/rfw/test.rs +218 -0
  162. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/rlw/mod.rs +150 -0
  163. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/rlw/test.rs +232 -0
  164. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/rmp/mod.rs +102 -0
  165. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/rmp/test.rs +1 -0
  166. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/rmws/mod.rs +68 -0
  167. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/rmws/test.rs +137 -0
  168. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/rnw/mod.rs +164 -0
  169. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/rnw/test.rs +289 -0
  170. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/rpt/mod.rs +128 -0
  171. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/rpt/test.rs +183 -0
  172. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/rtl/mod.rs +98 -0
  173. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/rtl/test.rs +192 -0
  174. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/rtr/mod.rs +99 -0
  175. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/rtr/test.rs +193 -0
  176. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/slt/mod.rs +119 -0
  177. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/slt/test.rs +125 -0
  178. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/splc/mod.rs +73 -0
  179. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/splc/test.rs +124 -0
  180. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/sslt/mod.rs +138 -0
  181. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/sslt/test.rs +122 -0
  182. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/tbs/mod.rs +72 -0
  183. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/tbs/test.rs +136 -0
  184. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/tla/mod.rs +71 -0
  185. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/tla/test.rs +128 -0
  186. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/tlcc/mod.rs +122 -0
  187. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/tlcc/test.rs +110 -0
  188. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/tlcs/mod.rs +105 -0
  189. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/tlcs/test.rs +101 -0
  190. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/tlcw/mod.rs +100 -0
  191. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/tlcw/test.rs +101 -0
  192. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/tls/mod.rs +73 -0
  193. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/tls/test.rs +136 -0
  194. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/trs/mod.rs +73 -0
  195. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/trs/test.rs +153 -0
  196. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/tua/mod.rs +58 -0
  197. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/tua/test.rs +127 -0
  198. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/tucc/mod.rs +119 -0
  199. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/tucc/test.rs +87 -0
  200. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/tucs/mod.rs +102 -0
  201. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/tucs/test.rs +87 -0
  202. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/tucw/mod.rs +100 -0
  203. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/tucw/test.rs +87 -0
  204. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/urld/mod.rs +107 -0
  205. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/urld/test.rs +189 -0
  206. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/urle/mod.rs +73 -0
  207. textforgers-0.1.0/vendor/textforge/src/tokens/transforms/urle/test.rs +154 -0
  208. textforgers-0.1.0/vendor/textforge/src/utils/apply.rs +22 -0
  209. textforgers-0.1.0/vendor/textforge/src/utils/cli.rs +178 -0
  210. textforgers-0.1.0/vendor/textforge/src/utils/errors.rs +746 -0
  211. textforgers-0.1.0/vendor/textforge/src/utils/expr.rs +157 -0
  212. textforgers-0.1.0/vendor/textforge/src/utils/mod.rs +11 -0
  213. textforgers-0.1.0/vendor/textforge/src/utils/regexes.rs +16 -0
  214. textforgers-0.1.0/vendor/textforge/src/utils/test_helpers.rs +113 -0
  215. textforgers-0.1.0/vendor/textforge/src/utils/transforms.rs +295 -0
  216. textforgers-0.1.0/vendor/textforge/src/utils/validations.rs +482 -0
  217. textforgers-0.1.0/vendor/textforge/src/watchers/default_watchers.rs +226 -0
  218. textforgers-0.1.0/vendor/textforge/src/watchers/mod.rs +552 -0
  219. textforgers-0.1.0/vendor/textforge/src/watchers/shared_statistics.rs +180 -0
  220. textforgers-0.1.0/vendor/textforge/src/watchers/test.rs +414 -0
  221. textforgers-0.1.0/vendor/textforge/tests/allocation_failures.rs +52 -0
  222. textforgers-0.1.0/vendor/textforge/tests/benchmark.rs +144 -0
  223. textforgers-0.1.0/vendor/textforge/tests/buffered.rs +253 -0
  224. textforgers-0.1.0/vendor/textforge/tests/buffered_pressure.rs +49 -0
  225. textforgers-0.1.0/vendor/textforge/tests/bytecode.rs +261 -0
  226. textforgers-0.1.0/vendor/textforge/tests/params.rs +359 -0
  227. textforgers-0.1.0/vendor/textforge/tests/portable.rs +353 -0
  228. textforgers-0.1.0/vendor/textforge/tests/portable_processor.rs +450 -0
  229. textforgers-0.1.0/vendor/textforge/tests/processor.rs +181 -0
  230. textforgers-0.1.0/vendor/textforge/tests/safe_file_io.rs +173 -0
@@ -0,0 +1,123 @@
1
+ name: Python bindings
2
+
3
+ on:
4
+ push:
5
+ pull_request:
6
+ workflow_dispatch:
7
+ inputs:
8
+ destination:
9
+ description: Package index (publishing requires environment approval)
10
+ type: choice
11
+ default: none
12
+ options: [none, testpypi, pypi]
13
+
14
+ permissions:
15
+ contents: read
16
+
17
+ jobs:
18
+ quality:
19
+ runs-on: ubuntu-latest
20
+ steps:
21
+ - uses: actions/checkout@v4
22
+ - uses: actions/setup-python@v5
23
+ with:
24
+ python-version: "3.12"
25
+ - uses: dtolnay/rust-toolchain@stable
26
+ with:
27
+ components: rustfmt, clippy
28
+ - run: python -m pip install maturin pytest ruff mypy
29
+ - run: maturin build --locked --out dist
30
+ - run: python -m pip install --no-index --find-links dist textforgers
31
+ - run: python scripts/check.py
32
+
33
+ wheels:
34
+ strategy:
35
+ fail-fast: false
36
+ matrix:
37
+ os: [ubuntu-latest, windows-latest, macos-14]
38
+ runs-on: ${{ matrix.os }}
39
+ steps:
40
+ - uses: actions/checkout@v4
41
+ - uses: actions/setup-python@v5
42
+ with:
43
+ python-version: "3.10"
44
+ - uses: PyO3/maturin-action@v1
45
+ with:
46
+ command: build
47
+ args: --release --locked --out dist
48
+ manylinux: auto
49
+ - run: python -m pip install pytest
50
+ - run: python -m pip install --no-index --find-links dist textforgers
51
+ - run: python -m pytest
52
+ - uses: actions/upload-artifact@v4
53
+ with:
54
+ name: wheels-${{ matrix.os }}
55
+ path: dist/*.whl
56
+
57
+ python-versions:
58
+ runs-on: ubuntu-latest
59
+ needs: wheels
60
+ strategy:
61
+ matrix:
62
+ python: ["3.12", "3.14"]
63
+ steps:
64
+ - uses: actions/checkout@v4
65
+ - uses: actions/setup-python@v5
66
+ with:
67
+ python-version: ${{ matrix.python }}
68
+ - uses: actions/download-artifact@v4
69
+ with:
70
+ name: wheels-ubuntu-latest
71
+ path: dist
72
+ - run: python -m pip install pytest
73
+ - run: python -m pip install --no-index --find-links dist textforgers
74
+ - run: python -m pytest
75
+
76
+ sdist:
77
+ runs-on: ubuntu-latest
78
+ steps:
79
+ - uses: actions/checkout@v4
80
+ - uses: actions/setup-python@v5
81
+ with:
82
+ python-version: "3.12"
83
+ - uses: dtolnay/rust-toolchain@stable
84
+ - run: python -m pip install maturin pytest twine
85
+ - run: maturin sdist --out dist
86
+ - run: python -m twine check dist/*
87
+ - name: Rebuild and test outside the checkout
88
+ shell: bash
89
+ run: |
90
+ mkdir "$RUNNER_TEMP/sdist-check"
91
+ tar -xzf dist/*.tar.gz -C "$RUNNER_TEMP/sdist-check"
92
+ cd "$RUNNER_TEMP"/sdist-check/textforgers-*
93
+ maturin build --release --locked --out wheels
94
+ python -m pip install --no-index --find-links wheels textforgers
95
+ python -m pytest
96
+ - uses: actions/upload-artifact@v4
97
+ with:
98
+ name: sdist
99
+ path: dist/*.tar.gz
100
+
101
+ publish:
102
+ if: github.event_name == 'workflow_dispatch' && inputs.destination != 'none'
103
+ needs: [quality, wheels, python-versions, sdist]
104
+ runs-on: ubuntu-latest
105
+ environment: ${{ inputs.destination }}
106
+ permissions:
107
+ id-token: write
108
+ steps:
109
+ - uses: actions/download-artifact@v4
110
+ with:
111
+ pattern: wheels-*
112
+ merge-multiple: true
113
+ path: dist
114
+ - uses: actions/download-artifact@v4
115
+ with:
116
+ name: sdist
117
+ path: dist
118
+ - uses: pypa/gh-action-pypi-publish@release/v1
119
+ if: inputs.destination == 'testpypi'
120
+ with:
121
+ repository-url: https://test.pypi.org/legacy/
122
+ - uses: pypa/gh-action-pypi-publish@release/v1
123
+ if: inputs.destination == 'pypi'
@@ -0,0 +1,9 @@
1
+ target/
2
+ /dist/
3
+ /.venv/
4
+ __pycache__/
5
+ *.so
6
+ *.pyd
7
+ .pytest_cache/
8
+ .mypy_cache/
9
+ .ruff_cache/