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.

@@ -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, name_value='value'):
227
+ def to_df(self, **kwargs):
228
228
  """
229
229
 
230
- DataFrame representation with Fields as rows.
230
+ DataFrame representation of Data Model.
231
231
 
232
232
  """
233
+ from fmtr.tools import tabular
233
234
 
234
- objs = []
235
- for name in self.model_fields.keys():
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
- return to_df(*self.items)
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.71
1
+ 1.3.72
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fmtr.tools
3
- Version: 1.3.71
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: playwright; extra == "all"
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: odfpy; extra == "all"
186
- Requires-Dist: pyyaml; extra == "all"
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: google-api-python-client; extra == "all"
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: fastapi; extra == "all"
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: uvicorn[standard]; extra == "all"
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: dnspython[doh]; extra == "all"
211
- Requires-Dist: google-auth-oauthlib; extra == "all"
212
- Requires-Dist: pymupdf; extra == "all"
213
- Requires-Dist: tokenizers; extra == "all"
214
- Requires-Dist: filetype; extra == "all"
215
- Requires-Dist: pydantic; extra == "all"
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: tabulate; extra == "all"
220
- Requires-Dist: httpx; extra == "all"
221
- Requires-Dist: peft; extra == "all"
222
- Requires-Dist: flet-webview; extra == "all"
223
- Requires-Dist: pycountry; extra == "all"
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: sentence_transformers; extra == "all"
207
+ Requires-Dist: flet-webview; extra == "all"
208
+ Requires-Dist: dnspython[doh]; extra == "all"
226
209
  Requires-Dist: appdirs; extra == "all"
227
- Requires-Dist: httpx_retries; extra == "all"
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: huggingface_hub; extra == "all"
230
- Requires-Dist: openpyxl; extra == "all"
231
- Requires-Dist: sre_yield; extra == "all"
232
- Requires-Dist: bokeh; extra == "all"
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=qTKyLlSOnFnkJTa2Wg3eRlec9kiKsrddrO2Zi9vZvqA,6188
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=RKfpJYVUZqgI7UFHG-wGYsY7K7pJ5MVrkwjYpSOb6ro,6
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.71.dist-info/licenses/LICENSE,sha256=FW9aa6vVN5IjRQWLT43hs4_koYSmpcbIovlKeAJ0_cI,10757
89
- fmtr_tools-1.3.71.dist-info/METADATA,sha256=t-oB0K3EpWbRCOh4g-3xeK7fmkfs1NM8BsudZY98i7Y,18035
90
- fmtr_tools-1.3.71.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
91
- fmtr_tools-1.3.71.dist-info/entry_points.txt,sha256=h-r__Xh5njtFqreMLg6cGuTFS4Qh-QqJPU1HB-_BS-Q,357
92
- fmtr_tools-1.3.71.dist-info/top_level.txt,sha256=LXem9xCgNOD72tE2gRKESdiQTL902mfFkwWb6-dlwEE,5
93
- fmtr_tools-1.3.71.dist-info/RECORD,,
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,,