fmtr.tools 1.1.20__tar.gz → 1.1.22__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 (78) hide show
  1. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/PKG-INFO +44 -44
  2. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/__init__.py +2 -1
  3. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/path_tools/path_tools.py +8 -2
  4. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/setup_tools.py +53 -35
  5. fmtr_tools-1.1.22/fmtr/tools/version +1 -0
  6. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr.tools.egg-info/PKG-INFO +44 -44
  7. fmtr_tools-1.1.20/fmtr/tools/version +0 -1
  8. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/LICENSE +0 -0
  9. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/README.md +0 -0
  10. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/ai_tools/__init__.py +0 -0
  11. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/ai_tools/agentic_tools.py +0 -0
  12. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/ai_tools/inference_tools.py +0 -0
  13. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/api_tools.py +0 -0
  14. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/async_tools.py +0 -0
  15. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/augmentation_tools.py +0 -0
  16. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/caching_tools.py +0 -0
  17. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/console_script_tools.py +0 -0
  18. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/constants.py +0 -0
  19. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/data_modelling_tools.py +0 -0
  20. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/dataclass_tools.py +0 -0
  21. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/datatype_tools.py +0 -0
  22. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/debugging_tools.py +0 -0
  23. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/dns_tools.py +0 -0
  24. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/docker_tools.py +0 -0
  25. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/environment_tools.py +0 -0
  26. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/function_tools.py +0 -0
  27. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/google_api_tools.py +0 -0
  28. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/hash_tools.py +0 -0
  29. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/hfh_tools.py +0 -0
  30. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/html_tools.py +0 -0
  31. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/import_tools.py +0 -0
  32. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/inspection_tools.py +0 -0
  33. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/interface_tools.py +0 -0
  34. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/iterator_tools.py +0 -0
  35. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/json_fix_tools.py +0 -0
  36. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/json_tools.py +0 -0
  37. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/logging_tools.py +0 -0
  38. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/merging_tools.py +0 -0
  39. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/metric_tools.py +0 -0
  40. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/name_tools.py +0 -0
  41. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/netrc_tools.py +0 -0
  42. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/openai_tools.py +0 -0
  43. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/packaging_tools.py +0 -0
  44. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/parallel_tools.py +0 -0
  45. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/path_tools/__init__.py +0 -0
  46. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/path_tools/app_path_tools.py +0 -0
  47. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/path_tools/type_path_tools.py +0 -0
  48. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/pattern_tools.py +0 -0
  49. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/pdf_tools.py +0 -0
  50. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/platform_tools.py +0 -0
  51. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/process_tools.py +0 -0
  52. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/profiling_tools.py +0 -0
  53. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/random_tools.py +0 -0
  54. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/semantic_tools.py +0 -0
  55. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/settings_tools.py +0 -0
  56. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/spaces_tools.py +0 -0
  57. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/string_tools.py +0 -0
  58. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/tabular_tools.py +0 -0
  59. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/tests/__init__.py +0 -0
  60. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/tests/conftest.py +0 -0
  61. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/tests/helpers.py +0 -0
  62. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/tests/test_datatype.py +0 -0
  63. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/tests/test_environment.py +0 -0
  64. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/tests/test_json.py +0 -0
  65. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/tests/test_path.py +0 -0
  66. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/tests/test_yaml.py +0 -0
  67. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/tokenization_tools.py +0 -0
  68. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/tools.py +0 -0
  69. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/unicode_tools.py +0 -0
  70. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/version_tools.py +0 -0
  71. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr/tools/yaml_tools.py +0 -0
  72. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr.tools.egg-info/SOURCES.txt +0 -0
  73. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr.tools.egg-info/dependency_links.txt +0 -0
  74. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr.tools.egg-info/entry_points.txt +0 -0
  75. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr.tools.egg-info/requires.txt +43 -43
  76. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/fmtr.tools.egg-info/top_level.txt +0 -0
  77. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/setup.cfg +0 -0
  78. {fmtr_tools-1.1.20 → fmtr_tools-1.1.22}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fmtr.tools
3
- Version: 1.1.20
3
+ Version: 1.1.22
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: yamlscript; extra == "test"
13
- Requires-Dist: semver; extra == "test"
14
- Requires-Dist: setuptools; extra == "test"
15
- Requires-Dist: deepmerge; extra == "test"
16
12
  Requires-Dist: google-auth-oauthlib; extra == "test"
