fmtr.tools 1.3.59__tar.gz → 1.3.61__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.59 → fmtr_tools-1.3.61}/PKG-INFO +47 -47
  2. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/ai_tools/agentic_tools.py +19 -4
  3. fmtr_tools-1.3.61/fmtr/tools/docker_tools/__init__.py +6 -0
  4. fmtr_tools-1.3.61/fmtr/tools/version +1 -0
  5. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr.tools.egg-info/PKG-INFO +47 -47
  6. fmtr_tools-1.3.59/fmtr/tools/docker_tools/__init__.py +0 -6
  7. fmtr_tools-1.3.59/fmtr/tools/version +0 -1
  8. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/LICENSE +0 -0
  9. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/README.md +0 -0
  10. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/__init__.py +0 -0
  11. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/ai_tools/__init__.py +0 -0
  12. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/ai_tools/inference_tools.py +0 -0
  13. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/api_tools.py +0 -0
  14. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/async_tools.py +0 -0
  15. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/augmentation_tools.py +0 -0
  16. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/caching_tools.py +0 -0
  17. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/constants.py +0 -0
  18. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/context_tools.py +0 -0
  19. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/data_modelling_tools.py +0 -0
  20. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/database_tools/__init__.py +0 -0
  21. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/database_tools/document.py +0 -0
  22. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/dataclass_tools.py +0 -0
  23. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/datatype_tools.py +0 -0
  24. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/datetime_tools.py +0 -0
  25. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/debugging_tools.py +0 -0
  26. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/dns_tools/__init__.py +0 -0
  27. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/dns_tools/client.py +0 -0
  28. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/dns_tools/dm.py +0 -0
  29. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/dns_tools/proxy.py +0 -0
  30. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/dns_tools/server.py +0 -0
  31. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/entrypoints/__init__.py +0 -0
  32. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/entrypoints/cache_hfh.py +0 -0
  33. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/entrypoints/ep_test.py +0 -0
  34. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/entrypoints/install_yamlscript.py +0 -0
  35. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/entrypoints/remote_debug_test.py +0 -0
  36. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/entrypoints/shell_debug.py +0 -0
  37. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/environment_tools.py +0 -0
  38. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/function_tools.py +0 -0
  39. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/google_api_tools.py +0 -0
  40. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/hash_tools.py +0 -0
  41. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/hfh_tools.py +0 -0
  42. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/html_tools.py +0 -0
  43. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/http_tools.py +0 -0
  44. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/import_tools.py +0 -0
  45. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/inherit_tools.py +0 -0
  46. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/inspection_tools.py +0 -0
  47. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/interface_tools/__init__.py +0 -0
  48. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/interface_tools/context.py +0 -0
  49. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/interface_tools/controls.py +0 -0
  50. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/interface_tools/interface_tools.py +0 -0
  51. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/iterator_tools.py +0 -0
  52. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/json_fix_tools.py +0 -0
  53. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/json_tools.py +0 -0
  54. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/logging_tools.py +0 -0
  55. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/merging_tools.py +0 -0
  56. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/metric_tools.py +0 -0
  57. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/name_tools.py +0 -0
  58. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/netrc_tools.py +0 -0
  59. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/openai_tools.py +0 -0
  60. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/packaging_tools.py +0 -0
  61. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/parallel_tools.py +0 -0
  62. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/path_tools/__init__.py +0 -0
  63. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/path_tools/app_path_tools.py +0 -0
  64. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/path_tools/path_tools.py +0 -0
  65. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/path_tools/type_path_tools.py +0 -0
  66. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/pattern_tools.py +0 -0
  67. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/pdf_tools.py +0 -0
  68. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/platform_tools.py +0 -0
  69. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/process_tools.py +0 -0
  70. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/profiling_tools.py +0 -0
  71. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/random_tools.py +0 -0
  72. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/semantic_tools.py +0 -0
  73. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/settings_tools.py +0 -0
  74. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/setup_tools/__init__.py +0 -0
  75. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/setup_tools/setup_tools.py +0 -0
  76. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/spaces_tools.py +0 -0
  77. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/string_tools.py +0 -0
  78. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/tabular_tools.py +0 -0
  79. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/tests/__init__.py +0 -0
  80. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/tests/conftest.py +0 -0
  81. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/tests/helpers.py +0 -0
  82. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/tests/test_datatype.py +0 -0
  83. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/tests/test_environment.py +0 -0
  84. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/tests/test_json.py +0 -0
  85. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/tests/test_path.py +0 -0
  86. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/tests/test_yaml.py +0 -0
  87. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/tokenization_tools.py +0 -0
  88. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/tools.py +0 -0
  89. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/unicode_tools.py +0 -0
  90. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/version_tools/__init__.py +0 -0
  91. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/version_tools/version_tools.py +0 -0
  92. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/webhook_tools.py +0 -0
  93. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr/tools/yaml_tools.py +0 -0
  94. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr.tools.egg-info/SOURCES.txt +0 -0
  95. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr.tools.egg-info/dependency_links.txt +0 -0
  96. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr.tools.egg-info/entry_points.txt +0 -0
  97. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr.tools.egg-info/requires.txt +46 -46
  98. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/fmtr.tools.egg-info/top_level.txt +0 -0
  99. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/pyproject.toml +0 -0
  100. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/setup.cfg +0 -0
  101. {fmtr_tools-1.3.59 → fmtr_tools-1.3.61}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fmtr.tools
