fmtr.tools 1.3.71__py3-none-any.whl → 1.3.72__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/data_modelling_tools.py +17 -12
- fmtr/tools/version +1 -1
- {fmtr_tools-1.3.71.dist-info → fmtr_tools-1.3.72.dist-info}/METADATA +51 -51
- {fmtr_tools-1.3.71.dist-info → fmtr_tools-1.3.72.dist-info}/RECORD +8 -8
- {fmtr_tools-1.3.71.dist-info → fmtr_tools-1.3.72.dist-info}/WHEEL +0 -0
- {fmtr_tools-1.3.71.dist-info → fmtr_tools-1.3.72.dist-info}/entry_points.txt +0 -0
- {fmtr_tools-1.3.71.dist-info → fmtr_tools-1.3.72.dist-info}/licenses/LICENSE +0 -0
- {fmtr_tools-1.3.71.dist-info → fmtr_tools-1.3.72.dist-info}/top_level.txt +0 -0
|
@@ -224,21 +224,16 @@ class Base(BaseModel, MixinFromJson):
|
|
|
224
224
|
setattr(cls, name, field)
|
|
225
225
|
cls.__annotations__[name] = field.annotation
|
|
226
226
|
|
|
227
|
-
def to_df(self,
|
|
227
|
+
def to_df(self, **kwargs):
|
|
228
228
|
"""
|
|
229
229
|
|
|
230
|
-
DataFrame representation
|
|
230
|
+
DataFrame representation of Data Model.
|
|
231
231
|
|
|
232
232
|
"""
|
|
233
|
+
from fmtr.tools import tabular
|
|
233
234
|
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
val = getattr(self, name)
|
|
237
|
-
objs.append(val)
|
|
238
|
-
|
|
239
|
-
df = to_df(*objs, name_value=name_value)
|
|
240
|
-
df['id'] = list(self.model_fields.keys())
|
|
241
|
-
df = df.set_index('id', drop=True)
|
|
235
|
+
data = self.model_dump(**kwargs)
|
|
236
|
+
df = tabular.pd.json_normalize(data, sep='_')
|
|
242
237
|
return df
|
|
243
238
|
|
|
244
239
|
|
|
@@ -249,11 +244,21 @@ class Root(RootModel, MixinFromJson):
|
|
|
249
244
|
|
|
250
245
|
"""
|
|
251
246
|
|
|
252
|
-
def to_df(self):
|
|
247
|
+
def to_df(self, **kwargs):
|
|
253
248
|
"""
|
|
254
249
|
|
|
255
250
|
DataFrame representation with items as rows.
|
|
256
251
|
|
|
257
252
|
"""
|
|
258
253
|
|
|
259
|
-
|
|
254
|
+
"""
|
|
255
|
+
|
|
256
|
+
DataFrame representation of Data Model.
|
|
257
|
+
|
|
258
|
+
"""
|
|
259
|
+
from fmtr.tools import tabular
|
|
260
|
+
|
|
261
|
+
data = [item.model_dump(**kwargs) for item in self.items]
|
|
262
|
+
dfs = [tabular.pd.json_normalize(datum, sep='_') for datum in data]
|
|
263
|
+
df = tabular.pd.concat(dfs, axis=tabular.CONCAT_VERTICALLY)
|
|
264
|
+
return df
|
fmtr/tools/version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.3.
|
|
1
|
+
1.3.72
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fmtr.tools
|
|
3
|
-
Version: 1.3.
|
|
3
|
+
Version: 1.3.72
|
|
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:
|
|
172
|
-
Requires-Dist: ollama; extra == "all"
|
|
173
|
-
Requires-Dist: Unidecode; extra == "all"
|
|
174
|
-
Requires-Dist: cachetools; extra == "all"
|
|
175
|
-
Requires-Dist: pydantic-extra-types; extra == "all"
|
|
176
|
-
Requires-Dist: dask[bag]; extra == "all"
|
|
177
|
-
Requires-Dist: transformers[sentencepiece]; extra == "all"
|
|
178
|
-
Requires-Dist: torchaudio; extra == "all"
|
|
179
|
-
Requires-Dist: python-on-whales; extra == "all"
|
|
180
|
-
Requires-Dist: beanie[odm]; extra == "all"
|
|
181
|
-
Requires-Dist: setuptools; extra == "all"
|
|
182
|
-
Requires-Dist: logfire[httpx]; extra == "all"
|
|
171
|
+
Requires-Dist: google-auth-httplib2; extra == "all"
|
|
183
172
|
Requires-Dist: flet-video; extra == "all"
|
|
173
|
+
Requires-Dist: huggingface_hub; extra == "all"
|
|
174
|
+
Requires-Dist: openpyxl; extra == "all"
|
|
184
175
|
Requires-Dist: torchvision; extra == "all"
|
|
185
|
-
Requires-Dist:
|
|
186
|
-
Requires-Dist:
|
|
176
|
+
Requires-Dist: google-auth-oauthlib; extra == "all"
|
|
177
|
+
Requires-Dist: logfire[httpx]; extra == "all"
|
|
178
|
+
Requires-Dist: pycountry; extra == "all"
|
|
179
|
+
Requires-Dist: setuptools; extra == "all"
|
|
187
180
|
Requires-Dist: diskcache; extra == "all"
|
|
188
|
-
Requires-Dist:
|
|
181
|
+
Requires-Dist: httpx; extra == "all"
|
|
189
182
|
Requires-Dist: motor; extra == "all"
|
|
190
|
-
Requires-Dist: yamlscript; extra == "all"
|
|
191
|
-
Requires-Dist: tinynetrc; extra == "all"
|
|
192
|
-
Requires-Dist: pandas; extra == "all"
|
|
193
|
-
Requires-Dist: google-auth; extra == "all"
|
|
194
|
-
Requires-Dist: json_repair; extra == "all"
|
|
195
|
-
Requires-Dist: deepmerge; extra == "all"
|
|
196
|
-
Requires-Dist: google-auth-httplib2; extra == "all"
|
|
197
|
-
Requires-Dist: openai; extra == "all"
|
|
198
|
-
Requires-Dist: pytest-cov; extra == "all"
|
|
199
|
-
Requires-Dist: pymupdf4llm; extra == "all"
|
|
200
|
-
Requires-Dist: logfire; extra == "all"
|
|
201
|
-
Requires-Dist: semver; extra == "all"
|
|
202
|
-
Requires-Dist: contexttimer; extra == "all"
|
|
203
|
-
Requires-Dist: regex; extra == "all"
|
|
204
|
-
Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
|
|
205
183
|
Requires-Dist: pydantic-settings; extra == "all"
|
|
206
|
-
Requires-Dist:
|
|
184
|
+
Requires-Dist: json_repair; extra == "all"
|
|
185
|
+
Requires-Dist: pymupdf; extra == "all"
|
|
207
186
|
Requires-Dist: pydevd-pycharm~=251.25410.159; extra == "all"
|
|
208
|
-
Requires-Dist:
|
|
187
|
+
Requires-Dist: google-api-python-client; extra == "all"
|
|
188
|
+
Requires-Dist: faker; extra == "all"
|
|
209
189
|
Requires-Dist: deepdiff; extra == "all"
|
|
210
|
-
Requires-Dist:
|
|
211
|
-
Requires-Dist:
|
|
212
|
-
Requires-Dist:
|
|
213
|
-
Requires-Dist:
|
|
214
|
-
Requires-Dist:
|
|
215
|
-
Requires-Dist:
|
|
190
|
+
Requires-Dist: beanie[odm]; extra == "all"
|
|
191
|
+
Requires-Dist: bokeh; extra == "all"
|
|
192
|
+
Requires-Dist: pandas; extra == "all"
|
|
193
|
+
Requires-Dist: sentence_transformers; extra == "all"
|
|
194
|
+
Requires-Dist: cachetools; extra == "all"
|
|
195
|
+
Requires-Dist: fastapi; extra == "all"
|
|
216
196
|
Requires-Dist: logfire[fastapi]; extra == "all"
|
|
217
|
-
Requires-Dist: faker; extra == "all"
|
|
218
197
|
Requires-Dist: flet[all]; extra == "all"
|
|
219
|
-
Requires-Dist:
|
|
220
|
-
Requires-Dist:
|
|
221
|
-
Requires-Dist:
|
|
222
|
-
Requires-Dist:
|
|
223
|
-
Requires-Dist:
|
|
198
|
+
Requires-Dist: httpx_retries; extra == "all"
|
|
199
|
+
Requires-Dist: playwright; extra == "all"
|
|
200
|
+
Requires-Dist: regex; extra == "all"
|
|
201
|
+
Requires-Dist: ollama; extra == "all"
|
|
202
|
+
Requires-Dist: pydantic-extra-types; extra == "all"
|
|
203
|
+
Requires-Dist: dask[bag]; extra == "all"
|
|
204
|
+
Requires-Dist: sre_yield; extra == "all"
|
|
205
|
+
Requires-Dist: uvicorn[standard]; extra == "all"
|
|
224
206
|
Requires-Dist: html2text; extra == "all"
|
|
225
|
-
Requires-Dist:
|
|
207
|
+
Requires-Dist: flet-webview; extra == "all"
|
|
208
|
+
Requires-Dist: dnspython[doh]; extra == "all"
|
|
226
209
|
Requires-Dist: appdirs; extra == "all"
|
|
227
|
-
Requires-Dist:
|
|
210
|
+
Requires-Dist: tinynetrc; extra == "all"
|
|
211
|
+
Requires-Dist: deepmerge; extra == "all"
|
|
212
|
+
Requires-Dist: pymupdf4llm; extra == "all"
|
|
213
|
+
Requires-Dist: openai; extra == "all"
|
|
214
|
+
Requires-Dist: contexttimer; extra == "all"
|
|
215
|
+
Requires-Dist: python-on-whales; extra == "all"
|
|
216
|
+
Requires-Dist: peft; extra == "all"
|
|
217
|
+
Requires-Dist: tabulate; extra == "all"
|
|
228
218
|
Requires-Dist: distributed; extra == "all"
|
|
229
|
-
Requires-Dist:
|
|
230
|
-
Requires-Dist:
|
|
231
|
-
Requires-Dist:
|
|
232
|
-
Requires-Dist:
|
|
219
|
+
Requires-Dist: tokenizers; extra == "all"
|
|
220
|
+
Requires-Dist: odfpy; extra == "all"
|
|
221
|
+
Requires-Dist: Unidecode; extra == "all"
|
|
222
|
+
Requires-Dist: filetype; extra == "all"
|
|
223
|
+
Requires-Dist: yamlscript; extra == "all"
|
|
224
|
+
Requires-Dist: google-auth; extra == "all"
|
|
225
|
+
Requires-Dist: semver; extra == "all"
|
|
226
|
+
Requires-Dist: pytest-cov; extra == "all"
|
|
227
|
+
Requires-Dist: transformers[sentencepiece]; extra == "all"
|
|
228
|
+
Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
|
|
229
|
+
Requires-Dist: pyyaml; extra == "all"
|
|
230
|
+
Requires-Dist: torchaudio; extra == "all"
|
|
231
|
+
Requires-Dist: pydantic; extra == "all"
|
|
232
|
+
Requires-Dist: logfire; extra == "all"
|
|
233
233
|
Dynamic: author
|
|
234
234
|
Dynamic: author-email
|
|
235
235
|
Dynamic: description
|
|
@@ -5,7 +5,7 @@ fmtr/tools/augmentation_tools.py,sha256=-6ESbO4CDlKqVOV1J1V6qBeoBMzbFIinkDHRHnCB
|
|
|
5
5
|
fmtr/tools/caching_tools.py,sha256=74p7m2GLFfeP41LX69wxgfkilxEAoWkMIfFMjKsYpyg,4976
|
|
6
6
|
fmtr/tools/constants.py,sha256=90wCirUpw4bWMAbjhip0LL6k57eS5VmxRUP9pLCChBg,1812
|
|
7
7
|
fmtr/tools/context_tools.py,sha256=4UvIHYgLqAh7dXMX9EBrLEpYp81qfzhSVrkffOSAoGA,350
|
|
8
|
-
fmtr/tools/data_modelling_tools.py,sha256=
|
|
8
|
+
fmtr/tools/data_modelling_tools.py,sha256=PrlYPXEWH4HqRb01wcexDfWGb0zbeekM_gOKDWTvAso,6350
|
|
9
9
|
fmtr/tools/dataclass_tools.py,sha256=0Gt6KeLhtPgubo_2tYkIVqB8oQ91Qzag8OAGZDdjvMU,1209
|
|
10
10
|
fmtr/tools/datatype_tools.py,sha256=qFPFrZK70-an4w7H46g8eT5j6Jez--U2XnmFdrQibeE,1983
|
|
11
11
|
fmtr/tools/datetime_tools.py,sha256=L7wmBoQbD9h_pJIL92WQOX32r_vrXgRvE-_0PVPRAGY,232
|
|
@@ -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=PGje1r_xsROztsBHUzPBFs4t22fimg89F3tW9Jrswf0,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
|
|
@@ -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.72.dist-info/licenses/LICENSE,sha256=FW9aa6vVN5IjRQWLT43hs4_koYSmpcbIovlKeAJ0_cI,10757
|
|
89
|
+
fmtr_tools-1.3.72.dist-info/METADATA,sha256=5RT9Wn0_p3Se72jS1jhWnmPFAgYOWrJBp0cZA8EMbWE,18035
|
|
90
|
+
fmtr_tools-1.3.72.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
91
|
+
fmtr_tools-1.3.72.dist-info/entry_points.txt,sha256=h-r__Xh5njtFqreMLg6cGuTFS4Qh-QqJPU1HB-_BS-Q,357
|
|
92
|
+
fmtr_tools-1.3.72.dist-info/top_level.txt,sha256=LXem9xCgNOD72tE2gRKESdiQTL902mfFkwWb6-dlwEE,5
|
|
93
|
+
fmtr_tools-1.3.72.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|