fmtr.tools 1.3.49__tar.gz → 1.3.51__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.49 → fmtr_tools-1.3.51}/PKG-INFO +49 -49
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/database_tools/document.py +4 -3
- fmtr_tools-1.3.51/fmtr/tools/datetime_tools.py +31 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/logging_tools.py +10 -1
- fmtr_tools-1.3.51/fmtr/tools/version +1 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr.tools.egg-info/PKG-INFO +49 -49
- fmtr_tools-1.3.49/fmtr/tools/datetime_tools.py +0 -5
- fmtr_tools-1.3.49/fmtr/tools/version +0 -1
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/LICENSE +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/README.md +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/__init__.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/ai_tools/__init__.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/ai_tools/agentic_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/ai_tools/inference_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/api_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/async_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/augmentation_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/caching_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/constants.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/context_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/data_modelling_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/database_tools/__init__.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/dataclass_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/datatype_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/debugging_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/dns_tools/__init__.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/dns_tools/client.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/dns_tools/dm.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/dns_tools/proxy.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/dns_tools/server.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/docker_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/entrypoints/__init__.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/entrypoints/cache_hfh.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/entrypoints/ep_test.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/entrypoints/install_yamlscript.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/entrypoints/remote_debug_test.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/entrypoints/shell_debug.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/environment_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/function_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/google_api_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/hash_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/hfh_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/html_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/http_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/import_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/inherit_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/inspection_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/interface_tools/__init__.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/interface_tools/context.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/interface_tools/controls.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/interface_tools/interface_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/iterator_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/json_fix_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/json_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/merging_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/metric_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/name_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/netrc_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/openai_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/packaging_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/parallel_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/path_tools/__init__.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/path_tools/app_path_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/path_tools/path_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/path_tools/type_path_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/pattern_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/pdf_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/platform_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/process_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/profiling_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/random_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/semantic_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/settings_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/setup_tools/__init__.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/setup_tools/setup_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/spaces_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/string_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/tabular_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/tests/__init__.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/tests/conftest.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/tests/helpers.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/tests/test_datatype.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/tests/test_environment.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/tests/test_json.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/tests/test_path.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/tests/test_yaml.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/tokenization_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/unicode_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/version_tools/__init__.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/version_tools/version_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/webhook_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr/tools/yaml_tools.py +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr.tools.egg-info/SOURCES.txt +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr.tools.egg-info/dependency_links.txt +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr.tools.egg-info/entry_points.txt +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr.tools.egg-info/requires.txt +48 -48
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/fmtr.tools.egg-info/top_level.txt +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/pyproject.toml +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/setup.cfg +0 -0
- {fmtr_tools-1.3.49 → fmtr_tools-1.3.51}/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.51
|
|
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: pydantic-settings; extra == "all"
|
|
157
|
+
Requires-Dist: httpx_retries; extra == "all"
|
|
158
|
+
Requires-Dist: contexttimer; extra == "all"
|
|
160
159
|
Requires-Dist: tinynetrc; extra == "all"
|
|
161
|
-
Requires-Dist:
|
|
162
|
-
Requires-Dist: sentence_transformers; extra == "all"
|
|
163
|
-
Requires-Dist: flet-video; extra == "all"
|
|
164
|
-
Requires-Dist: tokenizers; extra == "all"
|
|
160
|
+
Requires-Dist: pydantic-extra-types; extra == "all"
|
|
165
161
|
Requires-Dist: transformers[sentencepiece]; extra == "all"
|
|
162
|
+
Requires-Dist: pyyaml; extra == "all"
|
|
163
|
+
Requires-Dist: pymupdf4llm; extra == "all"
|
|
164
|
+
Requires-Dist: flet-webview; extra == "all"
|
|
165
|
+
Requires-Dist: deepmerge; extra == "all"
|
|
166
|
+
Requires-Dist: pydevd-pycharm~=251.25410.159; extra == "all"
|
|
167
|
+
Requires-Dist: semver; extra == "all"
|
|
168
|
+
Requires-Dist: logfire; extra == "all"
|
|
169
|
+
Requires-Dist: docker; extra == "all"
|
|
166
170
|
Requires-Dist: fastapi; extra == "all"
|
|
167
|
-
Requires-Dist:
|
|
171
|
+
Requires-Dist: google-auth-oauthlib; extra == "all"
|
|
172
|
+
Requires-Dist: pydantic; extra == "all"
|
|
173
|
+
Requires-Dist: playwright; extra == "all"
|
|
174
|
+
Requires-Dist: google-auth-httplib2; extra == "all"
|
|
168
175
|
Requires-Dist: torchvision; extra == "all"
|
|
169
|
-
Requires-Dist:
|
|
170
|
-
Requires-Dist:
|
|
171
|
-
Requires-Dist:
|
|
176
|
+
Requires-Dist: deepdiff; extra == "all"
|
|
177
|
+
Requires-Dist: openpyxl; extra == "all"
|
|
178
|
+
Requires-Dist: cachetools; extra == "all"
|
|
179
|
+
Requires-Dist: pydantic-settings; extra == "all"
|
|
180
|
+
Requires-Dist: Unidecode; extra == "all"
|
|
181
|
+
Requires-Dist: sentence_transformers; extra == "all"
|
|
172
182
|
Requires-Dist: odfpy; extra == "all"
|
|
183
|
+
Requires-Dist: json_repair; extra == "all"
|
|
173
184
|
Requires-Dist: ollama; extra == "all"
|
|
174
|
-
Requires-Dist:
|
|
175
|
-
Requires-Dist:
|
|
176
|
-
Requires-Dist:
|
|
185
|
+
Requires-Dist: dask[bag]; extra == "all"
|
|
186
|
+
Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
|
|
187
|
+
Requires-Dist: html2text; extra == "all"
|
|
188
|
+
Requires-Dist: setuptools; extra == "all"
|
|
189
|
+
Requires-Dist: diskcache; extra == "all"
|
|
190
|
+
Requires-Dist: logfire[fastapi]; extra == "all"
|
|
191
|
+
Requires-Dist: huggingface_hub; extra == "all"
|
|
177
192
|
Requires-Dist: regex; extra == "all"
|
|
178
|
-
Requires-Dist: distributed; extra == "all"
|
|
179
|
-
Requires-Dist: yamlscript; extra == "all"
|
|
180
|
-
Requires-Dist: openai; extra == "all"
|
|
181
193
|
Requires-Dist: torchaudio; extra == "all"
|
|
182
|
-
Requires-Dist:
|
|
194
|
+
Requires-Dist: httpx; extra == "all"
|
|
195
|
+
Requires-Dist: flet-video; extra == "all"
|
|
183
196
|
Requires-Dist: sre_yield; extra == "all"
|
|
184
|
-
Requires-Dist:
|
|
185
|
-
Requires-Dist:
|
|
186
|
-
Requires-Dist:
|
|
187
|
-
Requires-Dist:
|
|
188
|
-
Requires-Dist:
|
|
189
|
-
Requires-Dist:
|
|
197
|
+
Requires-Dist: tokenizers; extra == "all"
|
|
198
|
+
Requires-Dist: tabulate; extra == "all"
|
|
199
|
+
Requires-Dist: google-auth; extra == "all"
|
|
200
|
+
Requires-Dist: yamlscript; extra == "all"
|
|
201
|
+
Requires-Dist: beanie[odm]; extra == "all"
|
|
202
|
+
Requires-Dist: appdirs; extra == "all"
|
|
203
|
+
Requires-Dist: google-api-python-client; extra == "all"
|
|
190
204
|
Requires-Dist: uvicorn[standard]; extra == "all"
|
|
191
|
-
Requires-Dist:
|
|
192
|
-
Requires-Dist:
|
|
205
|
+
Requires-Dist: pandas; extra == "all"
|
|
206
|
+
Requires-Dist: bokeh; extra == "all"
|
|
207
|
+
Requires-Dist: distributed; extra == "all"
|
|
208
|
+
Requires-Dist: pycountry; extra == "all"
|
|
209
|
+
Requires-Dist: filetype; extra == "all"
|
|
210
|
+
Requires-Dist: pytest-cov; extra == "all"
|
|
211
|
+
Requires-Dist: openai; extra == "all"
|
|
212
|
+
Requires-Dist: faker; extra == "all"
|
|
193
213
|
Requires-Dist: pymupdf; extra == "all"
|
|
194
|
-
Requires-Dist: docker; extra == "all"
|
|
195
|
-
Requires-Dist: deepdiff; extra == "all"
|
|
196
|
-
Requires-Dist: httpx; extra == "all"
|
|
197
|
-
Requires-Dist: pydantic; extra == "all"
|
|
198
|
-
Requires-Dist: openpyxl; extra == "all"
|
|
199
|
-
Requires-Dist: html2text; extra == "all"
|
|
200
|
-
Requires-Dist: logfire; extra == "all"
|
|
201
214
|
Requires-Dist: peft; extra == "all"
|
|
202
|
-
Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
|
|
203
215
|
Requires-Dist: flet[all]; extra == "all"
|
|
204
|
-
Requires-Dist: filetype; extra == "all"
|
|
205
|
-
Requires-Dist: json_repair; extra == "all"
|
|
206
|
-
Requires-Dist: flet-webview; extra == "all"
|
|
207
|
-
Requires-Dist: google-auth; extra == "all"
|
|
208
|
-
Requires-Dist: setuptools; extra == "all"
|
|
209
|
-
Requires-Dist: beanie[odm]; extra == "all"
|
|
210
216
|
Requires-Dist: motor; extra == "all"
|
|
211
|
-
Requires-Dist:
|
|
212
|
-
Requires-Dist:
|
|
213
|
-
Requires-Dist: playwright; extra == "all"
|
|
214
|
-
Requires-Dist: tabulate; extra == "all"
|
|
215
|
-
Requires-Dist: google-auth-httplib2; extra == "all"
|
|
216
|
-
Requires-Dist: pydantic-extra-types; extra == "all"
|
|
217
|
-
Requires-Dist: contexttimer; extra == "all"
|
|
218
|
-
Requires-Dist: pandas; extra == "all"
|
|
217
|
+
Requires-Dist: dnspython[doh]; extra == "all"
|
|
218
|
+
Requires-Dist: logfire[httpx]; extra == "all"
|
|
219
219
|
Dynamic: author
|
|
220
220
|
Dynamic: author-email
|
|
221
221
|
Dynamic: description
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import beanie
|
|
2
1
|
from functools import cached_property
|
|
3
|
-
from motor.motor_asyncio import AsyncIOMotorClient
|
|
4
2
|
from typing import List
|
|
5
3
|
|
|
4
|
+
import beanie
|
|
5
|
+
from motor.motor_asyncio import AsyncIOMotorClient
|
|
6
|
+
|
|
6
7
|
from fmtr.tools.constants import Constants
|
|
7
8
|
|
|
8
9
|
|
|
@@ -22,7 +23,7 @@ class Client:
|
|
|
22
23
|
self.port = port
|
|
23
24
|
self.documents = documents
|
|
24
25
|
|
|
25
|
-
self.client = AsyncIOMotorClient(self.uri)
|
|
26
|
+
self.client = AsyncIOMotorClient(self.uri, tz_aware=True)
|
|
26
27
|
self.db = self.client[self.name]
|
|
27
28
|
|
|
28
29
|
@cached_property
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
from datetime import datetime, timezone
|
|
2
|
+
from functools import lru_cache
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
def now() -> datetime:
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
Now UTC
|
|
9
|
+
|
|
10
|
+
"""
|
|
11
|
+
return datetime.now(tz=timezone.utc)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@lru_cache
|
|
15
|
+
def min() -> datetime:
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
Min UTC
|
|
19
|
+
|
|
20
|
+
"""
|
|
21
|
+
return now().min
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
@lru_cache
|
|
25
|
+
def max():
|
|
26
|
+
"""
|
|
27
|
+
|
|
28
|
+
Max UTC
|
|
29
|
+
|
|
30
|
+
"""
|
|
31
|
+
return now().max
|
|
@@ -14,6 +14,14 @@ IS_DEBUG = environment_tools.get(Constants.FMTR_LOG_LEVEL_KEY, None, converter=s
|
|
|
14
14
|
LEVEL_DEFAULT = logging.DEBUG if IS_DEBUG else logging.INFO
|
|
15
15
|
|
|
16
16
|
|
|
17
|
+
def null_scrubber(match):
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
Effectively disable scrubbing
|
|
21
|
+
|
|
22
|
+
"""
|
|
23
|
+
return match.value
|
|
24
|
+
|
|
17
25
|
def get_logger(name, version=None, host=Constants.FMTR_OBS_HOST, key=None, org=Constants.ORG_NAME,
|
|
18
26
|
stream=STREAM_DEFAULT, environment=ENVIRONMENT_DEFAULT, level=LEVEL_DEFAULT):
|
|
19
27
|
"""
|
|
@@ -64,7 +72,8 @@ def get_logger(name, version=None, host=Constants.FMTR_OBS_HOST, key=None, org=C
|
|
|
64
72
|
service_version=version,
|
|
65
73
|
environment=environment,
|
|
66
74
|
send_to_logfire=False,
|
|
67
|
-
console=console_opts
|
|
75
|
+
console=console_opts,
|
|
76
|
+
scrubbing=logfire.ScrubbingOptions(callback=null_scrubber)
|
|
68
77
|
)
|
|
69
78
|
|
|
70
79
|
if key is None:
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1.3.51
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fmtr.tools
|
|
3
|
-
Version: 1.3.
|
|
3
|
+
Version: 1.3.51
|
|
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: pydantic-settings; extra == "all"
|
|
157
|
+
Requires-Dist: httpx_retries; extra == "all"
|
|
158
|
+
Requires-Dist: contexttimer; extra == "all"
|
|
160
159
|
Requires-Dist: tinynetrc; extra == "all"
|
|
161
|
-
Requires-Dist:
|
|
162
|
-
Requires-Dist: sentence_transformers; extra == "all"
|
|
163
|
-
Requires-Dist: flet-video; extra == "all"
|
|
164
|
-
Requires-Dist: tokenizers; extra == "all"
|
|
160
|
+
Requires-Dist: pydantic-extra-types; extra == "all"
|
|
165
161
|
Requires-Dist: transformers[sentencepiece]; extra == "all"
|
|
162
|
+
Requires-Dist: pyyaml; extra == "all"
|
|
163
|
+
Requires-Dist: pymupdf4llm; extra == "all"
|
|
164
|
+
Requires-Dist: flet-webview; extra == "all"
|
|
165
|
+
Requires-Dist: deepmerge; extra == "all"
|
|
166
|
+
Requires-Dist: pydevd-pycharm~=251.25410.159; extra == "all"
|
|
167
|
+
Requires-Dist: semver; extra == "all"
|
|
168
|
+
Requires-Dist: logfire; extra == "all"
|
|
169
|
+
Requires-Dist: docker; extra == "all"
|
|
166
170
|
Requires-Dist: fastapi; extra == "all"
|
|
167
|
-
Requires-Dist:
|
|
171
|
+
Requires-Dist: google-auth-oauthlib; extra == "all"
|
|
172
|
+
Requires-Dist: pydantic; extra == "all"
|
|
173
|
+
Requires-Dist: playwright; extra == "all"
|
|
174
|
+
Requires-Dist: google-auth-httplib2; extra == "all"
|
|
168
175
|
Requires-Dist: torchvision; extra == "all"
|
|
169
|
-
Requires-Dist:
|
|
170
|
-
Requires-Dist:
|
|
171
|
-
Requires-Dist:
|
|
176
|
+
Requires-Dist: deepdiff; extra == "all"
|
|
177
|
+
Requires-Dist: openpyxl; extra == "all"
|
|
178
|
+
Requires-Dist: cachetools; extra == "all"
|
|
179
|
+
Requires-Dist: pydantic-settings; extra == "all"
|
|
180
|
+
Requires-Dist: Unidecode; extra == "all"
|
|
181
|
+
Requires-Dist: sentence_transformers; extra == "all"
|
|
172
182
|
Requires-Dist: odfpy; extra == "all"
|
|
183
|
+
Requires-Dist: json_repair; extra == "all"
|
|
173
184
|
Requires-Dist: ollama; extra == "all"
|
|
174
|
-
Requires-Dist:
|
|
175
|
-
Requires-Dist:
|
|
176
|
-
Requires-Dist:
|
|
185
|
+
Requires-Dist: dask[bag]; extra == "all"
|
|
186
|
+
Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
|
|
187
|
+
Requires-Dist: html2text; extra == "all"
|
|
188
|
+
Requires-Dist: setuptools; extra == "all"
|
|
189
|
+
Requires-Dist: diskcache; extra == "all"
|
|
190
|
+
Requires-Dist: logfire[fastapi]; extra == "all"
|
|
191
|
+
Requires-Dist: huggingface_hub; extra == "all"
|
|
177
192
|
Requires-Dist: regex; extra == "all"
|
|
178
|
-
Requires-Dist: distributed; extra == "all"
|
|
179
|
-
Requires-Dist: yamlscript; extra == "all"
|
|
180
|
-
Requires-Dist: openai; extra == "all"
|
|
181
193
|
Requires-Dist: torchaudio; extra == "all"
|
|
182
|
-
Requires-Dist:
|
|
194
|
+
Requires-Dist: httpx; extra == "all"
|
|
195
|
+
Requires-Dist: flet-video; extra == "all"
|
|
183
196
|
Requires-Dist: sre_yield; extra == "all"
|
|
184
|
-
Requires-Dist:
|
|
185
|
-
Requires-Dist:
|
|
186
|
-
Requires-Dist:
|
|
187
|
-
Requires-Dist:
|
|
188
|
-
Requires-Dist:
|
|
189
|
-
Requires-Dist:
|
|
197
|
+
Requires-Dist: tokenizers; extra == "all"
|
|
198
|
+
Requires-Dist: tabulate; extra == "all"
|
|
199
|
+
Requires-Dist: google-auth; extra == "all"
|
|
200
|
+
Requires-Dist: yamlscript; extra == "all"
|
|
201
|
+
Requires-Dist: beanie[odm]; extra == "all"
|
|
202
|
+
Requires-Dist: appdirs; extra == "all"
|
|
203
|
+
Requires-Dist: google-api-python-client; extra == "all"
|
|
190
204
|
Requires-Dist: uvicorn[standard]; extra == "all"
|
|
191
|
-
Requires-Dist:
|
|
192
|
-
Requires-Dist:
|
|
205
|
+
Requires-Dist: pandas; extra == "all"
|
|
206
|
+
Requires-Dist: bokeh; extra == "all"
|
|
207
|
+
Requires-Dist: distributed; extra == "all"
|
|
208
|
+
Requires-Dist: pycountry; extra == "all"
|
|
209
|
+
Requires-Dist: filetype; extra == "all"
|
|
210
|
+
Requires-Dist: pytest-cov; extra == "all"
|
|
211
|
+
Requires-Dist: openai; extra == "all"
|
|
212
|
+
Requires-Dist: faker; extra == "all"
|
|
193
213
|
Requires-Dist: pymupdf; extra == "all"
|
|
194
|
-
Requires-Dist: docker; extra == "all"
|
|
195
|
-
Requires-Dist: deepdiff; extra == "all"
|
|
196
|
-
Requires-Dist: httpx; extra == "all"
|
|
197
|
-
Requires-Dist: pydantic; extra == "all"
|
|
198
|
-
Requires-Dist: openpyxl; extra == "all"
|
|
199
|
-
Requires-Dist: html2text; extra == "all"
|
|
200
|
-
Requires-Dist: logfire; extra == "all"
|
|
201
214
|
Requires-Dist: peft; extra == "all"
|
|
202
|
-
Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
|
|
203
215
|
Requires-Dist: flet[all]; extra == "all"
|
|
204
|
-
Requires-Dist: filetype; extra == "all"
|
|
205
|
-
Requires-Dist: json_repair; extra == "all"
|
|
206
|
-
Requires-Dist: flet-webview; extra == "all"
|
|
207
|
-
Requires-Dist: google-auth; extra == "all"
|
|
208
|
-
Requires-Dist: setuptools; extra == "all"
|
|
209
|
-
Requires-Dist: beanie[odm]; extra == "all"
|
|
210
216
|
Requires-Dist: motor; extra == "all"
|
|
211
|
-
Requires-Dist:
|
|
212
|
-
Requires-Dist:
|
|
213
|
-
Requires-Dist: playwright; extra == "all"
|
|
214
|
-
Requires-Dist: tabulate; extra == "all"
|
|
215
|
-
Requires-Dist: google-auth-httplib2; extra == "all"
|
|
216
|
-
Requires-Dist: pydantic-extra-types; extra == "all"
|
|
217
|
-
Requires-Dist: contexttimer; extra == "all"
|
|
218
|
-
Requires-Dist: pandas; extra == "all"
|
|
217
|
+
Requires-Dist: dnspython[doh]; extra == "all"
|
|
218
|
+
Requires-Dist: logfire[httpx]; extra == "all"
|
|
219
219
|
Dynamic: author
|
|
220
220
|
Dynamic: author-email
|
|
221
221
|
Dynamic: description
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
1.3.49
|
|
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
|
-
pydantic-settings
|
|
21
|
+
httpx_retries
|
|
22
|
+
contexttimer
|
|
24
23
|
tinynetrc
|
|
25
|
-
|
|
26
|
-
sentence_transformers
|
|
27
|
-
flet-video
|
|
28
|
-
tokenizers
|
|
24
|
+
pydantic-extra-types
|
|
29
25
|
transformers[sentencepiece]
|
|
26
|
+
pyyaml
|
|
27
|
+
pymupdf4llm
|
|
28
|
+
flet-webview
|
|
29
|
+
deepmerge
|
|
30
|
+
pydevd-pycharm~=251.25410.159
|
|
31
|
+
semver
|
|
32
|
+
logfire
|
|
33
|
+
docker
|
|
30
34
|
fastapi
|
|
31
|
-
|
|
35
|
+
google-auth-oauthlib
|
|
36
|
+
pydantic
|
|
37
|
+
playwright
|
|
38
|
+
google-auth-httplib2
|
|
32
39
|
torchvision
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
40
|
+
deepdiff
|
|
41
|
+
openpyxl
|
|
42
|
+
cachetools
|
|
43
|
+
pydantic-settings
|
|
44
|
+
Unidecode
|
|
45
|
+
sentence_transformers
|
|
36
46
|
odfpy
|
|
47
|
+
json_repair
|
|
37
48
|
ollama
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
49
|
+
dask[bag]
|
|
50
|
+
pydantic-ai[logfire,openai]
|
|
51
|
+
html2text
|
|
52
|
+
setuptools
|
|
53
|
+
diskcache
|
|
54
|
+
logfire[fastapi]
|
|
55
|
+
huggingface_hub
|
|
41
56
|
regex
|
|
42
|
-
distributed
|
|
43
|
-
yamlscript
|
|
44
|
-
openai
|
|
45
57
|
torchaudio
|
|
46
|
-
|
|
58
|
+
httpx
|
|
59
|
+
flet-video
|
|
47
60
|
sre_yield
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
61
|
+
tokenizers
|
|
62
|
+
tabulate
|
|
63
|
+
google-auth
|
|
64
|
+
yamlscript
|
|
65
|
+
beanie[odm]
|
|
66
|
+
appdirs
|
|
67
|
+
google-api-python-client
|
|
54
68
|
uvicorn[standard]
|
|
55
|
-
|
|
56
|
-
|
|
69
|
+
pandas
|
|
70
|
+
bokeh
|
|
71
|
+
distributed
|
|
72
|
+
pycountry
|
|
73
|
+
filetype
|
|
74
|
+
pytest-cov
|
|
75
|
+
openai
|
|
76
|
+
faker
|
|
57
77
|
pymupdf
|
|
58
|
-
docker
|
|
59
|
-
deepdiff
|
|
60
|
-
httpx
|
|
61
|
-
pydantic
|
|
62
|
-
openpyxl
|
|
63
|
-
html2text
|
|
64
|
-
logfire
|
|
65
78
|
peft
|
|
66
|
-
pydantic-ai[logfire,openai]
|
|
67
79
|
flet[all]
|
|
68
|
-
filetype
|
|
69
|
-
json_repair
|
|
70
|
-
flet-webview
|
|
71
|
-
google-auth
|
|
72
|
-
setuptools
|
|
73
|
-
beanie[odm]
|
|
74
80
|
motor
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
playwright
|
|
78
|
-
tabulate
|
|
79
|
-
google-auth-httplib2
|
|
80
|
-
pydantic-extra-types
|
|
81
|
-
contexttimer
|
|
82
|
-
pandas
|
|
81
|
+
dnspython[doh]
|
|
82
|
+
logfire[httpx]
|
|
83
83
|
|
|
84
84
|
[api]
|
|
85
85
|
fastapi
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|