fmtr.tools 1.3.53__tar.gz → 1.3.55__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.

Files changed (101) hide show
  1. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/PKG-INFO +52 -52
  2. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/__init__.py +1 -5
  3. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/ai_tools/agentic_tools.py +5 -2
  4. fmtr_tools-1.3.55/fmtr/tools/docker_tools/__init__.py +6 -0
  5. fmtr_tools-1.3.55/fmtr/tools/version +1 -0
  6. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr.tools.egg-info/PKG-INFO +52 -52
  7. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr.tools.egg-info/SOURCES.txt +2 -2
  8. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr.tools.egg-info/requires.txt +51 -51
  9. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/setup.py +1 -1
  10. fmtr_tools-1.3.53/fmtr/tools/docker_tools.py +0 -30
  11. fmtr_tools-1.3.53/fmtr/tools/version +0 -1
  12. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/LICENSE +0 -0
  13. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/README.md +0 -0
  14. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/ai_tools/__init__.py +0 -0
  15. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/ai_tools/inference_tools.py +0 -0
  16. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/api_tools.py +0 -0
  17. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/async_tools.py +0 -0
  18. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/augmentation_tools.py +0 -0
  19. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/caching_tools.py +0 -0
  20. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/constants.py +0 -0
  21. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/context_tools.py +0 -0
  22. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/data_modelling_tools.py +0 -0
  23. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/database_tools/__init__.py +0 -0
  24. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/database_tools/document.py +0 -0
  25. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/dataclass_tools.py +0 -0
  26. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/datatype_tools.py +0 -0
  27. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/datetime_tools.py +0 -0
  28. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/debugging_tools.py +0 -0
  29. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/dns_tools/__init__.py +0 -0
  30. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/dns_tools/client.py +0 -0
  31. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/dns_tools/dm.py +0 -0
  32. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/dns_tools/proxy.py +0 -0
  33. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/dns_tools/server.py +0 -0
  34. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/entrypoints/__init__.py +0 -0
  35. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/entrypoints/cache_hfh.py +0 -0
  36. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/entrypoints/ep_test.py +0 -0
  37. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/entrypoints/install_yamlscript.py +0 -0
  38. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/entrypoints/remote_debug_test.py +0 -0
  39. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/entrypoints/shell_debug.py +0 -0
  40. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/environment_tools.py +0 -0
  41. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/function_tools.py +0 -0
  42. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/google_api_tools.py +0 -0
  43. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/hash_tools.py +0 -0
  44. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/hfh_tools.py +0 -0
  45. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/html_tools.py +0 -0
  46. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/http_tools.py +0 -0
  47. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/import_tools.py +0 -0
  48. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/inherit_tools.py +0 -0
  49. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/inspection_tools.py +0 -0
  50. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/interface_tools/__init__.py +0 -0
  51. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/interface_tools/context.py +0 -0
  52. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/interface_tools/controls.py +0 -0
  53. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/interface_tools/interface_tools.py +0 -0
  54. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/iterator_tools.py +0 -0
  55. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/json_fix_tools.py +0 -0
  56. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/json_tools.py +0 -0
  57. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/logging_tools.py +0 -0
  58. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/merging_tools.py +0 -0
  59. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/metric_tools.py +0 -0
  60. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/name_tools.py +0 -0
  61. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/netrc_tools.py +0 -0
  62. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/openai_tools.py +0 -0
  63. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/packaging_tools.py +0 -0
  64. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/parallel_tools.py +0 -0
  65. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/path_tools/__init__.py +0 -0
  66. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/path_tools/app_path_tools.py +0 -0
  67. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/path_tools/path_tools.py +0 -0
  68. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/path_tools/type_path_tools.py +0 -0
  69. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/pattern_tools.py +0 -0
  70. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/pdf_tools.py +0 -0
  71. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/platform_tools.py +0 -0
  72. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/process_tools.py +0 -0
  73. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/profiling_tools.py +0 -0
  74. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/random_tools.py +0 -0
  75. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/semantic_tools.py +0 -0
  76. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/settings_tools.py +0 -0
  77. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/setup_tools/__init__.py +0 -0
  78. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/setup_tools/setup_tools.py +0 -0
  79. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/spaces_tools.py +0 -0
  80. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/string_tools.py +0 -0
  81. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/tabular_tools.py +0 -0
  82. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/tests/__init__.py +0 -0
  83. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/tests/conftest.py +0 -0
  84. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/tests/helpers.py +0 -0
  85. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/tests/test_datatype.py +0 -0
  86. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/tests/test_environment.py +0 -0
  87. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/tests/test_json.py +0 -0
  88. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/tests/test_path.py +0 -0
  89. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/tests/test_yaml.py +0 -0
  90. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/tokenization_tools.py +0 -0
  91. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/tools.py +0 -0
  92. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/unicode_tools.py +0 -0
  93. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/version_tools/__init__.py +0 -0
  94. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/version_tools/version_tools.py +0 -0
  95. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/webhook_tools.py +0 -0
  96. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr/tools/yaml_tools.py +0 -0
  97. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr.tools.egg-info/dependency_links.txt +0 -0
  98. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr.tools.egg-info/entry_points.txt +0 -0
  99. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/fmtr.tools.egg-info/top_level.txt +0 -0
  100. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/pyproject.toml +0 -0
  101. {fmtr_tools-1.3.53 → fmtr_tools-1.3.55}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fmtr.tools