3
- Version: 1.3.59
3
+ Version: 1.3.61
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
@@ -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: pydevd-pycharm~=251.25410.159; extra == "all"
158
- Requires-Dist: faker; extra == "all"
157
+ Requires-Dist: tabulate; extra == "all"
158
+ Requires-Dist: pydantic-extra-types; extra == "all"
159
+ Requires-Dist: google-auth-httplib2; extra == "all"
160
+ Requires-Dist: filetype; extra == "all"
161
+ Requires-Dist: odfpy; extra == "all"
162
+ Requires-Dist: logfire[fastapi]; extra == "all"
159
163
  Requires-Dist: torchaudio; extra == "all"
160
164
  Requires-Dist: python-on-whales; extra == "all"
161
- Requires-Dist: uvicorn[standard]; extra == "all"
162
- Requires-Dist: cachetools; extra == "all"
163
- Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
164
- Requires-Dist: regex; extra == "all"
165
- Requires-Dist: filetype; extra == "all"
165
+ Requires-Dist: torchvision; extra == "all"
166
166
  Requires-Dist: pydantic-settings; extra == "all"
167
- Requires-Dist: motor; extra == "all"
168
- Requires-Dist: Unidecode; extra == "all"
169
- Requires-Dist: tokenizers; extra == "all"
170
- Requires-Dist: setuptools; extra == "all"
171
- Requires-Dist: distributed; extra == "all"
167
+ Requires-Dist: logfire[httpx]; extra == "all"
172
168
  Requires-Dist: dnspython[doh]; extra == "all"
169
+ Requires-Dist: deepmerge; extra == "all"
173
170
  Requires-Dist: pyyaml; extra == "all"
174
- Requires-Dist: tabulate; extra == "all"
175
- Requires-Dist: sre_yield; extra == "all"
171
+ Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
172
+ Requires-Dist: pydevd-pycharm~=251.25410.159; extra == "all"
173
+ Requires-Dist: pandas; extra == "all"
174
+ Requires-Dist: beanie[odm]; extra == "all"
176
175
  Requires-Dist: sentence_transformers; extra == "all"
177
- Requires-Dist: html2text; extra == "all"
178
- Requires-Dist: logfire[fastapi]; extra == "all"
179
- Requires-Dist: fastapi; extra == "all"
180
- Requires-Dist: google-auth-httplib2; extra == "all"
181
- Requires-Dist: openpyxl; extra == "all"
182
- Requires-Dist: bokeh; extra == "all"
183
- Requires-Dist: httpx_retries; extra == "all"
176
+ Requires-Dist: playwright; extra == "all"
177
+ Requires-Dist: dask[bag]; extra == "all"
184
178
  Requires-Dist: yamlscript; extra == "all"
185
- Requires-Dist: flet[all]; extra == "all"
179
+ Requires-Dist: Unidecode; extra == "all"
180
+ Requires-Dist: pytest-cov; extra == "all"
186
181
  Requires-Dist: httpx; extra == "all"
