fmtr.tools 1.3.76__py3-none-any.whl → 1.3.77__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 +70 -4
- fmtr/tools/version +1 -1
- {fmtr_tools-1.3.76.dist-info → fmtr_tools-1.3.77.dist-info}/METADATA +49 -49
- {fmtr_tools-1.3.76.dist-info → fmtr_tools-1.3.77.dist-info}/RECORD +8 -8
- {fmtr_tools-1.3.76.dist-info → fmtr_tools-1.3.77.dist-info}/WHEEL +0 -0
- {fmtr_tools-1.3.76.dist-info → fmtr_tools-1.3.77.dist-info}/entry_points.txt +0 -0
- {fmtr_tools-1.3.76.dist-info → fmtr_tools-1.3.77.dist-info}/licenses/LICENSE +0 -0
- {fmtr_tools-1.3.76.dist-info → fmtr_tools-1.3.77.dist-info}/top_level.txt +0 -0
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
from functools import cached_property
|
|
1
2
|
from typing import Optional
|
|
2
3
|
|
|
3
4
|
import flet as ft
|
|
@@ -127,8 +128,40 @@ class Row(ft.DataRow):
|
|
|
127
128
|
|
|
128
129
|
def __init__(self, series):
|
|
129
130
|
self.series = series
|
|
130
|
-
|
|
131
|
-
|
|
131
|
+
super().__init__(self.cells_controls, color=self.row_color)
|
|
132
|
+
|
|
133
|
+
@cached_property
|
|
134
|
+
def cells_data(self) -> dict[str, list[Cell]]:
|
|
135
|
+
"""
|
|
136
|
+
|
|
137
|
+
Cell controls lookup
|
|
138
|
+
|
|
139
|
+
"""
|
|
140
|
+
data = {}
|
|
141
|
+
for col in self.series.index:
|
|
142
|
+
data.setdefault(col, []).append(self.TypeCell(self.series, col))
|
|
143
|
+
return data
|
|
144
|
+
|
|
145
|
+
@cached_property
|
|
146
|
+
def cells_controls(self) -> list[Cell]:
|
|
147
|
+
"""
|
|
148
|
+
|
|
149
|
+
Flat list of controls
|
|
150
|
+
|
|
151
|
+
"""
|
|
152
|
+
controls = []
|
|
153
|
+
for cells in self.cells_data.values():
|
|
154
|
+
for cell in cells:
|
|
155
|
+
controls.append(cell)
|
|
156
|
+
return controls
|
|
157
|
+
|
|
158
|
+
def __getitem__(self, item) -> list[Cell]:
|
|
159
|
+
"""
|
|
160
|
+
|
|
161
|
+
Get cells by column name
|
|
162
|
+
|
|
163
|
+
"""
|
|
164
|
+
return self.cells_data[item]
|
|
132
165
|
|
|
133
166
|
@property
|
|
134
167
|
def row_color(self):
|
|
@@ -195,5 +228,38 @@ class Table(ft.DataTable):
|
|
|
195
228
|
"""
|
|
196
229
|
self.df = df
|
|
197
230
|
columns = [self.TypeColumn(col) for col in df.columns]
|
|
198
|
-
|
|
199
|
-
|
|
231
|
+
super().__init__(columns=columns, rows=self.rows_controls)
|
|
232
|
+
|
|
233
|
+
@cached_property
|
|
234
|
+
def rows_data(self) -> dict[str, list[Row]]:
|
|
235
|
+
"""
|
|
236
|
+
|
|
237
|
+
Row controls lookup
|
|
238
|
+
|
|
239
|
+
"""
|
|
240
|
+
data = {}
|
|
241
|
+
for index, row in self.df.iterrows():
|
|
242
|
+
data.setdefault(index, []).append(self.TypeRow(row))
|
|
243
|
+
return data
|
|
244
|
+
|
|
245
|
+
@cached_property
|
|
246
|
+
def rows_controls(self) -> list[Row]:
|
|
247
|
+
"""
|
|
248
|
+
|
|
249
|
+
Flat list of controls
|
|
250
|
+
|
|
251
|
+
"""
|
|
252
|
+
controls = []
|
|
253
|
+
for rows in self.rows_data.values():
|
|
254
|
+
for row in rows:
|
|
255
|
+
controls.append(row)
|
|
256
|
+
return controls
|
|
257
|
+
|
|
258
|
+
def __getitem__(self, item) -> list[Row]:
|
|
259
|
+
"""
|
|
260
|
+
|
|
261
|
+
Get row by index
|
|
262
|
+
|
|
263
|
+
"""
|
|
264
|
+
|
|
265
|
+
return self.rows_data[item]
|
fmtr/tools/version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.3.
|
|
1
|
+
1.3.77
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fmtr.tools
|
|
3
|
-
Version: 1.3.
|
|
3
|
+
Version: 1.3.77
|
|
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: tabulate; extra == "all"
|
|
170
|
+
Requires-Dist: Unidecode; extra == "all"
|
|
171
|
+
Requires-Dist: pycountry; extra == "all"
|
|
172
|
+
Requires-Dist: flet-webview; extra == "all"
|
|
173
|
+
Requires-Dist: appdirs; extra == "all"
|
|
174
|
+
Requires-Dist: html2text; extra == "all"
|
|
175
|
+
Requires-Dist: logfire; extra == "all"
|
|
176
|
+
Requires-Dist: bokeh; extra == "all"
|
|
177
|
+
Requires-Dist: google-auth-oauthlib; extra == "all"
|
|
169
178
|
Requires-Dist: pytest-cov; extra == "all"
|
|
170
|
-
Requires-Dist: peft; extra == "all"
|
|
171
|
-
Requires-Dist: openpyxl; extra == "all"
|
|
172
179
|
Requires-Dist: pymupdf; extra == "all"
|
|
173
|
-
Requires-Dist:
|
|
174
|
-
Requires-Dist:
|
|
175
|
-
Requires-Dist:
|
|
176
|
-
Requires-Dist:
|
|
177
|
-
Requires-Dist:
|
|
178
|
-
Requires-Dist:
|
|
180
|
+
Requires-Dist: httpx; extra == "all"
|
|
181
|
+
Requires-Dist: logfire[httpx]; extra == "all"
|
|
182
|
+
Requires-Dist: setuptools; extra == "all"
|
|
183
|
+
Requires-Dist: regex; extra == "all"
|
|
184
|
+
Requires-Dist: python-on-whales; extra == "all"
|
|
185
|
+
Requires-Dist: semver; extra == "all"
|
|
179
186
|
Requires-Dist: pandas; extra == "all"
|
|
187
|
+
Requires-Dist: playwright; extra == "all"
|
|
188
|
+
Requires-Dist: faker; extra == "all"
|
|
180
189
|
Requires-Dist: transformers[sentencepiece]; extra == "all"
|
|
181
|
-
Requires-Dist:
|
|
182
|
-
Requires-Dist:
|
|
190
|
+
Requires-Dist: httpx_retries; extra == "all"
|
|
191
|
+
Requires-Dist: odfpy; extra == "all"
|
|
192
|
+
Requires-Dist: logfire[fastapi]; extra == "all"
|
|
193
|
+
Requires-Dist: pydantic-settings; extra == "all"
|
|
194
|
+
Requires-Dist: pymupdf4llm; extra == "all"
|
|
195
|
+
Requires-Dist: ollama; extra == "all"
|
|
183
196
|
Requires-Dist: pyyaml; extra == "all"
|
|
184
|
-
Requires-Dist:
|
|
185
|
-
Requires-Dist: tabulate; extra == "all"
|
|
197
|
+
Requires-Dist: pydevd-pycharm~=251.25410.159; extra == "all"
|
|
186
198
|
Requires-Dist: dask[bag]; extra == "all"
|
|
187
|
-
Requires-Dist:
|
|
188
|
-
Requires-Dist:
|
|
189
|
-
Requires-Dist:
|
|
190
|
-
Requires-Dist:
|
|
191
|
-
Requires-Dist:
|
|
192
|
-
Requires-Dist: semver; extra == "all"
|
|
199
|
+
Requires-Dist: sre_yield; extra == "all"
|
|
200
|
+
Requires-Dist: deepdiff; extra == "all"
|
|
201
|
+
Requires-Dist: flet[all]; extra == "all"
|
|
202
|
+
Requires-Dist: openai; extra == "all"
|
|
203
|
+
Requires-Dist: dnspython[doh]; extra == "all"
|
|
193
204
|
Requires-Dist: json_repair; extra == "all"
|
|
194
|
-
Requires-Dist: distributed; extra == "all"
|
|
195
|
-
Requires-Dist: diskcache; extra == "all"
|
|
196
|
-
Requires-Dist: contexttimer; extra == "all"
|
|
197
|
-
Requires-Dist: ollama; extra == "all"
|
|
198
|
-
Requires-Dist: appdirs; extra == "all"
|
|
199
|
-
Requires-Dist: google-auth; extra == "all"
|
|
200
|
-
Requires-Dist: pycountry; extra == "all"
|
|
201
|
-
Requires-Dist: deepmerge; extra == "all"
|
|
202
205
|
Requires-Dist: pydantic-extra-types; extra == "all"
|
|
203
|
-
Requires-Dist:
|
|
204
|
-
Requires-Dist: regex; extra == "all"
|
|
206
|
+
Requires-Dist: pydantic; extra == "all"
|
|
205
207
|
Requires-Dist: flet-video; extra == "all"
|
|
206
208
|
Requires-Dist: sentence_transformers; extra == "all"
|
|
207
|
-
Requires-Dist:
|
|
208
|
-
Requires-Dist: deepdiff; extra == "all"
|
|
209
|
-
Requires-Dist: fastapi; extra == "all"
|
|
210
|
-
Requires-Dist: bokeh; extra == "all"
|
|
211
|
-
Requires-Dist: logfire; extra == "all"
|
|
212
|
-
Requires-Dist: beanie[odm]; extra == "all"
|
|
213
|
-
Requires-Dist: pymupdf4llm; extra == "all"
|
|
214
|
-
Requires-Dist: dnspython[doh]; extra == "all"
|
|
215
|
-
Requires-Dist: setuptools; extra == "all"
|
|
216
|
-
Requires-Dist: playwright; extra == "all"
|
|
209
|
+
Requires-Dist: google-auth; extra == "all"
|
|
217
210
|
Requires-Dist: filetype; extra == "all"
|
|
218
|
-
Requires-Dist: pydantic; extra == "all"
|
|
219
|
-
Requires-Dist: sre_yield; extra == "all"
|
|
220
|
-
Requires-Dist: huggingface_hub; extra == "all"
|
|
221
|
-
Requires-Dist: Unidecode; extra == "all"
|
|
222
|
-
Requires-Dist: faker; extra == "all"
|
|
223
|
-
Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
|
|
224
|
-
Requires-Dist: odfpy; extra == "all"
|
|
225
|
-
Requires-Dist: logfire[httpx]; extra == "all"
|
|
226
|
-
Requires-Dist: html2text; extra == "all"
|
|
227
|
-
Requires-Dist: httpx_retries; extra == "all"
|
|
228
211
|
Requires-Dist: torchaudio; extra == "all"
|
|
212
|
+
Requires-Dist: deepmerge; extra == "all"
|
|
213
|
+
Requires-Dist: google-auth-httplib2; extra == "all"
|
|
214
|
+
Requires-Dist: diskcache; extra == "all"
|
|
215
|
+
Requires-Dist: peft; extra == "all"
|
|
216
|
+
Requires-Dist: fastapi; extra == "all"
|
|
217
|
+
Requires-Dist: yamlscript; extra == "all"
|
|
218
|
+
Requires-Dist: contexttimer; extra == "all"
|
|
219
|
+
Requires-Dist: uvicorn[standard]; extra == "all"
|
|
220
|
+
Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
|
|
221
|
+
Requires-Dist: google-api-python-client; extra == "all"
|
|
229
222
|
Requires-Dist: cachetools; extra == "all"
|
|
223
|
+
Requires-Dist: huggingface_hub; extra == "all"
|
|
224
|
+
Requires-Dist: tinynetrc; extra == "all"
|
|
225
|
+
Requires-Dist: openpyxl; extra == "all"
|
|
226
|
+
Requires-Dist: beanie[odm]; extra == "all"
|
|
227
|
+
Requires-Dist: distributed; extra == "all"
|
|
228
|
+
Requires-Dist: torchvision; extra == "all"
|
|
229
|
+
Requires-Dist: tokenizers; 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=na4GGRTt6420NX2ci0UNn8rQr1h_nmfw9KWI9iZSYNE,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=fsSK74VPdJ9QEo2nAE5Mn0pJOzHbWyWojnQ8Rg7s_Oc,5199
|
|
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.77.dist-info/licenses/LICENSE,sha256=FW9aa6vVN5IjRQWLT43hs4_koYSmpcbIovlKeAJ0_cI,10757
|
|
89
|
+
fmtr_tools-1.3.77.dist-info/METADATA,sha256=hyS9qbFA6ohQeSv_fb31rRWFJvtlMszJx2u3LPH9YwI,17916
|
|
90
|
+
fmtr_tools-1.3.77.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
91
|
+
fmtr_tools-1.3.77.dist-info/entry_points.txt,sha256=h-r__Xh5njtFqreMLg6cGuTFS4Qh-QqJPU1HB-_BS-Q,357
|
|
92
|
+
fmtr_tools-1.3.77.dist-info/top_level.txt,sha256=LXem9xCgNOD72tE2gRKESdiQTL902mfFkwWb6-dlwEE,5
|
|
93
|
+
fmtr_tools-1.3.77.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|