fmtr.tools 1.2.1__tar.gz → 1.2.2__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 (85) hide show
  1. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/PKG-INFO +43 -43
  2. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/ai_tools/agentic_tools.py +28 -4
  3. fmtr_tools-1.2.2/fmtr/tools/version +1 -0
  4. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr.tools.egg-info/PKG-INFO +43 -43
  5. fmtr_tools-1.2.1/fmtr/tools/version +0 -1
  6. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/LICENSE +0 -0
  7. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/README.md +0 -0
  8. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/__init__.py +0 -0
  9. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/ai_tools/__init__.py +0 -0
  10. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/ai_tools/inference_tools.py +0 -0
  11. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/api_tools.py +0 -0
  12. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/async_tools.py +0 -0
  13. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/augmentation_tools.py +0 -0
  14. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/caching_tools.py +0 -0
  15. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/constants.py +0 -0
  16. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/data_modelling_tools.py +0 -0
  17. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/dataclass_tools.py +0 -0
  18. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/datatype_tools.py +0 -0
  19. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/debugging_tools.py +0 -0
  20. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/dns_tools.py +0 -0
  21. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/docker_tools.py +0 -0
  22. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/entrypoints/__init__.py +0 -0
  23. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/entrypoints/cache_hfh.py +0 -0
  24. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/entrypoints/ep_test.py +0 -0
  25. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/entrypoints/remote_debug_test.py +0 -0
  26. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/entrypoints/shell_debug.py +0 -0
  27. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/environment_tools.py +0 -0
  28. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/function_tools.py +0 -0
  29. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/google_api_tools.py +0 -0
  30. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/hash_tools.py +0 -0
  31. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/hfh_tools.py +0 -0
  32. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/html_tools.py +0 -0
  33. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/http_tools.py +0 -0
  34. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/import_tools.py +0 -0
  35. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/inspection_tools.py +0 -0
  36. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/interface_tools.py +0 -0
  37. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/iterator_tools.py +0 -0
  38. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/json_fix_tools.py +0 -0
  39. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/json_tools.py +0 -0
  40. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/logging_tools.py +0 -0
  41. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/merging_tools.py +0 -0
  42. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/metric_tools.py +0 -0
  43. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/name_tools.py +0 -0
  44. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/netrc_tools.py +0 -0
  45. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/openai_tools.py +0 -0
  46. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/packaging_tools.py +0 -0
  47. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/parallel_tools.py +0 -0
  48. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/path_tools/__init__.py +0 -0
  49. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/path_tools/app_path_tools.py +0 -0
  50. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/path_tools/path_tools.py +0 -0
  51. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/path_tools/type_path_tools.py +0 -0
  52. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/pattern_tools.py +0 -0
  53. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/pdf_tools.py +0 -0
  54. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/platform_tools.py +0 -0
  55. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/process_tools.py +0 -0
  56. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/profiling_tools.py +0 -0
  57. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/random_tools.py +0 -0
  58. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/semantic_tools.py +0 -0
  59. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/settings_tools.py +0 -0
  60. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/setup_tools/__init__.py +0 -0
  61. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/setup_tools/setup_tools.py +0 -0
  62. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/spaces_tools.py +0 -0
  63. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/string_tools.py +0 -0
  64. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/tabular_tools.py +0 -0
  65. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/tests/__init__.py +0 -0
  66. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/tests/conftest.py +0 -0
  67. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/tests/helpers.py +0 -0
  68. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/tests/test_datatype.py +0 -0
  69. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/tests/test_environment.py +0 -0
  70. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/tests/test_json.py +0 -0
  71. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/tests/test_path.py +0 -0
  72. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/tests/test_yaml.py +0 -0
  73. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/tokenization_tools.py +0 -0
  74. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/tools.py +0 -0
  75. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/unicode_tools.py +0 -0
  76. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/version_tools.py +0 -0
  77. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr/tools/yaml_tools.py +0 -0
  78. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr.tools.egg-info/SOURCES.txt +0 -0
  79. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr.tools.egg-info/dependency_links.txt +0 -0
  80. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr.tools.egg-info/entry_points.txt +0 -0
  81. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr.tools.egg-info/requires.txt +42 -42
  82. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/fmtr.tools.egg-info/top_level.txt +0 -0
  83. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/pyproject.toml +0 -0
  84. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/setup.cfg +0 -0
  85. {fmtr_tools-1.2.1 → fmtr_tools-1.2.2}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fmtr.tools
