kmhelpers 0.7.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. kmhelpers-0.7.0.dist-info/METADATA +197 -0
  2. kmhelpers-0.7.0.dist-info/RECORD +75 -0
  3. kmhelpers-0.7.0.dist-info/WHEEL +5 -0
  4. kmhelpers-0.7.0.dist-info/entry_points.txt +3 -0
  5. kmhelpers-0.7.0.dist-info/licenses/LICENSE +674 -0
  6. kmhelpers-0.7.0.dist-info/top_level.txt +1 -0
  7. pykmhelpers/__init__.py +56 -0
  8. pykmhelpers/_version.py +7 -0
  9. pykmhelpers/cli/__init__.py +3 -0
  10. pykmhelpers/cli/about.py +73 -0
  11. pykmhelpers/cli/apply.py +290 -0
  12. pykmhelpers/cli/build.py +241 -0
  13. pykmhelpers/cli/check_deps.py +42 -0
  14. pykmhelpers/cli/compose.py +195 -0
  15. pykmhelpers/cli/compress.py +155 -0
  16. pykmhelpers/cli/count_kmers.py +49 -0
  17. pykmhelpers/cli/design.py +295 -0
  18. pykmhelpers/cli/experimental.py +9 -0
  19. pykmhelpers/cli/fof.py +229 -0
  20. pykmhelpers/cli/install_deps.py +209 -0
  21. pykmhelpers/cli/kmhelpers.py +408 -0
  22. pykmhelpers/cli/kmindex.py +349 -0
  23. pykmhelpers/cli/list.py +137 -0
  24. pykmhelpers/cli/pipeline.py +115 -0
  25. pykmhelpers/cli/plan.py +213 -0
  26. pykmhelpers/cli/profile.py +101 -0
  27. pykmhelpers/cli/query.py +237 -0
  28. pykmhelpers/cli/registry.py +436 -0
  29. pykmhelpers/cli/shared.py +310 -0
  30. pykmhelpers/cli/test.py +522 -0
  31. pykmhelpers/core/__init__.py +21 -0
  32. pykmhelpers/core/bloom_filter.py +123 -0
  33. pykmhelpers/core/build_params.py +266 -0
  34. pykmhelpers/core/byte.py +267 -0
  35. pykmhelpers/core/cache.py +86 -0
  36. pykmhelpers/core/constants.py +64 -0
  37. pykmhelpers/core/fasta.py +211 -0
  38. pykmhelpers/core/index.py +1044 -0
  39. pykmhelpers/core/kmer.py +327 -0
  40. pykmhelpers/core/kmindex_layout.py +220 -0
  41. pykmhelpers/core/kmindex_paths.py +74 -0
  42. pykmhelpers/core/kmindex_wrapper.py +685 -0
  43. pykmhelpers/core/log.py +43 -0
  44. pykmhelpers/core/resources.py +55 -0
  45. pykmhelpers/core/sequence.py +135 -0
  46. pykmhelpers/core/utils.py +259 -0
  47. pykmhelpers/core/wrapper.py +275 -0
  48. pykmhelpers/operations/__init__.py +19 -0
  49. pykmhelpers/operations/builder.py +693 -0
  50. pykmhelpers/operations/experimentation.py +170 -0
  51. pykmhelpers/operations/fof_validation.py +238 -0
  52. pykmhelpers/pipeline/__init__.py +0 -0
  53. pykmhelpers/pipeline/composer.py +553 -0
  54. pykmhelpers/pipeline/fof.py +513 -0
  55. pykmhelpers/pipeline/index_db.py +470 -0
  56. pykmhelpers/pipeline/mail_notifier.py +67 -0
  57. pykmhelpers/pipeline/metadata.py +54 -0
  58. pykmhelpers/pipeline/query.py +950 -0
  59. pykmhelpers/pipeline/sample_lister.py +387 -0
  60. pykmhelpers/pipeline/span_analyzer.py +438 -0
  61. pykmhelpers/pipeline/span_profiler.py +129 -0
  62. pykmhelpers/py.typed +0 -0
  63. pykmhelpers/tests/__init__.py +1 -0
  64. pykmhelpers/tests/test_bf_sizes.py +206 -0
  65. pykmhelpers/tests/test_build_params.py +101 -0
  66. pykmhelpers/tests/test_byte.py +94 -0
  67. pykmhelpers/tests/test_composer.py +158 -0
  68. pykmhelpers/tests/test_imports.py +218 -0
  69. pykmhelpers/tests/test_index.py +680 -0
  70. pykmhelpers/tests/test_index_ops.py +379 -0
  71. pykmhelpers/tests/test_pipeline_e2e.py +632 -0
  72. pykmhelpers/tests/test_query_result.py +209 -0
  73. pykmhelpers/tests/test_summarize_names.py +67 -0
  74. pykmhelpers/vendor/kmparams.py +249 -0
  75. pykmhelpers/vendor/test_kmparams.py +292 -0
