fmtr.tools 1.1.21__tar.gz → 1.1.23__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.

Potentially problematic release.


This version of fmtr.tools might be problematic. Click here for more details.

Files changed (79) hide show
  1. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/PKG-INFO +45 -45
  2. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/__init__.py +8 -12
  3. fmtr_tools-1.1.23/fmtr/tools/setup_tools/__init__.py +8 -0
  4. {fmtr_tools-1.1.21/fmtr/tools → fmtr_tools-1.1.23/fmtr/tools/setup_tools}/setup_tools.py +47 -10
  5. fmtr_tools-1.1.23/fmtr/tools/version +1 -0
  6. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr.tools.egg-info/PKG-INFO +45 -45
  7. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr.tools.egg-info/SOURCES.txt +2 -1
  8. fmtr_tools-1.1.21/fmtr/tools/version +0 -1
  9. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/LICENSE +0 -0
  10. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/README.md +0 -0
  11. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/ai_tools/__init__.py +0 -0
  12. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/ai_tools/agentic_tools.py +0 -0
  13. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/ai_tools/inference_tools.py +0 -0
  14. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/api_tools.py +0 -0
  15. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/async_tools.py +0 -0
  16. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/augmentation_tools.py +0 -0
  17. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/caching_tools.py +0 -0
  18. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/console_script_tools.py +0 -0
  19. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/constants.py +0 -0
  20. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/data_modelling_tools.py +0 -0
  21. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/dataclass_tools.py +0 -0
  22. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/datatype_tools.py +0 -0
  23. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/debugging_tools.py +0 -0
  24. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/dns_tools.py +0 -0
  25. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/docker_tools.py +0 -0
  26. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/environment_tools.py +0 -0
  27. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/function_tools.py +0 -0
  28. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/google_api_tools.py +0 -0
  29. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/hash_tools.py +0 -0
  30. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/hfh_tools.py +0 -0
  31. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/html_tools.py +0 -0
  32. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/import_tools.py +0 -0
  33. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/inspection_tools.py +0 -0
  34. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/interface_tools.py +0 -0
  35. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/iterator_tools.py +0 -0
  36. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/json_fix_tools.py +0 -0
  37. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/json_tools.py +0 -0
  38. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/logging_tools.py +0 -0
  39. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/merging_tools.py +0 -0
  40. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/metric_tools.py +0 -0
  41. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/name_tools.py +0 -0
  42. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/netrc_tools.py +0 -0
  43. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/openai_tools.py +0 -0
  44. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/packaging_tools.py +0 -0
  45. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/parallel_tools.py +0 -0
  46. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/path_tools/__init__.py +0 -0
  47. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/path_tools/app_path_tools.py +0 -0
  48. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/path_tools/path_tools.py +0 -0
  49. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/path_tools/type_path_tools.py +0 -0
  50. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/pattern_tools.py +0 -0
  51. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/pdf_tools.py +0 -0
  52. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/platform_tools.py +0 -0
  53. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/process_tools.py +0 -0
  54. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/profiling_tools.py +0 -0
  55. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/random_tools.py +0 -0
  56. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/semantic_tools.py +0 -0
  57. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/settings_tools.py +0 -0
  58. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/spaces_tools.py +0 -0
  59. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/string_tools.py +0 -0
  60. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/tabular_tools.py +0 -0
  61. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/tests/__init__.py +0 -0
  62. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/tests/conftest.py +0 -0
  63. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/tests/helpers.py +0 -0
  64. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/tests/test_datatype.py +0 -0
  65. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/tests/test_environment.py +0 -0
  66. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/tests/test_json.py +0 -0
  67. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/tests/test_path.py +0 -0
  68. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/tests/test_yaml.py +0 -0
  69. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/tokenization_tools.py +0 -0
  70. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/tools.py +0 -0
  71. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/unicode_tools.py +0 -0
  72. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/version_tools.py +0 -0
  73. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr/tools/yaml_tools.py +0 -0
  74. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr.tools.egg-info/dependency_links.txt +0 -0
  75. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr.tools.egg-info/entry_points.txt +0 -0
  76. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr.tools.egg-info/requires.txt +44 -44
  77. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/fmtr.tools.egg-info/top_level.txt +0 -0
  78. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/setup.cfg +0 -0
  79. {fmtr_tools-1.1.21 → fmtr_tools-1.1.23}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fmtr.tools
