fmtr.tools 1.3.78__py3-none-any.whl → 1.3.79__py3-none-any.whl
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/interface_tools/controls.py +37 -7
- fmtr/tools/version +1 -1
- {fmtr_tools-1.3.78.dist-info → fmtr_tools-1.3.79.dist-info}/METADATA +46 -46
- {fmtr_tools-1.3.78.dist-info → fmtr_tools-1.3.79.dist-info}/RECORD +8 -8
- {fmtr_tools-1.3.78.dist-info → fmtr_tools-1.3.79.dist-info}/WHEEL +0 -0
- {fmtr_tools-1.3.78.dist-info → fmtr_tools-1.3.79.dist-info}/entry_points.txt +0 -0
- {fmtr_tools-1.3.78.dist-info → fmtr_tools-1.3.79.dist-info}/licenses/LICENSE +0 -0
- {fmtr_tools-1.3.78.dist-info → fmtr_tools-1.3.79.dist-info}/top_level.txt +0 -0
|
@@ -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
|
fmtr/tools/version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.3.
|
|
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: fastapi; extra == "all"
|
|
169
170
|
Requires-Dist: tokenizers; extra == "all"
|
|
170
|
-
Requires-Dist:
|
|
171
|
-
Requires-Dist: uvicorn[standard]; extra == "all"
|
|
171
|
+
Requires-Dist: flet-video; extra == "all"
|
|
172
172
|
Requires-Dist: json_repair; extra == "all"
|
|
173
|
-
Requires-Dist: logfire; extra == "all"
|
|
174
|
-
Requires-Dist: deepdiff; extra == "all"
|
|
175
|
-
Requires-Dist: google-api-python-client; extra == "all"
|
|
176
173
|
Requires-Dist: deepmerge; extra == "all"
|
|
177
|
-
Requires-Dist:
|
|
178
|
-
Requires-Dist:
|
|
179
|
-
Requires-Dist: pymupdf; extra == "all"
|
|
174
|
+
Requires-Dist: pycountry; extra == "all"
|
|
175
|
+
Requires-Dist: python-on-whales; extra == "all"
|
|
180
176
|
Requires-Dist: torchvision; extra == "all"
|
|
181
|
-
Requires-Dist:
|
|
182
|
-
Requires-Dist:
|
|
183
|
-
Requires-Dist:
|
|
184
|
-
Requires-Dist:
|
|
185
|
-
Requires-Dist:
|
|
186
|
-
Requires-Dist:
|
|
187
|
-
Requires-Dist: ollama; extra == "all"
|
|
177
|
+
Requires-Dist: pandas; extra == "all"
|
|
178
|
+
Requires-Dist: google-auth-httplib2; extra == "all"
|
|
179
|
+
Requires-Dist: pydevd-pycharm~=251.25410.159; extra == "all"
|
|
180
|
+
Requires-Dist: pydantic-settings; extra == "all"
|
|
181
|
+
Requires-Dist: contexttimer; extra == "all"
|
|
182
|
+
Requires-Dist: beanie[odm]; extra == "all"
|
|
188
183
|
Requires-Dist: google-auth-oauthlib; extra == "all"
|
|
189
|
-
Requires-Dist:
|
|
190
|
-
Requires-Dist: diskcache; extra == "all"
|
|
191
|
-
Requires-Dist: setuptools; extra == "all"
|
|
184
|
+
Requires-Dist: uvicorn[standard]; extra == "all"
|
|
192
185
|
Requires-Dist: peft; extra == "all"
|
|
193
|
-
Requires-Dist:
|
|
194
|
-
Requires-Dist:
|
|
195
|
-
Requires-Dist: flet[all]; extra == "all"
|
|
186
|
+
Requires-Dist: tinynetrc; extra == "all"
|
|
187
|
+
Requires-Dist: faker; extra == "all"
|
|
196
188
|
Requires-Dist: pydantic; extra == "all"
|
|
197
|
-
Requires-Dist:
|
|
198
|
-
Requires-Dist:
|
|
199
|
-
Requires-Dist: pycountry; extra == "all"
|
|
200
|
-
Requires-Dist: pymupdf4llm; extra == "all"
|
|
201
|
-
Requires-Dist: dnspython[doh]; extra == "all"
|
|
189
|
+
Requires-Dist: pytest-cov; extra == "all"
|
|
190
|
+
Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
|
|
202
191
|
Requires-Dist: playwright; extra == "all"
|
|
203
|
-
Requires-Dist:
|
|
204
|
-
Requires-Dist:
|
|
192
|
+
Requires-Dist: logfire[fastapi]; extra == "all"
|
|
193
|
+
Requires-Dist: appdirs; extra == "all"
|
|
194
|
+
Requires-Dist: semver; extra == "all"
|
|
195
|
+
Requires-Dist: flet[all]; extra == "all"
|
|
205
196
|
Requires-Dist: bokeh; extra == "all"
|
|
206
|
-
Requires-Dist:
|
|
207
|
-
Requires-Dist: google-auth-httplib2; extra == "all"
|
|
208
|
-
Requires-Dist: pyyaml; extra == "all"
|
|
209
|
-
Requires-Dist: fastapi; extra == "all"
|
|
197
|
+
Requires-Dist: setuptools; extra == "all"
|
|
210
198
|
Requires-Dist: Unidecode; extra == "all"
|
|
199
|
+
Requires-Dist: logfire; extra == "all"
|
|
200
|
+
Requires-Dist: pydantic-extra-types; extra == "all"
|
|
211
201
|
Requires-Dist: flet-webview; extra == "all"
|
|
202
|
+
Requires-Dist: html2text; extra == "all"
|
|
203
|
+
Requires-Dist: dnspython[doh]; extra == "all"
|
|
204
|
+
Requires-Dist: yamlscript; extra == "all"
|
|
205
|
+
Requires-Dist: tabulate; extra == "all"
|
|
212
206
|
Requires-Dist: logfire[httpx]; extra == "all"
|
|
207
|
+
Requires-Dist: pyyaml; extra == "all"
|
|
208
|
+
Requires-Dist: pymupdf; extra == "all"
|
|
209
|
+
Requires-Dist: pymupdf4llm; extra == "all"
|
|
210
|
+
Requires-Dist: google-api-python-client; extra == "all"
|
|
211
|
+
Requires-Dist: torchaudio; extra == "all"
|
|
213
212
|
Requires-Dist: openpyxl; extra == "all"
|
|
213
|
+
Requires-Dist: cachetools; extra == "all"
|
|
214
|
+
Requires-Dist: dask[bag]; extra == "all"
|
|
215
|
+
Requires-Dist: distributed; extra == "all"
|
|
216
|
+
Requires-Dist: httpx_retries; extra == "all"
|
|
217
|
+
Requires-Dist: transformers[sentencepiece]; extra == "all"
|
|
214
218
|
Requires-Dist: openai; extra == "all"
|
|
215
|
-
Requires-Dist: sre_yield; extra == "all"
|
|
216
|
-
Requires-Dist: huggingface_hub; extra == "all"
|
|
217
|
-
Requires-Dist: pydantic-extra-types; extra == "all"
|
|
218
219
|
Requires-Dist: google-auth; extra == "all"
|
|
220
|
+
Requires-Dist: ollama; extra == "all"
|
|
219
221
|
Requires-Dist: sentence_transformers; extra == "all"
|
|
220
|
-
Requires-Dist:
|
|
221
|
-
Requires-Dist:
|
|
222
|
-
Requires-Dist:
|
|
223
|
-
Requires-Dist:
|
|
224
|
-
Requires-Dist:
|
|
225
|
-
Requires-Dist:
|
|
226
|
-
Requires-Dist:
|
|
227
|
-
Requires-Dist:
|
|
228
|
-
Requires-Dist: html2text; extra == "all"
|
|
229
|
-
Requires-Dist: tinynetrc; extra == "all"
|
|
222
|
+
Requires-Dist: huggingface_hub; extra == "all"
|
|
223
|
+
Requires-Dist: odfpy; extra == "all"
|
|
224
|
+
Requires-Dist: sre_yield; extra == "all"
|
|
225
|
+
Requires-Dist: diskcache; extra == "all"
|
|
226
|
+
Requires-Dist: httpx; extra == "all"
|
|
227
|
+
Requires-Dist: deepdiff; extra == "all"
|
|
228
|
+
Requires-Dist: filetype; extra == "all"
|
|
229
|
+
Requires-Dist: regex; extra == "all"
|
|
230
230
|
Dynamic: author
|
|
231
231
|
Dynamic: author-email
|
|
232
232
|
Dynamic: description
|
|
@@ -45,7 +45,7 @@ fmtr/tools/tabular_tools.py,sha256=mw6vOij1Ch-pVAyHMPtm5zj__ULZN_TKeBYOfj33wFM,1
|
|
|
45
45
|
fmtr/tools/tokenization_tools.py,sha256=me-IBzSLyNYejLybwjO9CNB6Mj2NYfKPaOVThXyaGNg,4268
|
|
46
46
|
fmtr/tools/tools.py,sha256=sLMXk8juOL8_n_D776cJ-kzjyMHqFI_fctDEjy6PIKs,1115
|
|
47
47
|
fmtr/tools/unicode_tools.py,sha256=yS_9wpu8ogNoiIL7s1G_8bETFFO_YQlo4LNPv1NLDeY,52
|
|
48
|
-
fmtr/tools/version,sha256=
|
|
48
|
+
fmtr/tools/version,sha256=nUbdl36ANzDqxVZspE2k186qHKJ-1fUrAoWrOkJxxdo,6
|
|
49
49
|
fmtr/tools/webhook_tools.py,sha256=q3pVJ1NCem2SrMuFcLxiWd7DibFs7Q-uGtojfXd3Qcg,380
|
|
50
50
|
fmtr/tools/yaml_tools.py,sha256=Bhhyd6GQVKO72Lp8ky7bAUjIB_65Hdh0Q45SKIEe6S8,1901
|
|
51
51
|
fmtr/tools/ai_tools/__init__.py,sha256=O8VRlPnnQCncg2ZZ2l_VdWLJf4jkKH6dkZFVbv6o7IM,388
|
|
@@ -67,7 +67,7 @@ fmtr/tools/entrypoints/remote_debug_test.py,sha256=wmKg9o2pQq7eqeHmaO8oviujNgtns
|
|
|
67
67
|
fmtr/tools/entrypoints/shell_debug.py,sha256=0No3tAg9Ri4_vvSlQCUtAY-11HR0nE45i0VVtiAViwY,106
|
|
68
68
|
fmtr/tools/interface_tools/__init__.py,sha256=_bgZRTqmygtYM75o6_zyQRhT_XZnDERZEHmsYVrzyxw,393
|
|
69
69
|
fmtr/tools/interface_tools/context.py,sha256=VpoR_ZCndDbwS0AzIPKi1hB2QckwJU5dJqAJavF3mqk,151
|
|
70
|
-
fmtr/tools/interface_tools/controls.py,sha256=
|
|
70
|
+
fmtr/tools/interface_tools/controls.py,sha256=sfP9-Vuws7v05WQQhsALwMyvymDbtK7VAHxgKyWQfr0,7651
|
|
71
71
|
fmtr/tools/interface_tools/interface_tools.py,sha256=jSRwpdHqOTmNLndE-wFqTQdkT4z2BBdclSxmvs11FnU,4400
|
|
72
72
|
fmtr/tools/path_tools/__init__.py,sha256=XrJXt7Zzo90tYUVksMlDfKkWt775zJ9OSi2NbhnqMDI,459
|
|
73
73
|
fmtr/tools/path_tools/app_path_tools.py,sha256=JrJvtTDd_gkCKcZtBCDTMktsM77PZwGV_hzQX0g5GU8,1722
|
|
@@ -85,9 +85,9 @@ fmtr/tools/tests/test_path.py,sha256=AkZQa6_8BQ-VaCyL_J-iKmdf2ZaM-xFYR37Kun3k4_g
|
|
|
85
85
|
fmtr/tools/tests/test_yaml.py,sha256=jc0TwwKu9eC0LvFGNMERdgBue591xwLxYXFbtsRwXVM,287
|
|
86
86
|
fmtr/tools/version_tools/__init__.py,sha256=cjE6nO6AoVOUp3RwgTbqL9wiw8J1l2pHJOz6Gn6bxjA,326
|
|
87
87
|
fmtr/tools/version_tools/version_tools.py,sha256=Hcc6yferZS1hHbugRTdiHhSNmXEEG0hjCiTTXKna-YY,1127
|
|
88
|
-
fmtr_tools-1.3.
|
|
89
|
-
fmtr_tools-1.3.
|
|
90
|
-
fmtr_tools-1.3.
|
|
91
|
-
fmtr_tools-1.3.
|
|
92
|
-
fmtr_tools-1.3.
|
|
93
|
-
fmtr_tools-1.3.
|
|
88
|
+
fmtr_tools-1.3.79.dist-info/licenses/LICENSE,sha256=FW9aa6vVN5IjRQWLT43hs4_koYSmpcbIovlKeAJ0_cI,10757
|
|
89
|
+
fmtr_tools-1.3.79.dist-info/METADATA,sha256=jk9fr_Jqd01XOBdH48JxQohcMQJsRlhyXgGlyM36EPw,17916
|
|
90
|
+
fmtr_tools-1.3.79.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
91
|
+
fmtr_tools-1.3.79.dist-info/entry_points.txt,sha256=h-r__Xh5njtFqreMLg6cGuTFS4Qh-QqJPU1HB-_BS-Q,357
|
|
92
|
+
fmtr_tools-1.3.79.dist-info/top_level.txt,sha256=LXem9xCgNOD72tE2gRKESdiQTL902mfFkwWb6-dlwEE,5
|
|
93
|
+
fmtr_tools-1.3.79.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|