fmtr.tools 1.3.40__tar.gz → 1.3.42__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.3.40 → fmtr_tools-1.3.42}/PKG-INFO +43 -44
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/__init__.py +29 -28
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/ai_tools/__init__.py +2 -2
- fmtr_tools-1.3.42/fmtr/tools/datetime_tools.py +5 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/dns_tools/__init__.py +1 -1
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/interface_tools/__init__.py +1 -1
- fmtr_tools-1.3.42/fmtr/tools/interface_tools/context.py +13 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/interface_tools/interface_tools.py +7 -4
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/path_tools/__init__.py +2 -2
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/setup_tools/__init__.py +1 -1
- fmtr_tools-1.3.42/fmtr/tools/version +1 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/version_tools/__init__.py +1 -1
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr.tools.egg-info/PKG-INFO +43 -44
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr.tools.egg-info/SOURCES.txt +2 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr.tools.egg-info/requires.txt +42 -43
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/setup.py +1 -1
- fmtr_tools-1.3.40/fmtr/tools/interface_tools/context.py +0 -12
- fmtr_tools-1.3.40/fmtr/tools/version +0 -1
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/LICENSE +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/README.md +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/ai_tools/agentic_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/ai_tools/inference_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/api_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/async_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/augmentation_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/caching_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/constants.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/context_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/data_modelling_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/dataclass_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/datatype_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/debugging_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/dns_tools/client.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/dns_tools/dm.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/dns_tools/proxy.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/dns_tools/server.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/docker_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/entrypoints/__init__.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/entrypoints/cache_hfh.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/entrypoints/ep_test.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/entrypoints/install_yamlscript.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/entrypoints/remote_debug_test.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/entrypoints/shell_debug.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/environment_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/function_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/google_api_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/hash_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/hfh_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/html_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/http_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/import_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/inherit_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/inspection_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/interface_tools/controls.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/iterator_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/json_fix_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/json_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/logging_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/merging_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/metric_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/name_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/netrc_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/openai_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/packaging_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/parallel_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/path_tools/app_path_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/path_tools/path_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/path_tools/type_path_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/pattern_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/pdf_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/platform_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/process_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/profiling_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/random_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/semantic_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/settings_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/setup_tools/setup_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/spaces_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/string_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/tabular_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/tests/__init__.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/tests/conftest.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/tests/helpers.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/tests/test_datatype.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/tests/test_environment.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/tests/test_json.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/tests/test_path.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/tests/test_yaml.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/tokenization_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/unicode_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/version_tools/version_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/webhook_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr/tools/yaml_tools.py +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr.tools.egg-info/dependency_links.txt +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr.tools.egg-info/entry_points.txt +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/fmtr.tools.egg-info/top_level.txt +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/pyproject.toml +0 -0
- {fmtr_tools-1.3.40 → fmtr_tools-1.3.42}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fmtr.tools
|
|
3
|
-
Version: 1.3.
|
|
3
|
+
Version: 1.3.42
|
|
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
|
|
@@ -86,7 +86,6 @@ Provides-Extra: interface
|
|
|
86
86
|
Requires-Dist: flet[all]; extra == "interface"
|
|
87
87
|
Requires-Dist: flet-video; extra == "interface"
|
|
88
88
|
Requires-Dist: flet-webview; extra == "interface"
|
|
89
|
-
Requires-Dist: pydantic; extra == "interface"
|
|
90
89
|
Provides-Extra: google-api
|
|
91
90
|
Requires-Dist: google-auth; extra == "google-api"
|
|
92
91
|
Requires-Dist: google-auth-oauthlib; extra == "google-api"
|
|
@@ -133,62 +132,62 @@ Requires-Dist: logfire[httpx]; extra == "webhook"
|
|
|
133
132
|
Provides-Extra: browsers
|
|
134
133
|
Requires-Dist: playwright; extra == "browsers"
|
|
135
134
|
Provides-Extra: all
|
|
136
|
-
Requires-Dist: sentence_transformers; extra == "all"
|
|
137
|
-
Requires-Dist: google-auth; extra == "all"
|
|
138
135
|
Requires-Dist: flet[all]; extra == "all"
|
|
139
|
-
Requires-Dist:
|
|
136
|
+
Requires-Dist: pymupdf; extra == "all"
|
|
137
|
+
Requires-Dist: appdirs; extra == "all"
|
|
138
|
+
Requires-Dist: bokeh; extra == "all"
|
|
140
139
|
Requires-Dist: ollama; extra == "all"
|
|
141
|
-
Requires-Dist:
|
|
142
|
-
Requires-Dist:
|
|
143
|
-
Requires-Dist: pytest-cov; extra == "all"
|
|
140
|
+
Requires-Dist: pymupdf4llm; extra == "all"
|
|
141
|
+
Requires-Dist: logfire[fastapi]; extra == "all"
|
|
144
142
|
Requires-Dist: pandas; extra == "all"
|
|
145
|
-
Requires-Dist:
|
|
146
|
-
Requires-Dist:
|
|
147
|
-
Requires-Dist: peft; extra == "all"
|
|
148
|
-
Requires-Dist: google-api-python-client; extra == "all"
|
|
143
|
+
Requires-Dist: pydantic; extra == "all"
|
|
144
|
+
Requires-Dist: pytest-cov; extra == "all"
|
|
149
145
|
Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
|
|
150
|
-
Requires-Dist:
|
|
151
|
-
Requires-Dist:
|
|
152
|
-
Requires-Dist:
|
|
146
|
+
Requires-Dist: cachetools; extra == "all"
|
|
147
|
+
Requires-Dist: httpx; extra == "all"
|
|
148
|
+
Requires-Dist: tinynetrc; extra == "all"
|
|
153
149
|
Requires-Dist: tabulate; extra == "all"
|
|
154
|
-
Requires-Dist:
|
|
155
|
-
Requires-Dist:
|
|
156
|
-
Requires-Dist:
|
|
157
|
-
Requires-Dist:
|
|
158
|
-
Requires-Dist:
|
|
159
|
-
Requires-Dist:
|
|
160
|
-
Requires-Dist: pymupdf; extra == "all"
|
|
150
|
+
Requires-Dist: google-api-python-client; extra == "all"
|
|
151
|
+
Requires-Dist: contexttimer; extra == "all"
|
|
152
|
+
Requires-Dist: flet-webview; extra == "all"
|
|
153
|
+
Requires-Dist: torchvision; extra == "all"
|
|
154
|
+
Requires-Dist: html2text; extra == "all"
|
|
155
|
+
Requires-Dist: setuptools; extra == "all"
|
|
161
156
|
Requires-Dist: logfire[httpx]; extra == "all"
|
|
162
|
-
Requires-Dist:
|
|
157
|
+
Requires-Dist: semver; extra == "all"
|
|
163
158
|
Requires-Dist: httpx_retries; extra == "all"
|
|
159
|
+
Requires-Dist: huggingface_hub; extra == "all"
|
|
160
|
+
Requires-Dist: peft; extra == "all"
|
|
161
|
+
Requires-Dist: tokenizers; extra == "all"
|
|
162
|
+
Requires-Dist: sentence_transformers; extra == "all"
|
|
163
|
+
Requires-Dist: yamlscript; extra == "all"
|
|
164
|
+
Requires-Dist: transformers[sentencepiece]; extra == "all"
|
|
165
|
+
Requires-Dist: filetype; extra == "all"
|
|
164
166
|
Requires-Dist: deepmerge; extra == "all"
|
|
165
167
|
Requires-Dist: logfire; extra == "all"
|
|
166
168
|
Requires-Dist: distributed; extra == "all"
|
|
167
|
-
Requires-Dist:
|
|
168
|
-
Requires-Dist: pydantic; extra == "all"
|
|
169
|
-
Requires-Dist: uvicorn[standard]; extra == "all"
|
|
170
|
-
Requires-Dist: cachetools; extra == "all"
|
|
171
|
-
Requires-Dist: pyyaml; extra == "all"
|
|
172
|
-
Requires-Dist: bokeh; extra == "all"
|
|
169
|
+
Requires-Dist: google-auth-httplib2; extra == "all"
|
|
173
170
|
Requires-Dist: openai; extra == "all"
|
|
174
|
-
Requires-Dist:
|
|
175
|
-
Requires-Dist:
|
|
176
|
-
Requires-Dist:
|
|
177
|
-
Requires-Dist:
|
|
178
|
-
Requires-Dist:
|
|
179
|
-
Requires-Dist:
|
|
171
|
+
Requires-Dist: google-auth; extra == "all"
|
|
172
|
+
Requires-Dist: Unidecode; extra == "all"
|
|
173
|
+
Requires-Dist: google-auth-oauthlib; extra == "all"
|
|
174
|
+
Requires-Dist: dnspython[doh]; extra == "all"
|
|
175
|
+
Requires-Dist: pyyaml; extra == "all"
|
|
176
|
+
Requires-Dist: regex; extra == "all"
|
|
180
177
|
Requires-Dist: sre_yield; extra == "all"
|
|
181
|
-
Requires-Dist:
|
|
178
|
+
Requires-Dist: docker; extra == "all"
|
|
179
|
+
Requires-Dist: json_repair; extra == "all"
|
|
180
|
+
Requires-Dist: diskcache; extra == "all"
|
|
181
|
+
Requires-Dist: playwright; extra == "all"
|
|
182
|
+
Requires-Dist: fastapi; extra == "all"
|
|
183
|
+
Requires-Dist: dask[bag]; extra == "all"
|
|
184
|
+
Requires-Dist: uvicorn[standard]; extra == "all"
|
|
185
|
+
Requires-Dist: flet-video; extra == "all"
|
|
182
186
|
Requires-Dist: faker; extra == "all"
|
|
183
|
-
Requires-Dist:
|
|
184
|
-
Requires-Dist:
|
|
185
|
-
Requires-Dist:
|
|
186
|
-
Requires-Dist: logfire[fastapi]; extra == "all"
|
|
187
|
-
Requires-Dist: regex; extra == "all"
|
|
187
|
+
Requires-Dist: pydantic-settings; extra == "all"
|
|
188
|
+
Requires-Dist: pydevd-pycharm~=251.25410.159; extra == "all"
|
|
189
|
+
Requires-Dist: openpyxl; extra == "all"
|
|
188
190
|
Requires-Dist: torchaudio; extra == "all"
|
|
189
|
-
Requires-Dist: dask[bag]; extra == "all"
|
|
190
|
-
Requires-Dist: httpx; extra == "all"
|
|
191
|
-
Requires-Dist: filetype; extra == "all"
|
|
192
191
|
Dynamic: author
|
|
193
192
|
Dynamic: author-email
|
|
194
193
|
Dynamic: description
|
|
@@ -18,6 +18,7 @@ import fmtr.tools.random_tools as random
|
|
|
18
18
|
import fmtr.tools.setup_tools as setup
|
|
19
19
|
import fmtr.tools.string_tools as string
|
|
20
20
|
from fmtr.tools import ai_tools as ai
|
|
21
|
+
from fmtr.tools import datetime_tools as dt
|
|
21
22
|
from fmtr.tools import dns_tools as dns
|
|
22
23
|
from fmtr.tools import interface_tools as interface
|
|
23
24
|
from fmtr.tools import version_tools as version
|
|
@@ -30,147 +31,147 @@ from fmtr.tools.setup_tools import Setup, SetupPaths, Dependencies, Tools
|
|
|
30
31
|
|
|
31
32
|
try:
|
|
32
33
|
from fmtr.tools import augmentation_tools as augmentation
|
|
33
|
-
except
|
|
34
|
+
except ModuleNotFoundError as exception:
|
|
34
35
|
augmentation = MissingExtraMockModule('augmentation', exception)
|
|
35
36
|
|
|
36
37
|
try:
|
|
37
38
|
from fmtr.tools import yaml_tools as yaml
|
|
38
|
-
except
|
|
39
|
+
except ModuleNotFoundError as exception:
|
|
39
40
|
yaml = MissingExtraMockModule('yaml', exception)
|
|
40
41
|
|
|
41
42
|
try:
|
|
42
43
|
from fmtr.tools import docker_tools as docker
|
|
43
44
|
from fmtr.tools.docker_tools import Container
|
|
44
|
-
except
|
|
45
|
+
except ModuleNotFoundError as exception:
|
|
45
46
|
docker = Container = MissingExtraMockModule('docker.api', exception)
|
|
46
47
|
|
|
47
48
|
try:
|
|
48
49
|
from fmtr.tools import parallel_tools as parallel
|
|
49
|
-
except
|
|
50
|
+
except ModuleNotFoundError as exception:
|
|
50
51
|
parallel = MissingExtraMockModule('parallel', exception)
|
|
51
52
|
|
|
52
53
|
try:
|
|
53
54
|
from fmtr.tools import profiling_tools as profiling
|
|
54
55
|
from fmtr.tools.profiling_tools import Timer
|
|
55
|
-
except
|
|
56
|
+
except ModuleNotFoundError as exception:
|
|
56
57
|
profiling = Timer = MissingExtraMockModule('profiling', exception)
|
|
57
58
|
|
|
58
59
|
try:
|
|
59
60
|
import fmtr.tools.process_tools as process
|
|
60
61
|
from fmtr.tools.process_tools import ContextProcess
|
|
61
|
-
except
|
|
62
|
+
except ModuleNotFoundError as exception:
|
|
62
63
|
process = ContextProcess = MissingExtraMockModule('process', exception)
|
|
63
64
|
|
|
64
65
|
try:
|
|
65
66
|
from fmtr.tools import tokenization_tools as tokenization
|
|
66
|
-
except
|
|
67
|
+
except ModuleNotFoundError as exception:
|
|
67
68
|
tokenization = MissingExtraMockModule('tokenization', exception)
|
|
68
69
|
|
|
69
70
|
try:
|
|
70
71
|
from fmtr.tools import unicode_tools as unicode
|
|
71
|
-
except
|
|
72
|
+
except ModuleNotFoundError as exception:
|
|
72
73
|
unicode = MissingExtraMockModule('unicode', exception)
|
|
73
74
|
|
|
74
75
|
try:
|
|
75
76
|
from fmtr.tools import netrc_tools as netrc
|
|
76
|
-
except
|
|
77
|
+
except ModuleNotFoundError as exception:
|
|
77
78
|
netrc = MissingExtraMockModule('netrc', exception)
|
|
78
79
|
|
|
79
80
|
try:
|
|
80
81
|
from fmtr.tools import spaces_tools as spaces
|
|
81
|
-
except
|
|
82
|
+
except ModuleNotFoundError as exception:
|
|
82
83
|
spaces = MissingExtraMockModule('spaces', exception)
|
|
83
84
|
|
|
84
85
|
try:
|
|
85
86
|
from fmtr.tools import hfh_tools as hfh
|
|
86
|
-
except
|
|
87
|
+
except ModuleNotFoundError as exception:
|
|
87
88
|
hfh = MissingExtraMockModule('hfh', exception)
|
|
88
89
|
|
|
89
90
|
try:
|
|
90
91
|
from fmtr.tools import merging_tools as merging
|
|
91
92
|
from fmtr.tools.merging_tools import merge
|
|
92
|
-
except
|
|
93
|
+
except ModuleNotFoundError as exception:
|
|
93
94
|
merging = merge = MissingExtraMockModule('merging', exception)
|
|
94
95
|
|
|
95
96
|
try:
|
|
96
97
|
from fmtr.tools import api_tools as api
|
|
97
|
-
except
|
|
98
|
+
except ModuleNotFoundError as exception:
|
|
98
99
|
api = MissingExtraMockModule('api', exception)
|
|
99
100
|
|
|
100
101
|
try:
|
|
101
102
|
from fmtr.tools import data_modelling_tools as dm
|
|
102
|
-
except
|
|
103
|
+
except ModuleNotFoundError as exception:
|
|
103
104
|
dm = MissingExtraMockModule('dm', exception)
|
|
104
105
|
|
|
105
106
|
try:
|
|
106
107
|
from fmtr.tools import json_fix_tools as json_fix
|
|
107
|
-
except
|
|
108
|
+
except ModuleNotFoundError as exception:
|
|
108
109
|
json_fix = MissingExtraMockModule('json_fix', exception)
|
|
109
110
|
|
|
110
111
|
try:
|
|
111
112
|
from fmtr.tools import semantic_tools as semantic
|
|
112
|
-
except
|
|
113
|
+
except ModuleNotFoundError as exception:
|
|
113
114
|
semantic = MissingExtraMockModule('semantic', exception)
|
|
114
115
|
|
|
115
116
|
try:
|
|
116
117
|
from fmtr.tools import metric_tools as metric
|
|
117
|
-
except
|
|
118
|
+
except ModuleNotFoundError as exception:
|
|
118
119
|
metric = MissingExtraMockModule('metric', exception)
|
|
119
120
|
|
|
120
121
|
try:
|
|
121
122
|
from fmtr.tools import html_tools as html
|
|
122
|
-
except
|
|
123
|
+
except ModuleNotFoundError as exception:
|
|
123
124
|
html = MissingExtraMockModule('html', exception)
|
|
124
125
|
|
|
125
126
|
try:
|
|
126
127
|
from fmtr.tools import openai_tools as openai
|
|
127
|
-
except
|
|
128
|
+
except ModuleNotFoundError as exception:
|
|
128
129
|
openai = MissingExtraMockModule('openai', exception)
|
|
129
130
|
|
|
130
131
|
try:
|
|
131
132
|
from fmtr.tools import google_api_tools as google_api
|
|
132
|
-
except
|
|
133
|
+
except ModuleNotFoundError as exception:
|
|
133
134
|
google_api = MissingExtraMockModule('google.api', exception)
|
|
134
135
|
|
|
135
136
|
try:
|
|
136
137
|
from fmtr.tools import caching_tools as caching
|
|
137
|
-
except
|
|
138
|
+
except ModuleNotFoundError as exception:
|
|
138
139
|
caching = MissingExtraMockModule('caching', exception)
|
|
139
140
|
|
|
140
141
|
try:
|
|
141
142
|
from fmtr.tools import pdf_tools as pdf
|
|
142
|
-
except
|
|
143
|
+
except ModuleNotFoundError as exception:
|
|
143
144
|
pdf = MissingExtraMockModule('pdf', exception)
|
|
144
145
|
|
|
145
146
|
try:
|
|
146
147
|
from fmtr.tools import tabular_tools as tabular
|
|
147
|
-
except
|
|
148
|
+
except ModuleNotFoundError as exception:
|
|
148
149
|
tabular = MissingExtraMockModule('tabular', exception)
|
|
149
150
|
|
|
150
151
|
try:
|
|
151
152
|
from fmtr.tools import debugging_tools as debug
|
|
152
|
-
except
|
|
153
|
+
except ModuleNotFoundError as exception:
|
|
153
154
|
debug = MissingExtraMockModule('debug', exception)
|
|
154
155
|
|
|
155
156
|
try:
|
|
156
157
|
from fmtr.tools import settings_tools as sets
|
|
157
|
-
except
|
|
158
|
+
except ModuleNotFoundError as exception:
|
|
158
159
|
sets = MissingExtraMockModule('sets', exception)
|
|
159
160
|
|
|
160
161
|
try:
|
|
161
162
|
from fmtr.tools import pattern_tools as patterns
|
|
162
|
-
except
|
|
163
|
+
except ModuleNotFoundError as exception:
|
|
163
164
|
patterns = MissingExtraMockModule('patterns', exception)
|
|
164
165
|
|
|
165
166
|
try:
|
|
166
167
|
from fmtr.tools import http_tools as http
|
|
167
168
|
from fmtr.tools.http_tools import Client
|
|
168
|
-
except
|
|
169
|
+
except ModuleNotFoundError as exception:
|
|
169
170
|
http = Client = MissingExtraMockModule('http', exception)
|
|
170
171
|
|
|
171
172
|
try:
|
|
172
173
|
from fmtr.tools import webhook_tools as webhook
|
|
173
|
-
except
|
|
174
|
+
except ModuleNotFoundError as exception:
|
|
174
175
|
webhook = MissingExtraMockModule('webhook', exception)
|
|
175
176
|
|
|
176
177
|
|
|
@@ -2,10 +2,10 @@ from fmtr.tools.import_tools import MissingExtraMockModule
|
|
|
2
2
|
|
|
3
3
|
try:
|
|
4
4
|
from fmtr.tools.ai_tools import inference_tools as infer
|
|
5
|
-
except
|
|
5
|
+
except ModuleNotFoundError as exception:
|
|
6
6
|
infer = MissingExtraMockModule('ai', exception)
|
|
7
7
|
|
|
8
8
|
try:
|
|
9
9
|
from fmtr.tools.ai_tools import agentic_tools as agentic
|
|
10
|
-
except
|
|
10
|
+
except ModuleNotFoundError as exception:
|
|
11
11
|
agentic = MissingExtraMockModule('ai.client', exception)
|
|
@@ -3,5 +3,5 @@ from fmtr.tools.import_tools import MissingExtraMockModule
|
|
|
3
3
|
try:
|
|
4
4
|
from fmtr.tools.dns_tools import server, client, dm, proxy
|
|
5
5
|
import dns
|
|
6
|
-
except
|
|
6
|
+
except ModuleNotFoundError as exception:
|
|
7
7
|
dns = server = client = dm = proxy = MissingExtraMockModule('dns', exception)
|
|
@@ -4,5 +4,5 @@ try:
|
|
|
4
4
|
from fmtr.tools.interface_tools.interface_tools import Interface, update, progress
|
|
5
5
|
from fmtr.tools.interface_tools import controls
|
|
6
6
|
from fmtr.tools.interface_tools.context import Context
|
|
7
|
-
except
|
|
7
|
+
except ModuleNotFoundError as exception:
|
|
8
8
|
Interface = update = progress = controls = MissingExtraMockModule('interface', exception)
|
|
@@ -163,17 +163,20 @@ class Interface(Generic[T], ft.Column):
|
|
|
163
163
|
)
|
|
164
164
|
return theme
|
|
165
165
|
|
|
166
|
-
|
|
166
|
+
|
|
167
|
+
class Test(Interface[Context]):
|
|
167
168
|
"""
|
|
168
169
|
|
|
169
|
-
Simple test interface.
|
|
170
|
+
Simple test interface, showing typing example.
|
|
170
171
|
|
|
171
172
|
"""
|
|
173
|
+
TypeContext: Type[Context] = Context
|
|
174
|
+
|
|
172
175
|
TITLE = 'Test Interface'
|
|
173
176
|
|
|
174
|
-
def __init__(self):
|
|
177
|
+
def __init__(self, context: Context):
|
|
175
178
|
controls = [ft.Text(self.TITLE)]
|
|
176
|
-
super().__init__(controls=controls)
|
|
179
|
+
super().__init__(context=context, controls=controls)
|
|
177
180
|
|
|
178
181
|
if __name__ == "__main__":
|
|
179
182
|
Test.launch()
|
|
@@ -3,10 +3,10 @@ from fmtr.tools.path_tools.path_tools import Path, PackagePaths
|
|
|
3
3
|
|
|
4
4
|
try:
|
|
5
5
|
from fmtr.tools.path_tools.app_path_tools import AppPaths
|
|
6
|
-
except
|
|
6
|
+
except ModuleNotFoundError as exception:
|
|
7
7
|
AppPaths = MissingExtraMockModule('path.app', exception)
|
|
8
8
|
|
|
9
9
|
try:
|
|
10
10
|
from fmtr.tools.path_tools.type_path_tools import guess
|
|
11
|
-
except
|
|
11
|
+
except ModuleNotFoundError as exception:
|
|
12
12
|
guess = MissingExtraMockModule('path.type', exception)
|
|
@@ -4,5 +4,5 @@ from fmtr.tools.setup_tools.setup_tools import Setup, SetupPaths, Dependencies,
|
|
|
4
4
|
|
|
5
5
|
try:
|
|
6
6
|
from setuptools import find_namespace_packages, find_packages, setup as setup_setuptools
|
|
7
|
-
except
|
|
7
|
+
except ModuleNotFoundError as exception:
|
|
8
8
|
find_namespace_packages = find_packages = setup_setuptools = MissingExtraMockModule('setup', exception)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1.3.42
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fmtr.tools
|
|
3
|
-
Version: 1.3.
|
|
3
|
+
Version: 1.3.42
|
|
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
|
|
@@ -86,7 +86,6 @@ Provides-Extra: interface
|
|
|
86
86
|
Requires-Dist: flet[all]; extra == "interface"
|
|
87
87
|
Requires-Dist: flet-video; extra == "interface"
|
|
88
88
|
Requires-Dist: flet-webview; extra == "interface"
|
|
89
|
-
Requires-Dist: pydantic; extra == "interface"
|
|
90
89
|
Provides-Extra: google-api
|
|
91
90
|
Requires-Dist: google-auth; extra == "google-api"
|
|
92
91
|
Requires-Dist: google-auth-oauthlib; extra == "google-api"
|
|
@@ -133,62 +132,62 @@ Requires-Dist: logfire[httpx]; extra == "webhook"
|
|
|
133
132
|
Provides-Extra: browsers
|
|
134
133
|
Requires-Dist: playwright; extra == "browsers"
|
|
135
134
|
Provides-Extra: all
|
|
136
|
-
Requires-Dist: sentence_transformers; extra == "all"
|
|
137
|
-
Requires-Dist: google-auth; extra == "all"
|
|
138
135
|
Requires-Dist: flet[all]; extra == "all"
|
|
139
|
-
Requires-Dist:
|
|
136
|
+
Requires-Dist: pymupdf; extra == "all"
|
|
137
|
+
Requires-Dist: appdirs; extra == "all"
|
|
138
|
+
Requires-Dist: bokeh; extra == "all"
|
|
140
139
|
Requires-Dist: ollama; extra == "all"
|
|
141
|
-
Requires-Dist:
|
|
142
|
-
Requires-Dist:
|
|
143
|
-
Requires-Dist: pytest-cov; extra == "all"
|
|
140
|
+
Requires-Dist: pymupdf4llm; extra == "all"
|
|
141
|
+
Requires-Dist: logfire[fastapi]; extra == "all"
|
|
144
142
|
Requires-Dist: pandas; extra == "all"
|
|
145
|
-
Requires-Dist:
|
|
146
|
-
Requires-Dist:
|
|
147
|
-
Requires-Dist: peft; extra == "all"
|
|
148
|
-
Requires-Dist: google-api-python-client; extra == "all"
|
|
143
|
+
Requires-Dist: pydantic; extra == "all"
|
|
144
|
+
Requires-Dist: pytest-cov; extra == "all"
|
|
149
145
|
Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
|
|
150
|
-
Requires-Dist:
|
|
151
|
-
Requires-Dist:
|
|
152
|
-
Requires-Dist:
|
|
146
|
+
Requires-Dist: cachetools; extra == "all"
|
|
147
|
+
Requires-Dist: httpx; extra == "all"
|
|
148
|
+
Requires-Dist: tinynetrc; extra == "all"
|
|
153
149
|
Requires-Dist: tabulate; extra == "all"
|
|
154
|
-
Requires-Dist:
|
|
155
|
-
Requires-Dist:
|
|
156
|
-
Requires-Dist:
|
|
157
|
-
Requires-Dist:
|
|
158
|
-
Requires-Dist:
|
|
159
|
-
Requires-Dist:
|
|
160
|
-
Requires-Dist: pymupdf; extra == "all"
|
|
150
|
+
Requires-Dist: google-api-python-client; extra == "all"
|
|
151
|
+
Requires-Dist: contexttimer; extra == "all"
|
|
152
|
+
Requires-Dist: flet-webview; extra == "all"
|
|
153
|
+
Requires-Dist: torchvision; extra == "all"
|
|
154
|
+
Requires-Dist: html2text; extra == "all"
|
|
155
|
+
Requires-Dist: setuptools; extra == "all"
|
|
161
156
|
Requires-Dist: logfire[httpx]; extra == "all"
|
|
162
|
-
Requires-Dist:
|
|
157
|
+
Requires-Dist: semver; extra == "all"
|
|
163
158
|
Requires-Dist: httpx_retries; extra == "all"
|
|
159
|
+
Requires-Dist: huggingface_hub; extra == "all"
|
|
160
|
+
Requires-Dist: peft; extra == "all"
|
|
161
|
+
Requires-Dist: tokenizers; extra == "all"
|
|
162
|
+
Requires-Dist: sentence_transformers; extra == "all"
|
|
163
|
+
Requires-Dist: yamlscript; extra == "all"
|
|
164
|
+
Requires-Dist: transformers[sentencepiece]; extra == "all"
|
|
165
|
+
Requires-Dist: filetype; extra == "all"
|
|
164
166
|
Requires-Dist: deepmerge; extra == "all"
|
|
165
167
|
Requires-Dist: logfire; extra == "all"
|
|
166
168
|
Requires-Dist: distributed; extra == "all"
|
|
167
|
-
Requires-Dist:
|
|
168
|
-
Requires-Dist: pydantic; extra == "all"
|
|
169
|
-
Requires-Dist: uvicorn[standard]; extra == "all"
|
|
170
|
-
Requires-Dist: cachetools; extra == "all"
|
|
171
|
-
Requires-Dist: pyyaml; extra == "all"
|
|
172
|
-
Requires-Dist: bokeh; extra == "all"
|
|
169
|
+
Requires-Dist: google-auth-httplib2; extra == "all"
|
|
173
170
|
Requires-Dist: openai; extra == "all"
|
|
174
|
-
Requires-Dist:
|
|
175
|
-
Requires-Dist:
|
|
176
|
-
Requires-Dist:
|
|
177
|
-
Requires-Dist:
|
|
178
|
-
Requires-Dist:
|
|
179
|
-
Requires-Dist:
|
|
171
|
+
Requires-Dist: google-auth; extra == "all"
|
|
172
|
+
Requires-Dist: Unidecode; extra == "all"
|
|
173
|
+
Requires-Dist: google-auth-oauthlib; extra == "all"
|
|
174
|
+
Requires-Dist: dnspython[doh]; extra == "all"
|
|
175
|
+
Requires-Dist: pyyaml; extra == "all"
|
|
176
|
+
Requires-Dist: regex; extra == "all"
|
|
180
177
|
Requires-Dist: sre_yield; extra == "all"
|
|
181
|
-
Requires-Dist:
|
|
178
|
+
Requires-Dist: docker; extra == "all"
|
|
179
|
+
Requires-Dist: json_repair; extra == "all"
|
|
180
|
+
Requires-Dist: diskcache; extra == "all"
|
|
181
|
+
Requires-Dist: playwright; extra == "all"
|
|
182
|
+
Requires-Dist: fastapi; extra == "all"
|
|
183
|
+
Requires-Dist: dask[bag]; extra == "all"
|
|
184
|
+
Requires-Dist: uvicorn[standard]; extra == "all"
|
|
185
|
+
Requires-Dist: flet-video; extra == "all"
|
|
182
186
|
Requires-Dist: faker; extra == "all"
|
|
183
|
-
Requires-Dist:
|
|
184
|
-
Requires-Dist:
|
|
185
|
-
Requires-Dist:
|
|
186
|
-
Requires-Dist: logfire[fastapi]; extra == "all"
|
|
187
|
-
Requires-Dist: regex; extra == "all"
|
|
187
|
+
Requires-Dist: pydantic-settings; extra == "all"
|
|
188
|
+
Requires-Dist: pydevd-pycharm~=251.25410.159; extra == "all"
|
|
189
|
+
Requires-Dist: openpyxl; extra == "all"
|
|
188
190
|
Requires-Dist: torchaudio; extra == "all"
|
|
189
|
-
Requires-Dist: dask[bag]; extra == "all"
|
|
190
|
-
Requires-Dist: httpx; extra == "all"
|
|
191
|
-
Requires-Dist: filetype; extra == "all"
|
|
192
191
|
Dynamic: author
|
|
193
192
|
Dynamic: author-email
|
|
194
193
|
Dynamic: description
|
|
@@ -12,6 +12,7 @@ setup.py
|
|
|
12
12
|
./fmtr/tools/data_modelling_tools.py
|
|
13
13
|
./fmtr/tools/dataclass_tools.py
|
|
14
14
|
./fmtr/tools/datatype_tools.py
|
|
15
|
+
./fmtr/tools/datetime_tools.py
|
|
15
16
|
./fmtr/tools/debugging_tools.py
|
|
16
17
|
./fmtr/tools/docker_tools.py
|
|
17
18
|
./fmtr/tools/environment_tools.py
|
|
@@ -102,6 +103,7 @@ fmtr/tools/context_tools.py
|
|
|
102
103
|
fmtr/tools/data_modelling_tools.py
|
|
103
104
|
fmtr/tools/dataclass_tools.py
|
|
104
105
|
fmtr/tools/datatype_tools.py
|
|
106
|
+
fmtr/tools/datetime_tools.py
|
|
105
107
|
fmtr/tools/debugging_tools.py
|
|
106
108
|
fmtr/tools/docker_tools.py
|
|
107
109
|
fmtr/tools/environment_tools.py
|
|
@@ -14,62 +14,62 @@ pydantic-ai[logfire,openai]
|
|
|
14
14
|
ollama
|
|
15
15
|
|
|
16
16
|
[all]
|
|
17
|
-
sentence_transformers
|
|
18
|
-
google-auth
|
|
19
17
|
flet[all]
|
|
20
|
-
|
|
18
|
+
pymupdf
|
|
19
|
+
appdirs
|
|
20
|
+
bokeh
|
|
21
21
|
ollama
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
pytest-cov
|
|
22
|
+
pymupdf4llm
|
|
23
|
+
logfire[fastapi]
|
|
25
24
|
pandas
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
peft
|
|
29
|
-
google-api-python-client
|
|
25
|
+
pydantic
|
|
26
|
+
pytest-cov
|
|
30
27
|
pydantic-ai[logfire,openai]
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
28
|
+
cachetools
|
|
29
|
+
httpx
|
|
30
|
+
tinynetrc
|
|
34
31
|
tabulate
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
pymupdf
|
|
32
|
+
google-api-python-client
|
|
33
|
+
contexttimer
|
|
34
|
+
flet-webview
|
|
35
|
+
torchvision
|
|
36
|
+
html2text
|
|
37
|
+
setuptools
|
|
42
38
|
logfire[httpx]
|
|
43
|
-
|
|
39
|
+
semver
|
|
44
40
|
httpx_retries
|
|
41
|
+
huggingface_hub
|
|
42
|
+
peft
|
|
43
|
+
tokenizers
|
|
44
|
+
sentence_transformers
|
|
45
|
+
yamlscript
|
|
46
|
+
transformers[sentencepiece]
|
|
47
|
+
filetype
|
|
45
48
|
deepmerge
|
|
46
49
|
logfire
|
|
47
50
|
distributed
|
|
48
|
-
|
|
49
|
-
pydantic
|
|
50
|
-
uvicorn[standard]
|
|
51
|
-
cachetools
|
|
52
|
-
pyyaml
|
|
53
|
-
bokeh
|
|
51
|
+
google-auth-httplib2
|
|
54
52
|
openai
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
53
|
+
google-auth
|
|
54
|
+
Unidecode
|
|
55
|
+
google-auth-oauthlib
|
|
56
|
+
dnspython[doh]
|
|
57
|
+
pyyaml
|
|
58
|
+
regex
|
|
61
59
|
sre_yield
|
|
62
|
-
|
|
60
|
+
docker
|
|
61
|
+
json_repair
|
|
62
|
+
diskcache
|
|
63
|
+
playwright
|
|
64
|
+
fastapi
|
|
65
|
+
dask[bag]
|
|
66
|
+
uvicorn[standard]
|
|
67
|
+
flet-video
|
|
63
68
|
faker
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
logfire[fastapi]
|
|
68
|
-
regex
|
|
69
|
+
pydantic-settings
|
|
70
|
+
pydevd-pycharm~=251.25410.159
|
|
71
|
+
openpyxl
|
|
69
72
|
torchaudio
|
|
70
|
-
dask[bag]
|
|
71
|
-
httpx
|
|
72
|
-
filetype
|
|
73
73
|
|
|
74
74
|
[api]
|
|
75
75
|
fastapi
|
|
@@ -127,7 +127,6 @@ logfire[httpx]
|
|
|
127
127
|
flet[all]
|
|
128
128
|
flet-video
|
|
129
129
|
flet-webview
|
|
130
|
-
pydantic
|
|
131
130
|
|
|
132
131
|
[json-fix]
|
|
133
132
|
json_repair
|
|
@@ -28,7 +28,7 @@ DEPENDENCIES = {
|
|
|
28
28
|
'metric': ['tabular'],
|
|
29
29
|
'tabular': ['pandas', 'tabulate', 'openpyxl'],
|
|
30
30
|
'html': ['html2text'],
|
|
31
|
-
'interface': ['flet[all]', 'flet-video', 'flet-webview'
|
|
31
|
+
'interface': ['flet[all]', 'flet-video', 'flet-webview'],
|
|
32
32
|
'google.api': ['google-auth', 'google-auth-oauthlib', 'google-auth-httplib2', 'google-api-python-client'],
|
|
33
33
|
'caching': ['diskcache', 'cachetools'],
|
|
34
34
|
'pdf': ['pymupdf', 'dm', 'pymupdf4llm'],
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
1.3.40
|
|
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
|
|
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
|