3
- Version: 1.3.53
3
+ Version: 1.3.55
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
@@ -28,8 +28,8 @@ Provides-Extra: process
28
28
  Requires-Dist: logfire; extra == "process"
29
29
  Provides-Extra: profiling
30
30
  Requires-Dist: contexttimer; extra == "profiling"
31
- Provides-Extra: docker-api
32
- Requires-Dist: docker; extra == "docker-api"
31
+ Provides-Extra: docker-client
32
+ Requires-Dist: python-on-whales; extra == "docker-client"
33
33
  Provides-Extra: unicode
34
34
  Requires-Dist: Unidecode; extra == "unicode"
35
35
  Provides-Extra: version
@@ -154,68 +154,68 @@ Provides-Extra: db-document
154
154
  Requires-Dist: beanie[odm]; extra == "db-document"
155
155
  Requires-Dist: motor; extra == "db-document"
156
156
  Provides-Extra: all
157
- Requires-Dist: dask[bag]; extra == "all"
158
- Requires-Dist: peft; extra == "all"
159
- Requires-Dist: cachetools; extra == "all"
160
- Requires-Dist: pymupdf4llm; extra == "all"
161
- Requires-Dist: google-auth-httplib2; extra == "all"
162
- Requires-Dist: google-auth-oauthlib; extra == "all"
163
- Requires-Dist: odfpy; extra == "all"
164
- Requires-Dist: filetype; extra == "all"
165
- Requires-Dist: pydantic; extra == "all"
166
- Requires-Dist: logfire; extra == "all"
167
- Requires-Dist: transformers[sentencepiece]; extra == "all"
168
- Requires-Dist: semver; extra == "all"
169
157
  Requires-Dist: logfire[fastapi]; extra == "all"
170
- Requires-Dist: fastapi; extra == "all"
171
- Requires-Dist: torchvision; extra == "all"
172
- Requires-Dist: sentence_transformers; extra == "all"
173
- Requires-Dist: pandas; extra == "all"
174
- Requires-Dist: pydevd-pycharm~=251.25410.159; extra == "all"
175
- Requires-Dist: contexttimer; extra == "all"
176
- Requires-Dist: openpyxl; extra == "all"
177
- Requires-Dist: pydantic-settings; extra == "all"
178
158
  Requires-Dist: deepdiff; extra == "all"