@@ -0,0 +1,197 @@
1
+ Metadata-Version: 2.4
2
+ Name: kmhelpers
3
+ Version: 0.7.0
4
+ Summary: A Python toolkit for managing, compressing, and querying indexes with kmindex
5
+ Author-email: Sébastien BELLENOUS <kmhelpers@groupes.renater.fr>
6
+ License: GPL-3.0-only
7
+ Project-URL: Repository, https://github.com/sebllns/kmhelpers
8
+ Classifier: Development Status :: 3 - Alpha
9
+ Classifier: Intended Audience :: Science/Research
10
+ Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
11
+ Classifier: Programming Language :: Python :: 3
12
+ Classifier: Programming Language :: Python :: 3.8
13
+ Classifier: Programming Language :: Python :: 3.9
14
+ Classifier: Programming Language :: Python :: 3.10
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Requires-Python: >=3.8
17
+ Description-Content-Type: text/markdown
18
+ License-File: LICENSE
19
+ Requires-Dist: psutil>=5.8.0
20
+ Requires-Dist: pyyaml>=5.4
21
+ Requires-Dist: click>=8.1
22
+ Requires-Dist: matplotlib>=3.5
23
+ Requires-Dist: zstandard>=0.19
24
+ Provides-Extra: dev
25
+ Requires-Dist: pytest>=7.0; extra == "dev"
26
+ Requires-Dist: pytest-cov>=3.0; extra == "dev"
27
+ Requires-Dist: black>=22.0; extra == "dev"
28
+ Requires-Dist: flake8>=4.0; extra == "dev"
29
+ Requires-Dist: mypy>=0.950; extra == "dev"
30
+ Provides-Extra: docs
31
+ Requires-Dist: mkdocs-material>=9.0; extra == "docs"
32
+ Requires-Dist: mkdocstrings[python]>=0.25; extra == "docs"
33
+ Requires-Dist: mike>=2.0; extra == "docs"
34
+ Requires-Dist: termynal>=0.12; extra == "docs"
35
+ Dynamic: license-file
36
+
37
+ # kmhelpers
38
+
39
+ ---
40
+
41
+ <img src="assets/kmhelpers-logo-v1.png" alt="Kmhelpers Logo" width="64" height="64">
42
+
43
+ A Python toolkit for managing, compressing, and querying [kmindex](https://github.com/tlemane/kmindex) indices efficiently.
44
+
45
+ **Documentation:** <https://sebllns.github.io/kmhelpers/>
46
+
47
+ ---
48
+
49
+ ## Table of Contents
50
+
51
+ - [Disclaimers](#disclaimers)
52
+ - [Getting Started](#getting-started)
53
+ - [Documentation](#documentation)
54
+ - [License](#license)
55
+ - [Contact](#contact)
56
+ - [Changelog](#changelog)
57
+ - [Acknowledgements](#acknowledgements)
58
+
59
+ ## Disclaimers
60
+
61
+ `kmhelpers` is provided "as is", without warranty (see [LICENSE](LICENSE)). Operations that build, update, or compress indices modify data in place, so it might be useful to back up important data beforehand, and if you are not sure of something, [ask here](https://github.com/sebllns/kmhelpers/discussions) before running it.
62
+
63
+ ## Getting started
64
+
65
+ ### Clone the repository and navigate to it
66
+
67
+ ```bash
68
+ git clone https://github.com/sebllns/kmhelpers
69
+ cd kmhelpers
70
+ ```
71
+
72
+ To clone a [released version](https://github.com/sebllns/kmhelpers/releases) directly:
73
+
74
+ ```bash
75
+ git clone --branch vX.Y.Z https://github.com/sebllns/kmhelpers
76
+ cd kmhelpers
77
+ ```
78
+
79
+ ### Quick Install with Conda
80
+
81
+ This will automatically:
82
+ - Install `kmhelpers` Python package
83
+ - Install `kmindex` and `ntcard`
84
+
85
+ **Prerequisites:** Conda (Miniconda or Anaconda) must be installed. If you don't have it, see [Installation Instructions](https://docs.conda.io/projects/conda/en/latest/user-guide/install/index.html).
86
+
87
+ ```bash
88
+ # Create environment with kmindex pre-installed
89
+ conda env create -f conda/environment.yml -p ./.env
90
+
91
+ # Activate the environment
92
+ # Run this each time you open a new terminal session before using kmhelpers
93
+ conda activate ./.env
94
+ ```
95
+
96
+ > **Note:** Once per terminal session, activate the environment before using `kmhelpers`:
97
+ > ```bash
98
+ > conda activate /path/to/kmhelpers/.env
99
+ > ```
100
+ > `.env` can be replaced by any path, for example a shared or permanent location like `~/.kmhelpers`:
101
+ > ```bash
102
+ > conda env create -f conda/environment.yml -p ~/.kmhelpers
103
+ > conda activate ~/.kmhelpers
104
+ > ```
105
+
106
+ ### Verify Installation
107
+
108
+ Once the environment has been activated:
109
+
110
+ ```bash
111
+ # Check the installed version
112
+ kmhelpers --version
113
+
114
+ # View available commands
115
+ kmhelpers --help
116
+ ```
117
+
118
+ > **Tip:** `kh` is available as a short alias for `kmhelpers` (e.g. `kh --help`).
119
+
120
+ ```bash
121
+
122
+ # Check ntcard
123
+ ntcard --version
124
+
125
+ # Check kmtricks
126
+ kmtricks --version
127
+
128
+ # Check kmindex
129
+ kmindex --version
130
+ ```
131
+
132
+ ### Update
133
+
134
+ To pull the latest changes from the default branch (`main`):
135
+
136
+ ```bash
137
+ git pull origin main
138
+ ```
139
+
140
+ To check out a [released version](https://github.com/sebllns/kmhelpers/releases) instead:
141
+
142
+ ```bash
143
+ git fetch --tags
144
+ git checkout vX.Y.Z
145
+ ```
146
+
147
+ If your local branch is already tracking a remote branch, you can simply run:
148
+
149
+ ```bash
150
+ git pull
151
+ ```
152
+
153
+ Check the installed version:
154
+
155
+ ```bash
156
+ kmhelpers --version
157
+ ```
158
+
159
+ ## Documentation
160
+
161
+ <https://sebllns.github.io/kmhelpers/>
162
+
163
+ Covers installation, a full tutorial, command reference, core concepts, and the API reference.
164
+
165
+ ## License
166
+
167
+ This project is licensed under the GNU General Public License - see the [LICENSE](LICENSE) file for details.
168
+
169
+ Copyright (c) 2026 Sébastien Bellenous, Genscale, INRIA
170
+
171
+ ## Contact
172
+
173
+ For questions, bug reports, or contributions, please contact:
174
+
175
+ - **Author**: [Sébastien BELLENOUS](https://github.com/sebllns)
176
+ - **Email**: kmhelpers@groupes.renater.fr
177
+ - **Repository**: [GitHub](https://github.com/sebllns/kmhelpers)
178
+ - **Supervisor**: [Pierre Peterlongo](https://github.com/pierrepeterlongo)
179
+
180
+ ---
181
+
182
+ **Version**: 0.7.0
183
+ **Status**: Development
184
+
185
+ ## Changelog
186
+
187
+ See [CHANGELOG.md](CHANGELOG.md) for detailed version history.
188
+
189
+
190
+ ## Acknowledgements
191
+
192
+ The authors thank Téo Lemane for developing `kmindex` and for his
193
+ responsiveness in addressing feature requests and issues raised during the
194
+ development of `kmhelpers`. We acknowledge the GenOuest core facility
195
+ (<https://www.genouest.org>) for providing the computing infrastructure.
196
+ The work was funded by the Inria Challenge "OmicFinder"
197
+ (<https://project.inria.fr/omicfinder/>), and by the state funding managed by the French National Research Agency under the France 2030 program [ANR-22-PEAE-0005].
@@ -0,0 +1,75 @@
1
+ kmhelpers-0.7.0.dist-info/licenses/LICENSE,sha256=RxWMQ9xG-vPPBbqxIlPckvsHBfPPaJzCou39rE6sYcs,35199
2
+ pykmhelpers/__init__.py,sha256=YuUb_WXp1XKC_5oVVionOCmdwTaxItg5RARW4Z3CKD8,1460
3
+ pykmhelpers/_version.py,sha256=dvC5GWSyVgxtxTEI94ykMgf0Bl6t8w2DWTopVw81COM,168
4
+ pykmhelpers/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
+ pykmhelpers/cli/__init__.py,sha256=Gd8QoE2ub50YFNF4Dy5EHdjXXpDF3NJVLd7iP6qlhWs,52
6
+ pykmhelpers/cli/about.py,sha256=Fjmn0oHjKcsf3sm0pSzD-hfu7-WQv7T1H5GaZP_baRQ,3314
7
+ pykmhelpers/cli/apply.py,sha256=scyFqteHLRrtrc6JakbkENGOax3PrqU6WIb3u_skSMk,9489
8
+ pykmhelpers/cli/build.py,sha256=kuH7LBhzWxzm6sTfXdGcemcHk69hYLCsGoqbop8VqJU,8406
9
+ pykmhelpers/cli/check_deps.py,sha256=XvSsB6TLtsfqnfwbAl8TB75x1fU78fXi2ND43U9ltsw,1318
10
+ pykmhelpers/cli/compose.py,sha256=5xShYw2B0j30Zjswq_WNQkf1M1gClWEBXYPqnJQVez8,6380
11
+ pykmhelpers/cli/compress.py,sha256=AtUq9bViYUTjkSrPr81Ld36r5w9_FvK0N3HJLxSOFdo,3916
12
+ pykmhelpers/cli/count_kmers.py,sha256=AxnHVq8TKy4foUUzez9jtYrhWAqWEJ8VvWP429o1918,1215
13
+ pykmhelpers/cli/design.py,sha256=dXDNfFf_Pi0PhcPGf65qraq_Okq8LxUMyU0WKP0HCtc,9112
14
+ pykmhelpers/cli/experimental.py,sha256=Vh0jeJ7r_as5cwE2rnn3vd45ALPk8GkT0J1jDzKNnDA,152
15
+ pykmhelpers/cli/fof.py,sha256=n19T9jvivCBArWDUpCD7TN1XVJInN3sN1N4g-MU8bHs,6691
16
+ pykmhelpers/cli/install_deps.py,sha256=uyWnJFZ14OGEE0bPRsZ0ieJEzRyX39rha1z7UU7jI6A,6818
17
+ pykmhelpers/cli/kmhelpers.py,sha256=RBzl4alQjIYIfihqpJcpeUetKH4pDHSHPwGJX3O021Q,13692
18
+ pykmhelpers/cli/kmindex.py,sha256=XM0MvpM85cJ1CXRO_QNvuhSQ6e32kMlWpr9u87fWALg,9858
19
+ pykmhelpers/cli/list.py,sha256=jGrT_h8sD0Nqvvih6QF8RItV424yDj69gv6ZKL2B9Ik,3866
20
+ pykmhelpers/cli/pipeline.py,sha256=gLU5IAqe9kt0qXdiLS3nPj4EnQoFzsMIEH9VZVUT6GI,3668
21
+ pykmhelpers/cli/plan.py,sha256=rteYXkBHQLSl5YmYB1EPvg9iU3nzItlQwD0LHtFdmdg,6980
22
+ pykmhelpers/cli/profile.py,sha256=oyPsKPfWOz8kzndFx0MjaoR3k4S2WeDPzZNmOZPQNgU,3333
23
+ pykmhelpers/cli/query.py,sha256=vApt7iiJlJdsNgO9kWK2X-wXJ2wcL0wMlkZWMAxe9J4,6058
24
+ pykmhelpers/cli/registry.py,sha256=dEkmcQ9S219Fs-PvtaThNyyCKEKWZdzpV6czUBa_42Y,13846
25
+ pykmhelpers/cli/shared.py,sha256=CkQSSprsv3EvBpxB_tWnna1O63cjI6qpsHZN2l73jV4,9097
26
+ pykmhelpers/cli/test.py,sha256=UkWsRHdOpvI6isBCbYyvnPLw1THV9kV0_-UccAZPm9I,15900
27
+ pykmhelpers/core/__init__.py,sha256=Lb5MBKGSnCScbdqhGb3c0friiJ-pShTqTR70Om-wYpk,572
28
+ pykmhelpers/core/bloom_filter.py,sha256=g_8xc1ns76WicAR6PcQPyW6iFLRk1UptmiZlSCIH5uY,3628
29
+ pykmhelpers/core/build_params.py,sha256=Me2LCOHEHdVdZYBgVRv6w6oqvCEvxCxzmTDeKrFuAy8,10212
30
+ pykmhelpers/core/byte.py,sha256=PYGsr3D0DRp1elvDFGDZdKN5G-lDgD-lBF89YcNOnw4,8941
31
+ pykmhelpers/core/cache.py,sha256=0XpC4ZC2x2MOizflomknMLxjpYbHgRw4TCI4vcX6O7E,2717
32
+ pykmhelpers/core/constants.py,sha256=tHUJUKsgjsOkJJV2NDXd5anEl8bTvUf6gwGeP0HnxCw,1691
33
+ pykmhelpers/core/fasta.py,sha256=lQaCv8pDNhABAVi2lQfQ8gp3T4Ch7tOytLHSRFRAbZ0,6735
34
+ pykmhelpers/core/index.py,sha256=bHU3Fja2eKOG1fJ3TBiWiYM9gtQGvi8jhQQJRvXCA9E,33093
35
+ pykmhelpers/core/kmer.py,sha256=cQoWF85TTkHwLc6YXiZ8SVgRTnmbHYMvewhUNID7TzM,11157
36
+ pykmhelpers/core/kmindex_layout.py,sha256=eNWs0vN5ptoM6L7URPlh1FWDEwdOcTcBHpfNDGksMcs,7457
37
+ pykmhelpers/core/kmindex_paths.py,sha256=HCukp-Cm1lprHbpWZ9nk0haxRNerE_1JlsDCV34OQcE,2468
38
+ pykmhelpers/core/kmindex_wrapper.py,sha256=9-39QOzfokZKqJqz_cUqX52c3W80qo4BLLCd9bDqq1c,24445
39
+ pykmhelpers/core/log.py,sha256=gkzG80IBXHsPXXERaOtrufpj1H7Ug-E3FuNxEW48_DE,1260
40
+ pykmhelpers/core/resources.py,sha256=M4d7VdzkkyLsKV5kEah8PBrCE7gWSvA_fA4EJfcDaQ0,2047
41
+ pykmhelpers/core/sequence.py,sha256=EawrNy7uHAblmxH1gfN7zXSIFhGqdt3Vq68BAryWjyk,4273
42
+ pykmhelpers/core/utils.py,sha256=JHUlSU0fFQBAYNtdtTSUq6H5qz7h55SMqG_P05C1fPU,8448
43
+ pykmhelpers/core/wrapper.py,sha256=-mtiiN011qJGtXWkyEQLjFihDkGGVE4b2IKa1r77BAQ,9434
44
+ pykmhelpers/operations/__init__.py,sha256=KKh3C-M8EI8cb3tB_dcmcayfKL0VypzKV1UERFRsL0k,540
45
+ pykmhelpers/operations/builder.py,sha256=SzC7RwGmMeGd06XB5Q-sHi9NTYGY2S_UtTHMn_IUAiI,28002
46
+ pykmhelpers/operations/experimentation.py,sha256=rEWTxC6aoQTOP7xMgjOwH7OFxLQaGH0rKTMFBCk-kVk,5958
47
+ pykmhelpers/operations/fof_validation.py,sha256=N2iqUXloENxtk5ZK1zKY1_o7DMS9rUKsHmJ6AN-T2ZY,7243
48
+ pykmhelpers/pipeline/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
49
+ pykmhelpers/pipeline/composer.py,sha256=fJBZYjQ9HnaRmkiS56iRA5Di31RCxUKMfj1SjzCCnVw,20911
50
+ pykmhelpers/pipeline/fof.py,sha256=ZXLRCR638i9ID1VD4kKYjrsB8Je-g7KqBXIoxpBE09s,16245
51
+ pykmhelpers/pipeline/index_db.py,sha256=k6YqYEaKXB2QwLl6EYyNFS2pDIF0EY7LNc6BmFc3O9g,17497
52
+ pykmhelpers/pipeline/mail_notifier.py,sha256=BMjbla07cEyRWB0j_AW_1RAe63zTEaKFbpDyXJlnev0,1930
53
+ pykmhelpers/pipeline/metadata.py,sha256=dqMDUed9QmUTCMNHXEO0oX_U2wdyNFY_OmrTFvrmeMk,1159
54
+ pykmhelpers/pipeline/query.py,sha256=HIlemCmJT_yAS8yM9gVXZBo3UfWVS7j57HUJCsWgDwI,37334
55
+ pykmhelpers/pipeline/sample_lister.py,sha256=BXf-2wo0S4ziurEXASFsBV7adGzt_qKX4WCrEiHw5f8,14735
56
+ pykmhelpers/pipeline/span_analyzer.py,sha256=8k7q02jzl434-Vc9wyslHpmJTgQozwOyjryfKvSz0vM,15248
57
+ pykmhelpers/pipeline/span_profiler.py,sha256=cLuB1jgQQNw4f5K588YsblsfdjLLOb7JTRTL40-vnEc,4682
58
+ pykmhelpers/tests/__init__.py,sha256=x7vOmV0WeIW9Cy92KE8Ktca3ONLkWHXeheeQOjY8B6w,40
59
+ pykmhelpers/tests/test_bf_sizes.py,sha256=3UbYH-aN5DBsvuaQw2hA35rYZFUQf2u0x-bMHfu4_vc,6893
60
+ pykmhelpers/tests/test_build_params.py,sha256=gSXhdCRuC0cCTeUsACFUtlUgAIvssy41OSjZ5d2jL-g,3542
61
+ pykmhelpers/tests/test_byte.py,sha256=x4BdaFORU0bkZKkUAlnAZrsYr52BOsjk47Ig4BqjQKU,3459
62
+ pykmhelpers/tests/test_composer.py,sha256=xh7aKMEv2shcjJTgiLST4FjUZ0IVFHtWGga7kjKuOJs,5874
63
+ pykmhelpers/tests/test_imports.py,sha256=sJNRl8lGSjcvBcBTf4zzxO9SiA2TIOAhhy278-7XMXo,7001
64
+ pykmhelpers/tests/test_index.py,sha256=pd81WqbMLyA6pvF49t5GhRMHMifNEMEXVx2MMDzqRi8,27543
65
+ pykmhelpers/tests/test_index_ops.py,sha256=LUCA2v8-HH5U9KU8M_oxjNsEg-t5NcrM2sC1QGfNmCg,13885
66
+ pykmhelpers/tests/test_pipeline_e2e.py,sha256=t4EwdsONr4tEf0m-mpE5JxWngH53Bt126iBWcvnCPXk,25040
67
+ pykmhelpers/tests/test_query_result.py,sha256=0x8IE8A7klZuS2Z1vNhYVqLGTh0y7tQCj_Il3XP8IW4,7755
68
+ pykmhelpers/tests/test_summarize_names.py,sha256=Fy8u9wrfO1TH87MCWhLO5ApHtP9PtEi4bqwuS46Qxz0,2330
69
+ pykmhelpers/vendor/kmparams.py,sha256=B1YeI0lm9LzLMP5-s5rP33kWnAfFrWsY3p0CQ-E383c,7346
70
+ pykmhelpers/vendor/test_kmparams.py,sha256=TOAman2-HxFVjm6FDSU3Z2N-ABumcvB98bTRl1lrGL4,11438
71
+ kmhelpers-0.7.0.dist-info/METADATA,sha256=qN8de2D-5HzB2BlohXx0IAQp9h3ICDTN7mXr-s5FYJg,5620
72
+ kmhelpers-0.7.0.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
73
+ kmhelpers-0.7.0.dist-info/entry_points.txt,sha256=g_-bnncgt0A4fyQolluvRflwdYOb2Ans5Sv1h0XYkPE,95
74
+ kmhelpers-0.7.0.dist-info/top_level.txt,sha256=JhOyEOQqm9Y2DusKRL17tMs18uTR6aLaPe_GKQec5Cg,12
75
+ kmhelpers-0.7.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (84.0.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,3 @@
1
+ [console_scripts]
2
+ kh = pykmhelpers.cli.kmhelpers:cli
3
+ kmhelpers = pykmhelpers.cli.kmhelpers:cli