3
- Version: 1.2.1
3
+ Version: 1.2.2
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/tools
6
6
  Author: Frontmatter
@@ -123,59 +123,59 @@ Requires-Dist: logfire[httpx]; extra == "http"
123
123
  Provides-Extra: setup
124
124
  Requires-Dist: setuptools; extra == "setup"
125
125
  Provides-Extra: all
126
- Requires-Dist: docker; extra == "all"
127
- Requires-Dist: huggingface_hub; extra == "all"
128
- Requires-Dist: filetype; extra == "all"
129
- Requires-Dist: httpx; extra == "all"
130
- Requires-Dist: torchvision; extra == "all"
131
- Requires-Dist: fastapi; extra == "all"
132
- Requires-Dist: google-auth-oauthlib; extra == "all"
133
126
  Requires-Dist: tinynetrc; extra == "all"
134
- Requires-Dist: html2text; extra == "all"
135
- Requires-Dist: distributed; extra == "all"
136
- Requires-Dist: faker; extra == "all"
137
127
  Requires-Dist: openpyxl; extra == "all"
138
- Requires-Dist: pyyaml; extra == "all"
139
- Requires-Dist: transformers[sentencepiece]; extra == "all"
140
- Requires-Dist: flet-video; extra == "all"
141
- Requires-Dist: flet[all]; extra == "all"
128
+ Requires-Dist: httpx; extra == "all"
129
+ Requires-Dist: regex; extra == "all"
142
130
  Requires-Dist: logfire[fastapi]; extra == "all"
131
+ Requires-Dist: dask[bag]; extra == "all"
132
+ Requires-Dist: deepmerge; extra == "all"
133
+ Requires-Dist: pydantic-settings; extra == "all"
134
+ Requires-Dist: yamlscript; extra == "all"
135
+ Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
143
136
  Requires-Dist: ollama; extra == "all"
144
- Requires-Dist: Unidecode; extra == "all"
145
- Requires-Dist: google-api-python-client; extra == "all"
137
+ Requires-Dist: openai; extra == "all"
146
138
  Requires-Dist: diskcache; extra == "all"
147
- Requires-Dist: pymupdf; extra == "all"
148
- Requires-Dist: torchaudio; extra == "all"
149
- Requires-Dist: setuptools; extra == "all"
150
- Requires-Dist: pytest-cov; extra == "all"
151
- Requires-Dist: google-auth-httplib2; extra == "all"
152
- Requires-Dist: semver; extra == "all"
153
- Requires-Dist: yamlscript; extra == "all"
154
- Requires-Dist: uvicorn[standard]; extra == "all"
155
- Requires-Dist: pydantic-settings; extra == "all"
139
+ Requires-Dist: pydevd-pycharm; extra == "all"
140
+ Requires-Dist: sre_yield; extra == "all"
141
+ Requires-Dist: distributed; extra == "all"
142
+ Requires-Dist: contexttimer; extra == "all"
143
+ Requires-Dist: html2text; extra == "all"
144
+ Requires-Dist: filetype; extra == "all"
145
+ Requires-Dist: flet-video; extra == "all"
146
+ Requires-Dist: logfire[httpx]; extra == "all"
156
147
  Requires-Dist: flet-webview; extra == "all"
148
+ Requires-Dist: pymupdf4llm; extra == "all"
149
+ Requires-Dist: uvicorn[standard]; extra == "all"
157
150
  Requires-Dist: tokenizers; extra == "all"
158
- Requires-Dist: openai; extra == "all"
151
+ Requires-Dist: google-auth; extra == "all"
159
152
  Requires-Dist: dnspython[doh]; extra == "all"
160
- Requires-Dist: bokeh; extra == "all"
161
- Requires-Dist: contexttimer; extra == "all"
162
- Requires-Dist: appdirs; extra == "all"
163
- Requires-Dist: dask[bag]; extra == "all"
164
- Requires-Dist: pydevd-pycharm; extra == "all"
165
153
  Requires-Dist: sentence_transformers; extra == "all"
166
- Requires-Dist: pymupdf4llm; extra == "all"
167
- Requires-Dist: pandas; extra == "all"
168
- Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
169
- Requires-Dist: regex; extra == "all"
170
- Requires-Dist: logfire[httpx]; extra == "all"
154
+ Requires-Dist: setuptools; extra == "all"
155
+ Requires-Dist: pymupdf; extra == "all"
156
+ Requires-Dist: google-auth-oauthlib; extra == "all"
171
157
  Requires-Dist: pydantic; extra == "all"