179
- Requires-Dist: setuptools; extra == "all"
180
- Requires-Dist: beanie[odm]; extra == "all"
181
- Requires-Dist: flet-video; extra == "all"
182
- Requires-Dist: regex; extra == "all"
183
- Requires-Dist: ollama; extra == "all"
184
- Requires-Dist: tinynetrc; extra == "all"
185
- Requires-Dist: huggingface_hub; extra == "all"
159
+ Requires-Dist: flet-webview; extra == "all"
186
160
  Requires-Dist: tokenizers; extra == "all"
187
- Requires-Dist: flet[all]; extra == "all"
188
- Requires-Dist: appdirs; extra == "all"
189
- Requires-Dist: logfire[httpx]; extra == "all"
190
- Requires-Dist: json_repair; extra == "all"
191
- Requires-Dist: torchaudio; extra == "all"
161
+ Requires-Dist: sre_yield; extra == "all"
192
162
  Requires-Dist: uvicorn[standard]; extra == "all"
193
- Requires-Dist: motor; extra == "all"
194
163
  Requires-Dist: bokeh; extra == "all"
195
- Requires-Dist: flet-webview; extra == "all"
196
- Requires-Dist: httpx; extra == "all"
197
- Requires-Dist: playwright; extra == "all"
198
- Requires-Dist: yamlscript; extra == "all"
164
+ Requires-Dist: torchvision; extra == "all"
165
+ Requires-Dist: google-api-python-client; extra == "all"
166
+ Requires-Dist: torchaudio; extra == "all"
167
+ Requires-Dist: pandas; extra == "all"
199
168
  Requires-Dist: distributed; extra == "all"
200
- Requires-Dist: faker; extra == "all"
201
- Requires-Dist: pycountry; extra == "all"
202
- Requires-Dist: tabulate; extra == "all"
203
- Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
169
+ Requires-Dist: setuptools; extra == "all"
170
+ Requires-Dist: diskcache; extra == "all"
171
+ Requires-Dist: transformers[sentencepiece]; extra == "all"
172
+ Requires-Dist: deepmerge; extra == "all"
173
+ Requires-Dist: motor; extra == "all"
174
+ Requires-Dist: appdirs; extra == "all"
175
+ Requires-Dist: google-auth-httplib2; extra == "all"
176
+ Requires-Dist: tinynetrc; extra == "all"
177
+ Requires-Dist: sentence_transformers; extra == "all"
204
178
  Requires-Dist: html2text; extra == "all"
179
+ Requires-Dist: openpyxl; extra == "all"
205
180
  Requires-Dist: google-auth; extra == "all"
181
+ Requires-Dist: pymupdf4llm; extra == "all"
182
+ Requires-Dist: httpx; extra == "all"
183
+ Requires-Dist: fastapi; extra == "all"
184
+ Requires-Dist: yamlscript; extra == "all"
206
185
  Requires-Dist: openai; extra == "all"
186
+ Requires-Dist: pymupdf; extra == "all"
187
+ Requires-Dist: pytest-cov; extra == "all"
188
+ Requires-Dist: python-on-whales; extra == "all"
207
189
  Requires-Dist: Unidecode; extra == "all"
208
- Requires-Dist: google-api-python-client; extra == "all"
209
- Requires-Dist: diskcache; extra == "all"
210
190
  Requires-Dist: dnspython[doh]; extra == "all"
211
- Requires-Dist: pydantic-extra-types; extra == "all"
212
- Requires-Dist: pytest-cov; extra == "all"
191
+ Requires-Dist: logfire; extra == "all"
192
+ Requires-Dist: contexttimer; extra == "all"
193
+ Requires-Dist: tabulate; extra == "all"
194
+ Requires-Dist: odfpy; extra == "all"
195
+ Requires-Dist: beanie[odm]; extra == "all"
196
+ Requires-Dist: json_repair; extra == "all"
197
+ Requires-Dist: flet-video; extra == "all"
198
+ Requires-Dist: logfire[httpx]; extra == "all"
199
+ Requires-Dist: pydevd-pycharm~=251.25410.159; extra == "all"
200
+ Requires-Dist: playwright; extra == "all"
201
+ Requires-Dist: ollama; extra == "all"
213
202
  Requires-Dist: httpx_retries; extra == "all"
