fmtr.tools 1.3.67__py3-none-any.whl → 1.3.69__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.

@@ -21,13 +21,14 @@ class Field(FieldInfo):
21
21
  """
22
22
  NAME = Auto
23
23
  ANNOTATION = Empty
24
+ EXCLUDE = False
24
25
  DEFAULT = Auto
25
26
  FILLS = None
26
27
  DESCRIPTION = None
27
28
  TITLE = Auto
28
29
  CONFIG = None
29
30
 
30
- def __init__(self, annotation=Empty, default=Empty, description=None, title=None, fills=None, **kwargs):
31
+ def __init__(self, annotation=Empty, default=Empty, description=None, title=None, fills=None, exclude=None, **kwargs):
31
32
  """
32
33
 
33
34
  Infer default from type annotation, if enabled, use class/argument fills to create titles/descriptions, etc.
@@ -37,6 +38,8 @@ class Field(FieldInfo):
37
38
  fills_super = getattr(super(), 'FILLS', None)
38
39
  self.fills = (fills_super or {}) | (self.FILLS or {}) | (fills or {})
39
40
 
41
+ exclude = exclude if exclude is not None else self.EXCLUDE
42
+
40
43
  self.annotation = self.ANNOTATION if annotation is Empty else annotation
41
44
  if self.annotation is Empty:
42
45
  raise ValueError("Annotation must be specified.")
@@ -49,7 +52,7 @@ class Field(FieldInfo):
49
52
  title = self.get_title_auto(title)
50
53
  kwargs |= (self.CONFIG or {})
51
54
 
52
- super().__init__(default=default, title=title, description=description, **kwargs)
55
+ super().__init__(annotation=self.annotation, default=default, title=title, description=description, exclude=exclude, **kwargs)
53
56
 
54
57
  @classmethod
55
58
  def get_name_auto(cls) -> str:
@@ -215,9 +218,7 @@ class Base(BaseModel, MixinFromJson):
215
218
  field = field()
216
219
 
217
220
  setattr(cls, name, field)
218
-
219
- annotation = field.annotation
220
- cls.__annotations__[name] = annotation
221
+ cls.__annotations__[name] = field.annotation
221
222
 
222
223
  def to_df(self, name_value='value'):
