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

@@ -3,7 +3,7 @@ from typing import List
3
3
 
4
4
  import beanie
5
5
  from beanie.odm import actions
6
- from motor.motor_asyncio import AsyncIOMotorClient
6
+ from pymongo import AsyncMongoClient
7
7
 
8
8
  from fmtr.tools import data_modelling_tools
9
9
  from fmtr.tools.constants import Constants
@@ -34,7 +34,7 @@ class Client:
34
34
  self.port = port
35
35
  self.documents = documents
36
36
 
37
- self.client = AsyncIOMotorClient(self.uri, tz_aware=True)
37
+ self.client = AsyncMongoClient(self.uri, tz_aware=True)
38
38
  self.db = self.client[self.name]
39
39
 
40
40
  @cached_property
@@ -1,3 +1,4 @@
1
+ import os
1
2
  from typing import TypeVar, Generic, Type
2
3
 
3
4
  import flet as ft
@@ -30,14 +31,6 @@ class progress(update):
30
31
 
31
32
  """
32
33
 
33
- def get_context(self, instance):
34
- """
35
-
36
- Use instance-defined context.
37
-
38
- """
39
- return instance.context
40
-
41
34
  def start(self, instance, *args, **kwargs):
42
35
  """
43
36
 
@@ -72,9 +65,12 @@ class Base(Generic[T], ft.Column):
72
65
  URL = Constants.FMTR_DEV_INTERFACE_URL if environment_tools.IS_DEV else None
73
66
  APPVIEW = AppView.WEB_BROWSER
74
67
  PATH_ASSETS = None
75
- ROUTE_ROOT = '/'
68
+ PATH_UPLOADS = None
76
69
  SCROLL = ft.ScrollMode.AUTO
77
70
 
71
+ SECRET_KEY_KEY = 'FLET_SECRET_KEY'
72
+ ROUTE_ROOT = '/'
73
+
78
74
  TypeContext: Type[T] = Context
79
75
 
80
76
  @classmethod
@@ -168,8 +164,11 @@ class Base(Generic[T], ft.Column):
168
164
  else:
169
165
  url = f'http://{cls.HOST}:{cls.PORT}'
170
166
 
167
+ if not environment_tools.get(cls.SECRET_KEY_KEY, default=None):
168
+ os.environ["FLET_SECRET_KEY"] = os.urandom(12).hex()
169
+
171
170
  logger.info(f"Launching {cls.TITLE} at {url}")
172
- ft.app(cls.new, view=cls.APPVIEW, host=cls.HOST, port=cls.PORT, assets_dir=cls.PATH_ASSETS, )
171
+ ft.app(cls.new, view=cls.APPVIEW, host=cls.HOST, port=cls.PORT, assets_dir=cls.PATH_ASSETS, upload_dir=cls.PATH_UPLOADS)
173
172
 
174
173
 
175
174
  class Test(Base[Context]):
fmtr/tools/version CHANGED
@@ -1 +1 @@
1
- 1.3.73
1
+ 1.3.75
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fmtr.tools
3
- Version: 1.3.73
3
+ Version: 1.3.75
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: pydantic-extra-types; extra == "all"
172
- Requires-Dist: google-auth; extra == "all"
173
- Requires-Dist: openai; extra == "all"
174
- Requires-Dist: pymupdf; extra == "all"
175
- Requires-Dist: transformers[sentencepiece]; extra == "all"
176
171
  Requires-Dist: fastapi; extra == "all"
177
- Requires-Dist: google-auth-httplib2; extra == "all"
178
- Requires-Dist: deepmerge; extra == "all"
179
- Requires-Dist: pytest-cov; extra == "all"
180
- Requires-Dist: odfpy; extra == "all"
181
- Requires-Dist: distributed; extra == "all"
182
- Requires-Dist: pyyaml; extra == "all"
183
- Requires-Dist: uvicorn[standard]; extra == "all"
184
- Requires-Dist: torchaudio; extra == "all"
185
- Requires-Dist: pymupdf4llm; extra == "all"
172
+ Requires-Dist: flet-webview; extra == "all"
186
173
  Requires-Dist: sre_yield; extra == "all"
187
- Requires-Dist: appdirs; extra == "all"
188
- Requires-Dist: filetype; extra == "all"
189
- Requires-Dist: dnspython[doh]; extra == "all"
190
- Requires-Dist: pydevd-pycharm~=251.25410.159; extra == "all"
191
174
  Requires-Dist: html2text; extra == "all"
192
- Requires-Dist: openpyxl; extra == "all"
193
- Requires-Dist: google-api-python-client; extra == "all"
194
- Requires-Dist: flet-video; extra == "all"
195
- Requires-Dist: python-on-whales; extra == "all"
175
+ Requires-Dist: cachetools; extra == "all"
176
+ Requires-Dist: pydantic-settings; extra == "all"
177
+ Requires-Dist: pytest-cov; extra == "all"
196
178
  Requires-Dist: diskcache; extra == "all"