172
- Requires-Dist: peft; extra == "all"
173
- Requires-Dist: google-auth; extra == "all"
174
- Requires-Dist: httpx_retries; extra == "all"
175
- Requires-Dist: tabulate; extra == "all"
158
+ Requires-Dist: docker; extra == "all"
176
159
  Requires-Dist: json_repair; extra == "all"
177
- Requires-Dist: sre_yield; extra == "all"
178
- Requires-Dist: deepmerge; extra == "all"
160
+ Requires-Dist: tabulate; extra == "all"
161
+ Requires-Dist: appdirs; extra == "all"
162
+ Requires-Dist: faker; extra == "all"
163
+ Requires-Dist: torchaudio; extra == "all"
164
+ Requires-Dist: pandas; extra == "all"
165
+ Requires-Dist: transformers[sentencepiece]; extra == "all"
166
+ Requires-Dist: pyyaml; extra == "all"
167
+ Requires-Dist: semver; extra == "all"
168
+ Requires-Dist: flet[all]; extra == "all"
169
+ Requires-Dist: Unidecode; extra == "all"
170
+ Requires-Dist: huggingface_hub; extra == "all"
171
+ Requires-Dist: fastapi; extra == "all"
172
+ Requires-Dist: bokeh; extra == "all"
173
+ Requires-Dist: torchvision; extra == "all"
174
+ Requires-Dist: google-auth-httplib2; extra == "all"
175
+ Requires-Dist: pytest-cov; extra == "all"
176
+ Requires-Dist: httpx_retries; extra == "all"
177
+ Requires-Dist: google-api-python-client; extra == "all"
178
+ Requires-Dist: peft; extra == "all"
179
179
  Requires-Dist: logfire; extra == "all"
180
180
  Dynamic: author
181
181
  Dynamic: author-email
@@ -1,17 +1,31 @@
1
- from typing import List, Optional
2
-
3
1
  import pydantic_ai
4
- from pydantic_ai import RunContext
2
+ from pydantic_ai import RunContext, ModelRetry
5
3
  from pydantic_ai.agent import AgentRunResult, Agent
6
4
  from pydantic_ai.models.openai import OpenAIModel
7
5
  from pydantic_ai.providers.openai import OpenAIProvider
6
+ from typing import List, Optional, Any
8
7
 
9
8
  from fmtr.tools import environment_tools as env
10
9
  from fmtr.tools.constants import Constants
10
+ from fmtr.tools.logging_tools import logger
11
11
  from fmtr.tools.string_tools import truncate_mid
12
12
 
13
13
  pydantic_ai.Agent.instrument_all()
14
14
 
15
+
16
+ class Validator:
17
+ """
18
+
19
+ Subclassable validator
20
+
21
+ """
22
+
23
+ async def validate(self, ctx: RunContext[Any], output: Any) -> List[str]:
24
+ raise NotImplementedError()
25
+
26
+
27
+
28
+
15
29
  class Task:
16
30
  """
17
31
 
@@ -31,6 +45,7 @@ class Task:
31
45
  DEPS_TYPE = str
32
46
  RESULT_TYPE = str
33
47
  RESULT_RETRIES = 5
48
+ VALIDATORS: List[Validator] = []
34
49
 
35
50
  def __init__(self, *args, **kwargs):
36
51
  """
@@ -77,9 +92,18 @@ class Task:
77
92
  async def validate(self, ctx: RunContext[DEPS_TYPE], output: RESULT_TYPE) -> RESULT_TYPE:
78
93
  """
79
94
 
80
- Dummy validator
95
+ Aggregate any validation failures and combine them into a single ModelRetry exception
81
96
 
82
97
  """
98
+ msgs = []
99
+ for validator in self.VALIDATORS:
100
+ msgs += validator.validate(ctx, output)
101
+
102
+ if msgs:
103
+ msg = '. '.join(msgs)
104
+ logger.warning(msg)
105
+ raise ModelRetry(msg)
106
+
83
107
  return output
84
108
 
85
109
  def get_prompt(self, deps: Optional[DEPS_TYPE]) -> Optional[str]:
@@ -0,0 +1 @@
1
+ 1.2.2
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fmtr.tools
3
- Version: 1.2.1
3
+ Version: 1.2.2
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/tools
6
6
  Author: Frontmatter