3
- Version: 1.1.21
3
+ Version: 1.1.23
4
4
  Summary: Collection of high-level tools to simplify everyday development tasks, with a focus on AI/ML
5
5
  Home-page: https://github.com/fmtr/fmtr.tools
6
6
  Author: Frontmatter
@@ -9,60 +9,60 @@ License: Copyright © 2025 Frontmatter. All rights reserved.
9
9
  Description-Content-Type: text/markdown
10
10
  License-File: LICENSE
11
11
  Provides-Extra: test
12
- Requires-Dist: tinynetrc; extra == "test"
12
+ Requires-Dist: pytest-cov; extra == "test"
13
+ Requires-Dist: yamlscript; extra == "test"
14
+ Requires-Dist: pandas; extra == "test"
15
+ Requires-Dist: regex; extra == "test"
16
+ Requires-Dist: docker; extra == "test"
17
+ Requires-Dist: json_repair; extra == "test"
18
+ Requires-Dist: uvicorn[standard]; extra == "test"
19
+ Requires-Dist: pymupdf; extra == "test"
20
+ Requires-Dist: logfire[fastapi]; extra == "test"
21
+ Requires-Dist: logfire[httpx]; extra == "test"
22
+ Requires-Dist: pymupdf4llm; extra == "test"
23
+ Requires-Dist: sentence_transformers; extra == "test"
24
+ Requires-Dist: dnspython[doh]; extra == "test"
13
25
  Requires-Dist: fastapi; extra == "test"
26
+ Requires-Dist: torchvision; extra == "test"
14
27
  Requires-Dist: httpx_retries; extra == "test"
15
- Requires-Dist: setuptools; extra == "test"
16
- Requires-Dist: filetype; extra == "test"
17
- Requires-Dist: faker; extra == "test"
18
- Requires-Dist: pydevd-pycharm; extra == "test"
19
- Requires-Dist: pyyaml; extra == "test"
20
- Requires-Dist: logfire[fastapi]; extra == "test"
21
- Requires-Dist: google-auth-httplib2; extra == "test"
22
- Requires-Dist: openai; extra == "test"
28
+ Requires-Dist: flet[all]; extra == "test"
29
+ Requires-Dist: pydantic-settings; extra == "test"
30
+ Requires-Dist: ollama; extra == "test"
23
31
  Requires-Dist: diskcache; extra == "test"
24
- Requires-Dist: bokeh; extra == "test"
25
- Requires-Dist: sentence_transformers; extra == "test"
26
- Requires-Dist: pymupdf4llm; extra == "test"
27
- Requires-Dist: distributed; extra == "test"
28
- Requires-Dist: huggingface_hub; extra == "test"
29
- Requires-Dist: deepmerge; extra == "test"
30
- Requires-Dist: transformers[sentencepiece]; extra == "test"
31
- Requires-Dist: google-auth-oauthlib; extra == "test"
32
- Requires-Dist: logfire[httpx]; extra == "test"
32
+ Requires-Dist: torchaudio; extra == "test"
33
+ Requires-Dist: pydantic-ai[logfire,openai]; extra == "test"
34
+ Requires-Dist: faker; extra == "test"
33
35
  Requires-Dist: pydantic; extra == "test"
36
+ Requires-Dist: distributed; extra == "test"
34
37
  Requires-Dist: dask[bag]; extra == "test"
35
- Requires-Dist: Unidecode; extra == "test"
36
- Requires-Dist: docker; extra == "test"
37
- Requires-Dist: google-auth; extra == "test"
38
+ Requires-Dist: sre_yield; extra == "test"
39
+ Requires-Dist: tabulate; extra == "test"
40
+ Requires-Dist: html2text; extra == "test"
41
+ Requires-Dist: tinynetrc; extra == "test"
42
+ Requires-Dist: setuptools; extra == "test"
43
+ Requires-Dist: pyyaml; extra == "test"
44
+ Requires-Dist: openpyxl; extra == "test"
45
+ Requires-Dist: flet-video; extra == "test"
46
+ Requires-Dist: openai; extra == "test"
47
+ Requires-Dist: flet-webview; extra == "test"
48
+ Requires-Dist: pydevd-pycharm; extra == "test"
38
49
  Requires-Dist: contexttimer; extra == "test"
