fmtr.tools 1.3.27__py3-none-any.whl → 1.3.28__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/__init__.py +1 -0
- fmtr/tools/inherit_tools.py +27 -0
- fmtr/tools/version +1 -1
- {fmtr_tools-1.3.27.dist-info → fmtr_tools-1.3.28.dist-info}/METADATA +42 -42
- {fmtr_tools-1.3.27.dist-info → fmtr_tools-1.3.28.dist-info}/RECORD +9 -8
- {fmtr_tools-1.3.27.dist-info → fmtr_tools-1.3.28.dist-info}/WHEEL +0 -0
- {fmtr_tools-1.3.27.dist-info → fmtr_tools-1.3.28.dist-info}/entry_points.txt +0 -0
- {fmtr_tools-1.3.27.dist-info → fmtr_tools-1.3.28.dist-info}/licenses/LICENSE +0 -0
- {fmtr_tools-1.3.27.dist-info → fmtr_tools-1.3.28.dist-info}/top_level.txt +0 -0
fmtr/tools/__init__.py
CHANGED
|
@@ -6,6 +6,7 @@ import fmtr.tools.environment_tools as environment
|
|
|
6
6
|
import fmtr.tools.function_tools as function
|
|
7
7
|
import fmtr.tools.hash_tools as hash
|
|
8
8
|
import fmtr.tools.import_tools as import_
|
|
9
|
+
import fmtr.tools.inherit_tools as inherit
|
|
9
10
|
import fmtr.tools.iterator_tools as iterator
|
|
10
11
|
import fmtr.tools.json_tools as json
|
|
11
12
|
import fmtr.tools.logging_tools as logging
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
from typing import TypeVar, Generic
|
|
2
|
+
|
|
3
|
+
T = TypeVar("T")
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class Inherit(Generic[T]):
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
Runtime inheritance. Acts like a wrapper around an instantiated base class of type T, and allows overriding methods in subclasses like regular inheritance.
|
|
10
|
+
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
def __init__(self, parent: T):
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
Set parent
|
|
17
|
+
|
|
18
|
+
"""
|
|
19
|
+
object.__setattr__(self, "_parent", parent)
|
|
20
|
+
|
|
21
|
+
def __getattr__(self, name):
|
|
22
|
+
"""
|
|
23
|
+
|
|
24
|
+
Since regular attribute access checks own methods first, we don't need to do anything fancy to fall back to the parent when not implemented.
|
|
25
|
+
|
|
26
|
+
"""
|
|
27
|
+
return getattr(self._parent, name)
|
fmtr/tools/version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.3.
|
|
1
|
+
1.3.28
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fmtr.tools
|
|
3
|
-
Version: 1.3.
|
|
3
|
+
Version: 1.3.28
|
|
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
|
|
@@ -126,61 +126,61 @@ Requires-Dist: logfire[httpx]; extra == "http"
|
|
|
126
126
|
Provides-Extra: setup
|
|
127
127
|
Requires-Dist: setuptools; extra == "setup"
|
|
128
128
|
Provides-Extra: all
|
|
129
|
-
Requires-Dist:
|
|
130
|
-
Requires-Dist:
|
|
129
|
+
Requires-Dist: pandas; extra == "all"
|
|
130
|
+
Requires-Dist: transformers[sentencepiece]; extra == "all"
|
|
131
|
+
Requires-Dist: regex; extra == "all"
|
|
131
132
|
Requires-Dist: pytest-cov; extra == "all"
|
|
132
|
-
Requires-Dist:
|
|
133
|
-
Requires-Dist:
|
|
134
|
-
Requires-Dist:
|
|
133
|
+
Requires-Dist: json_repair; extra == "all"
|
|
134
|
+
Requires-Dist: cachetools; extra == "all"
|
|
135
|
+
Requires-Dist: tokenizers; extra == "all"
|
|
136
|
+
Requires-Dist: google-auth-oauthlib; extra == "all"
|
|
137
|
+
Requires-Dist: pydevd-pycharm~=251.25410.159; extra == "all"
|
|
138
|
+
Requires-Dist: httpx_retries; extra == "all"
|
|
139
|
+
Requires-Dist: docker; extra == "all"
|
|
135
140
|
Requires-Dist: pydantic; extra == "all"
|
|
136
|
-
Requires-Dist:
|
|
137
|
-
Requires-Dist:
|
|
138
|
-
Requires-Dist:
|
|
139
|
-
Requires-Dist:
|
|
141
|
+
Requires-Dist: setuptools; extra == "all"
|
|
142
|
+
Requires-Dist: deepmerge; extra == "all"
|
|
143
|
+
Requires-Dist: fastapi; extra == "all"
|
|
144
|
+
Requires-Dist: httpx; extra == "all"
|
|
140
145
|
Requires-Dist: openai; extra == "all"
|
|
141
|
-
Requires-Dist: torchaudio; extra == "all"
|
|
142
146
|
Requires-Dist: google-api-python-client; extra == "all"
|
|
147
|
+
Requires-Dist: logfire; extra == "all"
|
|
148
|
+
Requires-Dist: pyyaml; extra == "all"
|
|
149
|
+
Requires-Dist: sre_yield; extra == "all"
|
|
150
|
+
Requires-Dist: flet[all]; extra == "all"
|
|
143
151
|
Requires-Dist: dask[bag]; extra == "all"
|
|
144
|
-
Requires-Dist:
|
|
152
|
+
Requires-Dist: google-auth; extra == "all"
|
|
153
|
+
Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
|
|
154
|
+
Requires-Dist: flet-webview; extra == "all"
|
|
155
|
+
Requires-Dist: torchvision; extra == "all"
|
|
156
|
+
Requires-Dist: diskcache; extra == "all"
|
|
145
157
|
Requires-Dist: dnspython[doh]; extra == "all"
|
|
158
|
+
Requires-Dist: bokeh; extra == "all"
|
|
146
159
|
Requires-Dist: google-auth-httplib2; extra == "all"
|
|
147
|
-
Requires-Dist: fastapi; extra == "all"
|
|
148
|
-
Requires-Dist: regex; extra == "all"
|
|
149
|
-
Requires-Dist: google-auth-oauthlib; extra == "all"
|
|
150
160
|
Requires-Dist: peft; extra == "all"
|
|
151
|
-
Requires-Dist: flet[all]; extra == "all"
|
|
152
161
|
Requires-Dist: pymupdf; extra == "all"
|
|
153
|
-
Requires-Dist:
|
|
162
|
+
Requires-Dist: ollama; extra == "all"
|
|
163
|
+
Requires-Dist: semver; extra == "all"
|
|
154
164
|
Requires-Dist: filetype; extra == "all"
|
|
155
|
-
Requires-Dist:
|
|
156
|
-
Requires-Dist:
|
|
157
|
-
Requires-Dist: yamlscript; extra == "all"
|
|
158
|
-
Requires-Dist: faker; extra == "all"
|
|
159
|
-
Requires-Dist: sre_yield; extra == "all"
|
|
160
|
-
Requires-Dist: torchvision; extra == "all"
|
|
161
|
-
Requires-Dist: distributed; extra == "all"
|
|
162
|
-
Requires-Dist: json_repair; extra == "all"
|
|
163
|
-
Requires-Dist: flet-webview; extra == "all"
|
|
164
|
-
Requires-Dist: setuptools; extra == "all"
|
|
165
|
-
Requires-Dist: tabulate; extra == "all"
|
|
166
|
-
Requires-Dist: deepmerge; extra == "all"
|
|
167
|
-
Requires-Dist: logfire[httpx]; extra == "all"
|
|
165
|
+
Requires-Dist: html2text; extra == "all"
|
|
166
|
+
Requires-Dist: huggingface_hub; extra == "all"
|
|
168
167
|
Requires-Dist: flet-video; extra == "all"
|
|
169
|
-
Requires-Dist: logfire[fastapi]; extra == "all"
|
|
170
168
|
Requires-Dist: pymupdf4llm; extra == "all"
|
|
171
|
-
Requires-Dist: docker; extra == "all"
|
|
172
|
-
Requires-Dist: pydantic-settings; extra == "all"
|
|
173
169
|
Requires-Dist: Unidecode; extra == "all"
|
|
174
|
-
Requires-Dist:
|
|
175
|
-
Requires-Dist: pyyaml; extra == "all"
|
|
176
|
-
Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
|
|
177
|
-
Requires-Dist: openpyxl; extra == "all"
|
|
178
|
-
Requires-Dist: html2text; extra == "all"
|
|
179
|
-
Requires-Dist: pydevd-pycharm~=251.25410.159; extra == "all"
|
|
180
|
-
Requires-Dist: semver; extra == "all"
|
|
170
|
+
Requires-Dist: distributed; extra == "all"
|
|
181
171
|
Requires-Dist: tinynetrc; extra == "all"
|
|
182
|
-
Requires-Dist:
|
|
183
|
-
Requires-Dist:
|
|
172
|
+
Requires-Dist: torchaudio; extra == "all"
|
|
173
|
+
Requires-Dist: uvicorn[standard]; extra == "all"
|
|
174
|
+
Requires-Dist: openpyxl; extra == "all"
|
|
175
|
+
Requires-Dist: yamlscript; extra == "all"
|
|
176
|
+
Requires-Dist: appdirs; extra == "all"
|
|
177
|
+
Requires-Dist: sentence_transformers; extra == "all"
|
|
178
|
+
Requires-Dist: pydantic-settings; extra == "all"
|
|
179
|
+
Requires-Dist: logfire[httpx]; extra == "all"
|
|
180
|
+
Requires-Dist: tabulate; extra == "all"
|
|
181
|
+
Requires-Dist: logfire[fastapi]; extra == "all"
|
|
182
|
+
Requires-Dist: contexttimer; extra == "all"
|
|
183
|
+
Requires-Dist: faker; extra == "all"
|
|
184
184
|
Dynamic: author
|
|
185
185
|
Dynamic: author-email
|
|
186
186
|
Dynamic: description
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
fmtr/tools/__init__.py,sha256=
|
|
1
|
+
fmtr/tools/__init__.py,sha256=02EgGggVmiHs81W5gXGX49F53DZO956jGwrFUMHmUTo,5668
|
|
2
2
|
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
|
|
@@ -17,6 +17,7 @@ fmtr/tools/hfh_tools.py,sha256=DCDIWuWlhtmIGCtp9cLcOTTEw_4yN_NocLX8w5NZsbk,2384
|
|
|
17
17
|
fmtr/tools/html_tools.py,sha256=0nN8Nz5HtG9bXyApYfHSKEivLlxjsm3Gn6Mg2TK0brI,394
|
|
18
18
|
fmtr/tools/http_tools.py,sha256=RVwGrBNMyjfbpgAPCSnxEkXfSzXXWARb3ayq981ONQE,464
|
|
19
19
|
fmtr/tools/import_tools.py,sha256=XJmiWLukRncJAcaGReDn4jIz1_IpVBjfYCQHH1hIg7c,588
|
|
20
|
+
fmtr/tools/inherit_tools.py,sha256=gTGL4mRm5RsbFW76s25AbuAJ2vlymbh1c8Q4Hl2uJGU,646
|
|
20
21
|
fmtr/tools/inspection_tools.py,sha256=tLTRvzy9XVomQPi0dfnF_cgwc7KiDVZAr7gPTk4S_bQ,278
|
|
21
22
|
fmtr/tools/iterator_tools.py,sha256=xj5f0c7LgLK53dddRRRJxBoLaBzlZoQS3_GfmpDPMoo,1311
|
|
22
23
|
fmtr/tools/json_fix_tools.py,sha256=vNSlswVQnujPmKEqDjFJcO901mjMyv59q3awsT7mlhs,477
|
|
@@ -43,7 +44,7 @@ fmtr/tools/tabular_tools.py,sha256=tpIpZzYku1HcJrHZJL6BC39LmN3WUWVhFbK2N7nDVmE,1
|
|
|
43
44
|
fmtr/tools/tokenization_tools.py,sha256=me-IBzSLyNYejLybwjO9CNB6Mj2NYfKPaOVThXyaGNg,4268
|
|
44
45
|
fmtr/tools/tools.py,sha256=CAsApa1YwVdNE6H66Vjivs_mXYvOas3rh7fPELAnTpk,795
|
|
45
46
|
fmtr/tools/unicode_tools.py,sha256=yS_9wpu8ogNoiIL7s1G_8bETFFO_YQlo4LNPv1NLDeY,52
|
|
46
|
-
fmtr/tools/version,sha256=
|
|
47
|
+
fmtr/tools/version,sha256=hB4hPTrMm7kC-t2byIDYHLFsV_U0EwN4tgRl22GNPUI,6
|
|
47
48
|
fmtr/tools/yaml_tools.py,sha256=Bhhyd6GQVKO72Lp8ky7bAUjIB_65Hdh0Q45SKIEe6S8,1901
|
|
48
49
|
fmtr/tools/ai_tools/__init__.py,sha256=JZrLuOFNV1A3wvJgonxOgz_4WS-7MfCuowGWA5uYCjs,372
|
|
49
50
|
fmtr/tools/ai_tools/agentic_tools.py,sha256=acSEPFS-aguDXanWGs3fAAlRyJSYPZW7L-Kb2qDLm-I,4300
|
|
@@ -78,9 +79,9 @@ fmtr/tools/tests/test_path.py,sha256=AkZQa6_8BQ-VaCyL_J-iKmdf2ZaM-xFYR37Kun3k4_g
|
|
|
78
79
|
fmtr/tools/tests/test_yaml.py,sha256=jc0TwwKu9eC0LvFGNMERdgBue591xwLxYXFbtsRwXVM,287
|
|
79
80
|
fmtr/tools/version_tools/__init__.py,sha256=pg4iLtmIr5HtyEW_j0fMFoIdzqi_w9xH8-grQaXLB28,318
|
|
80
81
|
fmtr/tools/version_tools/version_tools.py,sha256=Hcc6yferZS1hHbugRTdiHhSNmXEEG0hjCiTTXKna-YY,1127
|
|
81
|
-
fmtr_tools-1.3.
|
|
82
|
-
fmtr_tools-1.3.
|
|
83
|
-
fmtr_tools-1.3.
|
|
84
|
-
fmtr_tools-1.3.
|
|
85
|
-
fmtr_tools-1.3.
|
|
86
|
-
fmtr_tools-1.3.
|
|
82
|
+
fmtr_tools-1.3.28.dist-info/licenses/LICENSE,sha256=FW9aa6vVN5IjRQWLT43hs4_koYSmpcbIovlKeAJ0_cI,10757
|
|
83
|
+
fmtr_tools-1.3.28.dist-info/METADATA,sha256=f4cjWEN5Vu2NGLtPGmdzwBZWEiMcyI2m1n0P9Nqm72o,15938
|
|
84
|
+
fmtr_tools-1.3.28.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
85
|
+
fmtr_tools-1.3.28.dist-info/entry_points.txt,sha256=h-r__Xh5njtFqreMLg6cGuTFS4Qh-QqJPU1HB-_BS-Q,357
|
|
86
|
+
fmtr_tools-1.3.28.dist-info/top_level.txt,sha256=LXem9xCgNOD72tE2gRKESdiQTL902mfFkwWb6-dlwEE,5
|
|
87
|
+
fmtr_tools-1.3.28.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|