@@ -123,59 +123,59 @@ Requires-Dist: logfire[httpx]; extra == "http"
123
123
  Provides-Extra: setup
124
124
  Requires-Dist: setuptools; extra == "setup"
125
125
  Provides-Extra: all
126
- Requires-Dist: docker; extra == "all"
127
- Requires-Dist: huggingface_hub; extra == "all"
128
- Requires-Dist: filetype; extra == "all"
129
- Requires-Dist: httpx; extra == "all"
130
- Requires-Dist: torchvision; extra == "all"
131
- Requires-Dist: fastapi; extra == "all"
132
- Requires-Dist: google-auth-oauthlib; extra == "all"
133
126
  Requires-Dist: tinynetrc; extra == "all"
134
- Requires-Dist: html2text; extra == "all"
135
- Requires-Dist: distributed; extra == "all"
136
- Requires-Dist: faker; extra == "all"
137
127
  Requires-Dist: openpyxl; extra == "all"
138
- Requires-Dist: pyyaml; extra == "all"
139
- Requires-Dist: transformers[sentencepiece]; extra == "all"
140
- Requires-Dist: flet-video; extra == "all"
141
- Requires-Dist: flet[all]; extra == "all"
128
+ Requires-Dist: httpx; extra == "all"
129
+ Requires-Dist: regex; extra == "all"
142
130
  Requires-Dist: logfire[fastapi]; extra == "all"
131
+ Requires-Dist: dask[bag]; extra == "all"
132
+ Requires-Dist: deepmerge; extra == "all"
133
+ Requires-Dist: pydantic-settings; extra == "all"
134
+ Requires-Dist: yamlscript; extra == "all"
135
+ Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
143
136
  Requires-Dist: ollama; extra == "all"
144
- Requires-Dist: Unidecode; extra == "all"
145
- Requires-Dist: google-api-python-client; extra == "all"
137
+ Requires-Dist: openai; extra == "all"
146
138
  Requires-Dist: diskcache; extra == "all"
147
- Requires-Dist: pymupdf; extra == "all"
148
- Requires-Dist: torchaudio; extra == "all"
149
- Requires-Dist: setuptools; extra == "all"
150
- Requires-Dist: pytest-cov; extra == "all"
151
- Requires-Dist: google-auth-httplib2; extra == "all"
152
- Requires-Dist: semver; extra == "all"
153
- Requires-Dist: yamlscript; extra == "all"
154
- Requires-Dist: uvicorn[standard]; extra == "all"
155
- Requires-Dist: pydantic-settings; extra == "all"
139
+ Requires-Dist: pydevd-pycharm; extra == "all"
140
+ Requires-Dist: sre_yield; extra == "all"
141
+ Requires-Dist: distributed; extra == "all"
142
+ Requires-Dist: contexttimer; extra == "all"
143
+ Requires-Dist: html2text; extra == "all"
144
+ Requires-Dist: filetype; extra == "all"
145
+ Requires-Dist: flet-video; extra == "all"
146
+ Requires-Dist: logfire[httpx]; extra == "all"
156
147
  Requires-Dist: flet-webview; extra == "all"
148
+ Requires-Dist: pymupdf4llm; extra == "all"
149
+ Requires-Dist: uvicorn[standard]; extra == "all"
157
150
  Requires-Dist: tokenizers; extra == "all"
158
- Requires-Dist: openai; extra == "all"
151
+ Requires-Dist: google-auth; extra == "all"
159
152
  Requires-Dist: dnspython[doh]; extra == "all"
160
- Requires-Dist: bokeh; extra == "all"
161
- Requires-Dist: contexttimer; extra == "all"
162
- Requires-Dist: appdirs; extra == "all"
163
- Requires-Dist: dask[bag]; extra == "all"
164
- Requires-Dist: pydevd-pycharm; extra == "all"
165
153
  Requires-Dist: sentence_transformers; extra == "all"
166
- Requires-Dist: pymupdf4llm; extra == "all"
167
- Requires-Dist: pandas; extra == "all"
168
- Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
169
- Requires-Dist: regex; extra == "all"
170
- Requires-Dist: logfire[httpx]; extra == "all"
154
+ Requires-Dist: setuptools; extra == "all"
155
+ Requires-Dist: pymupdf; extra == "all"
156
+ Requires-Dist: google-auth-oauthlib; extra == "all"
171
157
  Requires-Dist: pydantic; extra == "all"