17
- Requires-Dist: html2text; extra == "test"
18
- Requires-Dist: pydantic; extra == "test"
19
- Requires-Dist: logfire[httpx]; extra == "test"
20
- Requires-Dist: json_repair; extra == "test"
21
- Requires-Dist: sre_yield; extra == "test"
22
- Requires-Dist: pydantic-settings; extra == "test"
23
13
  Requires-Dist: google-auth-httplib2; extra == "test"
24
- Requires-Dist: tinynetrc; extra == "test"
25
- Requires-Dist: openai; extra == "test"
26
- Requires-Dist: pydevd-pycharm; extra == "test"
27
- Requires-Dist: contexttimer; extra == "test"
28
- Requires-Dist: pymupdf; extra == "test"
29
- Requires-Dist: ollama; extra == "test"
30
- Requires-Dist: dnspython[doh]; extra == "test"
31
- Requires-Dist: pyyaml; extra == "test"
32
- Requires-Dist: huggingface_hub; extra == "test"
33
- Requires-Dist: logfire[fastapi]; extra == "test"
34
- Requires-Dist: transformers[sentencepiece]; extra == "test"
35
- Requires-Dist: google-api-python-client; extra == "test"
36
- Requires-Dist: flet[all]; extra == "test"
37
- Requires-Dist: pytest-cov; extra == "test"
38
- Requires-Dist: torchaudio; extra == "test"
39
- Requires-Dist: flet-video; extra == "test"
14
+ Requires-Dist: json_repair; extra == "test"
15
+ Requires-Dist: pydantic; extra == "test"
16
+ Requires-Dist: docker; extra == "test"
40
17
  Requires-Dist: httpx_retries; extra == "test"
41
- Requires-Dist: faker; extra == "test"
42
- Requires-Dist: pymupdf4llm; extra == "test"
43
- Requires-Dist: filetype; extra == "test"
44
- Requires-Dist: uvicorn[standard]; extra == "test"
45
- Requires-Dist: peft; extra == "test"
46
- Requires-Dist: logfire; extra == "test"
47
18
  Requires-Dist: bokeh; extra == "test"
48
- Requires-Dist: pydantic-ai[logfire,openai]; extra == "test"
49
- Requires-Dist: regex; extra == "test"
50
- Requires-Dist: tabulate; extra == "test"
19
+ Requires-Dist: dask[bag]; extra == "test"
20
+ Requires-Dist: faker; extra == "test"
21
+ Requires-Dist: Unidecode; extra == "test"
22
+ Requires-Dist: tokenizers; extra == "test"
51
23
  Requires-Dist: sentence_transformers; extra == "test"
24
+ Requires-Dist: peft; extra == "test"
25
+ Requires-Dist: flet-webview; extra == "test"
26
+ Requires-Dist: yamlscript; extra == "test"
27
+ Requires-Dist: dnspython[doh]; extra == "test"
28
+ Requires-Dist: flet[all]; extra == "test"
29
+ Requires-Dist: fastapi; extra == "test"
30
+ Requires-Dist: filetype; extra == "test"
31
+ Requires-Dist: pyyaml; extra == "test"
32
+ Requires-Dist: html2text; extra == "test"
33
+ Requires-Dist: ollama; extra == "test"
34
+ Requires-Dist: transformers[sentencepiece]; extra == "test"
52
35
  Requires-Dist: openpyxl; extra == "test"
36
+ Requires-Dist: logfire; extra == "test"
53
37
  Requires-Dist: distributed; extra == "test"
54
- Requires-Dist: dask[bag]; extra == "test"
55
- Requires-Dist: appdirs; extra == "test"
56
- Requires-Dist: Unidecode; extra == "test"
57
- Requires-Dist: docker; extra == "test"
58
- Requires-Dist: httpx; extra == "test"
38
+ Requires-Dist: deepmerge; extra == "test"
39
+ Requires-Dist: pydantic-ai[logfire,openai]; extra == "test"
59
40
  Requires-Dist: diskcache; extra == "test"
41
+ Requires-Dist: pymupdf4llm; extra == "test"
60
42
  Requires-Dist: pandas; extra == "test"
43
+ Requires-Dist: setuptools; extra == "test"
44
+ Requires-Dist: tabulate; extra == "test"
45
+ Requires-Dist: pydantic-settings; extra == "test"
46
+ Requires-Dist: contexttimer; extra == "test"
47
+ Requires-Dist: httpx; extra == "test"
48
+ Requires-Dist: sre_yield; extra == "test"
49
+ Requires-Dist: google-api-python-client; extra == "test"
50
+ Requires-Dist: openai; extra == "test"
51
+ Requires-Dist: appdirs; extra == "test"
52
+ Requires-Dist: logfire[httpx]; extra == "test"
61
53
  Requires-Dist: google-auth; extra == "test"
