fmtr.tools 1.3.43__py3-none-any.whl → 1.3.45__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/constants.py +3 -1
- fmtr/tools/interface_tools/interface_tools.py +16 -3
- fmtr/tools/version +1 -1
- {fmtr_tools-1.3.43.dist-info → fmtr_tools-1.3.45.dist-info}/METADATA +47 -47
- {fmtr_tools-1.3.43.dist-info → fmtr_tools-1.3.45.dist-info}/RECORD +9 -9
- {fmtr_tools-1.3.43.dist-info → fmtr_tools-1.3.45.dist-info}/WHEEL +0 -0
- {fmtr_tools-1.3.43.dist-info → fmtr_tools-1.3.45.dist-info}/entry_points.txt +0 -0
- {fmtr_tools-1.3.43.dist-info → fmtr_tools-1.3.45.dist-info}/licenses/LICENSE +0 -0
- {fmtr_tools-1.3.43.dist-info → fmtr_tools-1.3.45.dist-info}/top_level.txt +0 -0
fmtr/tools/constants.py
CHANGED
|
@@ -33,7 +33,9 @@ class Constants:
|
|
|
33
33
|
FMTR_AI_HOST_DEFAULT = 'ai.gex.fmtr.dev'
|
|
34
34
|
|
|
35
35
|
FMTR_DEV_HOST = 'ws.gex.fmtr.dev'
|
|
36
|
-
|
|
36
|
+
|
|
37
|
+
FMTR_DEV_INTERFACE_URL = f'https://{FMTR_DEV_HOST}/'
|
|
38
|
+
FMTR_DEV_INTERFACE_SUB_URL_MASK = f'https://{{sub}}.{FMTR_DEV_HOST}/'
|
|
37
39
|
|
|
38
40
|
FILENAME_CONFIG = 'settings.yaml'
|
|
39
41
|
DIR_NAME_REPO = 'repo'
|
|
@@ -2,7 +2,7 @@ import flet as ft
|
|
|
2
2
|
from flet.core.types import AppView
|
|
3
3
|
from flet.core.view import View
|
|
4
4
|
from functools import cached_property
|
|
5
|
-
from typing import TypeVar, Generic, Type
|
|
5
|
+
from typing import TypeVar, Generic, Type, Self
|
|
6
6
|
|
|
7
7
|
from fmtr.tools import environment_tools
|
|
8
8
|
from fmtr.tools.constants import Constants
|
|
@@ -86,7 +86,7 @@ class Interface(Generic[T], ft.Column):
|
|
|
86
86
|
super().__init__(*args, **kwargs, scroll=self.SCROLL)
|
|
87
87
|
|
|
88
88
|
@classmethod
|
|
89
|
-
def render(cls, page: ft.Page):
|
|
89
|
+
async def render(cls, page: ft.Page):
|
|
90
90
|
"""
|
|
91
91
|
|
|
92
92
|
Interface entry point. Set relevant callbacks, and add instantiated self to page views
|
|
@@ -97,7 +97,9 @@ class Interface(Generic[T], ft.Column):
|
|
|
97
97
|
page.theme = cls.get_theme()
|
|
98
98
|
page.views.clear()
|
|
99
99
|
context = cls.TypeContext(page=page)
|
|
100
|
-
|
|
100
|
+
|
|
101
|
+
self = await cls.create(context)
|
|
102
|
+
|
|
101
103
|
view = self.view
|
|
102
104
|
if not view:
|
|
103
105
|
view = self
|
|
@@ -107,6 +109,17 @@ class Interface(Generic[T], ft.Column):
|
|
|
107
109
|
|
|
108
110
|
page.go(cls.ROUTE_ROOT)
|
|
109
111
|
|
|
112
|
+
@classmethod
|
|
113
|
+
async def create(cls, context: T) -> Self:
|
|
114
|
+
"""
|
|
115
|
+
|
|
116
|
+
Overridable async interface constructor.
|
|
117
|
+
|
|
118
|
+
"""
|
|
119
|
+
self = cls(context)
|
|
120
|
+
return self
|
|
121
|
+
|
|
122
|
+
|
|
110
123
|
@cached_property
|
|
111
124
|
def view(self):
|
|
112
125
|
"""
|
fmtr/tools/version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.3.
|
|
1
|
+
1.3.45
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fmtr.tools
|
|
3
|
-
Version: 1.3.
|
|
3
|
+
Version: 1.3.45
|
|
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
|
|
@@ -136,64 +136,64 @@ Provides-Extra: db-document
|
|
|
136
136
|
Requires-Dist: beanie[odm]; extra == "db-document"
|
|
137
137
|
Requires-Dist: motor; extra == "db-document"
|
|
138
138
|
Provides-Extra: all
|
|
139
|
-
Requires-Dist:
|
|
140
|
-
Requires-Dist:
|
|
141
|
-
Requires-Dist:
|
|
142
|
-
Requires-Dist:
|
|
143
|
-
Requires-Dist:
|
|
139
|
+
Requires-Dist: distributed; extra == "all"
|
|
140
|
+
Requires-Dist: openpyxl; extra == "all"
|
|
141
|
+
Requires-Dist: filetype; extra == "all"
|
|
142
|
+
Requires-Dist: deepmerge; extra == "all"
|
|
143
|
+
Requires-Dist: logfire; extra == "all"
|
|
144
144
|
Requires-Dist: bokeh; extra == "all"
|
|
145
|
-
Requires-Dist:
|
|
146
|
-
Requires-Dist: ollama; extra == "all"
|
|
145
|
+
Requires-Dist: flet[all]; extra == "all"
|
|
147
146
|
Requires-Dist: diskcache; extra == "all"
|
|
148
|
-
Requires-Dist:
|
|
147
|
+
Requires-Dist: pydantic; extra == "all"
|
|
148
|
+
Requires-Dist: ollama; extra == "all"
|
|
149
149
|
Requires-Dist: motor; extra == "all"
|
|
150
|
-
Requires-Dist:
|
|
150
|
+
Requires-Dist: docker; extra == "all"
|
|
151
|
+
Requires-Dist: regex; extra == "all"
|
|
152
|
+
Requires-Dist: dask[bag]; extra == "all"
|
|
153
|
+
Requires-Dist: google-auth; extra == "all"
|
|
154
|
+
Requires-Dist: pyyaml; extra == "all"
|
|
155
|
+
Requires-Dist: faker; extra == "all"
|
|
156
|
+
Requires-Dist: logfire[httpx]; extra == "all"
|
|
157
|
+
Requires-Dist: setuptools; extra == "all"
|
|
151
158
|
Requires-Dist: tinynetrc; extra == "all"
|
|
152
|
-
Requires-Dist:
|
|
159
|
+
Requires-Dist: google-api-python-client; extra == "all"
|
|
160
|
+
Requires-Dist: uvicorn[standard]; extra == "all"
|
|
161
|
+
Requires-Dist: flet-video; extra == "all"
|
|
162
|
+
Requires-Dist: pymupdf4llm; extra == "all"
|
|
163
|
+
Requires-Dist: pydevd-pycharm~=251.25410.159; extra == "all"
|
|
164
|
+
Requires-Dist: appdirs; extra == "all"
|
|
165
|
+
Requires-Dist: Unidecode; extra == "all"
|
|
166
|
+
Requires-Dist: huggingface_hub; extra == "all"
|
|
167
|
+
Requires-Dist: html2text; extra == "all"
|
|
168
|
+
Requires-Dist: yamlscript; extra == "all"
|
|
169
|
+
Requires-Dist: google-auth-oauthlib; extra == "all"
|
|
170
|
+
Requires-Dist: openai; extra == "all"
|
|
153
171
|
Requires-Dist: logfire[fastapi]; extra == "all"
|
|
154
|
-
Requires-Dist:
|
|
155
|
-
Requires-Dist:
|
|
156
|
-
Requires-Dist: flet-webview; extra == "all"
|
|
172
|
+
Requires-Dist: beanie[odm]; extra == "all"
|
|
173
|
+
Requires-Dist: cachetools; extra == "all"
|
|
157
174
|
Requires-Dist: torchaudio; extra == "all"
|
|
158
|
-
Requires-Dist:
|
|
159
|
-
Requires-Dist:
|
|
160
|
-
Requires-Dist:
|
|
161
|
-
Requires-Dist:
|
|
162
|
-
Requires-Dist:
|
|
163
|
-
Requires-Dist: json_repair; extra == "all"
|
|
164
|
-
Requires-Dist: pyyaml; extra == "all"
|
|
175
|
+
Requires-Dist: transformers[sentencepiece]; extra == "all"
|
|
176
|
+
Requires-Dist: torchvision; extra == "all"
|
|
177
|
+
Requires-Dist: httpx; extra == "all"
|
|
178
|
+
Requires-Dist: semver; extra == "all"
|
|
179
|
+
Requires-Dist: pandas; extra == "all"
|
|
165
180
|
Requires-Dist: google-auth-httplib2; extra == "all"
|
|
166
|
-
Requires-Dist:
|
|
181
|
+
Requires-Dist: json_repair; extra == "all"
|
|
182
|
+
Requires-Dist: tokenizers; extra == "all"
|
|
183
|
+
Requires-Dist: httpx_retries; extra == "all"
|
|
167
184
|
Requires-Dist: contexttimer; extra == "all"
|
|
185
|
+
Requires-Dist: fastapi; extra == "all"
|
|
186
|
+
Requires-Dist: pymupdf; extra == "all"
|
|
187
|
+
Requires-Dist: playwright; extra == "all"
|
|
168
188
|
Requires-Dist: pytest-cov; extra == "all"
|
|
169
|
-
Requires-Dist:
|
|
170
|
-
Requires-Dist: flet[all]; extra == "all"
|
|
171
|
-
Requires-Dist: huggingface_hub; extra == "all"
|
|
172
|
-
Requires-Dist: pymupdf4llm; extra == "all"
|
|
173
|
-
Requires-Dist: setuptools; extra == "all"
|
|
174
|
-
Requires-Dist: beanie[odm]; extra == "all"
|
|
175
|
-
Requires-Dist: Unidecode; extra == "all"
|
|
176
|
-
Requires-Dist: dask[bag]; extra == "all"
|
|
177
|
-
Requires-Dist: pydantic; extra == "all"
|
|
189
|
+
Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
|
|
178
190
|
Requires-Dist: sentence_transformers; extra == "all"
|
|
191
|
+
Requires-Dist: pydantic-settings; extra == "all"
|
|
179
192
|
Requires-Dist: peft; extra == "all"
|
|
180
|
-
Requires-Dist: flet-video; extra == "all"
|
|
181
|
-
Requires-Dist: torchvision; extra == "all"
|
|
182
|
-
Requires-Dist: fastapi; extra == "all"
|
|
183
|
-
Requires-Dist: google-api-python-client; extra == "all"
|
|
184
193
|
Requires-Dist: tabulate; extra == "all"
|
|
185
|
-
Requires-Dist:
|
|
186
|
-
Requires-Dist:
|
|
187
|
-
Requires-Dist:
|
|
188
|
-
Requires-Dist: tokenizers; extra == "all"
|
|
189
|
-
Requires-Dist: semver; extra == "all"
|
|
190
|
-
Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
|
|
191
|
-
Requires-Dist: filetype; extra == "all"
|
|
192
|
-
Requires-Dist: appdirs; extra == "all"
|
|
193
|
-
Requires-Dist: pandas; extra == "all"
|
|
194
|
-
Requires-Dist: pymupdf; extra == "all"
|
|
195
|
-
Requires-Dist: google-auth; extra == "all"
|
|
196
|
-
Requires-Dist: pydevd-pycharm~=251.25410.159; extra == "all"
|
|
194
|
+
Requires-Dist: sre_yield; extra == "all"
|
|
195
|
+
Requires-Dist: flet-webview; extra == "all"
|
|
196
|
+
Requires-Dist: dnspython[doh]; extra == "all"
|
|
197
197
|
Dynamic: author
|
|
198
198
|
Dynamic: author-email
|
|
199
199
|
Dynamic: description
|
|
@@ -3,7 +3,7 @@ fmtr/tools/api_tools.py,sha256=RyZUlTefSQozfl-8feZGauyUkwcFd-jU0KtKHFxHea4,2272
|
|
|
3
3
|
fmtr/tools/async_tools.py,sha256=ewz757WcveQJd-G5SVr2JDOQVbdLGecCgl-tsBGVZz4,284
|
|
4
4
|
fmtr/tools/augmentation_tools.py,sha256=-6ESbO4CDlKqVOV1J1V6qBeoBMzbFIinkDHRHnCBej0,55
|
|
5
5
|
fmtr/tools/caching_tools.py,sha256=74p7m2GLFfeP41LX69wxgfkilxEAoWkMIfFMjKsYpyg,4976
|
|
6
|
-
fmtr/tools/constants.py,sha256
|
|
6
|
+
fmtr/tools/constants.py,sha256=90wCirUpw4bWMAbjhip0LL6k57eS5VmxRUP9pLCChBg,1812
|
|
7
7
|
fmtr/tools/context_tools.py,sha256=4UvIHYgLqAh7dXMX9EBrLEpYp81qfzhSVrkffOSAoGA,350
|
|
8
8
|
fmtr/tools/data_modelling_tools.py,sha256=0BFm-F_cYzVTxftWQwORkPd0FM2BTLVh9-s0-rTTFoo,1744
|
|
9
9
|
fmtr/tools/dataclass_tools.py,sha256=0Gt6KeLhtPgubo_2tYkIVqB8oQ91Qzag8OAGZDdjvMU,1209
|
|
@@ -46,7 +46,7 @@ fmtr/tools/tabular_tools.py,sha256=tpIpZzYku1HcJrHZJL6BC39LmN3WUWVhFbK2N7nDVmE,1
|
|
|
46
46
|
fmtr/tools/tokenization_tools.py,sha256=me-IBzSLyNYejLybwjO9CNB6Mj2NYfKPaOVThXyaGNg,4268
|
|
47
47
|
fmtr/tools/tools.py,sha256=CAsApa1YwVdNE6H66Vjivs_mXYvOas3rh7fPELAnTpk,795
|
|
48
48
|
fmtr/tools/unicode_tools.py,sha256=yS_9wpu8ogNoiIL7s1G_8bETFFO_YQlo4LNPv1NLDeY,52
|
|
49
|
-
fmtr/tools/version,sha256=
|
|
49
|
+
fmtr/tools/version,sha256=Ql4M6Jm9b8Ebo24LKhh-qWkWym8akse7UEH13YS0gTs,6
|
|
50
50
|
fmtr/tools/webhook_tools.py,sha256=q3pVJ1NCem2SrMuFcLxiWd7DibFs7Q-uGtojfXd3Qcg,380
|
|
51
51
|
fmtr/tools/yaml_tools.py,sha256=Bhhyd6GQVKO72Lp8ky7bAUjIB_65Hdh0Q45SKIEe6S8,1901
|
|
52
52
|
fmtr/tools/ai_tools/__init__.py,sha256=O8VRlPnnQCncg2ZZ2l_VdWLJf4jkKH6dkZFVbv6o7IM,388
|
|
@@ -68,7 +68,7 @@ fmtr/tools/entrypoints/shell_debug.py,sha256=0No3tAg9Ri4_vvSlQCUtAY-11HR0nE45i0V
|
|
|
68
68
|
fmtr/tools/interface_tools/__init__.py,sha256=qTN0Hd4A65aWQ4wza48xTNiI2aXBZVEyObdQIsMR2Uk,398
|
|
69
69
|
fmtr/tools/interface_tools/context.py,sha256=VpoR_ZCndDbwS0AzIPKi1hB2QckwJU5dJqAJavF3mqk,151
|
|
70
70
|
fmtr/tools/interface_tools/controls.py,sha256=oOl0_sZB8fkvYB-9A5yjArfQmFQLMCsVGgRNrJAFJm4,332
|
|
71
|
-
fmtr/tools/interface_tools/interface_tools.py,sha256=
|
|
71
|
+
fmtr/tools/interface_tools/interface_tools.py,sha256=i1TqP_67pVGiRZotKdVxyH0b5OFwaTZ_5Tf60gip0ts,4214
|
|
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=eh30PpmH0wopy0wNWuPT84cmXY1EvqsTSDT7AV_GPOY,8034
|
|
@@ -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.45.dist-info/licenses/LICENSE,sha256=FW9aa6vVN5IjRQWLT43hs4_koYSmpcbIovlKeAJ0_cI,10757
|
|
89
|
+
fmtr_tools-1.3.45.dist-info/METADATA,sha256=ZB994EXHJJV5xel-DEPuTLO1ajFLXpLfQ5GmOcIQpT4,16436
|
|
90
|
+
fmtr_tools-1.3.45.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
91
|
+
fmtr_tools-1.3.45.dist-info/entry_points.txt,sha256=h-r__Xh5njtFqreMLg6cGuTFS4Qh-QqJPU1HB-_BS-Q,357
|
|
92
|
+
fmtr_tools-1.3.45.dist-info/top_level.txt,sha256=LXem9xCgNOD72tE2gRKESdiQTL902mfFkwWb6-dlwEE,5
|
|
93
|
+
fmtr_tools-1.3.45.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|