187
- Requires-Dist: pydantic-extra-types; extra == "all"
188
- Requires-Dist: google-auth-oauthlib; extra == "all"
189
- Requires-Dist: deepdiff; extra == "all"
190
- Requires-Dist: logfire; extra == "all"
182
+ Requires-Dist: html2text; extra == "all"
183
+ Requires-Dist: transformers[sentencepiece]; extra == "all"
184
+ Requires-Dist: regex; extra == "all"
185
+ Requires-Dist: tokenizers; extra == "all"
191
186
  Requires-Dist: pydantic; extra == "all"
187
+ Requires-Dist: pycountry; extra == "all"
192
188
  Requires-Dist: huggingface_hub; extra == "all"
193
- Requires-Dist: pandas; extra == "all"
194
- Requires-Dist: pymupdf4llm; extra == "all"
195
- Requires-Dist: appdirs; extra == "all"
196
- Requires-Dist: pymupdf; extra == "all"
189
+ Requires-Dist: contexttimer; extra == "all"
190
+ Requires-Dist: bokeh; extra == "all"
197
191
  Requires-Dist: semver; extra == "all"
198
- Requires-Dist: tinynetrc; extra == "all"
192
+ Requires-Dist: flet-webview; extra == "all"
193
+ Requires-Dist: logfire; extra == "all"
194
+ Requires-Dist: sre_yield; extra == "all"
195
+ Requires-Dist: deepdiff; extra == "all"
199
196
  Requires-Dist: json_repair; extra == "all"
197
+ Requires-Dist: cachetools; extra == "all"
198
+ Requires-Dist: distributed; extra == "all"
199
+ Requires-Dist: pymupdf4llm; extra == "all"
200
+ Requires-Dist: httpx_retries; extra == "all"
201
+ Requires-Dist: faker; extra == "all"
202
+ Requires-Dist: flet[all]; extra == "all"
203
+ Requires-Dist: motor; extra == "all"
204
+ Requires-Dist: uvicorn[standard]; extra == "all"
205
+ Requires-Dist: diskcache; extra == "all"
206
+ Requires-Dist: appdirs; extra == "all"
207
+ Requires-Dist: openai; extra == "all"
208
+ Requires-Dist: google-auth-oauthlib; extra == "all"
209
+ Requires-Dist: setuptools; extra == "all"
200
210
  Requires-Dist: flet-video; extra == "all"
201
- Requires-Dist: dask[bag]; extra == "all"
202
- Requires-Dist: peft; extra == "all"
203
- Requires-Dist: pytest-cov; extra == "all"
204
211
  Requires-Dist: google-api-python-client; extra == "all"
205
- Requires-Dist: pycountry; extra == "all"
206
- Requires-Dist: torchvision; extra == "all"
207
212
  Requires-Dist: ollama; extra == "all"
208
- Requires-Dist: diskcache; extra == "all"
209
- Requires-Dist: logfire[httpx]; extra == "all"
210
- Requires-Dist: deepmerge; extra == "all"
211
- Requires-Dist: playwright; extra == "all"
212
- Requires-Dist: contexttimer; extra == "all"
213
- Requires-Dist: flet-webview; extra == "all"
213
+ Requires-Dist: openpyxl; extra == "all"
214
214
  Requires-Dist: google-auth; extra == "all"
215
- Requires-Dist: transformers[sentencepiece]; extra == "all"
216
- Requires-Dist: openai; extra == "all"
217
- Requires-Dist: odfpy; extra == "all"
218
- Requires-Dist: beanie[odm]; extra == "all"
215
+ Requires-Dist: tinynetrc; extra == "all"
216
+ Requires-Dist: pymupdf; extra == "all"
217
+ Requires-Dist: peft; extra == "all"
218
+ Requires-Dist: fastapi; extra == "all"
219
219
  Dynamic: author
220
220
  Dynamic: author-email
221
221
  Dynamic: description
@@ -6,6 +6,7 @@ from pydantic_ai import RunContext, ModelRetry
6
6
  from pydantic_ai._output import OutputDataT
7
7
  from pydantic_ai.agent import AgentRunResult, Agent
8
8
  from pydantic_ai.models.openai import OpenAIModel
9
+ from pydantic_ai.output import OutputSpec, NativeOutput, ToolOutput
9
10
  from pydantic_ai.providers.openai import OpenAIProvider
10
11
  from pydantic_ai.tools import AgentDepsT
11
12
 
