fmtr.tools 1.3.78__tar.gz → 1.3.79__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.78 → fmtr_tools-1.3.79}/PKG-INFO +49 -49
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/interface_tools/controls.py +37 -7
- fmtr_tools-1.3.79/fmtr/tools/version +1 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr.tools.egg-info/PKG-INFO +49 -49
- fmtr_tools-1.3.78/fmtr/tools/version +0 -1
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/LICENSE +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/README.md +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/__init__.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/ai_tools/__init__.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/ai_tools/agentic_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/ai_tools/inference_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/api_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/async_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/augmentation_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/caching_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/constants.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/context_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/data_modelling_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/database_tools/__init__.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/database_tools/document.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/dataclass_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/datatype_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/datetime_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/debugging_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/dns_tools/__init__.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/dns_tools/client.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/dns_tools/dm.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/dns_tools/proxy.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/dns_tools/server.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/docker_tools/__init__.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/entrypoints/__init__.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/entrypoints/cache_hfh.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/entrypoints/ep_test.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/entrypoints/install_yamlscript.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/entrypoints/remote_debug_test.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/entrypoints/shell_debug.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/environment_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/function_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/google_api_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/hash_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/hfh_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/html_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/http_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/import_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/inherit_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/inspection_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/interface_tools/__init__.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/interface_tools/context.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/interface_tools/interface_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/iterator_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/json_fix_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/json_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/logging_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/merging_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/metric_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/name_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/netrc_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/openai_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/packaging_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/parallel_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/path_tools/__init__.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/path_tools/app_path_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/path_tools/path_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/path_tools/type_path_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/pattern_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/pdf_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/platform_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/process_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/profiling_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/random_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/semantic_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/settings_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/setup_tools/__init__.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/setup_tools/setup_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/spaces_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/string_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/tabular_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/tests/__init__.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/tests/conftest.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/tests/helpers.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/tests/test_datatype.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/tests/test_environment.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/tests/test_json.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/tests/test_path.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/tests/test_yaml.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/tokenization_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/unicode_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/version_tools/__init__.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/version_tools/version_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/webhook_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr/tools/yaml_tools.py +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr.tools.egg-info/SOURCES.txt +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr.tools.egg-info/dependency_links.txt +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr.tools.egg-info/entry_points.txt +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr.tools.egg-info/requires.txt +48 -48
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/fmtr.tools.egg-info/top_level.txt +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/pyproject.toml +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/setup.cfg +0 -0
- {fmtr_tools-1.3.78 → fmtr_tools-1.3.79}/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.79
|
|
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
|
|
@@ -166,67 +166,67 @@ Provides-Extra: db
|
|
|
166
166
|
Provides-Extra: db-document
|
|
167
167
|
Requires-Dist: beanie[odm]; extra == "db-document"
|
|
168
168
|
Provides-Extra: all
|
|
169
|
+
Requires-Dist: tinynetrc; extra == "all"
|
|
169
170
|
Requires-Dist: huggingface_hub; extra == "all"
|
|
170
|
-
Requires-Dist: distributed; extra == "all"
|
|
171
|
-
Requires-Dist: torchaudio; extra == "all"
|
|
172
|
-
Requires-Dist: html2text; extra == "all"
|
|
173
|
-
Requires-Dist: logfire; extra == "all"
|
|
174
|
-
Requires-Dist: dask[bag]; extra == "all"
|
|
175
|
-
Requires-Dist: faker; extra == "all"
|
|
176
|
-
Requires-Dist: diskcache; extra == "all"
|
|
177
|
-
Requires-Dist: regex; extra == "all"
|
|
178
|
-
Requires-Dist: peft; extra == "all"
|
|
179
171
|
Requires-Dist: openpyxl; extra == "all"
|
|
180
|
-
Requires-Dist:
|
|
172
|
+
Requires-Dist: torchvision; extra == "all"
|
|
173
|
+
Requires-Dist: logfire[httpx]; extra == "all"
|
|
174
|
+
Requires-Dist: pytest-cov; extra == "all"
|
|
175
|
+
Requires-Dist: httpx_retries; extra == "all"
|
|
181
176
|
Requires-Dist: flet-video; extra == "all"
|
|
177
|
+
Requires-Dist: google-auth-httplib2; extra == "all"
|
|
178
|
+
Requires-Dist: tokenizers; extra == "all"
|
|
182
179
|
Requires-Dist: yamlscript; extra == "all"
|
|
183
|
-
Requires-Dist:
|
|
184
|
-
Requires-Dist:
|
|
185
|
-
Requires-Dist:
|
|
186
|
-
Requires-Dist:
|
|
187
|
-
Requires-Dist: openai; extra == "all"
|
|
188
|
-
Requires-Dist: google-auth-oauthlib; extra == "all"
|
|
189
|
-
Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
|
|
190
|
-
Requires-Dist: uvicorn[standard]; extra == "all"
|
|
180
|
+
Requires-Dist: pymupdf4llm; extra == "all"
|
|
181
|
+
Requires-Dist: regex; extra == "all"
|
|
182
|
+
Requires-Dist: dnspython[doh]; extra == "all"
|
|
183
|
+
Requires-Dist: pycountry; extra == "all"
|
|
191
184
|
Requires-Dist: deepdiff; extra == "all"
|
|
192
|
-
Requires-Dist:
|
|
185
|
+
Requires-Dist: google-auth-oauthlib; extra == "all"
|
|
186
|
+
Requires-Dist: openai; extra == "all"
|
|
187
|
+
Requires-Dist: sentence_transformers; extra == "all"
|
|
188
|
+
Requires-Dist: python-on-whales; extra == "all"
|
|
189
|
+
Requires-Dist: bokeh; extra == "all"
|
|
193
190
|
Requires-Dist: flet[all]; extra == "all"
|
|
191
|
+
Requires-Dist: transformers[sentencepiece]; extra == "all"
|
|
192
|
+
Requires-Dist: html2text; extra == "all"
|
|
193
|
+
Requires-Dist: pymupdf; extra == "all"
|
|
194
|
+
Requires-Dist: filetype; extra == "all"
|
|
195
|
+
Requires-Dist: pydantic; extra == "all"
|
|
194
196
|
Requires-Dist: semver; extra == "all"
|
|
197
|
+
Requires-Dist: playwright; extra == "all"
|
|
198
|
+
Requires-Dist: sre_yield; extra == "all"
|
|
199
|
+
Requires-Dist: uvicorn[standard]; extra == "all"
|
|
200
|
+
Requires-Dist: logfire; extra == "all"
|
|
201
|
+
Requires-Dist: distributed; extra == "all"
|
|
202
|
+
Requires-Dist: pyyaml; extra == "all"
|
|
203
|
+
Requires-Dist: diskcache; extra == "all"
|
|
204
|
+
Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
|
|
205
|
+
Requires-Dist: pydevd-pycharm~=251.25410.159; extra == "all"
|
|
206
|
+
Requires-Dist: tabulate; extra == "all"
|
|
207
|
+
Requires-Dist: cachetools; extra == "all"
|
|
195
208
|
Requires-Dist: Unidecode; extra == "all"
|
|
196
209
|
Requires-Dist: ollama; extra == "all"
|
|
197
|
-
Requires-Dist:
|
|
198
|
-
Requires-Dist:
|
|
199
|
-
Requires-Dist:
|
|
200
|
-
Requires-Dist:
|
|
201
|
-
Requires-Dist:
|
|
210
|
+
Requires-Dist: pydantic-extra-types; extra == "all"
|
|
211
|
+
Requires-Dist: torchaudio; extra == "all"
|
|
212
|
+
Requires-Dist: logfire[fastapi]; extra == "all"
|
|
213
|
+
Requires-Dist: peft; extra == "all"
|
|
214
|
+
Requires-Dist: appdirs; extra == "all"
|
|
215
|
+
Requires-Dist: fastapi; extra == "all"
|
|
216
|
+
Requires-Dist: contexttimer; extra == "all"
|
|
202
217
|
Requires-Dist: pydantic-settings; extra == "all"
|
|
203
|
-
Requires-Dist: odfpy; extra == "all"
|
|
204
|
-
Requires-Dist: google-api-python-client; extra == "all"
|
|
205
|
-
Requires-Dist: transformers[sentencepiece]; extra == "all"
|
|
206
|
-
Requires-Dist: deepmerge; extra == "all"
|
|
207
|
-
Requires-Dist: sentence_transformers; extra == "all"
|
|
208
|
-
Requires-Dist: tokenizers; extra == "all"
|
|
209
|
-
Requires-Dist: dnspython[doh]; extra == "all"
|
|
210
|
-
Requires-Dist: httpx_retries; extra == "all"
|
|
211
218
|
Requires-Dist: google-auth; extra == "all"
|
|
212
|
-
Requires-Dist:
|
|
213
|
-
Requires-Dist:
|
|
214
|
-
Requires-Dist:
|
|
215
|
-
Requires-Dist:
|
|
216
|
-
Requires-Dist:
|
|
217
|
-
Requires-Dist: cachetools; extra == "all"
|
|
218
|
-
Requires-Dist: pymupdf4llm; extra == "all"
|
|
219
|
+
Requires-Dist: faker; extra == "all"
|
|
220
|
+
Requires-Dist: beanie[odm]; extra == "all"
|
|
221
|
+
Requires-Dist: deepmerge; extra == "all"
|
|
222
|
+
Requires-Dist: odfpy; extra == "all"
|
|
223
|
+
Requires-Dist: flet-webview; extra == "all"
|
|
219
224
|
Requires-Dist: setuptools; extra == "all"
|
|
220
|
-
Requires-Dist:
|
|
221
|
-
Requires-Dist: pycountry; extra == "all"
|
|
222
|
-
Requires-Dist: fastapi; extra == "all"
|
|
223
|
-
Requires-Dist: python-on-whales; extra == "all"
|
|
224
|
-
Requires-Dist: json_repair; extra == "all"
|
|
225
|
+
Requires-Dist: google-api-python-client; extra == "all"
|
|
225
226
|
Requires-Dist: httpx; extra == "all"
|
|
226
|
-
Requires-Dist:
|
|
227
|
-
Requires-Dist:
|
|
228
|
-
Requires-Dist:
|
|
229
|
-
Requires-Dist: tabulate; extra == "all"
|
|
227
|
+
Requires-Dist: dask[bag]; extra == "all"
|
|
228
|
+
Requires-Dist: json_repair; extra == "all"
|
|
229
|
+
Requires-Dist: pandas; extra == "all"
|
|
230
230
|
Dynamic: author
|
|
231
231
|
Dynamic: author-email
|
|
232
232
|
Dynamic: description
|
|
@@ -126,7 +126,7 @@ class Row(ft.DataRow):
|
|
|
126
126
|
|
|
127
127
|
"""
|
|
128
128
|
|
|
129
|
-
|
|
129
|
+
TypesCells = {None: Cell}
|
|
130
130
|
|
|
131
131
|
def __init__(self, series):
|
|
132
132
|
self.series = series
|
|
@@ -141,7 +141,9 @@ class Row(ft.DataRow):
|
|
|
141
141
|
"""
|
|
142
142
|
data = {}
|
|
143
143
|
for col in self.series.index:
|
|
144
|
-
|
|
144
|
+
default = self.TypesCells[None]
|
|
145
|
+
TypeCell = self.TypesCells.get(col, default)
|
|
146
|
+
data.setdefault(col, []).append(TypeCell(self.series, col))
|
|
145
147
|
return data
|
|
146
148
|
|
|
147
149
|
@cached_property
|
|
@@ -219,8 +221,8 @@ class Table(ft.DataTable):
|
|
|
219
221
|
|
|
220
222
|
"""
|
|
221
223
|
|
|
222
|
-
|
|
223
|
-
|
|
224
|
+
TypesRows = {None: Row}
|
|
225
|
+
TypesColumns = {None: Column}
|
|
224
226
|
|
|
225
227
|
def __init__(self, df): # todo move to submodule with tabular deps
|
|
226
228
|
"""
|
|
@@ -229,8 +231,34 @@ class Table(ft.DataTable):
|
|
|
229
231
|
|
|
230
232
|
"""
|
|
231
233
|
self.df = df
|
|
232
|
-
columns =
|
|
233
|
-
|
|
234
|
+
super().__init__(columns=self.columns_controls, rows=self.rows_controls)
|
|
235
|
+
|
|
236
|
+
@cached_property
|
|
237
|
+
def columns_data(self) -> dict[str, list[Column]]:
|
|
238
|
+
"""
|
|
239
|
+
|
|
240
|
+
Columns controls lookup
|
|
241
|
+
|
|
242
|
+
"""
|
|
243
|
+
data = {}
|
|
244
|
+
for col in self.df.columns:
|
|
245
|
+
default = self.TypesColumns[None]
|
|
246
|
+
TypeColumn = self.TypesColumns.get(col, default)
|
|
247
|
+
data.setdefault(col, []).append(TypeColumn(col))
|
|
248
|
+
return data
|
|
249
|
+
|
|
250
|
+
@cached_property
|
|
251
|
+
def columns_controls(self) -> list[Column]:
|
|
252
|
+
"""
|
|
253
|
+
|
|
254
|
+
Flat list of controls
|
|
255
|
+
|
|
256
|
+
"""
|
|
257
|
+
controls = []
|
|
258
|
+
for columns in self.columns_data.values():
|
|
259
|
+
for column in columns:
|
|
260
|
+
controls.append(column)
|
|
261
|
+
return controls
|
|
234
262
|
|
|
235
263
|
@cached_property
|
|
236
264
|
def rows_data(self) -> dict[str, list[Row]]:
|
|
@@ -241,7 +269,9 @@ class Table(ft.DataTable):
|
|
|
241
269
|
"""
|
|
242
270
|
data = {}
|
|
243
271
|
for index, row in self.df.iterrows():
|
|
244
|
-
|
|
272
|
+
default = self.TypesRows[None]
|
|
273
|
+
TypeRow = self.TypesRows.get(index, default)
|
|
274
|
+
data.setdefault(index, []).append(TypeRow(row))
|
|
245
275
|
return data
|
|
246
276
|
|
|
247
277
|
@cached_property
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1.3.79
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fmtr.tools
|
|
3
|
-
Version: 1.3.
|
|
3
|
+
Version: 1.3.79
|
|
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
|
|
@@ -166,67 +166,67 @@ Provides-Extra: db
|
|
|
166
166
|
Provides-Extra: db-document
|
|
167
167
|
Requires-Dist: beanie[odm]; extra == "db-document"
|
|
168
168
|
Provides-Extra: all
|
|
169
|
+
Requires-Dist: tinynetrc; extra == "all"
|
|
169
170
|
Requires-Dist: huggingface_hub; extra == "all"
|
|
170
|
-
Requires-Dist: distributed; extra == "all"
|
|
171
|
-
Requires-Dist: torchaudio; extra == "all"
|
|
172
|
-
Requires-Dist: html2text; extra == "all"
|
|
173
|
-
Requires-Dist: logfire; extra == "all"
|
|
174
|
-
Requires-Dist: dask[bag]; extra == "all"
|
|
175
|
-
Requires-Dist: faker; extra == "all"
|
|
176
|
-
Requires-Dist: diskcache; extra == "all"
|
|
177
|
-
Requires-Dist: regex; extra == "all"
|
|
178
|
-
Requires-Dist: peft; extra == "all"
|
|
179
171
|
Requires-Dist: openpyxl; extra == "all"
|
|
180
|
-
Requires-Dist:
|
|
172
|
+
Requires-Dist: torchvision; extra == "all"
|
|
173
|
+
Requires-Dist: logfire[httpx]; extra == "all"
|
|
174
|
+
Requires-Dist: pytest-cov; extra == "all"
|
|
175
|
+
Requires-Dist: httpx_retries; extra == "all"
|
|
181
176
|
Requires-Dist: flet-video; extra == "all"
|
|
177
|
+
Requires-Dist: google-auth-httplib2; extra == "all"
|
|
178
|
+
Requires-Dist: tokenizers; extra == "all"
|
|
182
179
|
Requires-Dist: yamlscript; extra == "all"
|
|
183
|
-
Requires-Dist:
|
|
184
|
-
Requires-Dist:
|
|
185
|
-
Requires-Dist:
|
|
186
|
-
Requires-Dist:
|
|
187
|
-
Requires-Dist: openai; extra == "all"
|
|
188
|
-
Requires-Dist: google-auth-oauthlib; extra == "all"
|
|
189
|
-
Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
|
|
190
|
-
Requires-Dist: uvicorn[standard]; extra == "all"
|
|
180
|
+
Requires-Dist: pymupdf4llm; extra == "all"
|
|
181
|
+
Requires-Dist: regex; extra == "all"
|
|
182
|
+
Requires-Dist: dnspython[doh]; extra == "all"
|
|
183
|
+
Requires-Dist: pycountry; extra == "all"
|
|
191
184
|
Requires-Dist: deepdiff; extra == "all"
|
|
192
|
-
Requires-Dist:
|
|
185
|
+
Requires-Dist: google-auth-oauthlib; extra == "all"
|
|
186
|
+
Requires-Dist: openai; extra == "all"
|
|
187
|
+
Requires-Dist: sentence_transformers; extra == "all"
|
|
188
|
+
Requires-Dist: python-on-whales; extra == "all"
|
|
189
|
+
Requires-Dist: bokeh; extra == "all"
|
|
193
190
|
Requires-Dist: flet[all]; extra == "all"
|
|
191
|
+
Requires-Dist: transformers[sentencepiece]; extra == "all"
|
|
192
|
+
Requires-Dist: html2text; extra == "all"
|
|
193
|
+
Requires-Dist: pymupdf; extra == "all"
|
|
194
|
+
Requires-Dist: filetype; extra == "all"
|
|
195
|
+
Requires-Dist: pydantic; extra == "all"
|
|
194
196
|
Requires-Dist: semver; extra == "all"
|
|
197
|
+
Requires-Dist: playwright; extra == "all"
|
|
198
|
+
Requires-Dist: sre_yield; extra == "all"
|
|
199
|
+
Requires-Dist: uvicorn[standard]; extra == "all"
|
|
200
|
+
Requires-Dist: logfire; extra == "all"
|
|
201
|
+
Requires-Dist: distributed; extra == "all"
|
|
202
|
+
Requires-Dist: pyyaml; extra == "all"
|
|
203
|
+
Requires-Dist: diskcache; extra == "all"
|
|
204
|
+
Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
|
|
205
|
+
Requires-Dist: pydevd-pycharm~=251.25410.159; extra == "all"
|
|
206
|
+
Requires-Dist: tabulate; extra == "all"
|
|
207
|
+
Requires-Dist: cachetools; extra == "all"
|
|
195
208
|
Requires-Dist: Unidecode; extra == "all"
|
|
196
209
|
Requires-Dist: ollama; extra == "all"
|
|
197
|
-
Requires-Dist:
|
|
198
|
-
Requires-Dist:
|
|
199
|
-
Requires-Dist:
|
|
200
|
-
Requires-Dist:
|
|
201
|
-
Requires-Dist:
|
|
210
|
+
Requires-Dist: pydantic-extra-types; extra == "all"
|
|
211
|
+
Requires-Dist: torchaudio; extra == "all"
|
|
212
|
+
Requires-Dist: logfire[fastapi]; extra == "all"
|
|
213
|
+
Requires-Dist: peft; extra == "all"
|
|
214
|
+
Requires-Dist: appdirs; extra == "all"
|
|
215
|
+
Requires-Dist: fastapi; extra == "all"
|
|
216
|
+
Requires-Dist: contexttimer; extra == "all"
|
|
202
217
|
Requires-Dist: pydantic-settings; extra == "all"
|
|
203
|
-
Requires-Dist: odfpy; extra == "all"
|
|
204
|
-
Requires-Dist: google-api-python-client; extra == "all"
|
|
205
|
-
Requires-Dist: transformers[sentencepiece]; extra == "all"
|
|
206
|
-
Requires-Dist: deepmerge; extra == "all"
|
|
207
|
-
Requires-Dist: sentence_transformers; extra == "all"
|
|
208
|
-
Requires-Dist: tokenizers; extra == "all"
|
|
209
|
-
Requires-Dist: dnspython[doh]; extra == "all"
|
|
210
|
-
Requires-Dist: httpx_retries; extra == "all"
|
|
211
218
|
Requires-Dist: google-auth; extra == "all"
|
|
212
|
-
Requires-Dist:
|
|
213
|
-
Requires-Dist:
|
|
214
|
-
Requires-Dist:
|
|
215
|
-
Requires-Dist:
|
|
216
|
-
Requires-Dist:
|
|
217
|
-
Requires-Dist: cachetools; extra == "all"
|
|
218
|
-
Requires-Dist: pymupdf4llm; extra == "all"
|
|
219
|
+
Requires-Dist: faker; extra == "all"
|
|
220
|
+
Requires-Dist: beanie[odm]; extra == "all"
|
|
221
|
+
Requires-Dist: deepmerge; extra == "all"
|
|
222
|
+
Requires-Dist: odfpy; extra == "all"
|
|
223
|
+
Requires-Dist: flet-webview; extra == "all"
|
|
219
224
|
Requires-Dist: setuptools; extra == "all"
|
|
220
|
-
Requires-Dist:
|
|
221
|
-
Requires-Dist: pycountry; extra == "all"
|
|
222
|
-
Requires-Dist: fastapi; extra == "all"
|
|
223
|
-
Requires-Dist: python-on-whales; extra == "all"
|
|
224
|
-
Requires-Dist: json_repair; extra == "all"
|
|
225
|
+
Requires-Dist: google-api-python-client; extra == "all"
|
|
225
226
|
Requires-Dist: httpx; extra == "all"
|
|
226
|
-
Requires-Dist:
|
|
227
|
-
Requires-Dist:
|
|
228
|
-
Requires-Dist:
|
|
229
|
-
Requires-Dist: tabulate; extra == "all"
|
|
227
|
+
Requires-Dist: dask[bag]; extra == "all"
|
|
228
|
+
Requires-Dist: json_repair; extra == "all"
|
|
229
|
+
Requires-Dist: pandas; extra == "all"
|
|
230
230
|
Dynamic: author
|
|
231
231
|
Dynamic: author-email
|
|
232
232
|
Dynamic: description
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
1.3.78
|
|
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,67 +18,67 @@ pydantic-ai[logfire,openai]
|
|
|
18
18
|
ollama
|
|
19
19
|
|
|
20
20
|
[all]
|
|
21
|
+
tinynetrc
|
|
21
22
|
huggingface_hub
|
|
22
|
-
distributed
|
|
23
|
-
torchaudio
|
|
24
|
-
html2text
|
|
25
|
-
logfire
|
|
26
|
-
dask[bag]
|
|
27
|
-
faker
|
|
28
|
-
diskcache
|
|
29
|
-
regex
|
|
30
|
-
peft
|
|
31
23
|
openpyxl
|
|
32
|
-
|
|
24
|
+
torchvision
|
|
25
|
+
logfire[httpx]
|
|
26
|
+
pytest-cov
|
|
27
|
+
httpx_retries
|
|
33
28
|
flet-video
|
|
29
|
+
google-auth-httplib2
|
|
30
|
+
tokenizers
|
|
34
31
|
yamlscript
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
openai
|
|
40
|
-
google-auth-oauthlib
|
|
41
|
-
pydantic-ai[logfire,openai]
|
|
42
|
-
uvicorn[standard]
|
|
32
|
+
pymupdf4llm
|
|
33
|
+
regex
|
|
34
|
+
dnspython[doh]
|
|
35
|
+
pycountry
|
|
43
36
|
deepdiff
|
|
44
|
-
|
|
37
|
+
google-auth-oauthlib
|
|
38
|
+
openai
|
|
39
|
+
sentence_transformers
|
|
40
|
+
python-on-whales
|
|
41
|
+
bokeh
|
|
45
42
|
flet[all]
|
|
43
|
+
transformers[sentencepiece]
|
|
44
|
+
html2text
|
|
45
|
+
pymupdf
|
|
46
|
+
filetype
|
|
47
|
+
pydantic
|
|
46
48
|
semver
|
|
49
|
+
playwright
|
|
50
|
+
sre_yield
|
|
51
|
+
uvicorn[standard]
|
|
52
|
+
logfire
|
|
53
|
+
distributed
|
|
54
|
+
pyyaml
|
|
55
|
+
diskcache
|
|
56
|
+
pydantic-ai[logfire,openai]
|
|
57
|
+
pydevd-pycharm~=251.25410.159
|
|
58
|
+
tabulate
|
|
59
|
+
cachetools
|
|
47
60
|
Unidecode
|
|
48
61
|
ollama
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
62
|
+
pydantic-extra-types
|
|
63
|
+
torchaudio
|
|
64
|
+
logfire[fastapi]
|
|
65
|
+
peft
|
|
66
|
+
appdirs
|
|
67
|
+
fastapi
|
|
68
|
+
contexttimer
|
|
54
69
|
pydantic-settings
|
|
55
|
-
odfpy
|
|
56
|
-
google-api-python-client
|
|
57
|
-
transformers[sentencepiece]
|
|
58
|
-
deepmerge
|
|
59
|
-
sentence_transformers
|
|
60
|
-
tokenizers
|
|
61
|
-
dnspython[doh]
|
|
62
|
-
httpx_retries
|
|
63
70
|
google-auth
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
cachetools
|
|
70
|
-
pymupdf4llm
|
|
71
|
+
faker
|
|
72
|
+
beanie[odm]
|
|
73
|
+
deepmerge
|
|
74
|
+
odfpy
|
|
75
|
+
flet-webview
|
|
71
76
|
setuptools
|
|
72
|
-
|
|
73
|
-
pycountry
|
|
74
|
-
fastapi
|
|
75
|
-
python-on-whales
|
|
76
|
-
json_repair
|
|
77
|
+
google-api-python-client
|
|
77
78
|
httpx
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
tabulate
|
|
79
|
+
dask[bag]
|
|
80
|
+
json_repair
|
|
81
|
+
pandas
|
|
82
82
|
|
|
83
83
|
[api]
|
|
84
84
|
fastapi
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|