fmtr.tools 1.3.74__py3-none-any.whl → 1.3.76__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 +4 -1
- fmtr/tools/data_modelling_tools.py +31 -1
- fmtr/tools/database_tools/document.py +2 -2
- fmtr/tools/interface_tools/interface_tools.py +0 -8
- fmtr/tools/settings_tools.py +4 -2
- fmtr/tools/setup_tools/setup_tools.py +29 -5
- fmtr/tools/version +1 -1
- {fmtr_tools-1.3.74.dist-info → fmtr_tools-1.3.76.dist-info}/METADATA +49 -52
- {fmtr_tools-1.3.74.dist-info → fmtr_tools-1.3.76.dist-info}/RECORD +13 -13
- {fmtr_tools-1.3.74.dist-info → fmtr_tools-1.3.76.dist-info}/WHEEL +0 -0
- {fmtr_tools-1.3.74.dist-info → fmtr_tools-1.3.76.dist-info}/entry_points.txt +0 -0
- {fmtr_tools-1.3.74.dist-info → fmtr_tools-1.3.76.dist-info}/licenses/LICENSE +0 -0
- {fmtr_tools-1.3.74.dist-info → fmtr_tools-1.3.76.dist-info}/top_level.txt +0 -0
fmtr/tools/constants.py
CHANGED
|
@@ -46,7 +46,10 @@ class Constants:
|
|
|
46
46
|
FILENAME_VERSION = 'version'
|
|
47
47
|
DIR_NAME_HF = 'hf'
|
|
48
48
|
|
|
49
|
-
|
|
49
|
+
ENTRYPOINT = 'entrypoint'
|
|
50
|
+
ENTRYPOINTS_DIR = f'{ENTRYPOINT}s'
|
|
51
|
+
ENTRYPOINT_FILE = f'{ENTRYPOINT}.py'
|
|
52
|
+
|
|
50
53
|
PACKAGE_EXCLUDE_DIRS = {'data', 'build', 'dist', '.*', '*egg-info*'}
|
|
51
54
|
INIT_FILENAME = '__init__.py'
|
|
52
55
|
|
|
@@ -182,8 +182,38 @@ class MixinFromJson:
|
|
|
182
182
|
return self
|
|
183
183
|
|
|
184
184
|
|
|
185
|
+
class CliRunMixin:
|
|
186
|
+
"""
|
|
187
|
+
|
|
188
|
+
Mixin only so that it can also be used with Pydantic Settings.
|
|
189
|
+
|
|
190
|
+
TODO Ideally, the run method would be defined on dm.Base and the settings base would just inherit like set.Base(BaseSettings, dm.Base), but this isn't yet tested/could break Fields.
|
|
191
|
+
|
|
192
|
+
"""
|
|
193
|
+
|
|
194
|
+
def run(self):
|
|
195
|
+
"""
|
|
196
|
+
|
|
197
|
+
Behaviour when run as a CLI command, i.e. via Pydantic Settings. Run any subcommands then exit.
|
|
198
|
+
|
|
199
|
+
"""
|
|
200
|
+
|
|
201
|
+
from pydantic_settings import get_subcommand
|
|
202
|
+
|
|
203
|
+
command = get_subcommand(self, is_required=False, cli_exit_on_error=False)
|
|
204
|
+
|
|
205
|
+
if not command:
|
|
206
|
+
return
|
|
207
|
+
|
|
208
|
+
result = command.run()
|
|
209
|
+
if inspect.isawaitable(result):
|
|
210
|
+
import asyncio
|
|
211
|
+
result = asyncio.run(result)
|
|
212
|
+
|
|
213
|
+
raise SystemExit(result)
|
|
214
|
+
|
|
185
215
|
|
|
186
|
-
class Base(BaseModel, MixinFromJson):
|
|
216
|
+
class Base(BaseModel, MixinFromJson, CliRunMixin):
|
|
187
217
|
"""
|
|
188
218
|
|
|
189
219
|
Base model allowing model definition via a list of custom Field objects.
|
|
@@ -3,7 +3,7 @@ from typing import List
|
|
|
3
3
|
|
|
4
4
|
import beanie
|
|
5
5
|
from beanie.odm import actions
|
|
6
|
-
from
|
|
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 =
|
|
37
|
+
self.client = AsyncMongoClient(self.uri, tz_aware=True)
|
|
38
38
|
self.db = self.client[self.name]
|
|
39
39
|
|
|
40
40
|
@cached_property
|
fmtr/tools/settings_tools.py
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
from pydantic_settings import BaseSettings, PydanticBaseSettingsSource, YamlConfigSettingsSource, EnvSettingsSource, CliSettingsSource
|
|
2
1
|
from typing import ClassVar, Any
|
|
3
2
|
|
|
3
|
+
from pydantic_settings import BaseSettings, PydanticBaseSettingsSource, YamlConfigSettingsSource, EnvSettingsSource, CliSettingsSource
|
|
4
|
+
|
|
5
|
+
from fmtr.tools.data_modelling_tools import CliRunMixin
|
|
4
6
|
from fmtr.tools.path_tools import PackagePaths, Path
|
|
5
7
|
|
|
6
8
|
|
|
@@ -21,7 +23,7 @@ class YamlScriptConfigSettingsSource(YamlConfigSettingsSource):
|
|
|
21
23
|
return data
|
|
22
24
|
|
|
23
25
|
|
|
24
|
-
class Base(BaseSettings):
|
|
26
|
+
class Base(BaseSettings, CliRunMixin):
|
|
25
27
|
"""
|
|
26
28
|
|
|
27
29
|
Base class for settings configuration using Pydantic BaseSettings.
|
|
@@ -88,6 +88,15 @@ class SetupPaths(FromCallerMixin):
|
|
|
88
88
|
return False
|
|
89
89
|
return org
|
|
90
90
|
|
|
91
|
+
@property
|
|
92
|
+
def entrypoint(self) -> Path:
|
|
93
|
+
"""
|
|
94
|
+
|
|
95
|
+
Path of base entrypoint module.
|
|
96
|
+
|
|
97
|
+
"""
|
|
98
|
+
return self.path / Constants.ENTRYPOINT_FILE
|
|
99
|
+
|
|
91
100
|
@property
|
|
92
101
|
def entrypoints(self) -> Path:
|
|
93
102
|
"""
|
|
@@ -182,23 +191,38 @@ class Setup(FromCallerMixin):
|
|
|
182
191
|
def console_scripts(self) -> List[str]:
|
|
183
192
|
"""
|
|
184
193
|
|
|
185
|
-
Generate console scripts for any modules in
|
|
194
|
+
Generate console scripts for the `entrypoint` module - and/or any modules in `entrypoints` sub-package.
|
|
186
195
|
|
|
187
196
|
"""
|
|
188
197
|
|
|
189
198
|
if not self.paths.entrypoints.exists():
|
|
190
|
-
|
|
199
|
+
paths_mods = []
|
|
200
|
+
else:
|
|
201
|
+
paths_mods = list(self.paths.entrypoints.iterdir())
|
|
191
202
|
|
|
192
|
-
names_mods = [path.stem for path in
|
|
193
|
-
command_prefix = self.name.replace('.', self.ENTRYPOINT_COMMAND_SEP)
|
|
203
|
+
names_mods = [path.stem for path in paths_mods if path.is_file() and path.name != Constants.INIT_FILENAME]
|
|
194
204
|
command_suffixes = [name_mod.replace(self.ENTRYPOINT_FUNCTION_SEP, self.ENTRYPOINT_COMMAND_SEP) for name_mod in names_mods]
|
|
195
|
-
commands = [f'{
|
|
205
|
+
commands = [f'{self.name_command}-{command_suffix}' for command_suffix in command_suffixes]
|
|
196
206
|
paths = [f'{self.name}.{Constants.ENTRYPOINTS_DIR}.{name_mod}:{self.ENTRYPOINT_FUNC_NAME}' for name_mod in names_mods]
|
|
197
207
|
|
|
208
|
+
if self.paths.entrypoint.exists():
|
|
209
|
+
commands.append(self.name_command)
|
|
210
|
+
path = f'{self.name}.{self.paths.entrypoint.stem}:{self.ENTRYPOINT_FUNC_NAME}'
|
|
211
|
+
paths.append(path)
|
|
212
|
+
|
|
198
213
|
console_scripts = [f'{command} = {path}' for command, path in zip(commands, paths)]
|
|
199
214
|
|
|
200
215
|
return console_scripts
|
|
201
216
|
|
|
217
|
+
@cached_property
|
|
218
|
+
def name_command(self) -> str:
|
|
219
|
+
"""
|
|
220
|
+
|
|
221
|
+
Name as a command, e.g. `fmtr-tools`
|
|
222
|
+
|
|
223
|
+
"""
|
|
224
|
+
return self.name.replace('.', self.ENTRYPOINT_COMMAND_SEP)
|
|
225
|
+
|
|
202
226
|
@property
|
|
203
227
|
def name(self) -> str:
|
|
204
228
|
"""
|
fmtr/tools/version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.3.
|
|
1
|
+
1.3.76
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fmtr.tools
|
|
3
|
-
Version: 1.3.
|
|
3
|
+
Version: 1.3.76
|
|
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
|
|
@@ -21,7 +21,6 @@ Requires-Dist: pyyaml; extra == "dev"
|
|
|
21
21
|
Requires-Dist: yamlscript; extra == "dev"
|
|
22
22
|
Requires-Dist: pyyaml; extra == "dev"
|
|
23
23
|
Requires-Dist: beanie[odm]; extra == "dev"
|
|
24
|
-
Requires-Dist: motor; extra == "dev"
|
|
25
24
|
Provides-Extra: test
|
|
26
25
|
Requires-Dist: pytest-cov; extra == "test"
|
|
27
26
|
Provides-Extra: yaml
|
|
@@ -166,70 +165,68 @@ Requires-Dist: playwright; extra == "browsers"
|
|
|
166
165
|
Provides-Extra: db
|
|
167
166
|
Provides-Extra: db-document
|
|
168
167
|
Requires-Dist: beanie[odm]; extra == "db-document"
|
|
169
|
-
Requires-Dist: motor; extra == "db-document"
|
|
170
168
|
Provides-Extra: all
|
|
171
|
-
Requires-Dist: google-auth-httplib2; extra == "all"
|
|
172
|
-
Requires-Dist: pydantic; extra == "all"
|
|
173
|
-
Requires-Dist: openpyxl; extra == "all"
|
|
174
|
-
Requires-Dist: regex; extra == "all"
|
|
175
|
-
Requires-Dist: html2text; extra == "all"
|
|
176
|
-
Requires-Dist: google-auth; extra == "all"
|
|
177
|
-
Requires-Dist: deepdiff; extra == "all"
|
|
178
|
-
Requires-Dist: google-auth-oauthlib; extra == "all"
|
|
179
|
-
Requires-Dist: distributed; extra == "all"
|
|
180
|
-
Requires-Dist: bokeh; extra == "all"
|
|
181
|
-
Requires-Dist: Unidecode; extra == "all"
|
|
182
|
-
Requires-Dist: dask[bag]; extra == "all"
|
|
183
|
-
Requires-Dist: dnspython[doh]; extra == "all"
|
|
184
|
-
Requires-Dist: setuptools; extra == "all"
|
|
185
|
-
Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
|
|
186
|
-
Requires-Dist: python-on-whales; extra == "all"
|
|
187
|
-
Requires-Dist: pycountry; extra == "all"
|
|
188
169
|
Requires-Dist: pytest-cov; extra == "all"
|
|
189
|
-
Requires-Dist: httpx; extra == "all"
|
|
190
170
|
Requires-Dist: peft; extra == "all"
|
|
191
|
-
Requires-Dist:
|
|
171
|
+
Requires-Dist: openpyxl; extra == "all"
|
|
172
|
+
Requires-Dist: pymupdf; extra == "all"
|
|
192
173
|
Requires-Dist: pydevd-pycharm~=251.25410.159; extra == "all"
|
|
193
|
-
Requires-Dist: flet-video; extra == "all"
|
|
194
|
-
Requires-Dist: fastapi; extra == "all"
|
|
195
|
-
Requires-Dist: openai; extra == "all"
|
|
196
|
-
Requires-Dist: sre_yield; extra == "all"
|
|
197
174
|
Requires-Dist: tinynetrc; extra == "all"
|
|
198
|
-
Requires-Dist:
|
|
199
|
-
Requires-Dist:
|
|
175
|
+
Requires-Dist: torchvision; extra == "all"
|
|
176
|
+
Requires-Dist: google-auth-httplib2; extra == "all"
|
|
200
177
|
Requires-Dist: logfire[fastapi]; extra == "all"
|
|
201
|
-
Requires-Dist:
|
|
202
|
-
Requires-Dist: yamlscript; extra == "all"
|
|
203
|
-
Requires-Dist: huggingface_hub; extra == "all"
|
|
204
|
-
Requires-Dist: pydantic-settings; extra == "all"
|
|
178
|
+
Requires-Dist: uvicorn[standard]; extra == "all"
|
|
205
179
|
Requires-Dist: pandas; extra == "all"
|
|
206
|
-
Requires-Dist: sentence_transformers; extra == "all"
|
|
207
|
-
Requires-Dist: flet[all]; extra == "all"
|
|
208
|
-
Requires-Dist: appdirs; extra == "all"
|
|
209
|
-
Requires-Dist: faker; extra == "all"
|
|
210
|
-
Requires-Dist: torchaudio; extra == "all"
|
|
211
|
-
Requires-Dist: logfire[httpx]; extra == "all"
|
|
212
|
-
Requires-Dist: playwright; extra == "all"
|
|
213
|
-
Requires-Dist: beanie[odm]; extra == "all"
|
|
214
|
-
Requires-Dist: cachetools; extra == "all"
|
|
215
|
-
Requires-Dist: torchvision; extra == "all"
|
|
216
|
-
Requires-Dist: logfire; extra == "all"
|
|
217
180
|
Requires-Dist: transformers[sentencepiece]; extra == "all"
|
|
218
|
-
Requires-Dist:
|
|
219
|
-
Requires-Dist:
|
|
220
|
-
Requires-Dist: ollama; extra == "all"
|
|
181
|
+
Requires-Dist: google-auth-oauthlib; extra == "all"
|
|
182
|
+
Requires-Dist: flet[all]; extra == "all"
|
|
221
183
|
Requires-Dist: pyyaml; extra == "all"
|
|
222
|
-
Requires-Dist:
|
|
223
|
-
Requires-Dist: uvicorn[standard]; extra == "all"
|
|
184
|
+
Requires-Dist: tokenizers; extra == "all"
|
|
224
185
|
Requires-Dist: tabulate; extra == "all"
|
|
225
|
-
Requires-Dist:
|
|
186
|
+
Requires-Dist: dask[bag]; extra == "all"
|
|
187
|
+
Requires-Dist: pydantic-settings; extra == "all"
|
|
188
|
+
Requires-Dist: httpx; extra == "all"
|
|
226
189
|
Requires-Dist: google-api-python-client; extra == "all"
|
|
227
|
-
Requires-Dist:
|
|
228
|
-
Requires-Dist:
|
|
190
|
+
Requires-Dist: flet-webview; extra == "all"
|
|
191
|
+
Requires-Dist: yamlscript; extra == "all"
|
|
192
|
+
Requires-Dist: semver; extra == "all"
|
|
193
|
+
Requires-Dist: json_repair; extra == "all"
|
|
194
|
+
Requires-Dist: distributed; extra == "all"
|
|
229
195
|
Requires-Dist: diskcache; extra == "all"
|
|
230
|
-
Requires-Dist:
|
|
196
|
+
Requires-Dist: contexttimer; extra == "all"
|
|
197
|
+
Requires-Dist: ollama; extra == "all"
|
|
198
|
+
Requires-Dist: appdirs; extra == "all"
|
|
199
|
+
Requires-Dist: google-auth; extra == "all"
|
|
200
|
+
Requires-Dist: pycountry; extra == "all"
|
|
201
|
+
Requires-Dist: deepmerge; extra == "all"
|
|
202
|
+
Requires-Dist: pydantic-extra-types; extra == "all"
|
|
203
|
+
Requires-Dist: python-on-whales; extra == "all"
|
|
204
|
+
Requires-Dist: regex; extra == "all"
|
|
205
|
+
Requires-Dist: flet-video; extra == "all"
|
|
206
|
+
Requires-Dist: sentence_transformers; extra == "all"
|
|
207
|
+
Requires-Dist: openai; extra == "all"
|
|
208
|
+
Requires-Dist: deepdiff; extra == "all"
|
|
209
|
+
Requires-Dist: fastapi; extra == "all"
|
|
210
|
+
Requires-Dist: bokeh; extra == "all"
|
|
211
|
+
Requires-Dist: logfire; extra == "all"
|
|
212
|
+
Requires-Dist: beanie[odm]; extra == "all"
|
|
213
|
+
Requires-Dist: pymupdf4llm; extra == "all"
|
|
214
|
+
Requires-Dist: dnspython[doh]; extra == "all"
|
|
215
|
+
Requires-Dist: setuptools; extra == "all"
|
|
216
|
+
Requires-Dist: playwright; extra == "all"
|
|
231
217
|
Requires-Dist: filetype; extra == "all"
|
|
218
|
+
Requires-Dist: pydantic; extra == "all"
|
|
219
|
+
Requires-Dist: sre_yield; extra == "all"
|
|
220
|
+
Requires-Dist: huggingface_hub; extra == "all"
|
|
221
|
+
Requires-Dist: Unidecode; extra == "all"
|
|
222
|
+
Requires-Dist: faker; extra == "all"
|
|
223
|
+
Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
|
|
224
|
+
Requires-Dist: odfpy; extra == "all"
|
|
225
|
+
Requires-Dist: logfire[httpx]; extra == "all"
|
|
226
|
+
Requires-Dist: html2text; extra == "all"
|
|
232
227
|
Requires-Dist: httpx_retries; extra == "all"
|
|
228
|
+
Requires-Dist: torchaudio; extra == "all"
|
|
229
|
+
Requires-Dist: cachetools; extra == "all"
|
|
233
230
|
Dynamic: author
|
|
234
231
|
Dynamic: author-email
|
|
235
232
|
Dynamic: description
|
|
@@ -3,9 +3,9 @@ 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=h85mq2JuOsHj-TUKnV0rYTddWFRSRAd4yLyCkpeGjX0,1887
|
|
7
7
|
fmtr/tools/context_tools.py,sha256=4UvIHYgLqAh7dXMX9EBrLEpYp81qfzhSVrkffOSAoGA,350
|
|
8
|
-
fmtr/tools/data_modelling_tools.py,sha256=
|
|
8
|
+
fmtr/tools/data_modelling_tools.py,sha256=c703EhL2ZIj5iN0wjuohakvUnElRblQhvFSLyfRTWwA,7416
|
|
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
|
|
@@ -38,21 +38,21 @@ fmtr/tools/process_tools.py,sha256=Ysh5Dk2QFBhXQerArjKdt7xZd3JrN5Ho02AaOjH0Nnw,1
|
|
|
38
38
|
fmtr/tools/profiling_tools.py,sha256=jpXVjaNKPydTasEQVNXvxzGtMhXPit08AnJddkU8uIc,46
|
|
39
39
|
fmtr/tools/random_tools.py,sha256=4VlQdk5THbR8ka4pZaLbk_ZO_4yy6PF_lHZes_rgenY,2223
|
|
40
40
|
fmtr/tools/semantic_tools.py,sha256=cxY9NSAHWj4nEc6Oj4qA1omR3dWbl2OuH7_PkINc6_E,1386
|
|
41
|
-
fmtr/tools/settings_tools.py,sha256=
|
|
41
|
+
fmtr/tools/settings_tools.py,sha256=Uq1-Cdzz83I4dmr62K0L4xFUsUqp0uDI9SeYCa6EHc0,2426
|
|
42
42
|
fmtr/tools/spaces_tools.py,sha256=D_he3mve6DruB3OPS6QyzqD05ChHnRTb4buViKPe7To,1099
|
|
43
43
|
fmtr/tools/string_tools.py,sha256=ZKHBrl2tui9VjWt7qit4UWbvpuzY6zp5ytiQvhlJVG4,5610
|
|
44
44
|
fmtr/tools/tabular_tools.py,sha256=mw6vOij1Ch-pVAyHMPtm5zj__ULZN_TKeBYOfj33wFM,1634
|
|
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=
|
|
48
|
+
fmtr/tools/version,sha256=NsbF2x120gFOktRo0UW0oi60P8h7eq7HQIUtLO66Zy8,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=
|
|
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,13 +68,13 @@ 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=
|
|
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
|
|
75
75
|
fmtr/tools/path_tools/type_path_tools.py,sha256=Zgs-ek-GXRKDIlVDGdg3muB0PIxTg2ba0NeHw6y8FWQ,40
|
|
76
76
|
fmtr/tools/setup_tools/__init__.py,sha256=Ro_Qj3Xndv8Z68DeWPI7c6X-aWKsdDm0KcX_k1xDhgE,394
|
|
77
|
-
fmtr/tools/setup_tools/setup_tools.py,sha256=
|
|
77
|
+
fmtr/tools/setup_tools/setup_tools.py,sha256=ykW7rAv6ixfXdmLKcPgotenEQ94-NSsdFnDUZqgRbpI,10956
|
|
78
78
|
fmtr/tools/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
79
79
|
fmtr/tools/tests/conftest.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
80
80
|
fmtr/tools/tests/helpers.py,sha256=N5sf9YoZV93a7tf_UxpLeyQ9vp6Ec0teNIimFDvc054,1091
|
|
@@ -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.76.dist-info/licenses/LICENSE,sha256=FW9aa6vVN5IjRQWLT43hs4_koYSmpcbIovlKeAJ0_cI,10757
|
|
89
|
+
fmtr_tools-1.3.76.dist-info/METADATA,sha256=qceqhfyIUdA5X0mZdsbNpOg2f59Mk_W0zxEiulcydIs,17916
|
|
90
|
+
fmtr_tools-1.3.76.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
91
|
+
fmtr_tools-1.3.76.dist-info/entry_points.txt,sha256=h-r__Xh5njtFqreMLg6cGuTFS4Qh-QqJPU1HB-_BS-Q,357
|
|
92
|
+
fmtr_tools-1.3.76.dist-info/top_level.txt,sha256=LXem9xCgNOD72tE2gRKESdiQTL902mfFkwWb6-dlwEE,5
|
|
93
|
+
fmtr_tools-1.3.76.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|