62
- Requires-Dist: tokenizers; extra == "test"
63
- Requires-Dist: fastapi; extra == "test"
64
- Requires-Dist: flet-webview; extra == "test"
54
+ Requires-Dist: pymupdf; extra == "test"
55
+ Requires-Dist: pydevd-pycharm; extra == "test"
56
+ Requires-Dist: tinynetrc; extra == "test"
57
+ Requires-Dist: logfire[fastapi]; extra == "test"
58
+ Requires-Dist: pytest-cov; extra == "test"
59
+ Requires-Dist: huggingface_hub; extra == "test"
65
60
  Requires-Dist: torchvision; extra == "test"
61
+ Requires-Dist: torchaudio; extra == "test"
62
+ Requires-Dist: semver; extra == "test"
63
+ Requires-Dist: regex; extra == "test"
64
+ Requires-Dist: flet-video; extra == "test"
65
+ Requires-Dist: uvicorn[standard]; extra == "test"
66
66
  Provides-Extra: yaml
67
67
  Requires-Dist: yamlscript; extra == "yaml"
68
68
  Requires-Dist: pyyaml; extra == "yaml"
@@ -177,5 +177,6 @@ except ImportError as exception:
177
177
 
178
178
  try:
179
179
  from fmtr.tools import setup_tools as setup
180
+ from fmtr.tools.setup_tools import Setup, SetupPaths, Dependencies
180
181
  except ImportError as exception:
181
- setup = MissingExtraMockModule('setup', exception)
182
+ setup = Setup = SetupPaths = Dependencies = MissingExtraMockModule('setup', exception)
@@ -177,8 +177,14 @@ class Path(type(Path())):
177
177
  kind = path.guess(str(self.absolute()))
178
178
  return kind
179
179
 
180
+ @property
181
+ def children(self):
182
+ if not self.is_dir():
183
+ return None
184
+ return sorted(self.iterdir(), key=lambda x: x.is_dir(), reverse=True)
185
+
180
186
 
181
- class PathsBase:
187
+ class FromCallerMixin:
182
188
  """
183
189
 
184
190
 
@@ -190,7 +196,7 @@ class PathsBase:
190
196
  return path
191
197
 
192
198
 
193
- class PackagePaths(PathsBase):
199
+ class PackagePaths(FromCallerMixin):
194
200
  """
195
201
 
196
202
  Canonical paths for a package.
@@ -1,4 +1,6 @@
1
+ import sys
1
2
  from datetime import datetime
3
+ from fnmatch import fnmatch
2
4
  from functools import cached_property
3
5
  from itertools import chain
4
6
  from typing import List, Dict
@@ -7,17 +9,17 @@ from setuptools import find_namespace_packages, find_packages, setup
7
9
 
8
10
  from fmtr.tools.constants import Constants
9
11
  from fmtr.tools.path_tools import Path
10
- from fmtr.tools.path_tools.path_tools import PathsBase
12
+ from fmtr.tools.path_tools.path_tools import FromCallerMixin
11
13
 
12
14
 
13
- class SetupPaths(PathsBase):
15
+ class SetupPaths(FromCallerMixin):
14
16
  """
15
17
 
16
- Canonical paths for a package.
18
+ Canonical paths for a repo.
17
19
 
18
20
  """
19
21
 
20
- SKIP_DIRS = {'data'}
22
+ SKIP_DIRS = {'data', 'build', 'dist', '.*', '*egg-info*'}
21
23
 
22
24
  def __init__(self, path=None):
23
25
 
@@ -51,18 +53,13 @@ class SetupPaths(PathsBase):
51
53
 
52
54
  directories = [
53
55
  dir for dir in self.repo.iterdir()
54
- if
55
- (
56
- dir.is_dir()
57
- and not dir.name.startswith('.')
58
- and dir.name not in self.SKIP_DIRS
59
- and 'egg-info' not in dir.name
60
- )
56
+ if dir.is_dir()
57
+ and not any(fnmatch(dir.name, pattern) for pattern in self.SKIP_DIRS)
61
58
  ]
62
59
 
63
60
  if len(directories) != 1:
