fmtr.tools 1.1.27__tar.gz → 1.1.28__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 (80) hide show
  1. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/PKG-INFO +43 -43
  2. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/constants.py +4 -0
  3. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/setup_tools/setup_tools.py +42 -29
  4. fmtr_tools-1.1.28/fmtr/tools/version +1 -0
  5. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr.tools.egg-info/PKG-INFO +43 -43
  6. fmtr_tools-1.1.27/fmtr/tools/version +0 -1
  7. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/LICENSE +0 -0
  8. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/README.md +0 -0
  9. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/__init__.py +0 -0
  10. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/ai_tools/__init__.py +0 -0
  11. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/ai_tools/agentic_tools.py +0 -0
  12. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/ai_tools/inference_tools.py +0 -0
  13. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/api_tools.py +0 -0
  14. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/async_tools.py +0 -0
  15. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/augmentation_tools.py +0 -0
  16. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/caching_tools.py +0 -0
  17. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/console_script_tools.py +0 -0
  18. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/data_modelling_tools.py +0 -0
  19. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/dataclass_tools.py +0 -0
  20. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/datatype_tools.py +0 -0
  21. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/debugging_tools.py +0 -0
  22. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/dns_tools.py +0 -0
  23. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/docker_tools.py +0 -0
  24. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/environment_tools.py +0 -0
  25. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/function_tools.py +0 -0
  26. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/google_api_tools.py +0 -0
  27. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/hash_tools.py +0 -0
  28. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/hfh_tools.py +0 -0
  29. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/html_tools.py +0 -0
  30. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/http_tools.py +0 -0
  31. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/import_tools.py +0 -0
  32. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/inspection_tools.py +0 -0
  33. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/interface_tools.py +0 -0
  34. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/iterator_tools.py +0 -0
  35. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/json_fix_tools.py +0 -0
  36. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/json_tools.py +0 -0
  37. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/logging_tools.py +0 -0
  38. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/merging_tools.py +0 -0
  39. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/metric_tools.py +0 -0
  40. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/name_tools.py +0 -0
  41. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/netrc_tools.py +0 -0
  42. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/openai_tools.py +0 -0
  43. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/packaging_tools.py +0 -0
  44. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/parallel_tools.py +0 -0
  45. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/path_tools/__init__.py +0 -0
  46. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/path_tools/app_path_tools.py +0 -0
  47. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/path_tools/path_tools.py +0 -0
  48. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/path_tools/type_path_tools.py +0 -0
  49. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/pattern_tools.py +0 -0
  50. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/pdf_tools.py +0 -0
  51. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/platform_tools.py +0 -0
  52. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/process_tools.py +0 -0
  53. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/profiling_tools.py +0 -0
  54. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/random_tools.py +0 -0
  55. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/semantic_tools.py +0 -0
  56. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/settings_tools.py +0 -0
  57. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/setup_tools/__init__.py +0 -0
  58. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/spaces_tools.py +0 -0
  59. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/string_tools.py +0 -0
  60. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/tabular_tools.py +0 -0
  61. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/tests/__init__.py +0 -0
  62. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/tests/conftest.py +0 -0
  63. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/tests/helpers.py +0 -0
  64. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/tests/test_datatype.py +0 -0
  65. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/tests/test_environment.py +0 -0
  66. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/tests/test_json.py +0 -0
  67. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/tests/test_path.py +0 -0
  68. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/tests/test_yaml.py +0 -0
  69. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/tokenization_tools.py +0 -0
  70. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/tools.py +0 -0
  71. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/unicode_tools.py +0 -0
  72. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/version_tools.py +0 -0
  73. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr/tools/yaml_tools.py +0 -0
  74. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr.tools.egg-info/SOURCES.txt +0 -0
  75. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr.tools.egg-info/dependency_links.txt +0 -0
  76. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr.tools.egg-info/entry_points.txt +0 -0
  77. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr.tools.egg-info/requires.txt +42 -42
  78. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/fmtr.tools.egg-info/top_level.txt +0 -0
  79. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/setup.cfg +0 -0
  80. {fmtr_tools-1.1.27 → fmtr_tools-1.1.28}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fmtr.tools