179
+ Requires-Dist: appdirs; extra == "all"
197
180
  Requires-Dist: json_repair; extra == "all"
198
- Requires-Dist: pandas; extra == "all"
199
- Requires-Dist: logfire[fastapi]; extra == "all"
200
- Requires-Dist: ollama; extra == "all"
201
- Requires-Dist: sentence_transformers; extra == "all"
181
+ Requires-Dist: flet-video; extra == "all"
182
+ Requires-Dist: dnspython[doh]; extra == "all"
183
+ Requires-Dist: pymupdf4llm; extra == "all"
184
+ Requires-Dist: playwright; extra == "all"
185
+ Requires-Dist: flet[all]; extra == "all"
186
+ Requires-Dist: faker; extra == "all"
187
+ Requires-Dist: openpyxl; extra == "all"
188
+ Requires-Dist: logfire[httpx]; extra == "all"
189
+ Requires-Dist: deepmerge; extra == "all"
190
+ Requires-Dist: odfpy; extra == "all"
191
+ Requires-Dist: tabulate; extra == "all"
192
+ Requires-Dist: pydantic-extra-types; extra == "all"
202
193
  Requires-Dist: semver; extra == "all"
194
+ Requires-Dist: logfire[fastapi]; extra == "all"
195
+ Requires-Dist: contexttimer; extra == "all"
203
196
  Requires-Dist: pycountry; extra == "all"
204
197
  Requires-Dist: httpx_retries; extra == "all"
205
- Requires-Dist: logfire[httpx]; extra == "all"
206
- Requires-Dist: flet[all]; extra == "all"
207
- Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
208
- Requires-Dist: tabulate; extra == "all"
209
- Requires-Dist: cachetools; extra == "all"
210
- Requires-Dist: beanie[odm]; extra == "all"
211
- Requires-Dist: Unidecode; extra == "all"
212
- Requires-Dist: bokeh; extra == "all"
213
- Requires-Dist: torchvision; extra == "all"
214
- Requires-Dist: tokenizers; extra == "all"
215
- Requires-Dist: pydantic-settings; extra == "all"
216
- Requires-Dist: flet-webview; extra == "all"
217
- Requires-Dist: faker; extra == "all"
218
- Requires-Dist: httpx; extra == "all"
219
- Requires-Dist: playwright; extra == "all"
220
- Requires-Dist: pydantic; extra == "all"
221
- Requires-Dist: huggingface_hub; extra == "all"
198
+ Requires-Dist: yamlscript; extra == "all"
222
199
  Requires-Dist: regex; extra == "all"
223
- Requires-Dist: contexttimer; extra == "all"
224
- Requires-Dist: dask[bag]; extra == "all"
200
+ Requires-Dist: uvicorn[standard]; extra == "all"
201
+ Requires-Dist: pymupdf; extra == "all"
202
+ Requires-Dist: filetype; extra == "all"
203
+ Requires-Dist: motor; extra == "all"
225
204
  Requires-Dist: logfire; extra == "all"
226
- Requires-Dist: tinynetrc; extra == "all"
227
- Requires-Dist: deepdiff; extra == "all"
205
+ Requires-Dist: google-auth-httplib2; extra == "all"
206
+ Requires-Dist: dask[bag]; extra == "all"
228
207
  Requires-Dist: setuptools; extra == "all"
229
- Requires-Dist: yamlscript; extra == "all"
208
+ Requires-Dist: bokeh; extra == "all"
209
+ Requires-Dist: google-auth; extra == "all"
210
+ Requires-Dist: Unidecode; extra == "all"
211
+ Requires-Dist: sentence_transformers; extra == "all"
212
+ Requires-Dist: huggingface_hub; extra == "all"
213
+ Requires-Dist: httpx; extra == "all"
214
+ Requires-Dist: tinynetrc; extra == "all"
215
+ Requires-Dist: pandas; extra == "all"
230
216
  Requires-Dist: google-auth-oauthlib; extra == "all"
217
+ Requires-Dist: torchvision; extra == "all"
218
+ Requires-Dist: pydantic; extra == "all"
219
+ Requires-Dist: transformers[sentencepiece]; extra == "all"
220
+ Requires-Dist: distributed; extra == "all"
221
+ Requires-Dist: openai; extra == "all"
222
+ Requires-Dist: deepdiff; extra == "all"
231
223
  Requires-Dist: peft; extra == "all"
