fmtr.tools 1.3.73__tar.gz → 1.3.75__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.73 → fmtr_tools-1.3.75}/PKG-INFO +51 -51
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/database_tools/document.py +2 -2
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/interface_tools/interface_tools.py +9 -10
- fmtr_tools-1.3.75/fmtr/tools/version +1 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr.tools.egg-info/PKG-INFO +51 -51
- fmtr_tools-1.3.73/fmtr/tools/version +0 -1
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/LICENSE +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/README.md +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/__init__.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/ai_tools/__init__.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/ai_tools/agentic_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/ai_tools/inference_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/api_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/async_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/augmentation_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/caching_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/constants.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/context_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/data_modelling_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/database_tools/__init__.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/dataclass_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/datatype_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/datetime_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/debugging_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/dns_tools/__init__.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/dns_tools/client.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/dns_tools/dm.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/dns_tools/proxy.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/dns_tools/server.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/docker_tools/__init__.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/entrypoints/__init__.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/entrypoints/cache_hfh.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/entrypoints/ep_test.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/entrypoints/install_yamlscript.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/entrypoints/remote_debug_test.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/entrypoints/shell_debug.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/environment_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/function_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/google_api_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/hash_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/hfh_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/html_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/http_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/import_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/inherit_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/inspection_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/interface_tools/__init__.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/interface_tools/context.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/interface_tools/controls.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/iterator_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/json_fix_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/json_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/logging_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/merging_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/metric_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/name_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/netrc_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/openai_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/packaging_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/parallel_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/path_tools/__init__.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/path_tools/app_path_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/path_tools/path_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/path_tools/type_path_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/pattern_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/pdf_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/platform_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/process_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/profiling_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/random_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/semantic_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/settings_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/setup_tools/__init__.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/setup_tools/setup_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/spaces_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/string_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/tabular_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/tests/__init__.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/tests/conftest.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/tests/helpers.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/tests/test_datatype.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/tests/test_environment.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/tests/test_json.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/tests/test_path.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/tests/test_yaml.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/tokenization_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/unicode_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/version_tools/__init__.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/version_tools/version_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/webhook_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr/tools/yaml_tools.py +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr.tools.egg-info/SOURCES.txt +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr.tools.egg-info/dependency_links.txt +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr.tools.egg-info/entry_points.txt +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr.tools.egg-info/requires.txt +50 -50
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/fmtr.tools.egg-info/top_level.txt +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/pyproject.toml +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/setup.cfg +0 -0
- {fmtr_tools-1.3.73 → fmtr_tools-1.3.75}/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.75
|
|
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
|
|
@@ -168,68 +168,68 @@ Provides-Extra: db-document
|
|
|
168
168
|
Requires-Dist: beanie[odm]; extra == "db-document"
|
|
169
169
|
Requires-Dist: motor; extra == "db-document"
|
|
170
170
|
Provides-Extra: all
|
|
171
|
+
Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
|
|
172
|
+
Requires-Dist: logfire[fastapi]; extra == "all"
|
|
173
|
+
Requires-Dist: google-auth-httplib2; extra == "all"
|
|
171
174
|
Requires-Dist: contexttimer; extra == "all"
|
|
172
|
-
Requires-Dist:
|
|
175
|
+
Requires-Dist: pydantic; extra == "all"
|
|
173
176
|
Requires-Dist: httpx; extra == "all"
|
|
177
|
+
Requires-Dist: google-auth-oauthlib; extra == "all"
|
|
178
|
+
Requires-Dist: sre_yield; extra == "all"
|
|
179
|
+
Requires-Dist: regex; extra == "all"
|
|
180
|
+
Requires-Dist: flet-webview; extra == "all"
|
|
181
|
+
Requires-Dist: openai; extra == "all"
|
|
182
|
+
Requires-Dist: pyyaml; extra == "all"
|
|
183
|
+
Requires-Dist: torchvision; extra == "all"
|
|
184
|
+
Requires-Dist: peft; extra == "all"
|
|
174
185
|
Requires-Dist: flet[all]; extra == "all"
|
|
186
|
+
Requires-Dist: pymupdf; extra == "all"
|
|
187
|
+
Requires-Dist: deepmerge; extra == "all"
|
|
188
|
+
Requires-Dist: logfire[httpx]; extra == "all"
|
|
189
|
+
Requires-Dist: html2text; extra == "all"
|
|
190
|
+
Requires-Dist: transformers[sentencepiece]; extra == "all"
|
|
191
|
+
Requires-Dist: pydantic-extra-types; extra == "all"
|
|
192
|
+
Requires-Dist: beanie[odm]; extra == "all"
|
|
193
|
+
Requires-Dist: bokeh; extra == "all"
|
|
194
|
+
Requires-Dist: tinynetrc; extra == "all"
|
|
175
195
|
Requires-Dist: pydevd-pycharm~=251.25410.159; extra == "all"
|
|
176
|
-
Requires-Dist:
|
|
177
|
-
Requires-Dist:
|
|
196
|
+
Requires-Dist: google-auth; extra == "all"
|
|
197
|
+
Requires-Dist: faker; extra == "all"
|
|
198
|
+
Requires-Dist: yamlscript; extra == "all"
|
|
199
|
+
Requires-Dist: sentence_transformers; extra == "all"
|
|
200
|
+
Requires-Dist: ollama; extra == "all"
|
|
201
|
+
Requires-Dist: playwright; extra == "all"
|
|
202
|
+
Requires-Dist: distributed; extra == "all"
|
|
203
|
+
Requires-Dist: uvicorn[standard]; extra == "all"
|
|
178
204
|
Requires-Dist: huggingface_hub; extra == "all"
|
|
179
|
-
Requires-Dist: torchaudio; extra == "all"
|
|
180
|
-
Requires-Dist: openpyxl; extra == "all"
|
|
181
|
-
Requires-Dist: setuptools; extra == "all"
|
|
182
205
|
Requires-Dist: httpx_retries; extra == "all"
|
|
183
|
-
Requires-Dist:
|
|
184
|
-
Requires-Dist: tabulate; extra == "all"
|
|
185
|
-
Requires-Dist: odfpy; extra == "all"
|
|
206
|
+
Requires-Dist: tokenizers; extra == "all"
|
|
186
207
|
Requires-Dist: pytest-cov; extra == "all"
|
|
187
|
-
Requires-Dist: uvicorn[standard]; extra == "all"
|
|
188
|
-
Requires-Dist: distributed; extra == "all"
|
|
189
|
-
Requires-Dist: pyyaml; extra == "all"
|
|
190
|
-
Requires-Dist: filetype; extra == "all"
|
|
191
|
-
Requires-Dist: pycountry; extra == "all"
|
|
192
|
-
Requires-Dist: cachetools; extra == "all"
|
|
193
|
-
Requires-Dist: flet-video; extra == "all"
|
|
194
|
-
Requires-Dist: dnspython[doh]; extra == "all"
|
|
195
|
-
Requires-Dist: faker; extra == "all"
|
|
196
|
-
Requires-Dist: sentence_transformers; extra == "all"
|
|
197
|
-
Requires-Dist: torchvision; extra == "all"
|
|
198
|
-
Requires-Dist: pydantic-settings; extra == "all"
|
|
199
|
-
Requires-Dist: bokeh; extra == "all"
|
|
200
|
-
Requires-Dist: pandas; extra == "all"
|
|
201
|
-
Requires-Dist: google-auth; extra == "all"
|
|
202
|
-
Requires-Dist: diskcache; extra == "all"
|
|
203
208
|
Requires-Dist: appdirs; extra == "all"
|
|
204
|
-
Requires-Dist:
|
|
205
|
-
Requires-Dist:
|
|
206
|
-
Requires-Dist: pydantic-extra-types; extra == "all"
|
|
209
|
+
Requires-Dist: pandas; extra == "all"
|
|
210
|
+
Requires-Dist: python-on-whales; extra == "all"
|
|
207
211
|
Requires-Dist: json_repair; extra == "all"
|
|
208
|
-
Requires-Dist:
|
|
212
|
+
Requires-Dist: odfpy; extra == "all"
|
|
213
|
+
Requires-Dist: pycountry; extra == "all"
|
|
214
|
+
Requires-Dist: deepdiff; extra == "all"
|
|
215
|
+
Requires-Dist: pydantic-settings; extra == "all"
|
|
209
216
|
Requires-Dist: google-api-python-client; extra == "all"
|
|
210
|
-
Requires-Dist:
|
|
211
|
-
Requires-Dist:
|
|
212
|
-
Requires-Dist:
|
|
213
|
-
Requires-Dist:
|
|
214
|
-
Requires-Dist:
|
|
215
|
-
Requires-Dist:
|
|
216
|
-
Requires-Dist: logfire[fastapi]; extra == "all"
|
|
217
|
-
Requires-Dist: flet-webview; extra == "all"
|
|
218
|
-
Requires-Dist: google-auth-oauthlib; extra == "all"
|
|
219
|
-
Requires-Dist: logfire; extra == "all"
|
|
220
|
-
Requires-Dist: motor; extra == "all"
|
|
221
|
-
Requires-Dist: playwright; extra == "all"
|
|
222
|
-
Requires-Dist: peft; extra == "all"
|
|
223
|
-
Requires-Dist: openai; extra == "all"
|
|
217
|
+
Requires-Dist: dask[bag]; extra == "all"
|
|
218
|
+
Requires-Dist: tabulate; extra == "all"
|
|
219
|
+
Requires-Dist: Unidecode; extra == "all"
|
|
220
|
+
Requires-Dist: flet-video; extra == "all"
|
|
221
|
+
Requires-Dist: dnspython[doh]; extra == "all"
|
|
222
|
+
Requires-Dist: setuptools; extra == "all"
|
|
224
223
|
Requires-Dist: semver; extra == "all"
|
|
225
|
-
Requires-Dist:
|
|
226
|
-
Requires-Dist:
|
|
227
|
-
Requires-Dist:
|
|
228
|
-
Requires-Dist:
|
|
229
|
-
Requires-Dist:
|
|
224
|
+
Requires-Dist: motor; extra == "all"
|
|
225
|
+
Requires-Dist: fastapi; extra == "all"
|
|
226
|
+
Requires-Dist: openpyxl; extra == "all"
|
|
227
|
+
Requires-Dist: torchaudio; extra == "all"
|
|
228
|
+
Requires-Dist: diskcache; extra == "all"
|
|
229
|
+
Requires-Dist: cachetools; extra == "all"
|
|
230
230
|
Requires-Dist: pymupdf4llm; extra == "all"
|
|
231
|
-
Requires-Dist:
|
|
232
|
-
Requires-Dist:
|
|
231
|
+
Requires-Dist: filetype; extra == "all"
|
|
232
|
+
Requires-Dist: logfire; extra == "all"
|
|
233
233
|
Dynamic: author
|
|
234
234
|
Dynamic: author-email
|
|
235
235
|
Dynamic: description
|
|
@@ -3,7 +3,7 @@ from typing import List
|
|
|
3
3
|
|
|
4
4
|
import beanie
|
|
5
5
|
from beanie.odm import actions
|
|
6
|
-
from
|
|
6
|
+
from pymongo import AsyncMongoClient
|
|
7
7
|
|
|
8
8
|
from fmtr.tools import data_modelling_tools
|
|
9
9
|
from fmtr.tools.constants import Constants
|
|
@@ -34,7 +34,7 @@ class Client:
|
|
|
34
34
|
self.port = port
|
|
35
35
|
self.documents = documents
|
|
36
36
|
|
|
37
|
-
self.client =
|
|
37
|
+
self.client = AsyncMongoClient(self.uri, tz_aware=True)
|
|
38
38
|
self.db = self.client[self.name]
|
|
39
39
|
|
|
40
40
|
@cached_property
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import os
|
|
1
2
|
from typing import TypeVar, Generic, Type
|
|
2
3
|
|
|
3
4
|
import flet as ft
|
|
@@ -30,14 +31,6 @@ class progress(update):
|
|
|
30
31
|
|
|
31
32
|
"""
|
|
32
33
|
|
|
33
|
-
def get_context(self, instance):
|
|
34
|
-
"""
|
|
35
|
-
|
|
36
|
-
Use instance-defined context.
|
|
37
|
-
|
|
38
|
-
"""
|
|
39
|
-
return instance.context
|
|
40
|
-
|
|
41
34
|
def start(self, instance, *args, **kwargs):
|
|
42
35
|
"""
|
|
43
36
|
|
|
@@ -72,9 +65,12 @@ class Base(Generic[T], ft.Column):
|
|
|
72
65
|
URL = Constants.FMTR_DEV_INTERFACE_URL if environment_tools.IS_DEV else None
|
|
73
66
|
APPVIEW = AppView.WEB_BROWSER
|
|
74
67
|
PATH_ASSETS = None
|
|
75
|
-
|
|
68
|
+
PATH_UPLOADS = None
|
|
76
69
|
SCROLL = ft.ScrollMode.AUTO
|
|
77
70
|
|
|
71
|
+
SECRET_KEY_KEY = 'FLET_SECRET_KEY'
|
|
72
|
+
ROUTE_ROOT = '/'
|
|
73
|
+
|
|
78
74
|
TypeContext: Type[T] = Context
|
|
79
75
|
|
|
80
76
|
@classmethod
|
|
@@ -168,8 +164,11 @@ class Base(Generic[T], ft.Column):
|
|
|
168
164
|
else:
|
|
169
165
|
url = f'http://{cls.HOST}:{cls.PORT}'
|
|
170
166
|
|
|
167
|
+
if not environment_tools.get(cls.SECRET_KEY_KEY, default=None):
|
|
168
|
+
os.environ["FLET_SECRET_KEY"] = os.urandom(12).hex()
|
|
169
|
+
|
|
171
170
|
logger.info(f"Launching {cls.TITLE} at {url}")
|
|
172
|
-
ft.app(cls.new, view=cls.APPVIEW, host=cls.HOST, port=cls.PORT, assets_dir=cls.PATH_ASSETS, )
|
|
171
|
+
ft.app(cls.new, view=cls.APPVIEW, host=cls.HOST, port=cls.PORT, assets_dir=cls.PATH_ASSETS, upload_dir=cls.PATH_UPLOADS)
|
|
173
172
|
|
|
174
173
|
|
|
175
174
|
class Test(Base[Context]):
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1.3.75
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fmtr.tools
|
|
3
|
-
Version: 1.3.
|
|
3
|
+
Version: 1.3.75
|
|
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
|
|
@@ -168,68 +168,68 @@ Provides-Extra: db-document
|
|
|
168
168
|
Requires-Dist: beanie[odm]; extra == "db-document"
|
|
169
169
|
Requires-Dist: motor; extra == "db-document"
|
|
170
170
|
Provides-Extra: all
|
|
171
|
+
Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
|
|
172
|
+
Requires-Dist: logfire[fastapi]; extra == "all"
|
|
173
|
+
Requires-Dist: google-auth-httplib2; extra == "all"
|
|
171
174
|
Requires-Dist: contexttimer; extra == "all"
|
|
172
|
-
Requires-Dist:
|
|
175
|
+
Requires-Dist: pydantic; extra == "all"
|
|
173
176
|
Requires-Dist: httpx; extra == "all"
|
|
177
|
+
Requires-Dist: google-auth-oauthlib; extra == "all"
|
|
178
|
+
Requires-Dist: sre_yield; extra == "all"
|
|
179
|
+
Requires-Dist: regex; extra == "all"
|
|
180
|
+
Requires-Dist: flet-webview; extra == "all"
|
|
181
|
+
Requires-Dist: openai; extra == "all"
|
|
182
|
+
Requires-Dist: pyyaml; extra == "all"
|
|
183
|
+
Requires-Dist: torchvision; extra == "all"
|
|
184
|
+
Requires-Dist: peft; extra == "all"
|
|
174
185
|
Requires-Dist: flet[all]; extra == "all"
|
|
186
|
+
Requires-Dist: pymupdf; extra == "all"
|
|
187
|
+
Requires-Dist: deepmerge; extra == "all"
|
|
188
|
+
Requires-Dist: logfire[httpx]; extra == "all"
|
|
189
|
+
Requires-Dist: html2text; extra == "all"
|
|
190
|
+
Requires-Dist: transformers[sentencepiece]; extra == "all"
|
|
191
|
+
Requires-Dist: pydantic-extra-types; extra == "all"
|
|
192
|
+
Requires-Dist: beanie[odm]; extra == "all"
|
|
193
|
+
Requires-Dist: bokeh; extra == "all"
|
|
194
|
+
Requires-Dist: tinynetrc; extra == "all"
|
|
175
195
|
Requires-Dist: pydevd-pycharm~=251.25410.159; extra == "all"
|
|
176
|
-
Requires-Dist:
|
|
177
|
-
Requires-Dist:
|
|
196
|
+
Requires-Dist: google-auth; extra == "all"
|
|
197
|
+
Requires-Dist: faker; extra == "all"
|
|
198
|
+
Requires-Dist: yamlscript; extra == "all"
|
|
199
|
+
Requires-Dist: sentence_transformers; extra == "all"
|
|
200
|
+
Requires-Dist: ollama; extra == "all"
|
|
201
|
+
Requires-Dist: playwright; extra == "all"
|
|
202
|
+
Requires-Dist: distributed; extra == "all"
|
|
203
|
+
Requires-Dist: uvicorn[standard]; extra == "all"
|
|
178
204
|
Requires-Dist: huggingface_hub; extra == "all"
|
|
179
|
-
Requires-Dist: torchaudio; extra == "all"
|
|
180
|
-
Requires-Dist: openpyxl; extra == "all"
|
|
181
|
-
Requires-Dist: setuptools; extra == "all"
|
|
182
205
|
Requires-Dist: httpx_retries; extra == "all"
|
|
183
|
-
Requires-Dist:
|
|
184
|
-
Requires-Dist: tabulate; extra == "all"
|
|
185
|
-
Requires-Dist: odfpy; extra == "all"
|
|
206
|
+
Requires-Dist: tokenizers; extra == "all"
|
|
186
207
|
Requires-Dist: pytest-cov; extra == "all"
|
|
187
|
-
Requires-Dist: uvicorn[standard]; extra == "all"
|
|
188
|
-
Requires-Dist: distributed; extra == "all"
|
|
189
|
-
Requires-Dist: pyyaml; extra == "all"
|
|
190
|
-
Requires-Dist: filetype; extra == "all"
|
|
191
|
-
Requires-Dist: pycountry; extra == "all"
|
|
192
|
-
Requires-Dist: cachetools; extra == "all"
|
|
193
|
-
Requires-Dist: flet-video; extra == "all"
|
|
194
|
-
Requires-Dist: dnspython[doh]; extra == "all"
|
|
195
|
-
Requires-Dist: faker; extra == "all"
|
|
196
|
-
Requires-Dist: sentence_transformers; extra == "all"
|
|
197
|
-
Requires-Dist: torchvision; extra == "all"
|
|
198
|
-
Requires-Dist: pydantic-settings; extra == "all"
|
|
199
|
-
Requires-Dist: bokeh; extra == "all"
|
|
200
|
-
Requires-Dist: pandas; extra == "all"
|
|
201
|
-
Requires-Dist: google-auth; extra == "all"
|
|
202
|
-
Requires-Dist: diskcache; extra == "all"
|
|
203
208
|
Requires-Dist: appdirs; extra == "all"
|
|
204
|
-
Requires-Dist:
|
|
205
|
-
Requires-Dist:
|
|
206
|
-
Requires-Dist: pydantic-extra-types; extra == "all"
|
|
209
|
+
Requires-Dist: pandas; extra == "all"
|
|
210
|
+
Requires-Dist: python-on-whales; extra == "all"
|
|
207
211
|
Requires-Dist: json_repair; extra == "all"
|
|
208
|
-
Requires-Dist:
|
|
212
|
+
Requires-Dist: odfpy; extra == "all"
|
|
213
|
+
Requires-Dist: pycountry; extra == "all"
|
|
214
|
+
Requires-Dist: deepdiff; extra == "all"
|
|
215
|
+
Requires-Dist: pydantic-settings; extra == "all"
|
|
209
216
|
Requires-Dist: google-api-python-client; extra == "all"
|
|
210
|
-
Requires-Dist:
|
|
211
|
-
Requires-Dist:
|
|
212
|
-
Requires-Dist:
|
|
213
|
-
Requires-Dist:
|
|
214
|
-
Requires-Dist:
|
|
215
|
-
Requires-Dist:
|
|
216
|
-
Requires-Dist: logfire[fastapi]; extra == "all"
|
|
217
|
-
Requires-Dist: flet-webview; extra == "all"
|
|
218
|
-
Requires-Dist: google-auth-oauthlib; extra == "all"
|
|
219
|
-
Requires-Dist: logfire; extra == "all"
|
|
220
|
-
Requires-Dist: motor; extra == "all"
|
|
221
|
-
Requires-Dist: playwright; extra == "all"
|
|
222
|
-
Requires-Dist: peft; extra == "all"
|
|
223
|
-
Requires-Dist: openai; extra == "all"
|
|
217
|
+
Requires-Dist: dask[bag]; extra == "all"
|
|
218
|
+
Requires-Dist: tabulate; extra == "all"
|
|
219
|
+
Requires-Dist: Unidecode; extra == "all"
|
|
220
|
+
Requires-Dist: flet-video; extra == "all"
|
|
221
|
+
Requires-Dist: dnspython[doh]; extra == "all"
|
|
222
|
+
Requires-Dist: setuptools; extra == "all"
|
|
224
223
|
Requires-Dist: semver; extra == "all"
|
|
225
|
-
Requires-Dist:
|
|
226
|
-
Requires-Dist:
|
|
227
|
-
Requires-Dist:
|
|
228
|
-
Requires-Dist:
|
|
229
|
-
Requires-Dist:
|
|
224
|
+
Requires-Dist: motor; extra == "all"
|
|
225
|
+
Requires-Dist: fastapi; extra == "all"
|
|
226
|
+
Requires-Dist: openpyxl; extra == "all"
|
|
227
|
+
Requires-Dist: torchaudio; extra == "all"
|
|
228
|
+
Requires-Dist: diskcache; extra == "all"
|
|
229
|
+
Requires-Dist: cachetools; extra == "all"
|
|
230
230
|
Requires-Dist: pymupdf4llm; extra == "all"
|
|
231
|
-
Requires-Dist:
|
|
232
|
-
Requires-Dist:
|
|
231
|
+
Requires-Dist: filetype; extra == "all"
|
|
232
|
+
Requires-Dist: logfire; extra == "all"
|
|
233
233
|
Dynamic: author
|
|
234
234
|
Dynamic: author-email
|
|
235
235
|
Dynamic: description
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
1.3.73
|
|
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
|
+
pydantic-ai[logfire,openai]
|
|
22
|
+
logfire[fastapi]
|
|
23
|
+
google-auth-httplib2
|
|
21
24
|
contexttimer
|
|
22
|
-
|
|
25
|
+
pydantic
|
|
23
26
|
httpx
|
|
27
|
+
google-auth-oauthlib
|
|
28
|
+
sre_yield
|
|
29
|
+
regex
|
|
30
|
+
flet-webview
|
|
31
|
+
openai
|
|
32
|
+
pyyaml
|
|
33
|
+
torchvision
|
|
34
|
+
peft
|
|
24
35
|
flet[all]
|
|
36
|
+
pymupdf
|
|
37
|
+
deepmerge
|
|
38
|
+
logfire[httpx]
|
|
39
|
+
html2text
|
|
40
|
+
transformers[sentencepiece]
|
|
41
|
+
pydantic-extra-types
|
|
42
|
+
beanie[odm]
|
|
43
|
+
bokeh
|
|
44
|
+
tinynetrc
|
|
25
45
|
pydevd-pycharm~=251.25410.159
|
|
26
|
-
|
|
27
|
-
|
|
46
|
+
google-auth
|
|
47
|
+
faker
|
|
48
|
+
yamlscript
|
|
49
|
+
sentence_transformers
|
|
50
|
+
ollama
|
|
51
|
+
playwright
|
|
52
|
+
distributed
|
|
53
|
+
uvicorn[standard]
|
|
28
54
|
huggingface_hub
|
|
29
|
-
torchaudio
|
|
30
|
-
openpyxl
|
|
31
|
-
setuptools
|
|
32
55
|
httpx_retries
|
|
33
|
-
|
|
34
|
-
tabulate
|
|
35
|
-
odfpy
|
|
56
|
+
tokenizers
|
|
36
57
|
pytest-cov
|
|
37
|
-
uvicorn[standard]
|
|
38
|
-
distributed
|
|
39
|
-
pyyaml
|
|
40
|
-
filetype
|
|
41
|
-
pycountry
|
|
42
|
-
cachetools
|
|
43
|
-
flet-video
|
|
44
|
-
dnspython[doh]
|
|
45
|
-
faker
|
|
46
|
-
sentence_transformers
|
|
47
|
-
torchvision
|
|
48
|
-
pydantic-settings
|
|
49
|
-
bokeh
|
|
50
|
-
pandas
|
|
51
|
-
google-auth
|
|
52
|
-
diskcache
|
|
53
58
|
appdirs
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
pydantic-extra-types
|
|
59
|
+
pandas
|
|
60
|
+
python-on-whales
|
|
57
61
|
json_repair
|
|
58
|
-
|
|
62
|
+
odfpy
|
|
63
|
+
pycountry
|
|
64
|
+
deepdiff
|
|
65
|
+
pydantic-settings
|
|
59
66
|
google-api-python-client
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
logfire[fastapi]
|
|
67
|
-
flet-webview
|
|
68
|
-
google-auth-oauthlib
|
|
69
|
-
logfire
|
|
70
|
-
motor
|
|
71
|
-
playwright
|
|
72
|
-
peft
|
|
73
|
-
openai
|
|
67
|
+
dask[bag]
|
|
68
|
+
tabulate
|
|
69
|
+
Unidecode
|
|
70
|
+
flet-video
|
|
71
|
+
dnspython[doh]
|
|
72
|
+
setuptools
|
|
74
73
|
semver
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
74
|
+
motor
|
|
75
|
+
fastapi
|
|
76
|
+
openpyxl
|
|
77
|
+
torchaudio
|
|
78
|
+
diskcache
|
|
79
|
+
cachetools
|
|
80
80
|
pymupdf4llm
|
|
81
|
-
|
|
82
|
-
|
|
81
|
+
filetype
|
|
82
|
+
logfire
|
|
83
83
|
|
|
84
84
|
[api]
|
|
85
85
|
fastapi
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|