3
- Version: 1.1.27
3
+ Version: 1.1.28
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: flet[all]; extra == "test"
13
- Requires-Dist: distributed; extra == "test"
14
- Requires-Dist: appdirs; extra == "test"
15
- Requires-Dist: pydantic-ai[logfire,openai]; extra == "test"
16
- Requires-Dist: docker; extra == "test"
12
+ Requires-Dist: setuptools; extra == "test"
13
+ Requires-Dist: httpx_retries; extra == "test"
14
+ Requires-Dist: flet-webview; extra == "test"
15
+ Requires-Dist: filetype; extra == "test"
16
+ Requires-Dist: httpx; extra == "test"
17
17
  Requires-Dist: bokeh; extra == "test"
18
- Requires-Dist: openpyxl; extra == "test"
18
+ Requires-Dist: fastapi; extra == "test"
19
19
  Requires-Dist: tabulate; extra == "test"
20
- Requires-Dist: ollama; extra == "test"
21
- Requires-Dist: pydevd-pycharm; extra == "test"
22
- Requires-Dist: openai; extra == "test"
23
- Requires-Dist: pyyaml; extra == "test"
24
- Requires-Dist: huggingface_hub; extra == "test"
25
- Requires-Dist: pytest-cov; extra == "test"
26
- Requires-Dist: pydantic-settings; extra == "test"
27
- Requires-Dist: pymupdf; extra == "test"
28
- Requires-Dist: sentence_transformers; extra == "test"
29
- Requires-Dist: pymupdf4llm; extra == "test"
20
+ Requires-Dist: flet-video; extra == "test"
21
+ Requires-Dist: uvicorn[standard]; extra == "test"
22
+ Requires-Dist: logfire[httpx]; extra == "test"
23
+ Requires-Dist: logfire; extra == "test"
24
+ Requires-Dist: torchaudio; extra == "test"
25
+ Requires-Dist: google-api-python-client; extra == "test"
30
26
  Requires-Dist: yamlscript; extra == "test"
27
+ Requires-Dist: pydantic-ai[logfire,openai]; extra == "test"
28
+ Requires-Dist: semver; extra == "test"
31
29
  Requires-Dist: html2text; extra == "test"
32
- Requires-Dist: deepmerge; extra == "test"
33
- Requires-Dist: regex; extra == "test"
34
- Requires-Dist: fastapi; extra == "test"
35
- Requires-Dist: httpx; extra == "test"
36
- Requires-Dist: pandas; extra == "test"
37
30
  Requires-Dist: dnspython[doh]; extra == "test"
38
- Requires-Dist: diskcache; extra == "test"
39
- Requires-Dist: torchvision; extra == "test"
40
- Requires-Dist: google-auth; extra == "test"
41
- Requires-Dist: dask[bag]; extra == "test"
42
- Requires-Dist: uvicorn[standard]; extra == "test"
43
- Requires-Dist: Unidecode; extra == "test"
44
31
  Requires-Dist: pydantic; extra == "test"
45
- Requires-Dist: faker; extra == "test"
46
- Requires-Dist: setuptools; extra == "test"
47
32
  Requires-Dist: tokenizers; extra == "test"
48
- Requires-Dist: flet-video; extra == "test"
33
+ Requires-Dist: deepmerge; extra == "test"
34
+ Requires-Dist: ollama; extra == "test"
35
+ Requires-Dist: diskcache; extra == "test"
49
36
  Requires-Dist: google-auth-httplib2; extra == "test"
50
- Requires-Dist: transformers[sentencepiece]; extra == "test"
51
- Requires-Dist: contexttimer; extra == "test"
52
- Requires-Dist: logfire[fastapi]; extra == "test"
53
- Requires-Dist: httpx_retries; extra == "test"
37
+ Requires-Dist: pymupdf; extra == "test"
38
+ Requires-Dist: tinynetrc; extra == "test"
39
+ Requires-Dist: pytest-cov; extra == "test"
40
+ Requires-Dist: regex; extra == "test"
41
+ Requires-Dist: faker; extra == "test"
42
+ Requires-Dist: pydevd-pycharm; extra == "test"
54
43
  Requires-Dist: sre_yield; extra == "test"
44
+ Requires-Dist: Unidecode; extra == "test"
45
+ Requires-Dist: pyyaml; extra == "test"
55
46
  Requires-Dist: peft; extra == "test"
