codetool-shell 0.1.1__py3-none-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. codetool_shell/__init__.py +11 -0
  2. codetool_shell/api.py +59 -0
  3. codetool_shell/bin/windows-x86_64/codetool-shell-rust.exe +0 -0
  4. codetool_shell/filters/__init__.py +14 -0
  5. codetool_shell/filters/build_compiler/__init__.py +7 -0
  6. codetool_shell/filters/build_compiler/detector.py +412 -0
  7. codetool_shell/filters/build_compiler/reducer.py +166 -0
  8. codetool_shell/filters/build_compiler/summary.py +617 -0
  9. codetool_shell/filters/ci_job_log/__init__.py +7 -0
  10. codetool_shell/filters/ci_job_log/detector.py +64 -0
  11. codetool_shell/filters/ci_job_log/reducer.py +99 -0
  12. codetool_shell/filters/ci_job_log/summary.py +243 -0
  13. codetool_shell/filters/diff/__init__.py +7 -0
  14. codetool_shell/filters/diff/detector.py +136 -0
  15. codetool_shell/filters/diff/reducer.py +308 -0
  16. codetool_shell/filters/generic_log/__init__.py +7 -0
  17. codetool_shell/filters/generic_log/detector.py +175 -0
  18. codetool_shell/filters/generic_log/reducer.py +99 -0
  19. codetool_shell/filters/generic_log/summary.py +161 -0
  20. codetool_shell/filters/git.py +514 -0
  21. codetool_shell/filters/html_cleanup/__init__.py +7 -0
  22. codetool_shell/filters/html_cleanup/detector.py +136 -0
  23. codetool_shell/filters/html_cleanup/reducer.py +27 -0
  24. codetool_shell/filters/html_cleanup/summary.py +422 -0
  25. codetool_shell/filters/json_payload/__init__.py +7 -0
  26. codetool_shell/filters/json_payload/detector.py +62 -0
  27. codetool_shell/filters/json_payload/reducer.py +81 -0
  28. codetool_shell/filters/json_payload/summary.py +233 -0
  29. codetool_shell/filters/listing/__init__.py +7 -0
  30. codetool_shell/filters/listing/detector.py +294 -0
  31. codetool_shell/filters/listing/reducer.py +30 -0
  32. codetool_shell/filters/log_template/__init__.py +7 -0
  33. codetool_shell/filters/log_template/constants.py +76 -0
  34. codetool_shell/filters/log_template/detector.py +331 -0
  35. codetool_shell/filters/log_template/reducer.py +78 -0
  36. codetool_shell/filters/log_template/template.py +280 -0
  37. codetool_shell/filters/log_template/types.py +21 -0
  38. codetool_shell/filters/opaque_payload/__init__.py +7 -0
  39. codetool_shell/filters/opaque_payload/detector.py +563 -0
  40. codetool_shell/filters/opaque_payload/reducer.py +142 -0
  41. codetool_shell/filters/opaque_payload/summary.py +61 -0
  42. codetool_shell/filters/package_manager/__init__.py +7 -0
  43. codetool_shell/filters/package_manager/detector.py +220 -0
  44. codetool_shell/filters/package_manager/reducer.py +110 -0
  45. codetool_shell/filters/package_manager/summary.py +172 -0
  46. codetool_shell/filters/pipeline.py +65 -0
  47. codetool_shell/filters/rg.py +250 -0
  48. codetool_shell/filters/system_output/__init__.py +7 -0
  49. codetool_shell/filters/system_output/detector.py +600 -0
  50. codetool_shell/filters/system_output/reducer.py +331 -0
  51. codetool_shell/filters/system_output/summary.py +164 -0
  52. codetool_shell/filters/table/__init__.py +7 -0
  53. codetool_shell/filters/table/detector.py +244 -0
  54. codetool_shell/filters/table/reducer.py +57 -0
  55. codetool_shell/filters/table/summary.py +37 -0
  56. codetool_shell/filters/test_runner/__init__.py +7 -0
  57. codetool_shell/filters/test_runner/ansi.py +80 -0
  58. codetool_shell/filters/test_runner/detector.py +409 -0
  59. codetool_shell/filters/test_runner/reducer.py +288 -0
  60. codetool_shell/filters/test_runner/summary.py +449 -0
  61. codetool_shell/filters/text.py +38 -0
  62. codetool_shell/filters/traceback/__init__.py +7 -0
  63. codetool_shell/filters/traceback/detector.py +209 -0
  64. codetool_shell/filters/traceback/reducer.py +141 -0
  65. codetool_shell/filters/traceback/summary.py +122 -0
  66. codetool_shell/filters/tree.py +59 -0
  67. codetool_shell/py.typed +0 -0
  68. codetool_shell/python_backend.py +38 -0
  69. codetool_shell/rust_backend.py +254 -0
  70. codetool_shell-0.1.1.dist-info/METADATA +152 -0
  71. codetool_shell-0.1.1.dist-info/RECORD +72 -0
  72. codetool_shell-0.1.1.dist-info/WHEEL +4 -0