172
- Requires-Dist: peft; extra == "all"
173
- Requires-Dist: google-auth; extra == "all"
174
- Requires-Dist: httpx_retries; extra == "all"
175
- Requires-Dist: tabulate; extra == "all"
158
+ Requires-Dist: docker; extra == "all"
176
159
  Requires-Dist: json_repair; extra == "all"
177
- Requires-Dist: sre_yield; extra == "all"
178
- Requires-Dist: deepmerge; extra == "all"
160
+ Requires-Dist: tabulate; extra == "all"
161
+ Requires-Dist: appdirs; extra == "all"
162
+ Requires-Dist: faker; extra == "all"
163
+ Requires-Dist: torchaudio; extra == "all"
164
+ Requires-Dist: pandas; extra == "all"
165
+ Requires-Dist: transformers[sentencepiece]; extra == "all"
166
+ Requires-Dist: pyyaml; extra == "all"
167
+ Requires-Dist: semver; extra == "all"
168
+ Requires-Dist: flet[all]; extra == "all"
169
+ Requires-Dist: Unidecode; extra == "all"
170
+ Requires-Dist: huggingface_hub; extra == "all"
171
+ Requires-Dist: fastapi; extra == "all"
172
+ Requires-Dist: bokeh; extra == "all"
173
+ Requires-Dist: torchvision; extra == "all"
174
+ Requires-Dist: google-auth-httplib2; extra == "all"
175
+ Requires-Dist: pytest-cov; extra == "all"
176
+ Requires-Dist: httpx_retries; extra == "all"
177
+ Requires-Dist: google-api-python-client; extra == "all"
178
+ Requires-Dist: peft; extra == "all"
179
179
  Requires-Dist: logfire; extra == "all"
180
180
  Dynamic: author
181
181
  Dynamic: author-email
@@ -1 +0,0 @@
1
- 1.2.1
File without changes
File without changes
@@ -15,59 +15,59 @@ pydantic-ai[logfire,openai]
15
15
  ollama
16
16
 
17
17
  [all]
18
- docker
19
- huggingface_hub
20
- filetype
21
- httpx
22
- torchvision
23
- fastapi
24
- google-auth-oauthlib
25
18
  tinynetrc
26
- html2text
27
- distributed
28
- faker
29
19
  openpyxl
30
- pyyaml
31
- transformers[sentencepiece]
32
- flet-video
33
- flet[all]
20
+ httpx
21
+ regex
34
22
  logfire[fastapi]
23
+ dask[bag]
24
+ deepmerge
25
+ pydantic-settings
26
+ yamlscript
27
+ pydantic-ai[logfire,openai]
35
28
  ollama
36
- Unidecode
37
- google-api-python-client
29
+ openai
38
30
  diskcache
39
- pymupdf
40
- torchaudio
41
- setuptools
42
- pytest-cov
43
- google-auth-httplib2
44
- semver
45
- yamlscript
46
- uvicorn[standard]
47
- pydantic-settings
31
+ pydevd-pycharm
32
+ sre_yield
33
+ distributed
34
+ contexttimer
35
+ html2text
36
+ filetype
37
+ flet-video
38
+ logfire[httpx]
48
39
  flet-webview
40
+ pymupdf4llm
41
+ uvicorn[standard]
49
42
  tokenizers
50
- openai
43
+ google-auth
51
44
  dnspython[doh]
52
- bokeh
53
- contexttimer
54
- appdirs
55
- dask[bag]
56
- pydevd-pycharm
57
45
  sentence_transformers
58
- pymupdf4llm
59
- pandas
60
- pydantic-ai[logfire,openai]
61
- regex
62
- logfire[httpx]
46
+ setuptools
47
+ pymupdf
48
+ google-auth-oauthlib
63
49
  pydantic
64
- peft
65
- google-auth
66
- httpx_retries
67
- tabulate
50
+ docker
68
51
  json_repair
69
- sre_yield
70
- deepmerge
52
+ tabulate
53
+ appdirs
54
+ faker
55
+ torchaudio
56
+ pandas
57
+ transformers[sentencepiece]
58
+ pyyaml
59
+ semver
60
+ flet[all]
61
+ Unidecode
62
+ huggingface_hub
63
+ fastapi
64
+ bokeh
65
+ torchvision
66
+ google-auth-httplib2
67
+ pytest-cov
68
+ httpx_retries
69
+ google-api-python-client
70
+ peft
71
71
  logfire
72
72
 
73
73
  [api]
File without changes
File without changes
File without changes