@@ -47,7 +48,7 @@ class Task(Generic[AgentDepsT, OutputDataT]):
47
48
  PROVIDER_FMTR = OpenAIProvider(base_url=API_URL_FMTR)
48
49
 
49
50
  MODEL_ID = 'gpt-4o'
50
- MODEL_ID_FMTR = 'qwen2.5-coder:14b'
51
+ MODEL_ID_FMTR = 'qwen2.5-coder:32b'
51
52
  SYSTEM_PROMPT_STATIC = None
52
53
  RESULT_RETRIES = 5
53
54
  VALIDATORS: List[Validator] = []
@@ -65,7 +66,7 @@ class Task(Generic[AgentDepsT, OutputDataT]):
65
66
  model=self.model,
66
67
  system_prompt=self.SYSTEM_PROMPT_STATIC or [],
67
68
  deps_type=self.TypeDeps,
68
- output_type=self.TypeOutput,
69
+ output_type=self.tool_output,
69
70
  output_retries=self.RESULT_RETRIES,
70
71
  **kwargs
71
72
  )
@@ -74,6 +75,16 @@ class Task(Generic[AgentDepsT, OutputDataT]):
74
75
  self.agent.system_prompt(self.add_system_prompt)
75
76
  self.history = []
76
77
 
78
+ @property
79
+ def tool_output(self) -> OutputSpec[OutputDataT]:
80
+ """
81
+
82
+ Tool output specification (e.g. ToolOutput/NativeOutput etc.)
83
+
84
+ """
85
+ return ToolOutput(self.TypeOutput)
86
+
87
+
77
88
  @property
78
89
  def sync_runner(self):