39
- Requires-Dist: peft; extra == "test"
50
+ Requires-Dist: google-auth; extra == "test"
40
51
  Requires-Dist: semver; extra == "test"
41
- Requires-Dist: regex; extra == "test"
52
+ Requires-Dist: huggingface_hub; extra == "test"
53
+ Requires-Dist: tokenizers; extra == "test"
54
+ Requires-Dist: peft; extra == "test"
42
55
  Requires-Dist: logfire; extra == "test"
43
- Requires-Dist: pytest-cov; extra == "test"
44
- Requires-Dist: yamlscript; extra == "test"
45
- Requires-Dist: pandas; extra == "test"
46
- Requires-Dist: ollama; extra == "test"
47
- Requires-Dist: openpyxl; extra == "test"
48
- Requires-Dist: appdirs; extra == "test"
49
- Requires-Dist: html2text; extra == "test"
50
- Requires-Dist: flet-video; extra == "test"
51
- Requires-Dist: flet[all]; extra == "test"
56
+ Requires-Dist: google-auth-oauthlib; extra == "test"
57
+ Requires-Dist: filetype; extra == "test"
58
+ Requires-Dist: deepmerge; extra == "test"
52
59
  Requires-Dist: google-api-python-client; extra == "test"
53
- Requires-Dist: dnspython[doh]; extra == "test"
54
- Requires-Dist: pymupdf; extra == "test"
55
- Requires-Dist: sre_yield; extra == "test"
56
- Requires-Dist: pydantic-settings; extra == "test"
57
- Requires-Dist: tabulate; extra == "test"
58
- Requires-Dist: flet-webview; extra == "test"
60
+ Requires-Dist: bokeh; extra == "test"
59
61
  Requires-Dist: httpx; extra == "test"
60
- Requires-Dist: tokenizers; extra == "test"
61
- Requires-Dist: torchvision; extra == "test"
62
- Requires-Dist: json_repair; extra == "test"
63
- Requires-Dist: pydantic-ai[logfire,openai]; extra == "test"
64
- Requires-Dist: torchaudio; extra == "test"
65
- Requires-Dist: uvicorn[standard]; extra == "test"
62
+ Requires-Dist: google-auth-httplib2; extra == "test"
63
+ Requires-Dist: appdirs; extra == "test"
64
+ Requires-Dist: Unidecode; extra == "test"
65
+ Requires-Dist: transformers[sentencepiece]; extra == "test"
66
66
  Provides-Extra: yaml
67
67
  Requires-Dist: yamlscript; extra == "yaml"
68
68
  Requires-Dist: pyyaml; extra == "yaml"
@@ -23,9 +23,16 @@ import fmtr.tools.packaging_tools as packaging
23
23
  from fmtr.tools.logging_tools import logger
24
24
 
25
25
  from fmtr.tools.import_tools import MissingExtraMockModule
26
- from fmtr.tools.path_tools import Path, PackagePaths, AppPaths
26
+
27
27
  from fmtr.tools.constants import Constants
28
28
 
29
+ # Submodules
30
+ from fmtr.tools.path_tools import Path, PackagePaths, AppPaths
31
+ from fmtr.tools import ai_tools as ai
32
+
33
+ import fmtr.tools.setup_tools as setup
34
+ from fmtr.tools.setup_tools import Setup, SetupPaths, Dependencies
35
+
29
36
  try:
30
37
  from fmtr.tools import augmentation_tools as augmentation
31
38
  except ImportError as exception:
@@ -95,11 +102,6 @@ try:
95
102
  except ImportError as exception:
96
103
  api = MissingExtraMockModule('api', exception)
97
104
 
98
- try:
99
- from fmtr.tools import ai_tools as ai
100
- except ImportError as exception:
101
- ai = MissingExtraMockModule('ai', exception)
102
-
103
105
  try:
104
106
  from fmtr.tools import data_modelling_tools as dm
105
107
  except ImportError as exception:
@@ -174,9 +176,3 @@ try:
174
176
  from fmtr.tools import dns_tools as dns
175
177
  except ImportError as exception:
176
178
  dns = MissingExtraMockModule('dns', exception)
177
-
178
- try:
179
- from fmtr.tools import setup_tools as setup
180
- from fmtr.tools.setup_tools import Setup, SetupPaths, Dependencies
181
- except ImportError as exception:
182
- setup = Setup = SetupPaths = Dependencies = MissingExtraMockModule('setup', exception)
@@ -0,0 +1,8 @@
1
+ from fmtr.tools.import_tools import MissingExtraMockModule
2
+
3
+ from fmtr.tools.setup_tools.setup_tools import Setup, SetupPaths, Dependencies
4
+
5
+ try:
6
+ from setuptools import find_namespace_packages, find_packages, setup as setup_setuptools
7
+ except ImportError as exception:
8
+ find_namespace_packages = find_packages = setup_setuptools = MissingExtraMockModule('setup', exception)
@@ -1,11 +1,10 @@
1
+ import sys
1
2
  from datetime import datetime
2
3
  from fnmatch import fnmatch
3
4
  from functools import cached_property
4
5
  from itertools import chain
5
6
  from typing import List, Dict
6
7
 
7
- from setuptools import find_namespace_packages, find_packages, setup
8
-
9
8
  from fmtr.tools.constants import Constants
10
9
  from fmtr.tools.path_tools import Path
11
10
  from fmtr.tools.path_tools.path_tools import FromCallerMixin
@@ -14,7 +13,7 @@ from fmtr.tools.path_tools.path_tools import FromCallerMixin
14
13
  class SetupPaths(FromCallerMixin):
15
14
  """
16
15
 
17
- Canonical paths for a package.
16
+ Canonical paths for a repo.
18
17
 
19
18
  """
20
19
 
@@ -89,6 +88,9 @@ class Setup(FromCallerMixin):
89
88
  AUTHOR = 'Frontmatter'
90
89
  AUTHOR_EMAIL = 'innovative.fowler@mask.pro.fmtr.dev'
91
90
 
91
+ REQUIREMENTS_ARG = 'requirements'
92
+
93
+
92
94
  def __init__(self, dependencies, paths=None, console_scripts=None, client=None, do_setup=True, **kwargs):
93
95
 
94
96
  self.kwargs = kwargs
@@ -97,6 +99,12 @@ class Setup(FromCallerMixin):
97
99
  dependencies = Dependencies(**dependencies)
98
100
  self.dependencies = dependencies
99
101
 
102
+ requirements_extras = self.get_requirements_extras()
103
+
104
+ if requirements_extras:
105
+ self.print_requirements()
106
+ return
107
+
100
108
  if not paths:
101
109
  paths = SetupPaths(path=self.from_caller())
102
110
  self.paths = paths
@@ -107,6 +115,25 @@ class Setup(FromCallerMixin):
107
115
  if do_setup:
108
116
  self.setup()
109
117
 
118
+ def get_requirements_extras(self):
119
+ if self.REQUIREMENTS_ARG not in sys.argv:
120
+ return None
121
+
122
+ extras_str = sys.argv[-1]
123
+ extras = extras_str.split(',')
124
+ return extras
125
+
126
+ def print_requirements(self):
127
+ reqs = []
128
+ reqs += self.dependencies.install
129
+
130
+ for extra in sys.argv[-1].split(','):
131
+ reqs += self.dependencies.extras[extra]
132
+ reqs = '\n'.join(reqs)
133
+ print(reqs)
134
+
135
+
136
+
110
137
  def get_entrypoint_path(self, key, value):
111
138
  if value:
112
139
  return f'{self.name}.{value}:{key}'
@@ -150,14 +177,22 @@ class Setup(FromCallerMixin):
150
177
  return self.paths.version.read_text().strip()
151
178
 
152
179
  @property
153
- def packages(self):
180
+ def find(self):
154
181
 
155
- excludes = list(SetupPaths.SKIP_DIRS) + [f'{name}.*' for name in SetupPaths.SKIP_DIRS]
182
+ from fmtr.tools import setup
156
183
 