56
- Requires-Dist: torchaudio; extra == "test"
57
- Requires-Dist: filetype; extra == "test"
58
- Requires-Dist: semver; extra == "test"
59
- Requires-Dist: tinynetrc; extra == "test"
47
+ Requires-Dist: pymupdf4llm; extra == "test"
48
+ Requires-Dist: distributed; extra == "test"
49
+ Requires-Dist: transformers[sentencepiece]; extra == "test"
60
50
  Requires-Dist: json_repair; extra == "test"
61
- Requires-Dist: google-api-python-client; extra == "test"
62
- Requires-Dist: flet-webview; extra == "test"
63
- Requires-Dist: logfire; extra == "test"
64
- Requires-Dist: logfire[httpx]; extra == "test"
51
+ Requires-Dist: torchvision; extra == "test"
52
+ Requires-Dist: sentence_transformers; extra == "test"
53
+ Requires-Dist: google-auth; extra == "test"
65
54
  Requires-Dist: google-auth-oauthlib; extra == "test"
55
+ Requires-Dist: pydantic-settings; extra == "test"
56
+ Requires-Dist: docker; extra == "test"
57
+ Requires-Dist: flet[all]; extra == "test"
58
+ Requires-Dist: contexttimer; extra == "test"
59
+ Requires-Dist: huggingface_hub; extra == "test"
60
+ Requires-Dist: pandas; extra == "test"
61
+ Requires-Dist: openai; extra == "test"
62
+ Requires-Dist: appdirs; extra == "test"
63
+ Requires-Dist: dask[bag]; extra == "test"
64
+ Requires-Dist: openpyxl; extra == "test"
65
+ Requires-Dist: logfire[fastapi]; extra == "test"
66
66
  Provides-Extra: yaml
67
67
  Requires-Dist: yamlscript; extra == "yaml"
68
68
  Requires-Dist: pyyaml; extra == "yaml"
@@ -35,3 +35,7 @@ class Constants:
35
35
  DIR_NAME_SOURCE = 'source'
36
36
  FILENAME_VERSION = 'version'
37
37
  DIR_NAME_HF = 'hf'
38
+
39
+ ENTRYPOINTS_DIR = 'entrypoints'
40
+ PACKAGE_EXCLUDE_DIRS = {'data', 'build', 'dist', '.*', '*egg-info*'}
41
+ INIT_FILENAME = '__init__.py'
@@ -1,5 +1,6 @@
1
1
  import sys
2
2
  from datetime import datetime
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
@@ -40,20 +41,22 @@ class SetupPaths(FromCallerMixin):
40
41
  @cached_property
41
42
  def path(self):
42
43
 
43
- from fmtr.tools import setup
44
-
45
- if self.org:
44
+ if self.is_namespace:
46
45
  base = self.org
47
46
  else:
48
47
  base = self.repo
49
48
 
50
- directories = [base / dir for dir in setup.find_packages(base)]
49
+ packages = [
50
+ dir for dir in base.iterdir()
51
+ if (dir / Constants.INIT_FILENAME).is_file()
52
+ and not any(fnmatch(dir.name, pattern) for pattern in Constants.PACKAGE_EXCLUDE_DIRS)
53
+ ]
51
54
 
52
- if len(directories) != 1:
53
- dirs_str = ', '.join([str(dir) for dir in directories])
54
- raise ValueError(f'Expected exactly one directory in {self.repo}, found {dirs_str}')
55
+ if len(packages) != 1:
56
+ dirs_str = ', '.join([str(dir) for dir in packages])
57
+ raise ValueError(f'Expected exactly one package in {self.repo}, found {dirs_str}')
55
58
 
56
- package = next(iter(directories))
59
+ package = next(iter(packages))
57
60
  return package
58
61
 
59
62
  @property
@@ -65,6 +68,10 @@ class SetupPaths(FromCallerMixin):
65
68
  return False
66
69
  return org
67
70
 
71
+ @property
72
+ def entrypoints(self):
73
+ return self.path / Constants.ENTRYPOINTS_DIR
74
+
68
75
  @property
69
76
  def is_namespace(self) -> bool:
70
77
  return bool(self.org)
@@ -79,9 +86,13 @@ class Setup(FromCallerMixin):
79
86
  AUTHOR_EMAIL = 'innovative.fowler@mask.pro.fmtr.dev'
80
87
 
81
88
  REQUIREMENTS_ARG = 'requirements'
