fmtr.tools 1.3.60__tar.gz → 1.3.61__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.
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/PKG-INFO +49 -49
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/ai_tools/agentic_tools.py +19 -4
- fmtr_tools-1.3.61/fmtr/tools/version +1 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr.tools.egg-info/PKG-INFO +49 -49
- fmtr_tools-1.3.60/fmtr/tools/version +0 -1
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/LICENSE +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/README.md +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/__init__.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/ai_tools/__init__.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/ai_tools/inference_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/api_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/async_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/augmentation_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/caching_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/constants.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/context_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/data_modelling_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/database_tools/__init__.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/database_tools/document.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/dataclass_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/datatype_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/datetime_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/debugging_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/dns_tools/__init__.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/dns_tools/client.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/dns_tools/dm.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/dns_tools/proxy.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/dns_tools/server.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/docker_tools/__init__.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/entrypoints/__init__.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/entrypoints/cache_hfh.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/entrypoints/ep_test.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/entrypoints/install_yamlscript.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/entrypoints/remote_debug_test.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/entrypoints/shell_debug.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/environment_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/function_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/google_api_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/hash_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/hfh_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/html_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/http_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/import_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/inherit_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/inspection_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/interface_tools/__init__.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/interface_tools/context.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/interface_tools/controls.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/interface_tools/interface_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/iterator_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/json_fix_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/json_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/logging_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/merging_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/metric_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/name_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/netrc_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/openai_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/packaging_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/parallel_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/path_tools/__init__.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/path_tools/app_path_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/path_tools/path_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/path_tools/type_path_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/pattern_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/pdf_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/platform_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/process_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/profiling_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/random_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/semantic_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/settings_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/setup_tools/__init__.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/setup_tools/setup_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/spaces_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/string_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/tabular_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/tests/__init__.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/tests/conftest.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/tests/helpers.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/tests/test_datatype.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/tests/test_environment.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/tests/test_json.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/tests/test_path.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/tests/test_yaml.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/tokenization_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/unicode_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/version_tools/__init__.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/version_tools/version_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/webhook_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr/tools/yaml_tools.py +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr.tools.egg-info/SOURCES.txt +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr.tools.egg-info/dependency_links.txt +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr.tools.egg-info/entry_points.txt +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr.tools.egg-info/requires.txt +48 -48
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/fmtr.tools.egg-info/top_level.txt +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/pyproject.toml +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/setup.cfg +0 -0
- {fmtr_tools-1.3.60 → fmtr_tools-1.3.61}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fmtr.tools
|
|
3
|
-
Version: 1.3.
|
|
3
|
+
Version: 1.3.61
|
|
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
|
|
@@ -154,68 +154,68 @@ Provides-Extra: db-document
|
|
|
154
154
|
Requires-Dist: beanie[odm]; extra == "db-document"
|
|
155
155
|
Requires-Dist: motor; extra == "db-document"
|
|
156
156
|
Provides-Extra: all
|
|
157
|
-
Requires-Dist:
|
|
158
|
-
Requires-Dist:
|
|
159
|
-
Requires-Dist: setuptools; extra == "all"
|
|
160
|
-
Requires-Dist: deepdiff; extra == "all"
|
|
161
|
-
Requires-Dist: diskcache; extra == "all"
|
|
162
|
-
Requires-Dist: pydevd-pycharm~=251.25410.159; extra == "all"
|
|
163
|
-
Requires-Dist: openpyxl; extra == "all"
|
|
164
|
-
Requires-Dist: deepmerge; extra == "all"
|
|
165
|
-
Requires-Dist: dask[bag]; extra == "all"
|
|
157
|
+
Requires-Dist: tabulate; extra == "all"
|
|
158
|
+
Requires-Dist: pydantic-extra-types; extra == "all"
|
|
166
159
|
Requires-Dist: google-auth-httplib2; extra == "all"
|
|
167
|
-
Requires-Dist: flet-webview; extra == "all"
|
|
168
|
-
Requires-Dist: appdirs; extra == "all"
|
|
169
|
-
Requires-Dist: pycountry; extra == "all"
|
|
170
|
-
Requires-Dist: pytest-cov; extra == "all"
|
|
171
|
-
Requires-Dist: faker; extra == "all"
|
|
172
|
-
Requires-Dist: httpx_retries; extra == "all"
|
|
173
|
-
Requires-Dist: distributed; extra == "all"
|
|
174
|
-
Requires-Dist: uvicorn[standard]; extra == "all"
|
|
175
|
-
Requires-Dist: cachetools; extra == "all"
|
|
176
|
-
Requires-Dist: pymupdf4llm; extra == "all"
|
|
177
|
-
Requires-Dist: tinynetrc; extra == "all"
|
|
178
160
|
Requires-Dist: filetype; extra == "all"
|
|
179
|
-
Requires-Dist:
|
|
161
|
+
Requires-Dist: odfpy; extra == "all"
|
|
162
|
+
Requires-Dist: logfire[fastapi]; extra == "all"
|
|
180
163
|
Requires-Dist: torchaudio; extra == "all"
|
|
181
|
-
Requires-Dist:
|
|
164
|
+
Requires-Dist: python-on-whales; extra == "all"
|
|
165
|
+
Requires-Dist: torchvision; extra == "all"
|
|
166
|
+
Requires-Dist: pydantic-settings; extra == "all"
|
|
167
|
+
Requires-Dist: logfire[httpx]; extra == "all"
|
|
168
|
+
Requires-Dist: dnspython[doh]; extra == "all"
|
|
169
|
+
Requires-Dist: deepmerge; extra == "all"
|
|
182
170
|
Requires-Dist: pyyaml; extra == "all"
|
|
183
|
-
Requires-Dist:
|
|
171
|
+
Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
|
|
172
|
+
Requires-Dist: pydevd-pycharm~=251.25410.159; extra == "all"
|
|
184
173
|
Requires-Dist: pandas; extra == "all"
|
|
185
|
-
Requires-Dist:
|
|
186
|
-
Requires-Dist:
|
|
187
|
-
Requires-Dist:
|
|
188
|
-
Requires-Dist:
|
|
174
|
+
Requires-Dist: beanie[odm]; extra == "all"
|
|
175
|
+
Requires-Dist: sentence_transformers; extra == "all"
|
|
176
|
+
Requires-Dist: playwright; extra == "all"
|
|
177
|
+
Requires-Dist: dask[bag]; extra == "all"
|
|
178
|
+
Requires-Dist: yamlscript; extra == "all"
|
|
179
|
+
Requires-Dist: Unidecode; extra == "all"
|
|
180
|
+
Requires-Dist: pytest-cov; extra == "all"
|
|
189
181
|
Requires-Dist: httpx; extra == "all"
|
|
190
|
-
Requires-Dist: tabulate; extra == "all"
|
|
191
|
-
Requires-Dist: pydantic-extra-types; extra == "all"
|
|
192
|
-
Requires-Dist: google-auth-oauthlib; extra == "all"
|
|
193
182
|
Requires-Dist: html2text; extra == "all"
|
|
194
|
-
Requires-Dist:
|
|
183
|
+
Requires-Dist: transformers[sentencepiece]; extra == "all"
|
|
195
184
|
Requires-Dist: regex; extra == "all"
|
|
196
|
-
Requires-Dist: Unidecode; extra == "all"
|
|
197
|
-
Requires-Dist: huggingface_hub; extra == "all"
|
|
198
|
-
Requires-Dist: pydantic; extra == "all"
|
|
199
|
-
Requires-Dist: yamlscript; extra == "all"
|
|
200
185
|
Requires-Dist: tokenizers; extra == "all"
|
|
201
|
-
Requires-Dist: pydantic
|
|
186
|
+
Requires-Dist: pydantic; extra == "all"
|
|
187
|
+
Requires-Dist: pycountry; extra == "all"
|
|
188
|
+
Requires-Dist: huggingface_hub; extra == "all"
|
|
189
|
+
Requires-Dist: contexttimer; extra == "all"
|
|
190
|
+
Requires-Dist: bokeh; extra == "all"
|
|
202
191
|
Requires-Dist: semver; extra == "all"
|
|
203
|
-
Requires-Dist:
|
|
204
|
-
Requires-Dist:
|
|
205
|
-
Requires-Dist:
|
|
206
|
-
Requires-Dist:
|
|
192
|
+
Requires-Dist: flet-webview; extra == "all"
|
|
193
|
+
Requires-Dist: logfire; extra == "all"
|
|
194
|
+
Requires-Dist: sre_yield; extra == "all"
|
|
195
|
+
Requires-Dist: deepdiff; extra == "all"
|
|
207
196
|
Requires-Dist: json_repair; extra == "all"
|
|
208
|
-
Requires-Dist:
|
|
197
|
+
Requires-Dist: cachetools; extra == "all"
|
|
198
|
+
Requires-Dist: distributed; extra == "all"
|
|
199
|
+
Requires-Dist: pymupdf4llm; extra == "all"
|
|
200
|
+
Requires-Dist: httpx_retries; extra == "all"
|
|
201
|
+
Requires-Dist: faker; extra == "all"
|
|
202
|
+
Requires-Dist: flet[all]; extra == "all"
|
|
203
|
+
Requires-Dist: motor; extra == "all"
|
|
204
|
+
Requires-Dist: uvicorn[standard]; extra == "all"
|
|
205
|
+
Requires-Dist: diskcache; extra == "all"
|
|
206
|
+
Requires-Dist: appdirs; extra == "all"
|
|
207
|
+
Requires-Dist: openai; extra == "all"
|
|
208
|
+
Requires-Dist: google-auth-oauthlib; extra == "all"
|
|
209
|
+
Requires-Dist: setuptools; extra == "all"
|
|
210
|
+
Requires-Dist: flet-video; extra == "all"
|
|
209
211
|
Requires-Dist: google-api-python-client; extra == "all"
|
|
210
212
|
Requires-Dist: ollama; extra == "all"
|
|
211
|
-
Requires-Dist:
|
|
212
|
-
Requires-Dist:
|
|
213
|
+
Requires-Dist: openpyxl; extra == "all"
|
|
214
|
+
Requires-Dist: google-auth; extra == "all"
|
|
215
|
+
Requires-Dist: tinynetrc; extra == "all"
|
|
216
|
+
Requires-Dist: pymupdf; extra == "all"
|
|
213
217
|
Requires-Dist: peft; extra == "all"
|
|
214
|
-
Requires-Dist:
|
|
215
|
-
Requires-Dist: logfire; extra == "all"
|
|
216
|
-
Requires-Dist: playwright; extra == "all"
|
|
217
|
-
Requires-Dist: contexttimer; extra == "all"
|
|
218
|
-
Requires-Dist: sre_yield; extra == "all"
|
|
218
|
+
Requires-Dist: fastapi; extra == "all"
|
|
219
219
|
Dynamic: author
|
|
220
220
|
Dynamic: author-email
|
|
221
221
|
Dynamic: description
|
|
@@ -6,6 +6,7 @@ from pydantic_ai import RunContext, ModelRetry
|
|
|
6
6
|
from pydantic_ai._output import OutputDataT
|
|
7
7
|
from pydantic_ai.agent import AgentRunResult, Agent
|
|
8
8
|
from pydantic_ai.models.openai import OpenAIModel
|
|
9
|
+
from pydantic_ai.output import OutputSpec, NativeOutput, ToolOutput
|
|
9
10
|
from pydantic_ai.providers.openai import OpenAIProvider
|
|
10
11
|
from pydantic_ai.tools import AgentDepsT
|
|
11
12
|
|
|
@@ -47,7 +48,7 @@ class Task(Generic[AgentDepsT, OutputDataT]):
|
|
|
47
48
|
PROVIDER_FMTR = OpenAIProvider(base_url=API_URL_FMTR)
|
|
48
49
|
|
|
49
50
|
MODEL_ID = 'gpt-4o'
|
|
50
|
-
MODEL_ID_FMTR = 'qwen2.5-coder:
|
|
51
|
+
MODEL_ID_FMTR = 'qwen2.5-coder:32b'
|
|
51
52
|
SYSTEM_PROMPT_STATIC = None
|
|
52
53
|
RESULT_RETRIES = 5
|
|
53
54
|
VALIDATORS: List[Validator] = []
|
|
@@ -65,7 +66,7 @@ class Task(Generic[AgentDepsT, OutputDataT]):
|
|
|
65
66
|
model=self.model,
|
|
66
67
|
system_prompt=self.SYSTEM_PROMPT_STATIC or [],
|
|
67
68
|
deps_type=self.TypeDeps,
|
|
68
|
-
output_type=self.
|
|
69
|
+
output_type=self.tool_output,
|
|
69
70
|
output_retries=self.RESULT_RETRIES,
|
|
70
71
|
**kwargs
|
|
71
72
|
)
|
|
@@ -74,6 +75,16 @@ class Task(Generic[AgentDepsT, OutputDataT]):
|
|
|
74
75
|
self.agent.system_prompt(self.add_system_prompt)
|
|
75
76
|
self.history = []
|
|
76
77
|
|
|
78
|
+
@property
|
|
79
|
+
def tool_output(self) -> OutputSpec[OutputDataT]:
|
|
80
|
+
"""
|
|
81
|
+
|
|
82
|
+
Tool output specification (e.g. ToolOutput/NativeOutput etc.)
|
|
83
|
+
|
|
84
|
+
"""
|
|
85
|
+
return ToolOutput(self.TypeOutput)
|
|
86
|
+
|
|
87
|
+
|
|
77
88
|
@property
|
|
78
89
|
def sync_runner(self):
|
|
79
90
|
"""
|
|
@@ -183,11 +194,15 @@ if __name__ == '__main__':
|
|
|
183
194
|
|
|
184
195
|
|
|
185
196
|
class TaskTest(Task):
|
|
186
|
-
|
|
187
|
-
|
|
197
|
+
PROVIDER = Task.PROVIDER_FMTR
|
|
198
|
+
MODEL_ID = Task.MODEL_ID_FMTR
|
|
188
199
|
TypeOutput = TestOutput
|
|
189
200
|
SYSTEM_PROMPT_STATIC = 'Tell the user jokes.'
|
|
190
201
|
|
|
202
|
+
@property
|
|
203
|
+
def tool_output(self) -> OutputSpec[TestOutput]:
|
|
204
|
+
return NativeOutput(self.TypeOutput)
|
|
205
|
+
|
|
191
206
|
def add_system_prompt(self, ctx: RunContext[TestDeps]) -> str:
|
|
192
207
|
return f'The jokes must be in the {ctx.deps.lang} language.'
|
|
193
208
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1.3.61
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fmtr.tools
|
|
3
|
-
Version: 1.3.
|
|
3
|
+
Version: 1.3.61
|
|
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
|
|
@@ -154,68 +154,68 @@ Provides-Extra: db-document
|
|
|
154
154
|
Requires-Dist: beanie[odm]; extra == "db-document"
|
|
155
155
|
Requires-Dist: motor; extra == "db-document"
|
|
156
156
|
Provides-Extra: all
|
|
157
|
-
Requires-Dist:
|
|
158
|
-
Requires-Dist:
|
|
159
|
-
Requires-Dist: setuptools; extra == "all"
|
|
160
|
-
Requires-Dist: deepdiff; extra == "all"
|
|
161
|
-
Requires-Dist: diskcache; extra == "all"
|
|
162
|
-
Requires-Dist: pydevd-pycharm~=251.25410.159; extra == "all"
|
|
163
|
-
Requires-Dist: openpyxl; extra == "all"
|
|
164
|
-
Requires-Dist: deepmerge; extra == "all"
|
|
165
|
-
Requires-Dist: dask[bag]; extra == "all"
|
|
157
|
+
Requires-Dist: tabulate; extra == "all"
|
|
158
|
+
Requires-Dist: pydantic-extra-types; extra == "all"
|
|
166
159
|
Requires-Dist: google-auth-httplib2; extra == "all"
|
|
167
|
-
Requires-Dist: flet-webview; extra == "all"
|
|
168
|
-
Requires-Dist: appdirs; extra == "all"
|
|
169
|
-
Requires-Dist: pycountry; extra == "all"
|
|
170
|
-
Requires-Dist: pytest-cov; extra == "all"
|
|
171
|
-
Requires-Dist: faker; extra == "all"
|
|
172
|
-
Requires-Dist: httpx_retries; extra == "all"
|
|
173
|
-
Requires-Dist: distributed; extra == "all"
|
|
174
|
-
Requires-Dist: uvicorn[standard]; extra == "all"
|
|
175
|
-
Requires-Dist: cachetools; extra == "all"
|
|
176
|
-
Requires-Dist: pymupdf4llm; extra == "all"
|
|
177
|
-
Requires-Dist: tinynetrc; extra == "all"
|
|
178
160
|
Requires-Dist: filetype; extra == "all"
|
|
179
|
-
Requires-Dist:
|
|
161
|
+
Requires-Dist: odfpy; extra == "all"
|
|
162
|
+
Requires-Dist: logfire[fastapi]; extra == "all"
|
|
180
163
|
Requires-Dist: torchaudio; extra == "all"
|
|
181
|
-
Requires-Dist:
|
|
164
|
+
Requires-Dist: python-on-whales; extra == "all"
|
|
165
|
+
Requires-Dist: torchvision; extra == "all"
|
|
166
|
+
Requires-Dist: pydantic-settings; extra == "all"
|
|
167
|
+
Requires-Dist: logfire[httpx]; extra == "all"
|
|
168
|
+
Requires-Dist: dnspython[doh]; extra == "all"
|
|
169
|
+
Requires-Dist: deepmerge; extra == "all"
|
|
182
170
|
Requires-Dist: pyyaml; extra == "all"
|
|
183
|
-
Requires-Dist:
|
|
171
|
+
Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
|
|
172
|
+
Requires-Dist: pydevd-pycharm~=251.25410.159; extra == "all"
|
|
184
173
|
Requires-Dist: pandas; extra == "all"
|
|
185
|
-
Requires-Dist:
|
|
186
|
-
Requires-Dist:
|
|
187
|
-
Requires-Dist:
|
|
188
|
-
Requires-Dist:
|
|
174
|
+
Requires-Dist: beanie[odm]; extra == "all"
|
|
175
|
+
Requires-Dist: sentence_transformers; extra == "all"
|
|
176
|
+
Requires-Dist: playwright; extra == "all"
|
|
177
|
+
Requires-Dist: dask[bag]; extra == "all"
|
|
178
|
+
Requires-Dist: yamlscript; extra == "all"
|
|
179
|
+
Requires-Dist: Unidecode; extra == "all"
|
|
180
|
+
Requires-Dist: pytest-cov; extra == "all"
|
|
189
181
|
Requires-Dist: httpx; extra == "all"
|
|
190
|
-
Requires-Dist: tabulate; extra == "all"
|
|
191
|
-
Requires-Dist: pydantic-extra-types; extra == "all"
|
|
192
|
-
Requires-Dist: google-auth-oauthlib; extra == "all"
|
|
193
182
|
Requires-Dist: html2text; extra == "all"
|
|
194
|
-
Requires-Dist:
|
|
183
|
+
Requires-Dist: transformers[sentencepiece]; extra == "all"
|
|
195
184
|
Requires-Dist: regex; extra == "all"
|
|
196
|
-
Requires-Dist: Unidecode; extra == "all"
|
|
197
|
-
Requires-Dist: huggingface_hub; extra == "all"
|
|
198
|
-
Requires-Dist: pydantic; extra == "all"
|
|
199
|
-
Requires-Dist: yamlscript; extra == "all"
|
|
200
185
|
Requires-Dist: tokenizers; extra == "all"
|
|
201
|
-
Requires-Dist: pydantic
|
|
186
|
+
Requires-Dist: pydantic; extra == "all"
|
|
187
|
+
Requires-Dist: pycountry; extra == "all"
|
|
188
|
+
Requires-Dist: huggingface_hub; extra == "all"
|
|
189
|
+
Requires-Dist: contexttimer; extra == "all"
|
|
190
|
+
Requires-Dist: bokeh; extra == "all"
|
|
202
191
|
Requires-Dist: semver; extra == "all"
|
|
203
|
-
Requires-Dist:
|
|
204
|
-
Requires-Dist:
|
|
205
|
-
Requires-Dist:
|
|
206
|
-
Requires-Dist:
|
|
192
|
+
Requires-Dist: flet-webview; extra == "all"
|
|
193
|
+
Requires-Dist: logfire; extra == "all"
|
|
194
|
+
Requires-Dist: sre_yield; extra == "all"
|
|
195
|
+
Requires-Dist: deepdiff; extra == "all"
|
|
207
196
|
Requires-Dist: json_repair; extra == "all"
|
|
208
|
-
Requires-Dist:
|
|
197
|
+
Requires-Dist: cachetools; extra == "all"
|
|
198
|
+
Requires-Dist: distributed; extra == "all"
|
|
199
|
+
Requires-Dist: pymupdf4llm; extra == "all"
|
|
200
|
+
Requires-Dist: httpx_retries; extra == "all"
|
|
201
|
+
Requires-Dist: faker; extra == "all"
|
|
202
|
+
Requires-Dist: flet[all]; extra == "all"
|
|
203
|
+
Requires-Dist: motor; extra == "all"
|
|
204
|
+
Requires-Dist: uvicorn[standard]; extra == "all"
|
|
205
|
+
Requires-Dist: diskcache; extra == "all"
|
|
206
|
+
Requires-Dist: appdirs; extra == "all"
|
|
207
|
+
Requires-Dist: openai; extra == "all"
|
|
208
|
+
Requires-Dist: google-auth-oauthlib; extra == "all"
|
|
209
|
+
Requires-Dist: setuptools; extra == "all"
|
|
210
|
+
Requires-Dist: flet-video; extra == "all"
|
|
209
211
|
Requires-Dist: google-api-python-client; extra == "all"
|
|
210
212
|
Requires-Dist: ollama; extra == "all"
|
|
211
|
-
Requires-Dist:
|
|
212
|
-
Requires-Dist:
|
|
213
|
+
Requires-Dist: openpyxl; extra == "all"
|
|
214
|
+
Requires-Dist: google-auth; extra == "all"
|
|
215
|
+
Requires-Dist: tinynetrc; extra == "all"
|
|
216
|
+
Requires-Dist: pymupdf; extra == "all"
|
|
213
217
|
Requires-Dist: peft; extra == "all"
|
|
214
|
-
Requires-Dist:
|
|
215
|
-
Requires-Dist: logfire; extra == "all"
|
|
216
|
-
Requires-Dist: playwright; extra == "all"
|
|
217
|
-
Requires-Dist: contexttimer; extra == "all"
|
|
218
|
-
Requires-Dist: sre_yield; extra == "all"
|
|
218
|
+
Requires-Dist: fastapi; extra == "all"
|
|
219
219
|
Dynamic: author
|
|
220
220
|
Dynamic: author-email
|
|
221
221
|
Dynamic: description
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
1.3.60
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -18,68 +18,68 @@ pydantic-ai[logfire,openai]
|
|
|
18
18
|
ollama
|
|
19
19
|
|
|
20
20
|
[all]
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
setuptools
|
|
24
|
-
deepdiff
|
|
25
|
-
diskcache
|
|
26
|
-
pydevd-pycharm~=251.25410.159
|
|
27
|
-
openpyxl
|
|
28
|
-
deepmerge
|
|
29
|
-
dask[bag]
|
|
21
|
+
tabulate
|
|
22
|
+
pydantic-extra-types
|
|
30
23
|
google-auth-httplib2
|
|
31
|
-
flet-webview
|
|
32
|
-
appdirs
|
|
33
|
-
pycountry
|
|
34
|
-
pytest-cov
|
|
35
|
-
faker
|
|
36
|
-
httpx_retries
|
|
37
|
-
distributed
|
|
38
|
-
uvicorn[standard]
|
|
39
|
-
cachetools
|
|
40
|
-
pymupdf4llm
|
|
41
|
-
tinynetrc
|
|
42
24
|
filetype
|
|
43
|
-
|
|
25
|
+
odfpy
|
|
26
|
+
logfire[fastapi]
|
|
44
27
|
torchaudio
|
|
45
|
-
|
|
28
|
+
python-on-whales
|
|
29
|
+
torchvision
|
|
30
|
+
pydantic-settings
|
|
31
|
+
logfire[httpx]
|
|
32
|
+
dnspython[doh]
|
|
33
|
+
deepmerge
|
|
46
34
|
pyyaml
|
|
47
|
-
|
|
35
|
+
pydantic-ai[logfire,openai]
|
|
36
|
+
pydevd-pycharm~=251.25410.159
|
|
48
37
|
pandas
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
38
|
+
beanie[odm]
|
|
39
|
+
sentence_transformers
|
|
40
|
+
playwright
|
|
41
|
+
dask[bag]
|
|
42
|
+
yamlscript
|
|
43
|
+
Unidecode
|
|
44
|
+
pytest-cov
|
|
53
45
|
httpx
|
|
54
|
-
tabulate
|
|
55
|
-
pydantic-extra-types
|
|
56
|
-
google-auth-oauthlib
|
|
57
46
|
html2text
|
|
58
|
-
|
|
47
|
+
transformers[sentencepiece]
|
|
59
48
|
regex
|
|
60
|
-
Unidecode
|
|
61
|
-
huggingface_hub
|
|
62
|
-
pydantic
|
|
63
|
-
yamlscript
|
|
64
49
|
tokenizers
|
|
65
|
-
pydantic
|
|
50
|
+
pydantic
|
|
51
|
+
pycountry
|
|
52
|
+
huggingface_hub
|
|
53
|
+
contexttimer
|
|
54
|
+
bokeh
|
|
66
55
|
semver
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
56
|
+
flet-webview
|
|
57
|
+
logfire
|
|
58
|
+
sre_yield
|
|
59
|
+
deepdiff
|
|
71
60
|
json_repair
|
|
72
|
-
|
|
61
|
+
cachetools
|
|
62
|
+
distributed
|
|
63
|
+
pymupdf4llm
|
|
64
|
+
httpx_retries
|
|
65
|
+
faker
|
|
66
|
+
flet[all]
|
|
67
|
+
motor
|
|
68
|
+
uvicorn[standard]
|
|
69
|
+
diskcache
|
|
70
|
+
appdirs
|
|
71
|
+
openai
|
|
72
|
+
google-auth-oauthlib
|
|
73
|
+
setuptools
|
|
74
|
+
flet-video
|
|
73
75
|
google-api-python-client
|
|
74
76
|
ollama
|
|
75
|
-
|
|
76
|
-
|
|
77
|
+
openpyxl
|
|
78
|
+
google-auth
|
|
79
|
+
tinynetrc
|
|
80
|
+
pymupdf
|
|
77
81
|
peft
|
|
78
|
-
|
|
79
|
-
logfire
|
|
80
|
-
playwright
|
|
81
|
-
contexttimer
|
|
82
|
-
sre_yield
|
|
82
|
+
fastapi
|
|
83
83
|
|
|
84
84
|
[api]
|
|
85
85
|
fastapi
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|