203
+ Requires-Dist: peft; extra == "all"
214
204
  Requires-Dist: pyyaml; extra == "all"
215
- Requires-Dist: docker; extra == "all"
216
- Requires-Dist: sre_yield; extra == "all"
217
- Requires-Dist: deepmerge; extra == "all"
218
- Requires-Dist: pymupdf; extra == "all"
205
+ Requires-Dist: faker; extra == "all"
206
+ Requires-Dist: pycountry; extra == "all"
207
+ Requires-Dist: dask[bag]; extra == "all"
208
+ Requires-Dist: pydantic-extra-types; extra == "all"
209
+ Requires-Dist: huggingface_hub; extra == "all"
210
+ Requires-Dist: google-auth-oauthlib; extra == "all"
211
+ Requires-Dist: pydantic-settings; extra == "all"
212
+ Requires-Dist: pydantic; extra == "all"
213
+ Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
214
+ Requires-Dist: flet[all]; extra == "all"
215
+ Requires-Dist: regex; extra == "all"
216
+ Requires-Dist: cachetools; extra == "all"
217
+ Requires-Dist: semver; extra == "all"
218
+ Requires-Dist: filetype; extra == "all"
219
219
  Dynamic: author
220
220
  Dynamic: author-email
221
221
  Dynamic: description
@@ -21,6 +21,7 @@ import fmtr.tools.string_tools as string
21
21
  from fmtr.tools import ai_tools as ai
22
22
  from fmtr.tools import datetime_tools as dt
23
23
  from fmtr.tools import dns_tools as dns
24
+ from fmtr.tools import docker_tools as docker
24
25
  from fmtr.tools import interface_tools as interface
25
26
  from fmtr.tools import version_tools as version
26
27
  from fmtr.tools.constants import Constants
@@ -40,11 +41,6 @@ try:
40
41
  except ModuleNotFoundError as exception:
41
42
  yaml = MissingExtraMockModule('yaml', exception)
42
43
 
43
- try:
44
- from fmtr.tools import docker_tools as docker
45
- from fmtr.tools.docker_tools import Container
46
- except ModuleNotFoundError as exception:
47
- docker = Container = MissingExtraMockModule('docker.api', exception)
48
44
 
49
45
  try:
50
46
  from fmtr.tools import parallel_tools as parallel
@@ -1,3 +1,5 @@
1
+ from typing import List, Optional, Any, Annotated, Generic
2
+
1
3
  import pydantic_ai
2
4
  from pydantic import PlainValidator
3
5
  from pydantic_ai import RunContext, ModelRetry
@@ -6,7 +8,6 @@ from pydantic_ai.agent import AgentRunResult, Agent
6
8
  from pydantic_ai.models.openai import OpenAIModel
7
9
  from pydantic_ai.providers.openai import OpenAIProvider
8
10
  from pydantic_ai.tools import AgentDepsT
9
- from typing import List, Optional, Any, Annotated, Generic
10
11
 
11
12
  from fmtr.tools import environment_tools as env
12
13
  from fmtr.tools.constants import Constants
@@ -27,6 +28,8 @@ class Validator:
27
28
  raise NotImplementedError()
28
29
 
29
30
 
31
+ api_key = env.get(Constants.FMTR_OPENAI_API_KEY_KEY, None)
32
+
30
33
  class Task(Generic[AgentDepsT, OutputDataT]):