82
- SKIP_DIRS = {'data', 'build', 'dist', '.*', '*egg-info*'}
83
89
 
84
- def __init__(self, dependencies, paths=None, org=Constants.ORG_NAME, console_scripts=None, client=None, do_setup=True, **kwargs):
90
+ ENTRYPOINT_COMMAND_SEP = '-'
91
+ ENTRYPOINT_FUNCTION_SEP = '_'
92
+ ENTRYPOINT_FUNC_NAME = 'main'
93
+
94
+ def __init__(self, dependencies, paths=None, org=Constants.ORG_NAME, client=None, do_setup=True, **kwargs):
95
+
85
96
 
86
97
  self.kwargs = kwargs
87
98
 
@@ -102,7 +113,7 @@ class Setup(FromCallerMixin):
102
113
  self.paths = paths
103
114
 
104
115
  self.client = client
105
- self.console_scripts = console_scripts
116
+
106
117
 
107
118
  if do_setup:
108
119
  self.setup()
@@ -124,22 +135,21 @@ class Setup(FromCallerMixin):
124
135
  reqs = '\n'.join(reqs)
125
136
  print(reqs)
126
137
 
138
+ @property
139
+ def console_scripts(self):
127
140
 
141
+ if not self.paths.entrypoints.exists():
142
+ return {}
128
143
 
129
- def get_entrypoint_path(self, key, value):
130
- if value:
131
- return f'{self.name}.{value}:{key}'
132
- else:
133
- return f'{self.name}:{key}'
144
+ names_mods = [path.stem for path in self.paths.entrypoints.iterdir() if path.is_file() and not path.stem.startswith('_')]
145
+ command_prefix = self.name.replace('.', self.ENTRYPOINT_COMMAND_SEP)
146
+ command_suffixes = [name_mod.replace(self.ENTRYPOINT_FUNCTION_SEP, self.ENTRYPOINT_COMMAND_SEP) for name_mod in names_mods]
147
+ commands = [f'{command_prefix}-{command_suffix}' for command_suffix in command_suffixes]
148
+ paths = [f'{self.name}.{Constants.ENTRYPOINTS_DIR}.{name_mod}:{self.ENTRYPOINT_FUNC_NAME}' for name_mod in names_mods]
134
149
 
135
- @property
136
- def entrypoints(self):
137
- if self.console_scripts:
138
- return dict(
139
- console_scripts=[f'{key} = {self.get_entrypoint_path(key, value)}' for key, value in self.console_scripts.items()],
140
- )
141
- else:
142
- return dict()
150
+ console_scripts = [f'{command} = {path}' for command, path in zip(commands, paths)]
151
+
152
+ return console_scripts
143
153
 
144
154
  @property
145
155
  def name(self):
@@ -180,9 +190,7 @@ class Setup(FromCallerMixin):
180
190
 
181
191
  @property
182
192
  def packages(self):
183
-
184
- excludes = list(self.SKIP_DIRS) + [f'{name}.*' for name in self.SKIP_DIRS if '*' not in name]
185
-
193
+ excludes = list(Constants.PACKAGE_EXCLUDE_DIRS) + [f'{name}.*' for name in Constants.PACKAGE_EXCLUDE_DIRS if '*' not in name]
186
194
  packages = self.find(where=str(self.paths.repo), exclude=excludes)
187
195
  return packages
188
196
 
@@ -215,7 +223,9 @@ class Setup(FromCallerMixin):
215
223
  packages=self.packages,
216
224
  package_dir=self.package_dir,
217
225
  package_data=self.package_data,
218
- entry_points=self.entrypoints,
226
+ entry_points=dict(
227
+ console_scripts=self.console_scripts,
228
+ ),
219
229
  install_requires=self.dependencies.install,
220
230
  extras_require=self.dependencies.extras,
221
231
  ) | self.kwargs
@@ -280,7 +290,10 @@ class Dependencies:
280
290
 
281
291
  @cached_property
282
292
  def install(self):
283
- return self.resolve_values(self.INSTALL)
293
+ if self.INSTALL in self.dependencies:
294
+ return self.resolve_values(self.INSTALL)
295
+ else:
296
+ return []
284
297
 
285
298
 
286
299
  if __name__ == '__main__':