@@ -0,0 +1,152 @@
1
+ Metadata-Version: 2.4
2
+ Name: codetool-shell
3
+ Version: 0.1.1
4
+ Summary: Compress shell output text with Python and optional Rust backends
5
+ Project-URL: Homepage, https://github.com/pbi-agent/codetool-shell
6
+ Project-URL: Repository, https://github.com/pbi-agent/codetool-shell
7
+ Project-URL: Issues, https://github.com/pbi-agent/codetool-shell/issues
8
+ Project-URL: Changelog, https://github.com/pbi-agent/codetool-shell/releases
9
+ Author-email: drod <naceur.bs@gmail.com>
10
+ Maintainer-email: drod <naceur.bs@gmail.com>
11
+ Keywords: agent,compression,developer-tools,llm,rust,shell,terminal
12
+ Classifier: Development Status :: 3 - Alpha
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: Operating System :: MacOS
15
+ Classifier: Operating System :: Microsoft :: Windows
16
+ Classifier: Operating System :: POSIX :: Linux
17
+ Classifier: Programming Language :: Python :: 3
18
+ Classifier: Programming Language :: Python :: 3 :: Only
19
+ Classifier: Programming Language :: Rust
20
+ Classifier: Topic :: Software Development
21
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
22
+ Classifier: Topic :: System :: Shells
23
+ Classifier: Topic :: Text Processing
24
+ Classifier: Typing :: Typed
25
+ Requires-Python: >=3.9
26
+ Description-Content-Type: text/markdown
27
+
28
+ # codetool-shell
29
+
30
+ Python interface library for compressing plain shell-output text before it is
31
+ returned to an LLM/tool consumer.
32
+
33
+ ```python
34
+ from codetool_shell import compress_text
35
+
36
+ compressed = compress_text("one \n\n\n two\t\n")
37
+ print(compressed)
38
+ ```
39
+
40
+ The core pipeline is intentionally conservative:
41
+
42
+ - normalize CRLF/CR line endings to LF
43
+ - trim trailing whitespace on each line
44
+ - run dedicated output filters only when they make the text smaller
45
+ - collapse repeated blank lines to `max_blank_lines` (default: `1`)
46
+
47
+ Initial dedicated filters cover:
48
+
49
+ - git output: short and long status, tabbed name-status, diff stats, and patch
50
+ hunks/binary-patch payloads with verbose unchanged or encoded context
51
+ summarized
52
+ - test-runner output: conservative ANSI-aware pytest (including quiet
53
+ progress/summary output), unittest-like, vitest-like, Playwright, and
54
+ cargo-test summaries that preserve failure identifiers, assertion/error text,
55
+ source locations, artifacts/traces, and final totals
56
+ - CI/job logs: conservative GitHub Actions / `gh run`-style summaries that
57
+ collapse repeated timestamped step noise while preserving step names,
58
+ annotations, warnings/errors, file locations, artifact/URL/path references,
59
+ and job/workflow conclusions
60
+ - standalone Python tracebacks: conservative traceback summaries that preserve
61
+ exception type/message, file stack frames, chained-exception separators,
62
+ source/caret context, and small command noise while collapsing repeated or
63
+ internal stack frames
64
+ - structured tables: conservative psql, SQLite/column, MySQL boxed, and long
65
+ Markdown pipe table summaries that preserve headers, footers, first/last
66
+ rows, and warning/error/URL/path/ID rows while counting omitted middle rows
67
+ - file/tree/listing output: conservative path-only, `tree`, and safe `ls -R`
68
+ reducers that render repeated path prefixes as compact trees while preserving
69
+ visible summary totals and leaving metadata-rich listings unchanged
70
+ - ripgrep output: direct `path:line[:column]:text`, heading-mode, context-mode
71
+ `path-line-context` with `--` separators, and ANSI-colored matches grouped
72
+ into a compact path tree when repeated paths or prefixes would otherwise be
73
+ duplicated, while diagnostic/table/prose-looking output is left alone
74
+ - generic application logs: conservative long timestamp/level-prefixed log
75
+ summaries that collapse repeated INFO/DEBUG/TRACE patterns while preserving
76
+ first/last context, warnings/errors/fatal/panic/exception lines,
77
+ file paths/URLs, failure summaries, and unusual levels
78
+ - package-manager logs: conservative uv/pip, npm, bun, and cargo package
79
+ install/update summaries that collapse progress/download/resolve/install
80
+ noise while preserving warnings/errors, package summaries, versions,
81
+ lock/frozen conflicts, audit/vulnerability summaries, hints, paths, and URLs
82
+ - build/compiler diagnostics: conservative cargo/rustc, tsc, ESLint, and
83
+ mypy-like reducers that collapse build progress while preserving
84
+ warnings/errors, codes, file spans, source/caret snippets, notes/help, rule
85
+ IDs, and final summaries
86
+
87
+ ## Backends
88
+
89
+ - `backend="python"` uses the pure-Python implementation.
90
+ - `backend="rust"` requires the optional Rust CLI backend.
91
+ - `backend="auto"` prefers Rust when a compatible binary is discoverable and
92
+ falls back to Python otherwise.
93
+
94
+ Rust discovery order:
95
+
96
+ 1. `CODETOOL_SHELL_RUST_BINARY`
97
+ 2. packaged wheel binaries under `codetool_shell/bin/<platform>/`
98
+ 3. development binaries under `rust/target/{release,debug}/`
99
+ 4. `PATH`
100
+
101
+ Build and stage the Rust CLI before creating a target wheel with:
102
+
103
+ ```bash
104
+ python scripts/package_rust_binary.py --target-runtime linux-x86_64
105
+ ```
106
+
107
+ Then build the Python distributions with:
108
+
109
+ ```bash
110
+ uv build
111
+ ```
112
+
113
+ During local development you can also rely on the development build directly:
114
+
115
+ ```bash
116
+ cd rust
117
+ cargo build
118
+ ```
119
+
120
+ ## Packaging and release
121
+
122
+ `codetool-shell` publishes target-specific wheels that include one matching
123
+ Rust helper binary under `codetool_shell/bin/<runtime>/`. Supported runtime keys
124
+ are:
125
+
126
+ - `linux-x86_64`
127
+ - `linux-aarch64`
128
+ - `macos-x86_64`
129
+ - `macos-arm64`
130
+ - `windows-x86_64`
131
+ - `windows-arm64`
132
+
133
+ To build a Linux x86_64 wheel locally (replace the runtime key for other
134
+ targets):
135
+
136
+ ```bash
137
+ uv run python scripts/package_rust_binary.py --target-runtime linux-x86_64
138
+ CODETOOL_SHELL_TARGET_RUNTIME=linux-x86_64 uv build --wheel
139
+ ```
140
+
141
+ The release workflow builds an sdist, manylinux wheels, native macOS/Windows
142
+ wheels, checks the distributions, and publishes to PyPI via trusted publishing
143
+ for tagged releases (`v*`) or manual dispatch with `publish=true`.
144
+
145
+ ## Development
146
+
147
+ ```bash
148
+ uv sync --dev
149
+ uv run pytest
150
+ uv run python benchmarks/benchmark_compress_text.py
151
+ uv run python scripts/benchmark_filters.py --iterations 1000
152
+ ```
@@ -0,0 +1,72 @@
1
+ codetool_shell/__init__.py,sha256=iipwvcBQfAl1oVsye_9BS1EIKgFAJvp8jZsOGcNIG3w,307
2
+ codetool_shell/api.py,sha256=qynQKt1f47jb6uDcQ9jqzJz05nl7MRCtoUSQVf9UuGA,1907
3
+ codetool_shell/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
+ codetool_shell/python_backend.py,sha256=74TuSg_A0AHlzh47EOlRqYvNx3O85KvgtrQsPcTHd_8,1229
5
+ codetool_shell/rust_backend.py,sha256=TUnmjVT0xHNk9KjgDVzqH2h2v7gLSPTK5N00LpRhbfk,7881
6
+ codetool_shell/filters/__init__.py,sha256=lcWDmLP_hVnO1PPpbo5OlcpLvMhDyOBXo20M5xmg460,330
7
+ codetool_shell/filters/git.py,sha256=vwv4nQhZcVEDie4206mLQNc1KPiepkCMD9sCP-6i-r0,15501
8
+ codetool_shell/filters/pipeline.py,sha256=UHAVSiHLEX6UD0SbqHEERDrkNWvGEmbPBQsP3hE94a4,2484
9
+ codetool_shell/filters/rg.py,sha256=LKqB9A5r4bgqqCDCiL7aOSNSNbFuMq8aGPF3sKNoDm0,8009
10
+ codetool_shell/filters/text.py,sha256=d-Utr_EZPjCRcehDHpoSOhcvcuNqoa5QV0UZMPm8QB8,1141
11
+ codetool_shell/filters/tree.py,sha256=ZNsAig4k8k4Y63LzzzVIVFPesgXzKjKTSDaX6xtvpZk,1691
12
+ codetool_shell/filters/build_compiler/__init__.py,sha256=lEOXHN98YZ17-W6E5bKwlyxaCxgi3Gcvy3dT9eQgPFk,208
13
+ codetool_shell/filters/build_compiler/detector.py,sha256=b5AqXaUDMMy1wI7duFOVzf54Y6zyjfaRyqXq6tMeztw,14674
14
+ codetool_shell/filters/build_compiler/reducer.py,sha256=w7S1Esa7jG7rH_g60Vu_CGpjTrRGAErTQ9UExUo9KtE,5326
15
+ codetool_shell/filters/build_compiler/summary.py,sha256=7A-aJZ8NaLiAFeSeA5wTlpGg2c7oXWd8Wz9_AsyLiGs,19886
16
+ codetool_shell/filters/ci_job_log/__init__.py,sha256=nnKpytP-m0fKaPRz7SpkmdK3ORtU6lthJDZkS9I2L_I,166
17
+ codetool_shell/filters/ci_job_log/detector.py,sha256=7bhuVgOhnGa0JiogY2otFPasi0XTrB1O1dBuyb7hpO0,1916
18
+ codetool_shell/filters/ci_job_log/reducer.py,sha256=Umsz-ZuHQSavUUdgaVMagq7C8Uuuspltl_QP-TrtW74,2954
19
+ codetool_shell/filters/ci_job_log/summary.py,sha256=1cOzdr4ESbnpUV_-ny4YK0tvB5gskHTa0650P9c8KfY,6977
20
+ codetool_shell/filters/diff/__init__.py,sha256=iO-W2rYJKgNDkdsZ1K1qegBN-CUVGvU2VjNNPakYCq0,175
21
+ codetool_shell/filters/diff/detector.py,sha256=TE3qyGh97xLK41us8faf4DowG4gkat2b6DW57tFGzRM,4056
22
+ codetool_shell/filters/diff/reducer.py,sha256=huUWFGb3-GEMM5aa4eOjj4w5_R5ZYanzHPft7CXnTVk,9330
23
+ codetool_shell/filters/generic_log/__init__.py,sha256=eHE9AnqCHlUgQBdEj7M7gAtgNTr6iFi3iyHXfYdcCkY,177
24
+ codetool_shell/filters/generic_log/detector.py,sha256=CWGihwB_EMroJ0ZGvZSl_E1cMlZJ3-dGh2ftF-1XARE,5470
25
+ codetool_shell/filters/generic_log/reducer.py,sha256=CeJ15ubRY469j4a4fgL4SigErBCDYP9TpGzXd1rUo4Y,3262
26
+ codetool_shell/filters/generic_log/summary.py,sha256=bhHv1EmGa8dDvam_bHVJvs8f04LV7D8zfHxyjCG66JU,4474
27
+ codetool_shell/filters/html_cleanup/__init__.py,sha256=x3tcQ7DnHmQK_NbGBz67-03-oY4SnJZ0Vz7gA5jkOaE,183
28
+ codetool_shell/filters/html_cleanup/detector.py,sha256=zVSCxtNg_Ao_IVsXfbEUIWxtmFIhDyhuGKqNlNQfSDI,3801
29
+ codetool_shell/filters/html_cleanup/reducer.py,sha256=byo5UuChx8Y2OMs_3ILIixp2Hm9_p_s9b5KHbpcXC_Q,802
30
+ codetool_shell/filters/html_cleanup/summary.py,sha256=MmMyt1KzngTvjgAsWjlBvu_-H4v-IMXWlieIf4NBU_U,12542
31
+ codetool_shell/filters/json_payload/__init__.py,sha256=SOiK2Fx3FGAiHubH47-2KQG9sYwhkaWbObSMGl92vRU,178
32
+ codetool_shell/filters/json_payload/detector.py,sha256=BUTtk9NOfVxQ_Q9r0snxluaTTcJmBeXSVpRiXEjiOxw,1773
33
+ codetool_shell/filters/json_payload/reducer.py,sha256=-9-eWa0KcoBDQod_L6PV4sOMV_dTKZT7192caESFMbw,2456
34
+ codetool_shell/filters/json_payload/summary.py,sha256=FXHUAWkaSYnqXg4cm5I2CKX_-GdiErYT0PO31bVPRMA,6957
35
+ codetool_shell/filters/listing/__init__.py,sha256=jx0bwp_WqpCzPvqUOD_s11IF-dT4AelZGImoEGuQXZU,160
36
+ codetool_shell/filters/listing/detector.py,sha256=cr_wGQ61z1d8PGY1CVRKsvJCuqLcTx0VvVDTTxmwQBA,9029
37
+ codetool_shell/filters/listing/reducer.py,sha256=E3fDatAhda9Dh2PRqEl75x7l3Jcbfz3-OTOc-lrLnZI,1023
38
+ codetool_shell/filters/log_template/__init__.py,sha256=vHbJ62wrkRtS0t5bLIB-wlz83CybMX3QhSUwdp4fkW8,176
39
+ codetool_shell/filters/log_template/constants.py,sha256=yHKxN2jP-6V13Yj9ntBwNQ1M08ubco7zxRUK4E8bEtM,1458
40
+ codetool_shell/filters/log_template/detector.py,sha256=2u0jNvP35LDOWwsRDk-XiSzeastfan3eMmuqomcVjic,10653
41
+ codetool_shell/filters/log_template/reducer.py,sha256=bftxXxWnNjs0Jpked8OIpornsvW4EXgZWrnmxQOnpZY,2698
42
+ codetool_shell/filters/log_template/template.py,sha256=PKS1bdR_PsZD0WPlWLgGvrHI673uPUQMRAjbbquL898,9212
43
+ codetool_shell/filters/log_template/types.py,sha256=Cpd-6uBl2YpfpHp6p-BMQSi_nfTwVSbtXFntxMJvJyc,520
44
+ codetool_shell/filters/opaque_payload/__init__.py,sha256=sYgR0cbDLxH9Y-GvXu7rzsKsVEXeUCFPxwbUFC8CFh0,188
45
+ codetool_shell/filters/opaque_payload/detector.py,sha256=yUsqrd7NA_0hd6RkgS2YNJ66w4ETrhAMi2W5d8_ytxI,17182
46
+ codetool_shell/filters/opaque_payload/reducer.py,sha256=uk1bdndcxT8AAzdSKoFN_6J0vf2NLT2s1C22rmS7MV8,4064
47
+ codetool_shell/filters/opaque_payload/summary.py,sha256=yPcNeLd0hCOfPS9Y47jwbMmwBWBOBbfl8tUl9DaOfZE,1781
48
+ codetool_shell/filters/package_manager/__init__.py,sha256=LIB8m94fSGunNFJOj5wmgdgBSRGMMdGlQsXKMyp553k,185
49
+ codetool_shell/filters/package_manager/detector.py,sha256=YPNZIVSt_2YhCM1jVfqFopf112T2Vc3A6OdS62nie6Y,8413
50
+ codetool_shell/filters/package_manager/reducer.py,sha256=OZOkkvGOiGrTjYns7drDkCtqrazdpWFp11Fr74tGAqU,3260
51
+ codetool_shell/filters/package_manager/summary.py,sha256=o11IjVWrrjby9C_5T73XkHTg1kwQzBa97HZ5nLWi_Gs,7065
52
+ codetool_shell/filters/system_output/__init__.py,sha256=Jmv75F63m2qAnQCDQPqQmVK53ZAcQNOwoIS45ADGG3Q,155
53
+ codetool_shell/filters/system_output/detector.py,sha256=cN-vAi0QgSY13KTZOv_FPn0fEUxSY7dan_pzrwcrDhg,16314
54
+ codetool_shell/filters/system_output/reducer.py,sha256=-RngWdKArwX5LVm36qNLDSeMhtU73zGefU0aCzLejzk,9043
55
+ codetool_shell/filters/system_output/summary.py,sha256=DGYHsXRmHoZ737geA0lY1vR5MTBoqdCG8BMZl68-mG4,4458
56
+ codetool_shell/filters/table/__init__.py,sha256=hbbyzo89UbXBqwdjgJ5p0Bh5pIhoIPjRoxPv1kzs74k,155
57
+ codetool_shell/filters/table/detector.py,sha256=UZ3BSoTM09kVuARoCACFQsJZ14xPAR7pZ5_5xgK4xK4,7366
58
+ codetool_shell/filters/table/reducer.py,sha256=aj_cclVBaYGcT7pJbeB5rYyos5JWbn89b2HPr8HgVgQ,1858
59
+ codetool_shell/filters/table/summary.py,sha256=aaqOX2twKjK6hucsEoAdrhdUdv3am6yPCCas5BxScsU,1142
60
+ codetool_shell/filters/test_runner/__init__.py,sha256=7mPcSBqFpKsCQE3HVHAcCFM40bAtv0mqpJxuVZRZpYI,169
61
+ codetool_shell/filters/test_runner/ansi.py,sha256=mkD-vsGQkF_6ABVo2fLvwSavCJR3gc5_fq8csVeZ7hM,2196
62
+ codetool_shell/filters/test_runner/detector.py,sha256=4lfNh1dnIACNgeNOw7Ezdazj6DpEIhQ5yIJ0aUEVaT4,13611
63
+ codetool_shell/filters/test_runner/reducer.py,sha256=E4tOY3yoIhYD46EIxobyhR6uQUchvVJwcD7ilde6loU,9778
64
+ codetool_shell/filters/test_runner/summary.py,sha256=QSutUxx93hsGQvfYxAdlwfP9q7Ej8r7DmxXkGgYiyeY,14699
65
+ codetool_shell/filters/traceback/__init__.py,sha256=e5Ug4Gyb_Hwws2GvjFh_ywLhYj-IakKUO9Vg1ZDqXMQ,176
66
+ codetool_shell/filters/traceback/detector.py,sha256=LCuKtnTL5JyoRLBlm2w6bYbskGtZ7sW_FsWHSl9HV0Q,6440
67
+ codetool_shell/filters/traceback/reducer.py,sha256=UnQgPvquUxkPli0IhWBhHd9JwyUnKkwQLea3D3v-v50,4706
68
+ codetool_shell/filters/traceback/summary.py,sha256=0bYYa_yu6T0f7i5Dpp9XkZe9jGVCvnq3_UJyJ7TPoSs,3618
69
+ codetool_shell/bin/windows-x86_64/codetool-shell-rust.exe,sha256=hI6bcKAD-v_m8R5guxa1NPmT13vbHhcoec8xr7UgCpY,1201664
70
+ codetool_shell-0.1.1.dist-info/METADATA,sha256=ketaFNsiqWnUIGtICWAQG3C9BulXRlG9MiS0n1MgnWY,5996
71
+ codetool_shell-0.1.1.dist-info/WHEEL,sha256=xx6qpbXm_1wrhsLtr7J2DHdByvFFuLXz-tIuSfVCWyQ,94
72
+ codetool_shell-0.1.1.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.30.1
3
+ Root-Is-Purelib: false
4
+ Tag: py3-none-win_amd64