31
34
  """
32
35
 
@@ -37,7 +40,7 @@ class Task(Generic[AgentDepsT, OutputDataT]):
37
40
  TypeDeps = str
38
41
  TypeOutput = str
39
42
 
40
- PROVIDER = OpenAIProvider(api_key=env.get(Constants.FMTR_OPENAI_API_KEY_KEY))
43
+ PROVIDER = OpenAIProvider(api_key=api_key) if api_key else None
41
44
 
42
45
  API_HOST_FMTR = env.get(Constants.FMTR_AI_HOST_KEY, Constants.FMTR_AI_HOST_DEFAULT)
43
46
  API_URL_FMTR = f'https://{API_HOST_FMTR}/v1'
@@ -0,0 +1,6 @@
1
+ from fmtr.tools.import_tools import MissingExtraMockModule
2
+
3
+ try:
4
+ from python_on_whales import docker as client
5
+ except ModuleNotFoundError as exception:
6
+ client = MissingExtraMockModule('docker.client', exception)
@@ -0,0 +1 @@
1
+ 1.3.55
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fmtr.tools
3
- Version: 1.3.53
3
+ Version: 1.3.55
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
@@ -28,8 +28,8 @@ Provides-Extra: process
28
28
  Requires-Dist: logfire; extra == "process"
29
29
  Provides-Extra: profiling
30
30
  Requires-Dist: contexttimer; extra == "profiling"
31
- Provides-Extra: docker-api
32
- Requires-Dist: docker; extra == "docker-api"
31
+ Provides-Extra: docker-client
32
+ Requires-Dist: python-on-whales; extra == "docker-client"
33
33
  Provides-Extra: unicode
34
34
  Requires-Dist: Unidecode; extra == "unicode"
35
35
  Provides-Extra: version
@@ -154,68 +154,68 @@ Provides-Extra: db-document
154
154
  Requires-Dist: beanie[odm]; extra == "db-document"
155
155
  Requires-Dist: motor; extra == "db-document"
156
156
  Provides-Extra: all
157
- Requires-Dist: dask[bag]; extra == "all"
158
- Requires-Dist: peft; extra == "all"
159
- Requires-Dist: cachetools; extra == "all"
160
- Requires-Dist: pymupdf4llm; extra == "all"
161
- Requires-Dist: google-auth-httplib2; extra == "all"
162
- Requires-Dist: google-auth-oauthlib; extra == "all"
163
- Requires-Dist: odfpy; extra == "all"
164
- Requires-Dist: filetype; extra == "all"
165
- Requires-Dist: pydantic; extra == "all"
166
- Requires-Dist: logfire; extra == "all"
167
- Requires-Dist: transformers[sentencepiece]; extra == "all"
168
- Requires-Dist: semver; extra == "all"
169
157
  Requires-Dist: logfire[fastapi]; extra == "all"
170
- Requires-Dist: fastapi; extra == "all"
171
- Requires-Dist: torchvision; extra == "all"
172
- Requires-Dist: sentence_transformers; extra == "all"
173
- Requires-Dist: pandas; extra == "all"
174
- Requires-Dist: pydevd-pycharm~=251.25410.159; extra == "all"
175
- Requires-Dist: contexttimer; extra == "all"
176
- Requires-Dist: openpyxl; extra == "all"
177
- Requires-Dist: pydantic-settings; extra == "all"
178
158
  Requires-Dist: deepdiff; extra == "all"
179
- Requires-Dist: setuptools; extra == "all"
180
- Requires-Dist: beanie[odm]; extra == "all"
181
- Requires-Dist: flet-video; extra == "all"
182
- Requires-Dist: regex; extra == "all"
183
- Requires-Dist: ollama; extra == "all"
184
- Requires-Dist: tinynetrc; extra == "all"
185
- Requires-Dist: huggingface_hub; extra == "all"
159
+ Requires-Dist: flet-webview; extra == "all"
186
160
  Requires-Dist: tokenizers; extra == "all"
187
- Requires-Dist: flet[all]; extra == "all"
188
- Requires-Dist: appdirs; extra == "all"
189
- Requires-Dist: logfire[httpx]; extra == "all"
190
- Requires-Dist: json_repair; extra == "all"
191
- Requires-Dist: torchaudio; extra == "all"
161
+ Requires-Dist: sre_yield; extra == "all"
192
162
  Requires-Dist: uvicorn[standard]; extra == "all"
193
- Requires-Dist: motor; extra == "all"
194
163
  Requires-Dist: bokeh; extra == "all"
195
- Requires-Dist: flet-webview; extra == "all"
196
- Requires-Dist: httpx; extra == "all"
197
- Requires-Dist: playwright; extra == "all"
198
- Requires-Dist: yamlscript; extra == "all"
164
+ Requires-Dist: torchvision; extra == "all"
165
+ Requires-Dist: google-api-python-client; extra == "all"
166
+ Requires-Dist: torchaudio; extra == "all"
167
+ Requires-Dist: pandas; extra == "all"
199
168
  Requires-Dist: distributed; extra == "all"
200
- Requires-Dist: faker; extra == "all"
201
- Requires-Dist: pycountry; extra == "all"
202
- Requires-Dist: tabulate; extra == "all"
203
- Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
169
+ Requires-Dist: setuptools; extra == "all"
170
+ Requires-Dist: diskcache; extra == "all"
171
+ Requires-Dist: transformers[sentencepiece]; extra == "all"
172
+ Requires-Dist: deepmerge; extra == "all"
173
+ Requires-Dist: motor; extra == "all"
174
+ Requires-Dist: appdirs; extra == "all"
175
+ Requires-Dist: google-auth-httplib2; extra == "all"
176
+ Requires-Dist: tinynetrc; extra == "all"
177
+ Requires-Dist: sentence_transformers; extra == "all"
204
178
  Requires-Dist: html2text; extra == "all"
179
+ Requires-Dist: openpyxl; extra == "all"
205
180
  Requires-Dist: google-auth; extra == "all"
181
+ Requires-Dist: pymupdf4llm; extra == "all"
182
+ Requires-Dist: httpx; extra == "all"
183
+ Requires-Dist: fastapi; extra == "all"
184
+ Requires-Dist: yamlscript; extra == "all"
206
185
  Requires-Dist: openai; extra == "all"
186
+ Requires-Dist: pymupdf; extra == "all"
187
+ Requires-Dist: pytest-cov; extra == "all"
188
+ Requires-Dist: python-on-whales; extra == "all"
207
189
  Requires-Dist: Unidecode; extra == "all"
208
- Requires-Dist: google-api-python-client; extra == "all"
209
- Requires-Dist: diskcache; extra == "all"
210
190
  Requires-Dist: dnspython[doh]; extra == "all"
211
- Requires-Dist: pydantic-extra-types; extra == "all"
212
- Requires-Dist: pytest-cov; extra == "all"
191
+ Requires-Dist: logfire; extra == "all"
192
+ Requires-Dist: contexttimer; extra == "all"
193
+ Requires-Dist: tabulate; extra == "all"
194
+ Requires-Dist: odfpy; extra == "all"
195
+ Requires-Dist: beanie[odm]; extra == "all"
196
+ Requires-Dist: json_repair; extra == "all"
197
+ Requires-Dist: flet-video; extra == "all"
198
+ Requires-Dist: logfire[httpx]; extra == "all"
199
+ Requires-Dist: pydevd-pycharm~=251.25410.159; extra == "all"
200
+ Requires-Dist: playwright; extra == "all"
201
+ Requires-Dist: ollama; extra == "all"
213
202
  Requires-Dist: httpx_retries; extra == "all"
203
+ Requires-Dist: peft; extra == "all"
214
204
  Requires-Dist: pyyaml; extra == "all"
215
- Requires-Dist: docker; extra == "all"
216
- Requires-Dist: sre_yield; extra == "all"
217
- Requires-Dist: deepmerge; extra == "all"
218
- Requires-Dist: pymupdf; extra == "all"
205
+ Requires-Dist: faker; extra == "all"
206
+ Requires-Dist: pycountry; extra == "all"
207
+ Requires-Dist: dask[bag]; extra == "all"
208
+ Requires-Dist: pydantic-extra-types; extra == "all"
209
+ Requires-Dist: huggingface_hub; extra == "all"
210
+ Requires-Dist: google-auth-oauthlib; extra == "all"
211
+ Requires-Dist: pydantic-settings; extra == "all"
212
+ Requires-Dist: pydantic; extra == "all"
213
+ Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
214
+ Requires-Dist: flet[all]; extra == "all"
215
+ Requires-Dist: regex; extra == "all"
216
+ Requires-Dist: cachetools; extra == "all"
217
+ Requires-Dist: semver; extra == "all"
218
+ Requires-Dist: filetype; extra == "all"
219
219
  Dynamic: author
220
220
  Dynamic: author-email
221
221
  Dynamic: description
@@ -14,7 +14,6 @@ setup.py
14
14
  ./fmtr/tools/datatype_tools.py
15
15
  ./fmtr/tools/datetime_tools.py
16
16
  ./fmtr/tools/debugging_tools.py
17
- ./fmtr/tools/docker_tools.py
18
17
  ./fmtr/tools/environment_tools.py
19
18
  ./fmtr/tools/function_tools.py
20
19
  ./fmtr/tools/google_api_tools.py
@@ -63,6 +62,7 @@ setup.py
63
62
  ./fmtr/tools/dns_tools/dm.py
64
63
  ./fmtr/tools/dns_tools/proxy.py
65
64
  ./fmtr/tools/dns_tools/server.py
65
+ ./fmtr/tools/docker_tools/__init__.py
66
66
  ./fmtr/tools/entrypoints/__init__.py
67
67
  ./fmtr/tools/entrypoints/cache_hfh.py
68
68
  ./fmtr/tools/entrypoints/ep_test.py
@@ -107,7 +107,6 @@ fmtr/tools/dataclass_tools.py
107
107
  fmtr/tools/datatype_tools.py
108
108
  fmtr/tools/datetime_tools.py
109
109
  fmtr/tools/debugging_tools.py
110
- fmtr/tools/docker_tools.py
111
110
  fmtr/tools/environment_tools.py
112
111
  fmtr/tools/function_tools.py
113
112
  fmtr/tools/google_api_tools.py
@@ -156,6 +155,7 @@ fmtr/tools/dns_tools/client.py
156
155
  fmtr/tools/dns_tools/dm.py
157
156
  fmtr/tools/dns_tools/proxy.py
158
157
  fmtr/tools/dns_tools/server.py
158
+ fmtr/tools/docker_tools/__init__.py
159
159
  fmtr/tools/entrypoints/__init__.py
160
160
  fmtr/tools/entrypoints/cache_hfh.py
161
161
  fmtr/tools/entrypoints/ep_test.py
@@ -18,68 +18,68 @@ pydantic-ai[logfire,openai]
18
18
  ollama
19
19
 
20
20
  [all]
21
- dask[bag]
22
- peft
23
- cachetools
24
- pymupdf4llm
25
- google-auth-httplib2
26
- google-auth-oauthlib
27
- odfpy
28
- filetype
29
- pydantic
30
- logfire
31
- transformers[sentencepiece]
32
- semver
33
21
  logfire[fastapi]
34
- fastapi
35
- torchvision
36
- sentence_transformers
37
- pandas
38
- pydevd-pycharm~=251.25410.159
39
- contexttimer
40
- openpyxl
41
- pydantic-settings
42
22
  deepdiff
43
- setuptools
44
- beanie[odm]
45
- flet-video
46
- regex
47
- ollama
48
- tinynetrc
49
- huggingface_hub
23
+ flet-webview
50
24
  tokenizers
51
- flet[all]
52
- appdirs
53
- logfire[httpx]
54
- json_repair
55
- torchaudio
25
+ sre_yield
56
26
  uvicorn[standard]
57
- motor
58
27
  bokeh
59
- flet-webview
60
- httpx
61
- playwright
62
- yamlscript
28
+ torchvision
29
+ google-api-python-client
30
+ torchaudio
31
+ pandas
63
32
  distributed
64
- faker
65
- pycountry
66
- tabulate
67
- pydantic-ai[logfire,openai]
33
+ setuptools
34
+ diskcache
35
+ transformers[sentencepiece]
36
+ deepmerge
37
+ motor
38
+ appdirs
39
+ google-auth-httplib2
40
+ tinynetrc
41
+ sentence_transformers
68
42
  html2text
43
+ openpyxl
69
44
  google-auth
45
+ pymupdf4llm
46
+ httpx
47
+ fastapi
48
+ yamlscript
70
49
  openai
50
+ pymupdf
51
+ pytest-cov
52
+ python-on-whales
71
53
  Unidecode
72
- google-api-python-client
73
- diskcache
74
54
  dnspython[doh]
75
- pydantic-extra-types
76
- pytest-cov
55
+ logfire
56
+ contexttimer
57
+ tabulate
58
+ odfpy
59
+ beanie[odm]
60
+ json_repair
61
+ flet-video
62
+ logfire[httpx]
63
+ pydevd-pycharm~=251.25410.159
64
+ playwright
65
+ ollama
77
66
  httpx_retries
67
+ peft
78
68
  pyyaml
79
- docker
80
- sre_yield
81
- deepmerge
82
- pymupdf
69
+ faker
70
+ pycountry
71
+ dask[bag]
72
+ pydantic-extra-types
73
+ huggingface_hub
74
+ google-auth-oauthlib
75
+ pydantic-settings
76
+ pydantic
77
+ pydantic-ai[logfire,openai]
78
+ flet[all]
79
+ regex
80
+ cachetools
81
+ semver
82
+ filetype
83
83
 
84
84
  [api]
85
85
  fastapi
@@ -122,8 +122,8 @@ httpx_retries
122
122
  logfire
123
123
  logfire[httpx]
124
124
 
125
- [docker.api]
126
- docker
125
+ [docker.client]
126
+ python-on-whales
127
127
 
128
128
  [google.api]
129
129
  google-auth
@@ -10,7 +10,7 @@ DEPENDENCIES = {
10
10
  'augmentation': ['faker', 'sre_yield'],
11
11
  'process': ['logging'],
12
12
  'profiling': ['contexttimer'],
13
- 'docker.api': ['docker'],
13
+ 'docker.client': ['python-on-whales'],
14
14
  'unicode': ['Unidecode'],
15
15
  'version': [],
16
16
  'version.dev': ['semver'],
@@ -1,30 +0,0 @@
1
- import contextlib
2
- import docker
3
-
4
-
5
- @contextlib.contextmanager
6
- def Container(image, ports=None, name=None, **kwargs):
7
- """
8
-
9
- Run a Docker container in a context manager
10
-
11
- """
12
- client = docker.from_env()
13
-
14
- try:
15
- container = client.containers.get(name)
16
- container.stop()
17
- container.remove()
18
- except docker.errors.NotFound:
19
- pass
20
-
21
- ports = {f'{port}/tcp': port for port in ports}
22
- container = client.containers.run(image, ports=ports, detach=True, name=name, **kwargs)
23
-
24
- try:
25
- yield container
26
- finally:
27
- container.stop()
28
- container.remove()
29
-
30
-
@@ -1 +0,0 @@
1
- 1.3.53
File without changes
File without changes
File without changes
File without changes