@@ -0,0 +1 @@
1
+ 1.1.28
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fmtr.tools
3
- Version: 1.1.27
3
+ Version: 1.1.28
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: flet[all]; extra == "test"
13
- Requires-Dist: distributed; extra == "test"
14
- Requires-Dist: appdirs; extra == "test"
15
- Requires-Dist: pydantic-ai[logfire,openai]; extra == "test"
16
- Requires-Dist: docker; extra == "test"
12
+ Requires-Dist: setuptools; extra == "test"
13
+ Requires-Dist: httpx_retries; extra == "test"
14
+ Requires-Dist: flet-webview; extra == "test"
15
+ Requires-Dist: filetype; extra == "test"
16
+ Requires-Dist: httpx; extra == "test"
17
17
  Requires-Dist: bokeh; extra == "test"
18
- Requires-Dist: openpyxl; extra == "test"
18
+ Requires-Dist: fastapi; extra == "test"
19
19
  Requires-Dist: tabulate; extra == "test"
20
- Requires-Dist: ollama; extra == "test"
21
- Requires-Dist: pydevd-pycharm; extra == "test"
22
- Requires-Dist: openai; extra == "test"
23
- Requires-Dist: pyyaml; extra == "test"
24
- Requires-Dist: huggingface_hub; extra == "test"
25
- Requires-Dist: pytest-cov; extra == "test"
26
- Requires-Dist: pydantic-settings; extra == "test"
27
- Requires-Dist: pymupdf; extra == "test"
28
- Requires-Dist: sentence_transformers; extra == "test"
29
- Requires-Dist: pymupdf4llm; extra == "test"
20
+ Requires-Dist: flet-video; extra == "test"
21
+ Requires-Dist: uvicorn[standard]; extra == "test"
22
+ Requires-Dist: logfire[httpx]; extra == "test"
23
+ Requires-Dist: logfire; extra == "test"
24
+ Requires-Dist: torchaudio; extra == "test"
25
+ Requires-Dist: google-api-python-client; extra == "test"
30
26
  Requires-Dist: yamlscript; extra == "test"
27
+ Requires-Dist: pydantic-ai[logfire,openai]; extra == "test"
28
+ Requires-Dist: semver; extra == "test"
31
29
  Requires-Dist: html2text; extra == "test"
32
- Requires-Dist: deepmerge; extra == "test"
33
- Requires-Dist: regex; extra == "test"
34
- Requires-Dist: fastapi; extra == "test"
35
- Requires-Dist: httpx; extra == "test"
36
- Requires-Dist: pandas; extra == "test"
37
30
  Requires-Dist: dnspython[doh]; extra == "test"
38
- Requires-Dist: diskcache; extra == "test"
39
- Requires-Dist: torchvision; extra == "test"
40
- Requires-Dist: google-auth; extra == "test"
41
- Requires-Dist: dask[bag]; extra == "test"
42
- Requires-Dist: uvicorn[standard]; extra == "test"
43
- Requires-Dist: Unidecode; extra == "test"
44
31
  Requires-Dist: pydantic; extra == "test"
45
- Requires-Dist: faker; extra == "test"
46
- Requires-Dist: setuptools; extra == "test"
47
32
  Requires-Dist: tokenizers; extra == "test"
48
- Requires-Dist: flet-video; extra == "test"
33
+ Requires-Dist: deepmerge; extra == "test"
34
+ Requires-Dist: ollama; extra == "test"
35
+ Requires-Dist: diskcache; extra == "test"
49
36
  Requires-Dist: google-auth-httplib2; extra == "test"
50
- Requires-Dist: transformers[sentencepiece]; extra == "test"
51
- Requires-Dist: contexttimer; extra == "test"
52
- Requires-Dist: logfire[fastapi]; extra == "test"
53
- Requires-Dist: httpx_retries; extra == "test"
37
+ Requires-Dist: pymupdf; extra == "test"
38
+ Requires-Dist: tinynetrc; extra == "test"
39
+ Requires-Dist: pytest-cov; extra == "test"
40
+ Requires-Dist: regex; extra == "test"
41
+ Requires-Dist: faker; extra == "test"
42
+ Requires-Dist: pydevd-pycharm; extra == "test"
54
43
  Requires-Dist: sre_yield; extra == "test"
44
+ Requires-Dist: Unidecode; extra == "test"
45
+ Requires-Dist: pyyaml; extra == "test"
55
46
  Requires-Dist: peft; extra == "test"