157
184
  if self.paths.is_namespace:
158
- return find_namespace_packages(where=str(self.paths.repo), exclude=excludes)
185
+ return setup.find_namespace_packages
159
186
  else:
160
- return find_packages(where=str(self.paths.repo), exclude=excludes)
187
+ return setup.find_packages
188
+
189
+ @property
190
+ def packages(self):
191
+
192
+ excludes = list(SetupPaths.SKIP_DIRS) + [f'{name}.*' for name in SetupPaths.SKIP_DIRS]
193
+
194
+ packages = self.find(where=str(self.paths.repo), exclude=excludes)
195
+ return packages
161
196
 
162
197
  @property
163
198
  def package_dir(self):
@@ -195,7 +230,9 @@ class Setup(FromCallerMixin):
195
230
 
196
231
  def setup(self):
197
232
 
198
- return setup(**self.data)
233
+ from fmtr.tools import setup
234
+
235
+ return setup.setup_setuptools(**self.data)
199
236
 
200
237
 
201
238
 
@@ -226,7 +263,7 @@ class Dependencies:
226
263
 
227
264
  return values_resolved
228
265
 
229
- @property
266
+ @cached_property
230
267
  def extras(self) -> Dict[str, List[str]]:
231
268
  """
232
269
 
@@ -238,7 +275,7 @@ class Dependencies:
238
275
  resolved[self.ALL] = list(set(chain.from_iterable(resolved.values())))
239
276
  return resolved
240
277
 
241
- @property
278
+ @cached_property
242
279
  def install(self):
243
280
  return self.resolve_values(self.INSTALL)
244
281
 
@@ -0,0 +1 @@
1
+ 1.1.23
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fmtr.tools
3
- Version: 1.1.21
3
+ Version: 1.1.23
4
4
  Summary: Collection of high-level tools to simplify everyday development tasks, with a focus on AI/ML
5
5
  Home-page: https://github.com/fmtr/fmtr.tools
6
6
  Author: Frontmatter
@@ -9,60 +9,60 @@ License: Copyright © 2025 Frontmatter. All rights reserved.
9
9
  Description-Content-Type: text/markdown
10
10
  License-File: LICENSE
11
11
  Provides-Extra: test
12
- Requires-Dist: tinynetrc; extra == "test"
12
+ Requires-Dist: pytest-cov; extra == "test"
13
+ Requires-Dist: yamlscript; extra == "test"
14
+ Requires-Dist: pandas; extra == "test"
15
+ Requires-Dist: regex; extra == "test"
16
+ Requires-Dist: docker; extra == "test"
17
+ Requires-Dist: json_repair; extra == "test"
18
+ Requires-Dist: uvicorn[standard]; extra == "test"
19
+ Requires-Dist: pymupdf; extra == "test"
20
+ Requires-Dist: logfire[fastapi]; extra == "test"
21
+ Requires-Dist: logfire[httpx]; extra == "test"
22
+ Requires-Dist: pymupdf4llm; extra == "test"
23
+ Requires-Dist: sentence_transformers; extra == "test"
24
+ Requires-Dist: dnspython[doh]; extra == "test"
13
25
  Requires-Dist: fastapi; extra == "test"
26
+ Requires-Dist: torchvision; extra == "test"
14
27
  Requires-Dist: httpx_retries; extra == "test"
15
- Requires-Dist: setuptools; extra == "test"
16
- Requires-Dist: filetype; extra == "test"
17
- Requires-Dist: faker; extra == "test"
18
- Requires-Dist: pydevd-pycharm; extra == "test"
19
- Requires-Dist: pyyaml; extra == "test"
20
- Requires-Dist: logfire[fastapi]; extra == "test"
21
- Requires-Dist: google-auth-httplib2; extra == "test"
22
- Requires-Dist: openai; extra == "test"
28
+ Requires-Dist: flet[all]; extra == "test"
29
+ Requires-Dist: pydantic-settings; extra == "test"
30
+ Requires-Dist: ollama; extra == "test"
23
31
  Requires-Dist: diskcache; extra == "test"
24
- Requires-Dist: bokeh; extra == "test"
25
- Requires-Dist: sentence_transformers; extra == "test"
26
- Requires-Dist: pymupdf4llm; extra == "test"
27
- Requires-Dist: distributed; extra == "test"
28
- Requires-Dist: huggingface_hub; extra == "test"
29
- Requires-Dist: deepmerge; extra == "test"
30
- Requires-Dist: transformers[sentencepiece]; extra == "test"
31
- Requires-Dist: google-auth-oauthlib; extra == "test"
32
- Requires-Dist: logfire[httpx]; extra == "test"
32
+ Requires-Dist: torchaudio; extra == "test"
33
+ Requires-Dist: pydantic-ai[logfire,openai]; extra == "test"
34
+ Requires-Dist: faker; extra == "test"
33
35
  Requires-Dist: pydantic; extra == "test"
36
+ Requires-Dist: distributed; extra == "test"
34
37
  Requires-Dist: dask[bag]; extra == "test"
35
- Requires-Dist: Unidecode; extra == "test"
36
- Requires-Dist: docker; extra == "test"
37
- Requires-Dist: google-auth; extra == "test"
38
+ Requires-Dist: sre_yield; extra == "test"
39
+ Requires-Dist: tabulate; extra == "test"
40
+ Requires-Dist: html2text; extra == "test"
41
+ Requires-Dist: tinynetrc; extra == "test"
42
+ Requires-Dist: setuptools; extra == "test"
43
+ Requires-Dist: pyyaml; extra == "test"
44
+ Requires-Dist: openpyxl; extra == "test"
45
+ Requires-Dist: flet-video; extra == "test"
46
+ Requires-Dist: openai; extra == "test"
47
+ Requires-Dist: flet-webview; extra == "test"
48
+ Requires-Dist: pydevd-pycharm; extra == "test"
38
49
  Requires-Dist: contexttimer; extra == "test"
39
- Requires-Dist: peft; extra == "test"
50
+ Requires-Dist: google-auth; extra == "test"
40
51
  Requires-Dist: semver; extra == "test"
41
- Requires-Dist: regex; extra == "test"
52
+ Requires-Dist: huggingface_hub; extra == "test"
53
+ Requires-Dist: tokenizers; extra == "test"
54
+ Requires-Dist: peft; extra == "test"
42
55
  Requires-Dist: logfire; extra == "test"
43
- Requires-Dist: pytest-cov; extra == "test"
44
- Requires-Dist: yamlscript; extra == "test"
45
- Requires-Dist: pandas; extra == "test"
46
- Requires-Dist: ollama; extra == "test"
47
- Requires-Dist: openpyxl; extra == "test"
48
- Requires-Dist: appdirs; extra == "test"
49
- Requires-Dist: html2text; extra == "test"
50
- Requires-Dist: flet-video; extra == "test"
51
- Requires-Dist: flet[all]; extra == "test"
56
+ Requires-Dist: google-auth-oauthlib; extra == "test"
57
+ Requires-Dist: filetype; extra == "test"
58
+ Requires-Dist: deepmerge; extra == "test"
52
59
  Requires-Dist: google-api-python-client; extra == "test"
53
- Requires-Dist: dnspython[doh]; extra == "test"
54
- Requires-Dist: pymupdf; extra == "test"
55
- Requires-Dist: sre_yield; extra == "test"
56
- Requires-Dist: pydantic-settings; extra == "test"
57
- Requires-Dist: tabulate; extra == "test"
58
- Requires-Dist: flet-webview; extra == "test"
60
+ Requires-Dist: bokeh; extra == "test"
59
61
  Requires-Dist: httpx; extra == "test"
60
- Requires-Dist: tokenizers; extra == "test"
61
- Requires-Dist: torchvision; extra == "test"
62
- Requires-Dist: json_repair; extra == "test"
63
- Requires-Dist: pydantic-ai[logfire,openai]; extra == "test"
64
- Requires-Dist: torchaudio; extra == "test"
65
- Requires-Dist: uvicorn[standard]; extra == "test"
62
+ Requires-Dist: google-auth-httplib2; extra == "test"
63
+ Requires-Dist: appdirs; extra == "test"
64
+ Requires-Dist: Unidecode; extra == "test"
65
+ Requires-Dist: transformers[sentencepiece]; extra == "test"
66
66
  Provides-Extra: yaml
67
67
  Requires-Dist: yamlscript; extra == "yaml"
68
68
  Requires-Dist: pyyaml; extra == "yaml"
@@ -42,7 +42,6 @@ setup.py
42
42
  ./fmtr/tools/random_tools.py
43
43
  ./fmtr/tools/semantic_tools.py
44
44
  ./fmtr/tools/settings_tools.py
45
- ./fmtr/tools/setup_tools.py
46
45
  ./fmtr/tools/spaces_tools.py
47
46
  ./fmtr/tools/string_tools.py
48
47
  ./fmtr/tools/tabular_tools.py
@@ -59,6 +58,8 @@ setup.py
59
58
  ./fmtr/tools/path_tools/app_path_tools.py
60
59
  ./fmtr/tools/path_tools/path_tools.py
61
60
  ./fmtr/tools/path_tools/type_path_tools.py
61
+ ./fmtr/tools/setup_tools/__init__.py
62
+ ./fmtr/tools/setup_tools/setup_tools.py
62
63
  ./fmtr/tools/tests/__init__.py
63
64
  ./fmtr/tools/tests/conftest.py
64
65
  ./fmtr/tools/tests/helpers.py
@@ -1 +0,0 @@
1
- 1.1.21
File without changes
File without changes
@@ -135,60 +135,60 @@ tabulate
135
135
  openpyxl
136
136
 
137
137
  [test]
138
- tinynetrc
138
+ pytest-cov
139
+ yamlscript
140
+ pandas
141
+ regex
142
+ docker
143
+ json_repair
144
+ uvicorn[standard]
145
+ pymupdf
146
+ logfire[fastapi]
147
+ logfire[httpx]
148
+ pymupdf4llm
149
+ sentence_transformers
150
+ dnspython[doh]
139
151
  fastapi
152
+ torchvision
140
153
  httpx_retries
141
- setuptools
142
- filetype
143
- faker
144
- pydevd-pycharm
145
- pyyaml
146
- logfire[fastapi]
147
- google-auth-httplib2
148
- openai
154
+ flet[all]
155
+ pydantic-settings
156
+ ollama
149
157
  diskcache
150
- bokeh
151
- sentence_transformers
152
- pymupdf4llm
153
- distributed
154
- huggingface_hub
155
- deepmerge
156
- transformers[sentencepiece]
157
- google-auth-oauthlib
158
- logfire[httpx]
158
+ torchaudio
159
+ pydantic-ai[logfire,openai]
160
+ faker
159
161
  pydantic
162
+ distributed
160
163
  dask[bag]
161
- Unidecode
162
- docker
163
- google-auth
164
+ sre_yield
165
+ tabulate
166
+ html2text
167
+ tinynetrc
168
+ setuptools
169
+ pyyaml
170
+ openpyxl
171
+ flet-video
172
+ openai
173
+ flet-webview
174
+ pydevd-pycharm
164
175
  contexttimer
165
- peft
176
+ google-auth
166
177
  semver
167
- regex
178
+ huggingface_hub
179
+ tokenizers
180
+ peft
168
181
  logfire
169
- pytest-cov
170
- yamlscript
171
- pandas
172
- ollama
173
- openpyxl
174
- appdirs
175
- html2text
176
- flet-video
177
- flet[all]
182
+ google-auth-oauthlib
183
+ filetype
184
+ deepmerge
178
185
  google-api-python-client
179
- dnspython[doh]
180
- pymupdf
181
- sre_yield
182
- pydantic-settings
183
- tabulate
184
- flet-webview
186
+ bokeh
185
187
  httpx
186
- tokenizers
187
- torchvision
188
- json_repair
189
- pydantic-ai[logfire,openai]
190
- torchaudio
191
- uvicorn[standard]
188
+ google-auth-httplib2
189
+ appdirs
190
+ Unidecode
191
+ transformers[sentencepiece]
192
192
 
193
193
  [tokenization]
194
194
  tokenizers
File without changes
File without changes