64
61
  dirs_str = ', '.join([str(dir) for dir in directories])
65
- raise ValueError(f'Expected exactly one directory in "{self.repo}", found {dirs_str}')
62
+ raise ValueError(f'Expected exactly one directory in {self.repo}, found {dirs_str}')
66
63
 
67
64
  target = next(iter(directories))
68
65
 
@@ -89,19 +86,56 @@ class SetupPaths(PathsBase):
89
86
  return name
90
87
 
91
88
 
92
- class Setup:
89
+ class Setup(FromCallerMixin):
93
90
  AUTHOR = 'Frontmatter'
94
91
  AUTHOR_EMAIL = 'innovative.fowler@mask.pro.fmtr.dev'
95
92
 
96
- def __init__(self, paths, dependencies, console_scripts=None, client=None, **kwargs):
93
+ REQUIREMENTS_ARG = 'requirements'
94
+
95
+
96
+ def __init__(self, dependencies, paths=None, console_scripts=None, client=None, do_setup=True, **kwargs):
97
97
 
98
98
  self.kwargs = kwargs
99
+
100
+ if type(dependencies) is not Dependencies:
101
+ dependencies = Dependencies(**dependencies)
99
102
  self.dependencies = dependencies
103
+
104
+ requirements_extras = self.get_requirements_extras()
105
+
106
+ if requirements_extras:
107
+ self.print_requirements()
108
+ return
109
+
110
+ if not paths:
111
+ paths = SetupPaths(path=self.from_caller())
100
112
  self.paths = paths
101
113
 
102
114
  self.client = client
103
115
  self.console_scripts = console_scripts
104
116
 
117
+ if do_setup:
118
+ self.setup()
119
+
120
+ def get_requirements_extras(self):
121
+ if self.REQUIREMENTS_ARG not in sys.argv:
122
+ return None
123
+
124
+ extras_str = sys.argv[-1]
125
+ extras = extras_str.split(',')
126
+ return extras
127
+
128
+ def print_requirements(self):
129
+ reqs = []
130
+ reqs += self.dependencies.install
131
+
132
+ for extra in sys.argv[-1].split(','):
133
+ reqs += self.dependencies.extras[extra]
134
+ reqs = '\n'.join(reqs)
135
+ print(reqs)
136
+
137
+
138
+
105
139
  def get_entrypoint_path(self, key, value):
106
140
  if value:
107
141
  return f'{self.name}.{value}:{key}'
@@ -169,7 +203,8 @@ class Setup:
169
203
  def url(self):
170
204
  return f'https://github.com/{self.paths.org}/{self.paths.name}'
171
205
 
172
- def get_data_setup(self):
206
+ @property
207
+ def data(self):
173
208
  return dict(
174
209
  name=self.name,
175
210
  version=self.version,
@@ -188,27 +223,10 @@ class Setup:
188
223
  ) | self.kwargs
189
224
 
190
225
  def setup(self):
191
- data = self.get_data_setup()
192
- return setup(**data)
193
226
 
227
+ return setup(**self.data)
194
228
 
195
- class Entrypoints:
196
- ALL = 'all'
197
- INSTALL = 'install'
198
229
 
199
- def __init__(self, console_scripts=None, **kwargs):
200
- self.kwargs = kwargs
201
- self._console_scripts = console_scripts
202
-
203
- @property
204
- def console_scripts(self):
205
- return [f'{key} = {value}:{key}' for key, value in self._console_scripts.items()]
206
-
207
- @property
208
- def data(self):
209
- return dict(
210
- console_scripts=self.console_scripts,
211
- ) | self.kwargs
212
230
 
213
231
 
214
232
  class Dependencies:
@@ -237,7 +255,7 @@ class Dependencies:
237
255
 
238
256
  return values_resolved
239
257
 
240
- @property
258
+ @cached_property
241
259
  def extras(self) -> Dict[str, List[str]]:
242
260
  """
243
261
 
@@ -249,7 +267,7 @@ class Dependencies:
249
267
  resolved[self.ALL] = list(set(chain.from_iterable(resolved.values())))
250
268
  return resolved
251
269
 
252
- @property
270
+ @cached_property
253
271
  def install(self):
254
272
  return self.resolve_values(self.INSTALL)
255
273
 
@@ -0,0 +1 @@
1
+ 1.1.22
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fmtr.tools
3
- Version: 1.1.20
3
+ Version: 1.1.22
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: yamlscript; extra == "test"
13
- Requires-Dist: semver; extra == "test"
14
- Requires-Dist: setuptools; extra == "test"
15
- Requires-Dist: deepmerge; extra == "test"
16
12
  Requires-Dist: google-auth-oauthlib; extra == "test"
17
- Requires-Dist: html2text; extra == "test"
18
- Requires-Dist: pydantic; extra == "test"
19
- Requires-Dist: logfire[httpx]; extra == "test"
20
- Requires-Dist: json_repair; extra == "test"
21
- Requires-Dist: sre_yield; extra == "test"
22
- Requires-Dist: pydantic-settings; extra == "test"
23
13
  Requires-Dist: google-auth-httplib2; extra == "test"
24
- Requires-Dist: tinynetrc; extra == "test"
25
- Requires-Dist: openai; extra == "test"
26
- Requires-Dist: pydevd-pycharm; extra == "test"
27
- Requires-Dist: contexttimer; extra == "test"
28
- Requires-Dist: pymupdf; extra == "test"
29
- Requires-Dist: ollama; extra == "test"
30
- Requires-Dist: dnspython[doh]; extra == "test"
31
- Requires-Dist: pyyaml; extra == "test"
32
- Requires-Dist: huggingface_hub; extra == "test"
33
- Requires-Dist: logfire[fastapi]; extra == "test"
34
- Requires-Dist: transformers[sentencepiece]; extra == "test"
35
- Requires-Dist: google-api-python-client; extra == "test"
36
- Requires-Dist: flet[all]; extra == "test"
37
- Requires-Dist: pytest-cov; extra == "test"
38
- Requires-Dist: torchaudio; extra == "test"
39
- Requires-Dist: flet-video; extra == "test"
14
+ Requires-Dist: json_repair; extra == "test"
15
+ Requires-Dist: pydantic; extra == "test"
16
+ Requires-Dist: docker; extra == "test"
40
17
  Requires-Dist: httpx_retries; extra == "test"
41
- Requires-Dist: faker; extra == "test"
42
- Requires-Dist: pymupdf4llm; extra == "test"
43
- Requires-Dist: filetype; extra == "test"
44
- Requires-Dist: uvicorn[standard]; extra == "test"
45
- Requires-Dist: peft; extra == "test"
46
- Requires-Dist: logfire; extra == "test"
47
18
  Requires-Dist: bokeh; extra == "test"
48
- Requires-Dist: pydantic-ai[logfire,openai]; extra == "test"
49
- Requires-Dist: regex; extra == "test"
50
- Requires-Dist: tabulate; extra == "test"
19
+ Requires-Dist: dask[bag]; extra == "test"
20
+ Requires-Dist: faker; extra == "test"
21
+ Requires-Dist: Unidecode; extra == "test"
22
+ Requires-Dist: tokenizers; extra == "test"
51
23
  Requires-Dist: sentence_transformers; extra == "test"
24
+ Requires-Dist: peft; extra == "test"
25
+ Requires-Dist: flet-webview; extra == "test"
26
+ Requires-Dist: yamlscript; extra == "test"
27
+ Requires-Dist: dnspython[doh]; extra == "test"
28
+ Requires-Dist: flet[all]; extra == "test"
29
+ Requires-Dist: fastapi; extra == "test"
30
+ Requires-Dist: filetype; extra == "test"
31
+ Requires-Dist: pyyaml; extra == "test"
32
+ Requires-Dist: html2text; extra == "test"
33
+ Requires-Dist: ollama; extra == "test"
34
+ Requires-Dist: transformers[sentencepiece]; extra == "test"
52
35
  Requires-Dist: openpyxl; extra == "test"
36
+ Requires-Dist: logfire; extra == "test"
53
37
  Requires-Dist: distributed; extra == "test"
54
- Requires-Dist: dask[bag]; extra == "test"
55
- Requires-Dist: appdirs; extra == "test"
56
- Requires-Dist: Unidecode; extra == "test"
57
- Requires-Dist: docker; extra == "test"
58
- Requires-Dist: httpx; extra == "test"
38
+ Requires-Dist: deepmerge; extra == "test"
39
+ Requires-Dist: pydantic-ai[logfire,openai]; extra == "test"
59
40
  Requires-Dist: diskcache; extra == "test"
41
+ Requires-Dist: pymupdf4llm; extra == "test"
60
42
  Requires-Dist: pandas; extra == "test"
43
+ Requires-Dist: setuptools; extra == "test"
44
+ Requires-Dist: tabulate; extra == "test"
45
+ Requires-Dist: pydantic-settings; extra == "test"
46
+ Requires-Dist: contexttimer; extra == "test"
47
+ Requires-Dist: httpx; extra == "test"
48
+ Requires-Dist: sre_yield; extra == "test"
49
+ Requires-Dist: google-api-python-client; extra == "test"
50
+ Requires-Dist: openai; extra == "test"
51
+ Requires-Dist: appdirs; extra == "test"
52
+ Requires-Dist: logfire[httpx]; extra == "test"
61
53
  Requires-Dist: google-auth; extra == "test"
62
- Requires-Dist: tokenizers; extra == "test"
63
- Requires-Dist: fastapi; extra == "test"
64
- Requires-Dist: flet-webview; extra == "test"
54
+ Requires-Dist: pymupdf; extra == "test"
55
+ Requires-Dist: pydevd-pycharm; extra == "test"
56
+ Requires-Dist: tinynetrc; extra == "test"
57
+ Requires-Dist: logfire[fastapi]; extra == "test"
58
+ Requires-Dist: pytest-cov; extra == "test"
59
+ Requires-Dist: huggingface_hub; extra == "test"
65
60
  Requires-Dist: torchvision; extra == "test"
61
+ Requires-Dist: torchaudio; extra == "test"
62
+ Requires-Dist: semver; extra == "test"
63
+ Requires-Dist: regex; extra == "test"
64
+ Requires-Dist: flet-video; extra == "test"
65
+ Requires-Dist: uvicorn[standard]; extra == "test"
66
66
  Provides-Extra: yaml
67
67
  Requires-Dist: yamlscript; extra == "yaml"
68
68
  Requires-Dist: pyyaml; extra == "yaml"
@@ -1 +0,0 @@
1
- 1.1.20
File without changes
File without changes
@@ -135,60 +135,60 @@ tabulate
135
135
  openpyxl
136
136
 
137
137
  [test]
138
- yamlscript
139
- semver
140
- setuptools
141
- deepmerge
142
138
  google-auth-oauthlib
143
- html2text
144
- pydantic
145
- logfire[httpx]
146
- json_repair
147
- sre_yield
148
- pydantic-settings
149
139
  google-auth-httplib2
150
- tinynetrc
151
- openai
152
- pydevd-pycharm
153
- contexttimer
154
- pymupdf
155
- ollama
156
- dnspython[doh]
157
- pyyaml
158
- huggingface_hub
159
- logfire[fastapi]
160
- transformers[sentencepiece]
161
- google-api-python-client
162
- flet[all]
163
- pytest-cov
164
- torchaudio
165
- flet-video
140
+ json_repair
141
+ pydantic
142
+ docker
166
143
  httpx_retries
167
- faker
168
- pymupdf4llm
169
- filetype
170
- uvicorn[standard]
171
- peft
172
- logfire
173
144
  bokeh
174
- pydantic-ai[logfire,openai]
175
- regex
176
- tabulate
145
+ dask[bag]
146
+ faker
147
+ Unidecode
148
+ tokenizers
177
149
  sentence_transformers
150
+ peft
151
+ flet-webview
152
+ yamlscript
153
+ dnspython[doh]
154
+ flet[all]
155
+ fastapi
156
+ filetype
157
+ pyyaml
158
+ html2text
159
+ ollama
160
+ transformers[sentencepiece]
178
161
  openpyxl
162
+ logfire
179
163
  distributed
180
- dask[bag]
181
- appdirs
182
- Unidecode
183
- docker
184
- httpx
164
+ deepmerge
165
+ pydantic-ai[logfire,openai]
185
166
  diskcache
167
+ pymupdf4llm
186
168
  pandas
169
+ setuptools
170
+ tabulate
171
+ pydantic-settings
172
+ contexttimer
173
+ httpx
174
+ sre_yield
175
+ google-api-python-client
176
+ openai
177
+ appdirs
178
+ logfire[httpx]
187
179
  google-auth
188
- tokenizers
189
- fastapi
190
- flet-webview
180
+ pymupdf
181
+ pydevd-pycharm
182
+ tinynetrc
183
+ logfire[fastapi]
184
+ pytest-cov
185
+ huggingface_hub
191
186
  torchvision
187
+ torchaudio
188
+ semver
189
+ regex
190
+ flet-video
191
+ uvicorn[standard]
192
192
 
193
193
  [tokenization]
194
194
  tokenizers
File without changes
File without changes