56
- Requires-Dist: torchaudio; extra == "test"
57
- Requires-Dist: filetype; extra == "test"
58
- Requires-Dist: semver; extra == "test"
59
- Requires-Dist: tinynetrc; extra == "test"
47
+ Requires-Dist: pymupdf4llm; extra == "test"
48
+ Requires-Dist: distributed; extra == "test"
49
+ Requires-Dist: transformers[sentencepiece]; extra == "test"
60
50
  Requires-Dist: json_repair; extra == "test"
61
- Requires-Dist: google-api-python-client; extra == "test"
62
- Requires-Dist: flet-webview; extra == "test"
63
- Requires-Dist: logfire; extra == "test"
64
- Requires-Dist: logfire[httpx]; extra == "test"
51
+ Requires-Dist: torchvision; extra == "test"
52
+ Requires-Dist: sentence_transformers; extra == "test"
53
+ Requires-Dist: google-auth; extra == "test"
65
54
  Requires-Dist: google-auth-oauthlib; extra == "test"
55
+ Requires-Dist: pydantic-settings; extra == "test"
56
+ Requires-Dist: docker; extra == "test"
57
+ Requires-Dist: flet[all]; extra == "test"
58
+ Requires-Dist: contexttimer; extra == "test"
59
+ Requires-Dist: huggingface_hub; extra == "test"
60
+ Requires-Dist: pandas; extra == "test"
61
+ Requires-Dist: openai; extra == "test"
62
+ Requires-Dist: appdirs; extra == "test"
63
+ Requires-Dist: dask[bag]; extra == "test"
64
+ Requires-Dist: openpyxl; extra == "test"
65
+ Requires-Dist: logfire[fastapi]; 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.27
File without changes
File without changes
@@ -135,60 +135,60 @@ tabulate
135
135
  openpyxl
136
136
 
137
137
  [test]
138
- flet[all]
139
- distributed
140
- appdirs
141
- pydantic-ai[logfire,openai]
142
- docker
138
+ setuptools
139
+ httpx_retries
140
+ flet-webview
141
+ filetype
142
+ httpx
143
143
  bokeh
144
- openpyxl
144
+ fastapi
145
145
  tabulate
146
- ollama
147
- pydevd-pycharm
148
- openai
149
- pyyaml
150
- huggingface_hub
151
- pytest-cov
152
- pydantic-settings
153
- pymupdf
154
- sentence_transformers
155
- pymupdf4llm
146
+ flet-video
147
+ uvicorn[standard]
148
+ logfire[httpx]
149
+ logfire
150
+ torchaudio
151
+ google-api-python-client
156
152
  yamlscript
153
+ pydantic-ai[logfire,openai]
154
+ semver
157
155
  html2text
158
- deepmerge
159
- regex
160
- fastapi
161
- httpx
162
- pandas
163
156
  dnspython[doh]
164
- diskcache
165
- torchvision
166
- google-auth
167
- dask[bag]
168
- uvicorn[standard]
169
- Unidecode
170
157
  pydantic
171
- faker
172
- setuptools
173
158
  tokenizers
174
- flet-video
159
+ deepmerge
160
+ ollama
161
+ diskcache
175
162
  google-auth-httplib2
176
- transformers[sentencepiece]
177
- contexttimer
178
- logfire[fastapi]
179
- httpx_retries
163
+ pymupdf
164
+ tinynetrc
165
+ pytest-cov
166
+ regex
167
+ faker
168
+ pydevd-pycharm
180
169
  sre_yield
170
+ Unidecode
171
+ pyyaml
181
172
  peft
182
- torchaudio
183
- filetype
184
- semver
185
- tinynetrc
173
+ pymupdf4llm
174
+ distributed
175
+ transformers[sentencepiece]
186
176
  json_repair
187
- google-api-python-client
188
- flet-webview
189
- logfire
190
- logfire[httpx]
177
+ torchvision
178
+ sentence_transformers
179
+ google-auth
191
180
  google-auth-oauthlib
181
+ pydantic-settings
182
+ docker
183
+ flet[all]
184
+ contexttimer
185
+ huggingface_hub
186
+ pandas
187
+ openai
188
+ appdirs
189
+ dask[bag]
190
+ openpyxl
191
+ logfire[fastapi]
192
192
 
193
193
  [tokenization]
194
194
  tokenizers
File without changes
File without changes