223
224
  """
fmtr/tools/version CHANGED
@@ -1 +1 @@
1
- 1.3.67
1
+ 1.3.69
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fmtr.tools
3
- Version: 1.3.67
3
+ Version: 1.3.69
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: tabulate; extra == "all"
172
- Requires-Dist: pydantic; extra == "all"
173
- Requires-Dist: sentence_transformers; extra == "all"
174
- Requires-Dist: transformers[sentencepiece]; extra == "all"
175
- Requires-Dist: openpyxl; extra == "all"
176
- Requires-Dist: google-api-python-client; extra == "all"
177
- Requires-Dist: bokeh; extra == "all"
178
- Requires-Dist: cachetools; extra == "all"
179
- Requires-Dist: fastapi; extra == "all"
180
- Requires-Dist: python-on-whales; extra == "all"
181
- Requires-Dist: flet-video; extra == "all"
182
- Requires-Dist: google-auth-oauthlib; extra == "all"
183
- Requires-Dist: pydantic-settings; extra == "all"
184
- Requires-Dist: dask[bag]; extra == "all"
185
171
  Requires-Dist: openai; extra == "all"
186
- Requires-Dist: httpx_retries; extra == "all"
187
- Requires-Dist: playwright; extra == "all"
188
- Requires-Dist: ollama; extra == "all"
189
- Requires-Dist: google-auth; extra == "all"
190
- Requires-Dist: distributed; extra == "all"
191
- Requires-Dist: sre_yield; extra == "all"
192
- Requires-Dist: huggingface_hub; extra == "all"
193
- Requires-Dist: yamlscript; extra == "all"
194
- Requires-Dist: deepmerge; extra == "all"
195
- Requires-Dist: logfire; extra == "all"
196
- Requires-Dist: torchaudio; extra == "all"
197
- Requires-Dist: faker; extra == "all"
198
- Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
199
- Requires-Dist: beanie[odm]; extra == "all"
200
- Requires-Dist: logfire[httpx]; extra == "all"
201
172
  Requires-Dist: regex; extra == "all"
202
- Requires-Dist: odfpy; extra == "all"
203
- Requires-Dist: diskcache; extra == "all"
204
- Requires-Dist: pyyaml; extra == "all"
205
- Requires-Dist: json_repair; extra == "all"
206
- Requires-Dist: appdirs; extra == "all"
207
- Requires-Dist: httpx; extra == "all"
208
- Requires-Dist: setuptools; extra == "all"
209
- Requires-Dist: peft; extra == "all"
173
+ Requires-Dist: cachetools; extra == "all"
210
174
  Requires-Dist: Unidecode; extra == "all"
211
- Requires-Dist: filetype; extra == "all"
212
- Requires-Dist: contexttimer; extra == "all"
213
- Requires-Dist: pytest-cov; extra == "all"
175
+ Requires-Dist: google-auth; extra == "all"
176
+ Requires-Dist: fastapi; extra == "all"
177
+ Requires-Dist: beanie[odm]; extra == "all"
214
178
  Requires-Dist: pycountry; extra == "all"
179
+ Requires-Dist: pydantic; extra == "all"
180
+ Requires-Dist: httpx; extra == "all"
181
+ Requires-Dist: logfire[httpx]; extra == "all"
182
+ Requires-Dist: pymupdf4llm; extra == "all"
183
+ Requires-Dist: tabulate; extra == "all"
184
+ Requires-Dist: openpyxl; extra == "all"
215
185
  Requires-Dist: uvicorn[standard]; extra == "all"
186
+ Requires-Dist: dnspython[doh]; extra == "all"
216
187
  Requires-Dist: pandas; extra == "all"
217
- Requires-Dist: pymupdf; extra == "all"
188
+ Requires-Dist: diskcache; extra == "all"
189
+ Requires-Dist: google-api-python-client; extra == "all"
218
190
  Requires-Dist: tokenizers; extra == "all"
219
- Requires-Dist: pydevd-pycharm~=251.25410.159; extra == "all"
220
- Requires-Dist: semver; extra == "all"
191
+ Requires-Dist: deepdiff; extra == "all"
221
192
  Requires-Dist: flet[all]; extra == "all"
193
+ Requires-Dist: pyyaml; extra == "all"
194
+ Requires-Dist: deepmerge; extra == "all"
195
+ Requires-Dist: transformers[sentencepiece]; extra == "all"
196
+ Requires-Dist: odfpy; extra == "all"
197
+ Requires-Dist: pydevd-pycharm~=251.25410.159; extra == "all"
198
+ Requires-Dist: httpx_retries; extra == "all"
199
+ Requires-Dist: motor; extra == "all"
200
+ Requires-Dist: huggingface_hub; extra == "all"
201
+ Requires-Dist: appdirs; extra == "all"
202
+ Requires-Dist: peft; extra == "all"
203
+ Requires-Dist: setuptools; extra == "all"
204
+ Requires-Dist: flet-webview; extra == "all"
205
+ Requires-Dist: google-auth-oauthlib; extra == "all"
206
+ Requires-Dist: ollama; extra == "all"
207
+ Requires-Dist: distributed; extra == "all"
208
+ Requires-Dist: torchaudio; extra == "all"
209
+ Requires-Dist: sentence_transformers; extra == "all"
210
+ Requires-Dist: logfire; extra == "all"
211
+ Requires-Dist: sre_yield; extra == "all"
222
212
  Requires-Dist: logfire[fastapi]; extra == "all"
223
- Requires-Dist: dnspython[doh]; extra == "all"
213
+ Requires-Dist: google-auth-httplib2; extra == "all"
214
+ Requires-Dist: pydantic-settings; extra == "all"
215
+ Requires-Dist: semver; extra == "all"
216
+ Requires-Dist: bokeh; extra == "all"
217
+ Requires-Dist: python-on-whales; extra == "all"
224
218
  Requires-Dist: pydantic-extra-types; extra == "all"
225
- Requires-Dist: html2text; extra == "all"
226
- Requires-Dist: flet-webview; extra == "all"
219
+ Requires-Dist: pytest-cov; extra == "all"
227
220
  Requires-Dist: tinynetrc; extra == "all"
228
- Requires-Dist: deepdiff; extra == "all"
229
- Requires-Dist: google-auth-httplib2; extra == "all"
221
+ Requires-Dist: contexttimer; extra == "all"
230
222
  Requires-Dist: torchvision; extra == "all"
231
- Requires-Dist: pymupdf4llm; extra == "all"
232
- Requires-Dist: motor; extra == "all"
223
+ Requires-Dist: html2text; extra == "all"
224
+ Requires-Dist: pymupdf; extra == "all"
225
+ Requires-Dist: dask[bag]; extra == "all"
226
+ Requires-Dist: playwright; extra == "all"
227
+ Requires-Dist: faker; extra == "all"
228
+ Requires-Dist: filetype; extra == "all"
229
+ Requires-Dist: json_repair; extra == "all"
230
+ Requires-Dist: flet-video; extra == "all"
231
+ Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
232
+ Requires-Dist: yamlscript; 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=XLteLdfihxey8_nDbLsOWlycSj4r5DRVpgH6VdaZwRs,5945
8
+ fmtr/tools/data_modelling_tools.py,sha256=0lTV8LSnsqRR7hZMY7r8B-1MoB-e7sTDwupIl4C1UKc,6055
9
9
  fmtr/tools/dataclass_tools.py,sha256=0Gt6KeLhtPgubo_2tYkIVqB8oQ91Qzag8OAGZDdjvMU,1209
10
10
  fmtr/tools/datatype_tools.py,sha256=89QmlQ_fANqFQKsEMzhhRftfby-1PcrR3cylfbQNt9U,1878
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=Q_Iz5eCc4ybT-tWgBcfd4BENxHt_W707uGCdp8EvsCs,6
48
+ fmtr/tools/version,sha256=hKq7CR_OArI4Tj_9uI0IpnKisZbPKKVGOw4UmKP4O3Y,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.67.dist-info/licenses/LICENSE,sha256=FW9aa6vVN5IjRQWLT43hs4_koYSmpcbIovlKeAJ0_cI,10757
89
- fmtr_tools-1.3.67.dist-info/METADATA,sha256=WEZSR3WZEPJ6LggCgFD6yt-M0qiAgWNdZ8lxkAyeKaA,18035
90
- fmtr_tools-1.3.67.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
91
- fmtr_tools-1.3.67.dist-info/entry_points.txt,sha256=h-r__Xh5njtFqreMLg6cGuTFS4Qh-QqJPU1HB-_BS-Q,357
92
- fmtr_tools-1.3.67.dist-info/top_level.txt,sha256=LXem9xCgNOD72tE2gRKESdiQTL902mfFkwWb6-dlwEE,5
93
- fmtr_tools-1.3.67.dist-info/RECORD,,
88
+ fmtr_tools-1.3.69.dist-info/licenses/LICENSE,sha256=FW9aa6vVN5IjRQWLT43hs4_koYSmpcbIovlKeAJ0_cI,10757
89
+ fmtr_tools-1.3.69.dist-info/METADATA,sha256=E7k9FeOIeNoLCxDqsmRg_rhIEcmBZJ99GAbyWe7imgY,18035
90
+ fmtr_tools-1.3.69.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
91
+ fmtr_tools-1.3.69.dist-info/entry_points.txt,sha256=h-r__Xh5njtFqreMLg6cGuTFS4Qh-QqJPU1HB-_BS-Q,357
92
+ fmtr_tools-1.3.69.dist-info/top_level.txt,sha256=LXem9xCgNOD72tE2gRKESdiQTL902mfFkwWb6-dlwEE,5
93
+ fmtr_tools-1.3.69.dist-info/RECORD,,