232
- Requires-Dist: motor; extra == "all"
224
+ Requires-Dist: tokenizers; extra == "all"
225
+ Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
226
+ Requires-Dist: python-on-whales; extra == "all"
227
+ Requires-Dist: beanie[odm]; extra == "all"
228
+ Requires-Dist: ollama; extra == "all"
229
+ Requires-Dist: torchaudio; extra == "all"
230
+ Requires-Dist: google-api-python-client; extra == "all"
231
+ Requires-Dist: pydevd-pycharm~=251.25410.159; extra == "all"
232
+ Requires-Dist: pyyaml; extra == "all"
233
233
  Dynamic: author
234
234
  Dynamic: author-email
235
235
  Dynamic: description
@@ -45,14 +45,14 @@ 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=igGdG23ZKXmxPHu73EVw5gtOGr5KGif-26oVR4QTXis,6
48
+ fmtr/tools/version,sha256=EAFGJKF2ntHAJlv_mAXqigAu1JKLkQdZZFpYL7Vh3p0,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
52
52
  fmtr/tools/ai_tools/agentic_tools.py,sha256=Zj6WcbDc1yLFi3raTSD0BeOkWR3l5RmmccFYGx8-0XE,5534
53
53
  fmtr/tools/ai_tools/inference_tools.py,sha256=2UP2gXEyOJUjyyV6zmFIYmIxUsh1rXkRH0IbFvr2bRs,11908
54
54
  fmtr/tools/database_tools/__init__.py,sha256=-YXEs3P4nwg7hdvALpaW4K2Pg9FIc49rD53smqnBgT4,221
55
- fmtr/tools/database_tools/document.py,sha256=uGmyznAKqshv8yjFoVRlkPmnSVao3oPJ7iaxvZSpi3g,1214
55
+ fmtr/tools/database_tools/document.py,sha256=wn1JPqFiplRx16qUgOs2tWtEZGaT4L99CTjp_MhpjqY,1198
56
56
  fmtr/tools/dns_tools/__init__.py,sha256=HP0Qcwyi1C6vBH_ejuWrGJOWdp-GZ_cmH-QofjD6Mmg,266
57
57
  fmtr/tools/dns_tools/client.py,sha256=IBbd7Xgx9ExTn_EPoL7ts9JfXokHHuOiD9m4K6tl1Q0,2817
58
58
  fmtr/tools/dns_tools/dm.py,sha256=Lp1HaF7rpVtL_Ji4Bd32B29105H9ZKQ8AcVj_AB7nsA,6678
@@ -68,7 +68,7 @@ fmtr/tools/entrypoints/shell_debug.py,sha256=0No3tAg9Ri4_vvSlQCUtAY-11HR0nE45i0V
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
70
  fmtr/tools/interface_tools/controls.py,sha256=gm8mlgrV014r8fQYHd5pVwnDIvxWiNkS8g_9sYSir5Y,3870
71
- fmtr/tools/interface_tools/interface_tools.py,sha256=GXnBkSO_Y-F7E5sErJdyyEkO3PyTz97yQBXlTEw_Ufw,4295
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
74
74
  fmtr/tools/path_tools/path_tools.py,sha256=s3RTXsjnr2Ah7vXQGjpGs-4DlWaVGvChu0aTFXX3gsE,8867
@@ -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.73.dist-info/licenses/LICENSE,sha256=FW9aa6vVN5IjRQWLT43hs4_koYSmpcbIovlKeAJ0_cI,10757
89
- fmtr_tools-1.3.73.dist-info/METADATA,sha256=EUuFhzj8FMERfXkqqQpPCSDcqCBJpsUjrJZsMwvxFvQ,18035
90
- fmtr_tools-1.3.73.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
91
- fmtr_tools-1.3.73.dist-info/entry_points.txt,sha256=h-r__Xh5njtFqreMLg6cGuTFS4Qh-QqJPU1HB-_BS-Q,357
92
- fmtr_tools-1.3.73.dist-info/top_level.txt,sha256=LXem9xCgNOD72tE2gRKESdiQTL902mfFkwWb6-dlwEE,5
93
- fmtr_tools-1.3.73.dist-info/RECORD,,
88
+ fmtr_tools-1.3.75.dist-info/licenses/LICENSE,sha256=FW9aa6vVN5IjRQWLT43hs4_koYSmpcbIovlKeAJ0_cI,10757
89
+ fmtr_tools-1.3.75.dist-info/METADATA,sha256=tc0dLbu9SrTc1jlpcDdW3c6g1z4QtzdRyLnk0VMVwe4,18035
90
+ fmtr_tools-1.3.75.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
91
+ fmtr_tools-1.3.75.dist-info/entry_points.txt,sha256=h-r__Xh5njtFqreMLg6cGuTFS4Qh-QqJPU1HB-_BS-Q,357
92
+ fmtr_tools-1.3.75.dist-info/top_level.txt,sha256=LXem9xCgNOD72tE2gRKESdiQTL902mfFkwWb6-dlwEE,5
93
+ fmtr_tools-1.3.75.dist-info/RECORD,,