79
90
  """
@@ -183,11 +194,15 @@ if __name__ == '__main__':
183
194
 
184
195
 
185
196
  class TaskTest(Task):
186
- # PROVIDER = Task.PROVIDER_FMTR
187
- # MODEL_ID = 'qwen2.5-coder:14b'
197
+ PROVIDER = Task.PROVIDER_FMTR
198
+ MODEL_ID = Task.MODEL_ID_FMTR
188
199
  TypeOutput = TestOutput
189
200
  SYSTEM_PROMPT_STATIC = 'Tell the user jokes.'
190
201
 
202
+ @property
203
+ def tool_output(self) -> OutputSpec[TestOutput]:
204
+ return NativeOutput(self.TypeOutput)
205
+
191
206
  def add_system_prompt(self, ctx: RunContext[TestDeps]) -> str:
192
207
  return f'The jokes must be in the {ctx.deps.lang} language.'
193
208
 
@@ -0,0 +1,6 @@
1
+ from fmtr.tools.import_tools import MissingExtraMockModule
2
+
3
+ try:
4
+ from python_on_whales import DockerClient
5
+ except ModuleNotFoundError as exception:
6
+ DockerClient = MissingExtraMockModule('docker.client', exception)
@@ -0,0 +1 @@
1
+ 1.3.61
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fmtr.tools
3
- Version: 1.3.59
3
+ Version: 1.3.61
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
@@ -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: pydevd-pycharm~=251.25410.159; extra == "all"
158
- Requires-Dist: faker; extra == "all"
157
+ Requires-Dist: tabulate; extra == "all"
158
+ Requires-Dist: pydantic-extra-types; extra == "all"
159
+ Requires-Dist: google-auth-httplib2; extra == "all"
160
+ Requires-Dist: filetype; extra == "all"
161
+ Requires-Dist: odfpy; extra == "all"
162
+ Requires-Dist: logfire[fastapi]; extra == "all"
159
163
  Requires-Dist: torchaudio; extra == "all"
160
164
  Requires-Dist: python-on-whales; extra == "all"
161
- Requires-Dist: uvicorn[standard]; extra == "all"
162
- Requires-Dist: cachetools; extra == "all"
163
- Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
164
- Requires-Dist: regex; extra == "all"
165
- Requires-Dist: filetype; extra == "all"
165
+ Requires-Dist: torchvision; extra == "all"
166
166
  Requires-Dist: pydantic-settings; extra == "all"
167
- Requires-Dist: motor; extra == "all"
168
- Requires-Dist: Unidecode; extra == "all"
169
- Requires-Dist: tokenizers; extra == "all"
170
- Requires-Dist: setuptools; extra == "all"
171
- Requires-Dist: distributed; extra == "all"
167
+ Requires-Dist: logfire[httpx]; extra == "all"
172
168
  Requires-Dist: dnspython[doh]; extra == "all"
169
+ Requires-Dist: deepmerge; extra == "all"
173
170
  Requires-Dist: pyyaml; extra == "all"
174
- Requires-Dist: tabulate; extra == "all"
175
- Requires-Dist: sre_yield; extra == "all"
171
+ Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
172
+ Requires-Dist: pydevd-pycharm~=251.25410.159; extra == "all"
173
+ Requires-Dist: pandas; extra == "all"
174
+ Requires-Dist: beanie[odm]; extra == "all"
176
175
  Requires-Dist: sentence_transformers; extra == "all"
177
- Requires-Dist: html2text; extra == "all"
178
- Requires-Dist: logfire[fastapi]; extra == "all"
179
- Requires-Dist: fastapi; extra == "all"
180
- Requires-Dist: google-auth-httplib2; extra == "all"
181
- Requires-Dist: openpyxl; extra == "all"
182
- Requires-Dist: bokeh; extra == "all"
183
- Requires-Dist: httpx_retries; extra == "all"
176
+ Requires-Dist: playwright; extra == "all"
177
+ Requires-Dist: dask[bag]; extra == "all"
184
178
  Requires-Dist: yamlscript; extra == "all"
185
- Requires-Dist: flet[all]; extra == "all"
179
+ Requires-Dist: Unidecode; extra == "all"
180
+ Requires-Dist: pytest-cov; extra == "all"
186
181
  Requires-Dist: httpx; extra == "all"
187
- Requires-Dist: pydantic-extra-types; extra == "all"
188
- Requires-Dist: google-auth-oauthlib; extra == "all"
189
- Requires-Dist: deepdiff; extra == "all"
190
- Requires-Dist: logfire; extra == "all"
182
+ Requires-Dist: html2text; extra == "all"
183
+ Requires-Dist: transformers[sentencepiece]; extra == "all"
184
+ Requires-Dist: regex; extra == "all"
185
+ Requires-Dist: tokenizers; extra == "all"
191
186
  Requires-Dist: pydantic; extra == "all"
187
+ Requires-Dist: pycountry; extra == "all"
192
188
  Requires-Dist: huggingface_hub; extra == "all"
193
- Requires-Dist: pandas; extra == "all"
194
- Requires-Dist: pymupdf4llm; extra == "all"
195
- Requires-Dist: appdirs; extra == "all"
196
- Requires-Dist: pymupdf; extra == "all"
189
+ Requires-Dist: contexttimer; extra == "all"
190
+ Requires-Dist: bokeh; extra == "all"
197
191
  Requires-Dist: semver; extra == "all"
198
- Requires-Dist: tinynetrc; extra == "all"
192
+ Requires-Dist: flet-webview; extra == "all"
193
+ Requires-Dist: logfire; extra == "all"
194
+ Requires-Dist: sre_yield; extra == "all"
195
+ Requires-Dist: deepdiff; extra == "all"
199
196
  Requires-Dist: json_repair; extra == "all"
197
+ Requires-Dist: cachetools; extra == "all"
198
+ Requires-Dist: distributed; extra == "all"
199
+ Requires-Dist: pymupdf4llm; extra == "all"
200
+ Requires-Dist: httpx_retries; extra == "all"
201
+ Requires-Dist: faker; extra == "all"
202
+ Requires-Dist: flet[all]; extra == "all"
203
+ Requires-Dist: motor; extra == "all"
204
+ Requires-Dist: uvicorn[standard]; extra == "all"
205
+ Requires-Dist: diskcache; extra == "all"
206
+ Requires-Dist: appdirs; extra == "all"
207
+ Requires-Dist: openai; extra == "all"
208
+ Requires-Dist: google-auth-oauthlib; extra == "all"
209
+ Requires-Dist: setuptools; extra == "all"
200
210
  Requires-Dist: flet-video; extra == "all"
201
- Requires-Dist: dask[bag]; extra == "all"
202
- Requires-Dist: peft; extra == "all"
203
- Requires-Dist: pytest-cov; extra == "all"
204
211
  Requires-Dist: google-api-python-client; extra == "all"
205
- Requires-Dist: pycountry; extra == "all"
206
- Requires-Dist: torchvision; extra == "all"
207
212
  Requires-Dist: ollama; extra == "all"
208
- Requires-Dist: diskcache; extra == "all"
209
- Requires-Dist: logfire[httpx]; extra == "all"
210
- Requires-Dist: deepmerge; extra == "all"
211
- Requires-Dist: playwright; extra == "all"
212
- Requires-Dist: contexttimer; extra == "all"
213
- Requires-Dist: flet-webview; extra == "all"
213
+ Requires-Dist: openpyxl; extra == "all"
214
214
  Requires-Dist: google-auth; extra == "all"
215
- Requires-Dist: transformers[sentencepiece]; extra == "all"
216
- Requires-Dist: openai; extra == "all"
217
- Requires-Dist: odfpy; extra == "all"
218
- Requires-Dist: beanie[odm]; extra == "all"
215
+ Requires-Dist: tinynetrc; extra == "all"
216
+ Requires-Dist: pymupdf; extra == "all"
217
+ Requires-Dist: peft; extra == "all"
218
+ Requires-Dist: fastapi; extra == "all"
219
219
  Dynamic: author
220
220
  Dynamic: author-email
221
221
  Dynamic: description
@@ -1,6 +0,0 @@
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)
@@ -1 +0,0 @@
1
- 1.3.59
File without changes
File without changes
@@ -18,68 +18,68 @@ pydantic-ai[logfire,openai]
18
18
  ollama
19
19
 
20
20
  [all]
21
- pydevd-pycharm~=251.25410.159
22
- faker
21
+ tabulate
22
+ pydantic-extra-types
23
+ google-auth-httplib2
24
+ filetype
25
+ odfpy
26
+ logfire[fastapi]
23
27
  torchaudio
24
28
  python-on-whales
25
- uvicorn[standard]
26
- cachetools
27
- pydantic-ai[logfire,openai]
28
- regex
29
- filetype
29
+ torchvision
30
30
  pydantic-settings
31
- motor
32
- Unidecode
33
- tokenizers
34
- setuptools
35
- distributed
31
+ logfire[httpx]
36
32
  dnspython[doh]
33
+ deepmerge
37
34
  pyyaml
38
- tabulate
39
- sre_yield
35
+ pydantic-ai[logfire,openai]
36
+ pydevd-pycharm~=251.25410.159
37
+ pandas
38
+ beanie[odm]
40
39
  sentence_transformers
41
- html2text
42
- logfire[fastapi]
43
- fastapi
44
- google-auth-httplib2
45
- openpyxl
46
- bokeh
47
- httpx_retries
40
+ playwright
41
+ dask[bag]
48
42
  yamlscript
49
- flet[all]
43
+ Unidecode
44
+ pytest-cov
50
45
  httpx
51
- pydantic-extra-types
52
- google-auth-oauthlib
53
- deepdiff
54
- logfire
46
+ html2text
47
+ transformers[sentencepiece]
48
+ regex
49
+ tokenizers
55
50
  pydantic
51
+ pycountry
56
52
  huggingface_hub
57
- pandas
58
- pymupdf4llm
59
- appdirs
60
- pymupdf
53
+ contexttimer
54
+ bokeh
61
55
  semver
62
- tinynetrc
56
+ flet-webview
57
+ logfire
58
+ sre_yield
59
+ deepdiff
63
60
  json_repair
61
+ cachetools
62
+ distributed
63
+ pymupdf4llm
64
+ httpx_retries
65
+ faker
66
+ flet[all]
67
+ motor
68
+ uvicorn[standard]
69
+ diskcache
70
+ appdirs
71
+ openai
72
+ google-auth-oauthlib
73
+ setuptools
64
74
  flet-video
65
- dask[bag]
66
- peft
67
- pytest-cov
68
75
  google-api-python-client
69
- pycountry
70
- torchvision
71
76
  ollama
72
- diskcache
73
- logfire[httpx]
74
- deepmerge
75
- playwright
76
- contexttimer
77
- flet-webview
77
+ openpyxl
78
78
  google-auth
79
- transformers[sentencepiece]
80
- openai
81
- odfpy
82
- beanie[odm]
79
+ tinynetrc
80
+ pymupdf
81
+ peft
82
+ fastapi
83
83
 
84
84
  [api]
85
85
  fastapi
File without changes
File without changes
File without changes