fmtr.tools 1.1.20__tar.gz → 1.1.21__tar.gz
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-1.1.20 → fmtr_tools-1.1.21}/PKG-INFO +42 -42
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/__init__.py +2 -1
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/path_tools/path_tools.py +8 -2
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/setup_tools.py +21 -32
- fmtr_tools-1.1.21/fmtr/tools/version +1 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr.tools.egg-info/PKG-INFO +42 -42
- fmtr_tools-1.1.20/fmtr/tools/version +0 -1
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/LICENSE +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/README.md +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/ai_tools/__init__.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/ai_tools/agentic_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/ai_tools/inference_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/api_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/async_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/augmentation_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/caching_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/console_script_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/constants.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/data_modelling_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/dataclass_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/datatype_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/debugging_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/dns_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/docker_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/environment_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/function_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/google_api_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/hash_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/hfh_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/html_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/import_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/inspection_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/interface_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/iterator_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/json_fix_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/json_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/logging_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/merging_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/metric_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/name_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/netrc_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/openai_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/packaging_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/parallel_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/path_tools/__init__.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/path_tools/app_path_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/path_tools/type_path_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/pattern_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/pdf_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/platform_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/process_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/profiling_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/random_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/semantic_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/settings_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/spaces_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/string_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/tabular_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/tests/__init__.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/tests/conftest.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/tests/helpers.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/tests/test_datatype.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/tests/test_environment.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/tests/test_json.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/tests/test_path.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/tests/test_yaml.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/tokenization_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/unicode_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/version_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr/tools/yaml_tools.py +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr.tools.egg-info/SOURCES.txt +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr.tools.egg-info/dependency_links.txt +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr.tools.egg-info/entry_points.txt +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr.tools.egg-info/requires.txt +41 -41
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/fmtr.tools.egg-info/top_level.txt +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/setup.cfg +0 -0
- {fmtr_tools-1.1.20 → fmtr_tools-1.1.21}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fmtr.tools
|
|
3
|
-
Version: 1.1.
|
|
3
|
+
Version: 1.1.21
|
|
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
|
|
@@ -9,60 +9,60 @@ License: Copyright © 2025 Frontmatter. All rights reserved.
|
|
|
9
9
|
Description-Content-Type: text/markdown
|
|
10
10
|
License-File: LICENSE
|
|
11
11
|
Provides-Extra: test
|
|
12
|
-
Requires-Dist: yamlscript; extra == "test"
|
|
13
|
-
Requires-Dist: semver; extra == "test"
|
|
14
|
-
Requires-Dist: setuptools; extra == "test"
|
|
15
|
-
Requires-Dist: deepmerge; extra == "test"
|
|
16
|
-
Requires-Dist: google-auth-oauthlib; extra == "test"
|
|
17
|
-
Requires-Dist: html2text; extra == "test"
|
|
18
|
-
Requires-Dist: pydantic; extra == "test"
|
|
19
|
-
Requires-Dist: logfire[httpx]; extra == "test"
|
|
20
|
-
Requires-Dist: json_repair; extra == "test"
|
|
21
|
-
Requires-Dist: sre_yield; extra == "test"
|
|
22
|
-
Requires-Dist: pydantic-settings; extra == "test"
|
|
23
|
-
Requires-Dist: google-auth-httplib2; extra == "test"
|
|
24
12
|
Requires-Dist: tinynetrc; extra == "test"
|
|
25
|
-
Requires-Dist:
|
|
13
|
+
Requires-Dist: fastapi; extra == "test"
|
|
14
|
+
Requires-Dist: httpx_retries; extra == "test"
|
|
15
|
+
Requires-Dist: setuptools; extra == "test"
|
|
16
|
+
Requires-Dist: filetype; extra == "test"
|
|
17
|
+
Requires-Dist: faker; extra == "test"
|
|
26
18
|
Requires-Dist: pydevd-pycharm; extra == "test"
|
|
27
|
-
Requires-Dist: contexttimer; extra == "test"
|
|
28
|
-
Requires-Dist: pymupdf; extra == "test"
|
|
29
|
-
Requires-Dist: ollama; extra == "test"
|
|
30
|
-
Requires-Dist: dnspython[doh]; extra == "test"
|
|
31
19
|
Requires-Dist: pyyaml; extra == "test"
|
|
32
|
-
Requires-Dist: huggingface_hub; extra == "test"
|
|
33
20
|
Requires-Dist: logfire[fastapi]; extra == "test"
|
|
34
|
-
Requires-Dist:
|
|
35
|
-
Requires-Dist:
|
|
36
|
-
Requires-Dist:
|
|
37
|
-
Requires-Dist: pytest-cov; extra == "test"
|
|
38
|
-
Requires-Dist: torchaudio; extra == "test"
|
|
39
|
-
Requires-Dist: flet-video; extra == "test"
|
|
40
|
-
Requires-Dist: httpx_retries; extra == "test"
|
|
41
|
-
Requires-Dist: faker; extra == "test"
|
|
42
|
-
Requires-Dist: pymupdf4llm; extra == "test"
|
|
43
|
-
Requires-Dist: filetype; extra == "test"
|
|
44
|
-
Requires-Dist: uvicorn[standard]; extra == "test"
|
|
45
|
-
Requires-Dist: peft; extra == "test"
|
|
46
|
-
Requires-Dist: logfire; extra == "test"
|
|
21
|
+
Requires-Dist: google-auth-httplib2; extra == "test"
|
|
22
|
+
Requires-Dist: openai; extra == "test"
|
|
23
|
+
Requires-Dist: diskcache; extra == "test"
|
|
47
24
|
Requires-Dist: bokeh; extra == "test"
|
|
48
|
-
Requires-Dist: pydantic-ai[logfire,openai]; extra == "test"
|
|
49
|
-
Requires-Dist: regex; extra == "test"
|
|
50
|
-
Requires-Dist: tabulate; extra == "test"
|
|
51
25
|
Requires-Dist: sentence_transformers; extra == "test"
|
|
52
|
-
Requires-Dist:
|
|
26
|
+
Requires-Dist: pymupdf4llm; extra == "test"
|
|
53
27
|
Requires-Dist: distributed; extra == "test"
|
|
28
|
+
Requires-Dist: huggingface_hub; extra == "test"
|
|
29
|
+
Requires-Dist: deepmerge; extra == "test"
|
|
30
|
+
Requires-Dist: transformers[sentencepiece]; extra == "test"
|
|
31
|
+
Requires-Dist: google-auth-oauthlib; extra == "test"
|
|
32
|
+
Requires-Dist: logfire[httpx]; extra == "test"
|
|
33
|
+
Requires-Dist: pydantic; extra == "test"
|
|
54
34
|
Requires-Dist: dask[bag]; extra == "test"
|
|
55
|
-
Requires-Dist: appdirs; extra == "test"
|
|
56
35
|
Requires-Dist: Unidecode; extra == "test"
|
|
57
36
|
Requires-Dist: docker; extra == "test"
|
|
58
|
-
Requires-Dist: httpx; extra == "test"
|
|
59
|
-
Requires-Dist: diskcache; extra == "test"
|
|
60
|
-
Requires-Dist: pandas; extra == "test"
|
|
61
37
|
Requires-Dist: google-auth; extra == "test"
|
|
62
|
-
Requires-Dist:
|
|
63
|
-
Requires-Dist:
|
|
38
|
+
Requires-Dist: contexttimer; extra == "test"
|
|
39
|
+
Requires-Dist: peft; extra == "test"
|
|
40
|
+
Requires-Dist: semver; extra == "test"
|
|
41
|
+
Requires-Dist: regex; extra == "test"
|
|
42
|
+
Requires-Dist: logfire; extra == "test"
|
|
43
|
+
Requires-Dist: pytest-cov; extra == "test"
|
|
44
|
+
Requires-Dist: yamlscript; extra == "test"
|
|
45
|
+
Requires-Dist: pandas; extra == "test"
|
|
46
|
+
Requires-Dist: ollama; extra == "test"
|
|
47
|
+
Requires-Dist: openpyxl; extra == "test"
|
|
48
|
+
Requires-Dist: appdirs; extra == "test"
|
|
49
|
+
Requires-Dist: html2text; extra == "test"
|
|
50
|
+
Requires-Dist: flet-video; extra == "test"
|
|
51
|
+
Requires-Dist: flet[all]; extra == "test"
|
|
52
|
+
Requires-Dist: google-api-python-client; extra == "test"
|
|
53
|
+
Requires-Dist: dnspython[doh]; extra == "test"
|
|
54
|
+
Requires-Dist: pymupdf; extra == "test"
|
|
55
|
+
Requires-Dist: sre_yield; extra == "test"
|
|
56
|
+
Requires-Dist: pydantic-settings; extra == "test"
|
|
57
|
+
Requires-Dist: tabulate; extra == "test"
|
|
64
58
|
Requires-Dist: flet-webview; extra == "test"
|
|
59
|
+
Requires-Dist: httpx; extra == "test"
|
|
60
|
+
Requires-Dist: tokenizers; extra == "test"
|
|
65
61
|
Requires-Dist: torchvision; extra == "test"
|
|
62
|
+
Requires-Dist: json_repair; extra == "test"
|
|
63
|
+
Requires-Dist: pydantic-ai[logfire,openai]; extra == "test"
|
|
64
|
+
Requires-Dist: torchaudio; extra == "test"
|
|
65
|
+
Requires-Dist: uvicorn[standard]; extra == "test"
|
|
66
66
|
Provides-Extra: yaml
|
|
67
67
|
Requires-Dist: yamlscript; extra == "yaml"
|
|
68
68
|
Requires-Dist: pyyaml; extra == "yaml"
|
|
@@ -177,5 +177,6 @@ except ImportError as exception:
|
|
|
177
177
|
|
|
178
178
|
try:
|
|
179
179
|
from fmtr.tools import setup_tools as setup
|
|
180
|
+
from fmtr.tools.setup_tools import Setup, SetupPaths, Dependencies
|
|
180
181
|
except ImportError as exception:
|
|
181
|
-
setup = MissingExtraMockModule('setup', exception)
|
|
182
|
+
setup = Setup = SetupPaths = Dependencies = MissingExtraMockModule('setup', exception)
|
|
@@ -177,8 +177,14 @@ class Path(type(Path())):
|
|
|
177
177
|
kind = path.guess(str(self.absolute()))
|
|
178
178
|
return kind
|
|
179
179
|
|
|
180
|
+
@property
|
|
181
|
+
def children(self):
|
|
182
|
+
if not self.is_dir():
|
|
183
|
+
return None
|
|
184
|
+
return sorted(self.iterdir(), key=lambda x: x.is_dir(), reverse=True)
|
|
185
|
+
|
|
180
186
|
|
|
181
|
-
class
|
|
187
|
+
class FromCallerMixin:
|
|
182
188
|
"""
|
|
183
189
|
|
|
184
190
|
|
|
@@ -190,7 +196,7 @@ class PathsBase:
|
|
|
190
196
|
return path
|
|
191
197
|
|
|
192
198
|
|
|
193
|
-
class PackagePaths(
|
|
199
|
+
class PackagePaths(FromCallerMixin):
|
|
194
200
|
"""
|
|
195
201
|
|
|
196
202
|
Canonical paths for a package.
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
from datetime import datetime
|
|
2
|
+
from fnmatch import fnmatch
|
|
2
3
|
from functools import cached_property
|
|
3
4
|
from itertools import chain
|
|
4
5
|
from typing import List, Dict
|
|
@@ -7,17 +8,17 @@ from setuptools import find_namespace_packages, find_packages, setup
|
|
|
7
8
|
|
|
8
9
|
from fmtr.tools.constants import Constants
|
|
9
10
|
from fmtr.tools.path_tools import Path
|
|
10
|
-
from fmtr.tools.path_tools.path_tools import
|
|
11
|
+
from fmtr.tools.path_tools.path_tools import FromCallerMixin
|
|
11
12
|
|
|
12
13
|
|
|
13
|
-
class SetupPaths(
|
|
14
|
+
class SetupPaths(FromCallerMixin):
|
|
14
15
|
"""
|
|
15
16
|
|
|
16
17
|
Canonical paths for a package.
|
|
17
18
|
|
|
18
19
|
"""
|
|
19
20
|
|
|
20
|
-
SKIP_DIRS = {'data'}
|
|
21
|
+
SKIP_DIRS = {'data', 'build', 'dist', '.*', '*egg-info*'}
|
|
21
22
|
|
|
22
23
|
def __init__(self, path=None):
|
|
23
24
|
|
|
@@ -51,18 +52,13 @@ class SetupPaths(PathsBase):
|
|
|
51
52
|
|
|
52
53
|
directories = [
|
|
53
54
|
dir for dir in self.repo.iterdir()
|
|
54
|
-
if
|
|
55
|
-
|
|
56
|
-
dir.is_dir()
|
|
57
|
-
and not dir.name.startswith('.')
|
|
58
|
-
and dir.name not in self.SKIP_DIRS
|
|
59
|
-
and 'egg-info' not in dir.name
|
|
60
|
-
)
|
|
55
|
+
if dir.is_dir()
|
|
56
|
+
and not any(fnmatch(dir.name, pattern) for pattern in self.SKIP_DIRS)
|
|
61
57
|
]
|
|
62
58
|
|
|
63
59
|
if len(directories) != 1:
|
|
64
60
|
dirs_str = ', '.join([str(dir) for dir in directories])
|
|
65
|
-
raise ValueError(f'Expected exactly one directory in
|
|
61
|
+
raise ValueError(f'Expected exactly one directory in {self.repo}, found {dirs_str}')
|
|
66
62
|
|
|
67
63
|
target = next(iter(directories))
|
|
68
64
|
|
|
@@ -89,19 +85,28 @@ class SetupPaths(PathsBase):
|
|
|
89
85
|
return name
|
|
90
86
|
|
|
91
87
|
|
|
92
|
-
class Setup:
|
|
88
|
+
class Setup(FromCallerMixin):
|
|
93
89
|
AUTHOR = 'Frontmatter'
|
|
94
90
|
AUTHOR_EMAIL = 'innovative.fowler@mask.pro.fmtr.dev'
|
|
95
91
|
|
|
96
|
-
def __init__(self,
|
|
92
|
+
def __init__(self, dependencies, paths=None, console_scripts=None, client=None, do_setup=True, **kwargs):
|
|
97
93
|
|
|
98
94
|
self.kwargs = kwargs
|
|
95
|
+
|
|
96
|
+
if type(dependencies) is not Dependencies:
|
|
97
|
+
dependencies = Dependencies(**dependencies)
|
|
99
98
|
self.dependencies = dependencies
|
|
99
|
+
|
|
100
|
+
if not paths:
|
|
101
|
+
paths = SetupPaths(path=self.from_caller())
|
|
100
102
|
self.paths = paths
|
|
101
103
|
|
|
102
104
|
self.client = client
|
|
103
105
|
self.console_scripts = console_scripts
|
|
104
106
|
|
|
107
|
+
if do_setup:
|
|
108
|
+
self.setup()
|
|
109
|
+
|
|
105
110
|
def get_entrypoint_path(self, key, value):
|
|
106
111
|
if value:
|
|
107
112
|
return f'{self.name}.{value}:{key}'
|
|
@@ -169,7 +174,8 @@ class Setup:
|
|
|
169
174
|
def url(self):
|
|
170
175
|
return f'https://github.com/{self.paths.org}/{self.paths.name}'
|
|
171
176
|
|
|
172
|
-
|
|
177
|
+
@property
|
|
178
|
+
def data(self):
|
|
173
179
|
return dict(
|
|
174
180
|
name=self.name,
|
|
175
181
|
version=self.version,
|
|
@@ -188,27 +194,10 @@ class Setup:
|
|
|
188
194
|
) | self.kwargs
|
|
189
195
|
|
|
190
196
|
def setup(self):
|
|
191
|
-
data = self.get_data_setup()
|
|
192
|
-
return setup(**data)
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
class Entrypoints:
|
|
196
|
-
ALL = 'all'
|
|
197
|
-
INSTALL = 'install'
|
|
198
197
|
|
|
199
|
-
|
|
200
|
-
self.kwargs = kwargs
|
|
201
|
-
self._console_scripts = console_scripts
|
|
198
|
+
return setup(**self.data)
|
|
202
199
|
|
|
203
|
-
@property
|
|
204
|
-
def console_scripts(self):
|
|
205
|
-
return [f'{key} = {value}:{key}' for key, value in self._console_scripts.items()]
|
|
206
200
|
|
|
207
|
-
@property
|
|
208
|
-
def data(self):
|
|
209
|
-
return dict(
|
|
210
|
-
console_scripts=self.console_scripts,
|
|
211
|
-
) | self.kwargs
|
|
212
201
|
|
|
213
202
|
|
|
214
203
|
class Dependencies:
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1.1.21
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fmtr.tools
|
|
3
|
-
Version: 1.1.
|
|
3
|
+
Version: 1.1.21
|
|
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
|
|
@@ -9,60 +9,60 @@ License: Copyright © 2025 Frontmatter. All rights reserved.
|
|
|
9
9
|
Description-Content-Type: text/markdown
|
|
10
10
|
License-File: LICENSE
|
|
11
11
|
Provides-Extra: test
|
|
12
|
-
Requires-Dist: yamlscript; extra == "test"
|
|
13
|
-
Requires-Dist: semver; extra == "test"
|
|
14
|
-
Requires-Dist: setuptools; extra == "test"
|
|
15
|
-
Requires-Dist: deepmerge; extra == "test"
|
|
16
|
-
Requires-Dist: google-auth-oauthlib; extra == "test"
|
|
17
|
-
Requires-Dist: html2text; extra == "test"
|
|
18
|
-
Requires-Dist: pydantic; extra == "test"
|
|
19
|
-
Requires-Dist: logfire[httpx]; extra == "test"
|
|
20
|
-
Requires-Dist: json_repair; extra == "test"
|
|
21
|
-
Requires-Dist: sre_yield; extra == "test"
|
|
22
|
-
Requires-Dist: pydantic-settings; extra == "test"
|
|
23
|
-
Requires-Dist: google-auth-httplib2; extra == "test"
|
|
24
12
|
Requires-Dist: tinynetrc; extra == "test"
|
|
25
|
-
Requires-Dist:
|
|
13
|
+
Requires-Dist: fastapi; extra == "test"
|
|
14
|
+
Requires-Dist: httpx_retries; extra == "test"
|
|
15
|
+
Requires-Dist: setuptools; extra == "test"
|
|
16
|
+
Requires-Dist: filetype; extra == "test"
|
|
17
|
+
Requires-Dist: faker; extra == "test"
|
|
26
18
|
Requires-Dist: pydevd-pycharm; extra == "test"
|
|
27
|
-
Requires-Dist: contexttimer; extra == "test"
|
|
28
|
-
Requires-Dist: pymupdf; extra == "test"
|
|
29
|
-
Requires-Dist: ollama; extra == "test"
|
|
30
|
-
Requires-Dist: dnspython[doh]; extra == "test"
|
|
31
19
|
Requires-Dist: pyyaml; extra == "test"
|
|
32
|
-
Requires-Dist: huggingface_hub; extra == "test"
|
|
33
20
|
Requires-Dist: logfire[fastapi]; extra == "test"
|
|
34
|
-
Requires-Dist:
|
|
35
|
-
Requires-Dist:
|
|
36
|
-
Requires-Dist:
|
|
37
|
-
Requires-Dist: pytest-cov; extra == "test"
|
|
38
|
-
Requires-Dist: torchaudio; extra == "test"
|
|
39
|
-
Requires-Dist: flet-video; extra == "test"
|
|
40
|
-
Requires-Dist: httpx_retries; extra == "test"
|
|
41
|
-
Requires-Dist: faker; extra == "test"
|
|
42
|
-
Requires-Dist: pymupdf4llm; extra == "test"
|
|
43
|
-
Requires-Dist: filetype; extra == "test"
|
|
44
|
-
Requires-Dist: uvicorn[standard]; extra == "test"
|
|
45
|
-
Requires-Dist: peft; extra == "test"
|
|
46
|
-
Requires-Dist: logfire; extra == "test"
|
|
21
|
+
Requires-Dist: google-auth-httplib2; extra == "test"
|
|
22
|
+
Requires-Dist: openai; extra == "test"
|
|
23
|
+
Requires-Dist: diskcache; extra == "test"
|
|
47
24
|
Requires-Dist: bokeh; extra == "test"
|
|
48
|
-
Requires-Dist: pydantic-ai[logfire,openai]; extra == "test"
|
|
49
|
-
Requires-Dist: regex; extra == "test"
|
|
50
|
-
Requires-Dist: tabulate; extra == "test"
|
|
51
25
|
Requires-Dist: sentence_transformers; extra == "test"
|
|
52
|
-
Requires-Dist:
|
|
26
|
+
Requires-Dist: pymupdf4llm; extra == "test"
|
|
53
27
|
Requires-Dist: distributed; extra == "test"
|
|
28
|
+
Requires-Dist: huggingface_hub; extra == "test"
|
|
29
|
+
Requires-Dist: deepmerge; extra == "test"
|
|
30
|
+
Requires-Dist: transformers[sentencepiece]; extra == "test"
|
|
31
|
+
Requires-Dist: google-auth-oauthlib; extra == "test"
|
|
32
|
+
Requires-Dist: logfire[httpx]; extra == "test"
|
|
33
|
+
Requires-Dist: pydantic; extra == "test"
|
|
54
34
|
Requires-Dist: dask[bag]; extra == "test"
|
|
55
|
-
Requires-Dist: appdirs; extra == "test"
|
|
56
35
|
Requires-Dist: Unidecode; extra == "test"
|
|
57
36
|
Requires-Dist: docker; extra == "test"
|
|
58
|
-
Requires-Dist: httpx; extra == "test"
|
|
59
|
-
Requires-Dist: diskcache; extra == "test"
|
|
60
|
-
Requires-Dist: pandas; extra == "test"
|
|
61
37
|
Requires-Dist: google-auth; extra == "test"
|
|
62
|
-
Requires-Dist:
|
|
63
|
-
Requires-Dist:
|
|
38
|
+
Requires-Dist: contexttimer; extra == "test"
|
|
39
|
+
Requires-Dist: peft; extra == "test"
|
|
40
|
+
Requires-Dist: semver; extra == "test"
|
|
41
|
+
Requires-Dist: regex; extra == "test"
|
|
42
|
+
Requires-Dist: logfire; extra == "test"
|
|
43
|
+
Requires-Dist: pytest-cov; extra == "test"
|
|
44
|
+
Requires-Dist: yamlscript; extra == "test"
|
|
45
|
+
Requires-Dist: pandas; extra == "test"
|
|
46
|
+
Requires-Dist: ollama; extra == "test"
|
|
47
|
+
Requires-Dist: openpyxl; extra == "test"
|
|
48
|
+
Requires-Dist: appdirs; extra == "test"
|
|
49
|
+
Requires-Dist: html2text; extra == "test"
|
|
50
|
+
Requires-Dist: flet-video; extra == "test"
|
|
51
|
+
Requires-Dist: flet[all]; extra == "test"
|
|
52
|
+
Requires-Dist: google-api-python-client; extra == "test"
|
|
53
|
+
Requires-Dist: dnspython[doh]; extra == "test"
|
|
54
|
+
Requires-Dist: pymupdf; extra == "test"
|
|
55
|
+
Requires-Dist: sre_yield; extra == "test"
|
|
56
|
+
Requires-Dist: pydantic-settings; extra == "test"
|
|
57
|
+
Requires-Dist: tabulate; extra == "test"
|
|
64
58
|
Requires-Dist: flet-webview; extra == "test"
|
|
59
|
+
Requires-Dist: httpx; extra == "test"
|
|
60
|
+
Requires-Dist: tokenizers; extra == "test"
|
|
65
61
|
Requires-Dist: torchvision; extra == "test"
|
|
62
|
+
Requires-Dist: json_repair; extra == "test"
|
|
63
|
+
Requires-Dist: pydantic-ai[logfire,openai]; extra == "test"
|
|
64
|
+
Requires-Dist: torchaudio; extra == "test"
|
|
65
|
+
Requires-Dist: uvicorn[standard]; extra == "test"
|
|
66
66
|
Provides-Extra: yaml
|
|
67
67
|
Requires-Dist: yamlscript; extra == "yaml"
|
|
68
68
|
Requires-Dist: pyyaml; extra == "yaml"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
1.1.20
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -135,60 +135,60 @@ tabulate
|
|
|
135
135
|
openpyxl
|
|
136
136
|
|
|
137
137
|
[test]
|
|
138
|
-
yamlscript
|
|
139
|
-
semver
|
|
140
|
-
setuptools
|
|
141
|
-
deepmerge
|
|
142
|
-
google-auth-oauthlib
|
|
143
|
-
html2text
|
|
144
|
-
pydantic
|
|
145
|
-
logfire[httpx]
|
|
146
|
-
json_repair
|
|
147
|
-
sre_yield
|
|
148
|
-
pydantic-settings
|
|
149
|
-
google-auth-httplib2
|
|
150
138
|
tinynetrc
|
|
151
|
-
|
|
139
|
+
fastapi
|
|
140
|
+
httpx_retries
|
|
141
|
+
setuptools
|
|
142
|
+
filetype
|
|
143
|
+
faker
|
|
152
144
|
pydevd-pycharm
|
|
153
|
-
contexttimer
|
|
154
|
-
pymupdf
|
|
155
|
-
ollama
|
|
156
|
-
dnspython[doh]
|
|
157
145
|
pyyaml
|
|
158
|
-
huggingface_hub
|
|
159
146
|
logfire[fastapi]
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
pytest-cov
|
|
164
|
-
torchaudio
|
|
165
|
-
flet-video
|
|
166
|
-
httpx_retries
|
|
167
|
-
faker
|
|
168
|
-
pymupdf4llm
|
|
169
|
-
filetype
|
|
170
|
-
uvicorn[standard]
|
|
171
|
-
peft
|
|
172
|
-
logfire
|
|
147
|
+
google-auth-httplib2
|
|
148
|
+
openai
|
|
149
|
+
diskcache
|
|
173
150
|
bokeh
|
|
174
|
-
pydantic-ai[logfire,openai]
|
|
175
|
-
regex
|
|
176
|
-
tabulate
|
|
177
151
|
sentence_transformers
|
|
178
|
-
|
|
152
|
+
pymupdf4llm
|
|
179
153
|
distributed
|
|
154
|
+
huggingface_hub
|
|
155
|
+
deepmerge
|
|
156
|
+
transformers[sentencepiece]
|
|
157
|
+
google-auth-oauthlib
|
|
158
|
+
logfire[httpx]
|
|
159
|
+
pydantic
|
|
180
160
|
dask[bag]
|
|
181
|
-
appdirs
|
|
182
161
|
Unidecode
|
|
183
162
|
docker
|
|
184
|
-
httpx
|
|
185
|
-
diskcache
|
|
186
|
-
pandas
|
|
187
163
|
google-auth
|
|
188
|
-
|
|
189
|
-
|
|
164
|
+
contexttimer
|
|
165
|
+
peft
|
|
166
|
+
semver
|
|
167
|
+
regex
|
|
168
|
+
logfire
|
|
169
|
+
pytest-cov
|
|
170
|
+
yamlscript
|
|
171
|
+
pandas
|
|
172
|
+
ollama
|
|
173
|
+
openpyxl
|
|
174
|
+
appdirs
|
|
175
|
+
html2text
|
|
176
|
+
flet-video
|
|
177
|
+
flet[all]
|
|
178
|
+
google-api-python-client
|
|
179
|
+
dnspython[doh]
|
|
180
|
+
pymupdf
|
|
181
|
+
sre_yield
|
|
182
|
+
pydantic-settings
|
|
183
|
+
tabulate
|
|
190
184
|
flet-webview
|
|
185
|
+
httpx
|
|
186
|
+
tokenizers
|
|
191
187
|
torchvision
|
|
188
|
+
json_repair
|
|
189
|
+
pydantic-ai[logfire,openai]
|
|
190
|
+
torchaudio
|
|
191
|
+
uvicorn[standard]
|
|
192
192
|
|
|
193
193
|
[tokenization]
|
|
194
194
|
tokenizers
|
|
File without changes
|
|
File without changes
|
|
File without changes
|