fmtr.tools 1.3.35__tar.gz → 1.3.37__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 (96) hide show
  1. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/PKG-INFO +55 -47
  2. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/__init__.py +5 -0
  3. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/constants.py +1 -0
  4. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/environment_tools.py +1 -1
  5. fmtr_tools-1.3.37/fmtr/tools/version +1 -0
  6. fmtr_tools-1.3.37/fmtr/tools/webhook_tools.py +17 -0
  7. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr.tools.egg-info/PKG-INFO +55 -47
  8. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr.tools.egg-info/SOURCES.txt +2 -0
  9. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr.tools.egg-info/requires.txt +56 -46
  10. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/setup.py +3 -1
  11. fmtr_tools-1.3.35/fmtr/tools/version +0 -1
  12. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/LICENSE +0 -0
  13. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/README.md +0 -0
  14. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/ai_tools/__init__.py +0 -0
  15. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/ai_tools/agentic_tools.py +0 -0
  16. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/ai_tools/inference_tools.py +0 -0
  17. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/api_tools.py +0 -0
  18. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/async_tools.py +0 -0
  19. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/augmentation_tools.py +0 -0
  20. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/caching_tools.py +0 -0
  21. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/context_tools.py +0 -0
  22. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/data_modelling_tools.py +0 -0
  23. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/dataclass_tools.py +0 -0
  24. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/datatype_tools.py +0 -0
  25. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/debugging_tools.py +0 -0
  26. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/dns_tools/__init__.py +0 -0
  27. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/dns_tools/client.py +0 -0
  28. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/dns_tools/dm.py +0 -0
  29. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/dns_tools/proxy.py +0 -0
  30. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/dns_tools/server.py +0 -0
  31. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/docker_tools.py +0 -0
  32. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/entrypoints/__init__.py +0 -0
  33. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/entrypoints/cache_hfh.py +0 -0
  34. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/entrypoints/ep_test.py +0 -0
  35. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/entrypoints/install_yamlscript.py +0 -0
  36. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/entrypoints/remote_debug_test.py +0 -0
  37. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/entrypoints/shell_debug.py +0 -0
  38. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/function_tools.py +0 -0
  39. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/google_api_tools.py +0 -0
  40. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/hash_tools.py +0 -0
  41. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/hfh_tools.py +0 -0
  42. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/html_tools.py +0 -0
  43. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/http_tools.py +0 -0
  44. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/import_tools.py +0 -0
  45. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/inherit_tools.py +0 -0
  46. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/inspection_tools.py +0 -0
  47. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/interface_tools/__init__.py +0 -0
  48. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/interface_tools/controls.py +0 -0
  49. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/interface_tools/interface_tools.py +0 -0
  50. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/iterator_tools.py +0 -0
  51. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/json_fix_tools.py +0 -0
  52. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/json_tools.py +0 -0
  53. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/logging_tools.py +0 -0
  54. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/merging_tools.py +0 -0
  55. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/metric_tools.py +0 -0
  56. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/name_tools.py +0 -0
  57. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/netrc_tools.py +0 -0
  58. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/openai_tools.py +0 -0
  59. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/packaging_tools.py +0 -0
  60. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/parallel_tools.py +0 -0
  61. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/path_tools/__init__.py +0 -0
  62. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/path_tools/app_path_tools.py +0 -0
  63. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/path_tools/path_tools.py +0 -0
  64. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/path_tools/type_path_tools.py +0 -0
  65. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/pattern_tools.py +0 -0
  66. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/pdf_tools.py +0 -0
  67. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/platform_tools.py +0 -0
  68. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/process_tools.py +0 -0
  69. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/profiling_tools.py +0 -0
  70. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/random_tools.py +0 -0
  71. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/semantic_tools.py +0 -0
  72. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/settings_tools.py +0 -0
  73. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/setup_tools/__init__.py +0 -0
  74. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/setup_tools/setup_tools.py +0 -0
  75. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/spaces_tools.py +0 -0
  76. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/string_tools.py +0 -0
  77. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/tabular_tools.py +0 -0
  78. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/tests/__init__.py +0 -0
  79. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/tests/conftest.py +0 -0
  80. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/tests/helpers.py +0 -0
  81. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/tests/test_datatype.py +0 -0
  82. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/tests/test_environment.py +0 -0
  83. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/tests/test_json.py +0 -0
  84. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/tests/test_path.py +0 -0
  85. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/tests/test_yaml.py +0 -0
  86. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/tokenization_tools.py +0 -0
  87. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/tools.py +0 -0
  88. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/unicode_tools.py +0 -0
  89. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/version_tools/__init__.py +0 -0
  90. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/version_tools/version_tools.py +0 -0
  91. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr/tools/yaml_tools.py +0 -0
  92. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr.tools.egg-info/dependency_links.txt +0 -0
  93. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr.tools.egg-info/entry_points.txt +0 -0
  94. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/fmtr.tools.egg-info/top_level.txt +0 -0
  95. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/pyproject.toml +0 -0
  96. {fmtr_tools-1.3.35 → fmtr_tools-1.3.37}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fmtr.tools
3
- Version: 1.3.35
3
+ Version: 1.3.37
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
@@ -125,62 +125,70 @@ Requires-Dist: logfire; extra == "http"
125
125
  Requires-Dist: logfire[httpx]; extra == "http"
126
126
  Provides-Extra: setup
127
127
  Requires-Dist: setuptools; extra == "setup"
128
+ Provides-Extra: webhook
129
+ Requires-Dist: httpx; extra == "webhook"
130
+ Requires-Dist: httpx_retries; extra == "webhook"
131
+ Requires-Dist: logfire; extra == "webhook"
132
+ Requires-Dist: logfire[httpx]; extra == "webhook"
133
+ Provides-Extra: browsers
134
+ Requires-Dist: playwright; extra == "browsers"
128
135
  Provides-Extra: all
129
- Requires-Dist: uvicorn[standard]; extra == "all"
130
- Requires-Dist: tinynetrc; extra == "all"
136
+ Requires-Dist: tokenizers; extra == "all"
137
+ Requires-Dist: docker; extra == "all"
138
+ Requires-Dist: filetype; extra == "all"
139
+ Requires-Dist: pymupdf; extra == "all"
140
+ Requires-Dist: logfire[httpx]; extra == "all"
141
+ Requires-Dist: logfire[fastapi]; extra == "all"
142
+ Requires-Dist: json_repair; extra == "all"
143
+ Requires-Dist: logfire; extra == "all"
131
144
  Requires-Dist: deepmerge; extra == "all"
132
- Requires-Dist: sentence_transformers; extra == "all"
145
+ Requires-Dist: peft; extra == "all"
146
+ Requires-Dist: fastapi; extra == "all"
147
+ Requires-Dist: google-auth; extra == "all"
148
+ Requires-Dist: google-auth-oauthlib; extra == "all"
149
+ Requires-Dist: transformers[sentencepiece]; extra == "all"
150
+ Requires-Dist: appdirs; extra == "all"
151
+ Requires-Dist: tabulate; extra == "all"
133
152
  Requires-Dist: torchvision; extra == "all"
134
- Requires-Dist: yamlscript; extra == "all"
135
- Requires-Dist: ollama; extra == "all"
136
- Requires-Dist: logfire[fastapi]; extra == "all"
137
- Requires-Dist: huggingface_hub; extra == "all"
138
- Requires-Dist: faker; extra == "all"
139
- Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
140
- Requires-Dist: logfire[httpx]; extra == "all"
141
- Requires-Dist: distributed; extra == "all"
142
- Requires-Dist: semver; extra == "all"
153
+ Requires-Dist: playwright; extra == "all"
154
+ Requires-Dist: diskcache; extra == "all"
143
155
  Requires-Dist: openpyxl; extra == "all"
144
- Requires-Dist: google-auth-httplib2; extra == "all"
156
+ Requires-Dist: tinynetrc; extra == "all"
157
+ Requires-Dist: pymupdf4llm; extra == "all"
145
158
  Requires-Dist: dnspython[doh]; extra == "all"
146
- Requires-Dist: openai; extra == "all"
147
- Requires-Dist: Unidecode; extra == "all"
148
- Requires-Dist: transformers[sentencepiece]; extra == "all"
149
- Requires-Dist: cachetools; extra == "all"
150
- Requires-Dist: google-auth-oauthlib; extra == "all"
151
- Requires-Dist: pydantic; extra == "all"
159
+ Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
160
+ Requires-Dist: sentence_transformers; extra == "all"
161
+ Requires-Dist: pydantic-settings; extra == "all"
162
+ Requires-Dist: ollama; extra == "all"
152
163
  Requires-Dist: httpx; extra == "all"
153
- Requires-Dist: docker; extra == "all"
154
- Requires-Dist: peft; extra == "all"
155
- Requires-Dist: torchaudio; extra == "all"
156
- Requires-Dist: flet-video; extra == "all"
157
- Requires-Dist: regex; extra == "all"
158
- Requires-Dist: pandas; extra == "all"
159
- Requires-Dist: google-api-python-client; extra == "all"
160
- Requires-Dist: appdirs; extra == "all"
161
- Requires-Dist: logfire; extra == "all"
162
164
  Requires-Dist: setuptools; extra == "all"
165
+ Requires-Dist: google-api-python-client; extra == "all"
166
+ Requires-Dist: distributed; extra == "all"
167
+ Requires-Dist: google-auth-httplib2; extra == "all"
168
+ Requires-Dist: dask[bag]; extra == "all"
169
+ Requires-Dist: yamlscript; extra == "all"
170
+ Requires-Dist: pyyaml; extra == "all"
171
+ Requires-Dist: httpx_retries; extra == "all"
172
+ Requires-Dist: huggingface_hub; extra == "all"
173
+ Requires-Dist: flet-video; extra == "all"
174
+ Requires-Dist: flet-webview; extra == "all"
175
+ Requires-Dist: semver; extra == "all"
176
+ Requires-Dist: pydantic; extra == "all"
177
+ Requires-Dist: uvicorn[standard]; extra == "all"
163
178
  Requires-Dist: flet[all]; extra == "all"
164
- Requires-Dist: json_repair; extra == "all"
165
- Requires-Dist: tokenizers; extra == "all"
166
- Requires-Dist: bokeh; extra == "all"
167
- Requires-Dist: google-auth; extra == "all"
168
- Requires-Dist: html2text; extra == "all"
169
- Requires-Dist: pymupdf4llm; extra == "all"
170
179
  Requires-Dist: pytest-cov; extra == "all"
171
- Requires-Dist: contexttimer; extra == "all"
172
- Requires-Dist: fastapi; extra == "all"
173
- Requires-Dist: flet-webview; extra == "all"
174
- Requires-Dist: pydantic-settings; extra == "all"
175
- Requires-Dist: sre_yield; extra == "all"
176
- Requires-Dist: httpx_retries; extra == "all"
177
- Requires-Dist: tabulate; extra == "all"
178
- Requires-Dist: pyyaml; extra == "all"
180
+ Requires-Dist: pandas; extra == "all"
181
+ Requires-Dist: Unidecode; extra == "all"
182
+ Requires-Dist: html2text; extra == "all"
179
183
  Requires-Dist: pydevd-pycharm~=251.25410.159; extra == "all"
180
- Requires-Dist: diskcache; extra == "all"
181
- Requires-Dist: pymupdf; extra == "all"
182
- Requires-Dist: dask[bag]; extra == "all"
183
- Requires-Dist: filetype; extra == "all"
184
+ Requires-Dist: sre_yield; extra == "all"
185
+ Requires-Dist: torchaudio; extra == "all"
186
+ Requires-Dist: regex; extra == "all"
187
+ Requires-Dist: contexttimer; extra == "all"
188
+ Requires-Dist: faker; extra == "all"
189
+ Requires-Dist: openai; extra == "all"
190
+ Requires-Dist: cachetools; extra == "all"
191
+ Requires-Dist: bokeh; extra == "all"
184
192
  Dynamic: author
185
193
  Dynamic: author-email
186
194
  Dynamic: description
@@ -168,6 +168,11 @@ try:
168
168
  except ImportError as exception:
169
169
  http = Client = MissingExtraMockModule('http', exception)
170
170
 
171
+ try:
172
+ from fmtr.tools import webhook_tools as webhook
173
+ except ImportError as exception:
174
+ webhook = MissingExtraMockModule('webhook', exception)
175
+
171
176
 
172
177
  def get_version():
173
178
  """
@@ -53,3 +53,4 @@ class Constants:
53
53
  INFRA = 'infra'
54
54
 
55
55
  PROMPT_NONE_SPECIFIED = '[None Specified]'
56
+ WEBHOOK_URL_NOTIFY_KEY = 'WEBHOOK_URL_NOTIFY'
@@ -28,7 +28,7 @@ def get_dict() -> Dict[str, str]:
28
28
  Return environment variables as a standard dictionary.
29
29
 
30
30
  """
31
- environment_dict = dict(os.environ)
31
+ environment_dict = dict(sorted(dict(os.environ).items()))
32
32
  return environment_dict
33
33
 
34
34
 
@@ -0,0 +1 @@
1
+ 1.3.37
@@ -0,0 +1,17 @@
1
+ from fmtr.tools import environment_tools, Constants
2
+ from fmtr.tools.http_tools import client
3
+
4
+
5
+ def notify(title, body, url=None):
6
+ """
7
+
8
+ Send simple debug notification
9
+
10
+ """
11
+ url = url or environment_tools.get(Constants.WEBHOOK_URL_NOTIFY_KEY)
12
+ client.post(url, json=dict(title=title, body=body))
13
+
14
+
15
+ if __name__ == '__main__':
16
+ notify('Title', 'Body')
17
+ notify
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fmtr.tools
3
- Version: 1.3.35
3
+ Version: 1.3.37
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
@@ -125,62 +125,70 @@ Requires-Dist: logfire; extra == "http"
125
125
  Requires-Dist: logfire[httpx]; extra == "http"
126
126
  Provides-Extra: setup
127
127
  Requires-Dist: setuptools; extra == "setup"
128
+ Provides-Extra: webhook
129
+ Requires-Dist: httpx; extra == "webhook"
130
+ Requires-Dist: httpx_retries; extra == "webhook"
131
+ Requires-Dist: logfire; extra == "webhook"
132
+ Requires-Dist: logfire[httpx]; extra == "webhook"
133
+ Provides-Extra: browsers
134
+ Requires-Dist: playwright; extra == "browsers"
128
135
  Provides-Extra: all
129
- Requires-Dist: uvicorn[standard]; extra == "all"
130
- Requires-Dist: tinynetrc; extra == "all"
136
+ Requires-Dist: tokenizers; extra == "all"
137
+ Requires-Dist: docker; extra == "all"
138
+ Requires-Dist: filetype; extra == "all"
139
+ Requires-Dist: pymupdf; extra == "all"
140
+ Requires-Dist: logfire[httpx]; extra == "all"
141
+ Requires-Dist: logfire[fastapi]; extra == "all"
142
+ Requires-Dist: json_repair; extra == "all"
143
+ Requires-Dist: logfire; extra == "all"
131
144
  Requires-Dist: deepmerge; extra == "all"
132
- Requires-Dist: sentence_transformers; extra == "all"
145
+ Requires-Dist: peft; extra == "all"
146
+ Requires-Dist: fastapi; extra == "all"
147
+ Requires-Dist: google-auth; extra == "all"
148
+ Requires-Dist: google-auth-oauthlib; extra == "all"
149
+ Requires-Dist: transformers[sentencepiece]; extra == "all"
150
+ Requires-Dist: appdirs; extra == "all"
151
+ Requires-Dist: tabulate; extra == "all"
133
152
  Requires-Dist: torchvision; extra == "all"
134
- Requires-Dist: yamlscript; extra == "all"
135
- Requires-Dist: ollama; extra == "all"
136
- Requires-Dist: logfire[fastapi]; extra == "all"
137
- Requires-Dist: huggingface_hub; extra == "all"
138
- Requires-Dist: faker; extra == "all"
139
- Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
140
- Requires-Dist: logfire[httpx]; extra == "all"
141
- Requires-Dist: distributed; extra == "all"
142
- Requires-Dist: semver; extra == "all"
153
+ Requires-Dist: playwright; extra == "all"
154
+ Requires-Dist: diskcache; extra == "all"
143
155
  Requires-Dist: openpyxl; extra == "all"
144
- Requires-Dist: google-auth-httplib2; extra == "all"
156
+ Requires-Dist: tinynetrc; extra == "all"
157
+ Requires-Dist: pymupdf4llm; extra == "all"
145
158
  Requires-Dist: dnspython[doh]; extra == "all"
146
- Requires-Dist: openai; extra == "all"
147
- Requires-Dist: Unidecode; extra == "all"
148
- Requires-Dist: transformers[sentencepiece]; extra == "all"
149
- Requires-Dist: cachetools; extra == "all"
150
- Requires-Dist: google-auth-oauthlib; extra == "all"
151
- Requires-Dist: pydantic; extra == "all"
159
+ Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
160
+ Requires-Dist: sentence_transformers; extra == "all"
161
+ Requires-Dist: pydantic-settings; extra == "all"
162
+ Requires-Dist: ollama; extra == "all"
152
163
  Requires-Dist: httpx; extra == "all"
153
- Requires-Dist: docker; extra == "all"
154
- Requires-Dist: peft; extra == "all"
155
- Requires-Dist: torchaudio; extra == "all"
156
- Requires-Dist: flet-video; extra == "all"
157
- Requires-Dist: regex; extra == "all"
158
- Requires-Dist: pandas; extra == "all"
159
- Requires-Dist: google-api-python-client; extra == "all"
160
- Requires-Dist: appdirs; extra == "all"
161
- Requires-Dist: logfire; extra == "all"
162
164
  Requires-Dist: setuptools; extra == "all"
165
+ Requires-Dist: google-api-python-client; extra == "all"
166
+ Requires-Dist: distributed; extra == "all"
167
+ Requires-Dist: google-auth-httplib2; extra == "all"
168
+ Requires-Dist: dask[bag]; extra == "all"
169
+ Requires-Dist: yamlscript; extra == "all"
170
+ Requires-Dist: pyyaml; extra == "all"
171
+ Requires-Dist: httpx_retries; extra == "all"
172
+ Requires-Dist: huggingface_hub; extra == "all"
173
+ Requires-Dist: flet-video; extra == "all"
174
+ Requires-Dist: flet-webview; extra == "all"
175
+ Requires-Dist: semver; extra == "all"
176
+ Requires-Dist: pydantic; extra == "all"
177
+ Requires-Dist: uvicorn[standard]; extra == "all"
163
178
  Requires-Dist: flet[all]; extra == "all"
164
- Requires-Dist: json_repair; extra == "all"
165
- Requires-Dist: tokenizers; extra == "all"
166
- Requires-Dist: bokeh; extra == "all"
167
- Requires-Dist: google-auth; extra == "all"
168
- Requires-Dist: html2text; extra == "all"
169
- Requires-Dist: pymupdf4llm; extra == "all"
170
179
  Requires-Dist: pytest-cov; extra == "all"
171
- Requires-Dist: contexttimer; extra == "all"
172
- Requires-Dist: fastapi; extra == "all"
173
- Requires-Dist: flet-webview; extra == "all"
174
- Requires-Dist: pydantic-settings; extra == "all"
175
- Requires-Dist: sre_yield; extra == "all"
176
- Requires-Dist: httpx_retries; extra == "all"
177
- Requires-Dist: tabulate; extra == "all"
178
- Requires-Dist: pyyaml; extra == "all"
180
+ Requires-Dist: pandas; extra == "all"
181
+ Requires-Dist: Unidecode; extra == "all"
182
+ Requires-Dist: html2text; extra == "all"
179
183
  Requires-Dist: pydevd-pycharm~=251.25410.159; extra == "all"
180
- Requires-Dist: diskcache; extra == "all"
181
- Requires-Dist: pymupdf; extra == "all"
182
- Requires-Dist: dask[bag]; extra == "all"
183
- Requires-Dist: filetype; extra == "all"
184
+ Requires-Dist: sre_yield; extra == "all"
185
+ Requires-Dist: torchaudio; extra == "all"
186
+ Requires-Dist: regex; extra == "all"
187
+ Requires-Dist: contexttimer; extra == "all"
188
+ Requires-Dist: faker; extra == "all"
189
+ Requires-Dist: openai; extra == "all"
190
+ Requires-Dist: cachetools; extra == "all"
191
+ Requires-Dist: bokeh; extra == "all"
184
192
  Dynamic: author
185
193
  Dynamic: author-email
186
194
  Dynamic: description
@@ -50,6 +50,7 @@ setup.py
50
50
  ./fmtr/tools/tools.py
51
51
  ./fmtr/tools/unicode_tools.py
52
52
  ./fmtr/tools/version
53
+ ./fmtr/tools/webhook_tools.py
53
54
  ./fmtr/tools/yaml_tools.py
54
55
  ./fmtr/tools/ai_tools/__init__.py
55
56
  ./fmtr/tools/ai_tools/agentic_tools.py
@@ -138,6 +139,7 @@ fmtr/tools/tokenization_tools.py
138
139
  fmtr/tools/tools.py
139
140
  fmtr/tools/unicode_tools.py
140
141
  fmtr/tools/version
142
+ fmtr/tools/webhook_tools.py
141
143
  fmtr/tools/yaml_tools.py
142
144
  fmtr/tools/ai_tools/__init__.py
143
145
  fmtr/tools/ai_tools/agentic_tools.py
@@ -14,61 +14,62 @@ pydantic-ai[logfire,openai]
14
14
  ollama
15
15
 
16
16
  [all]
17
- uvicorn[standard]
18
- tinynetrc
17
+ tokenizers
18
+ docker
19
+ filetype
20
+ pymupdf
21
+ logfire[httpx]
22
+ logfire[fastapi]
23
+ json_repair
24
+ logfire
19
25
  deepmerge
20
- sentence_transformers
26
+ peft
27
+ fastapi
28
+ google-auth
29
+ google-auth-oauthlib
30
+ transformers[sentencepiece]
31
+ appdirs
32
+ tabulate
21
33
  torchvision
22
- yamlscript
23
- ollama
24
- logfire[fastapi]
25
- huggingface_hub
26
- faker
27
- pydantic-ai[logfire,openai]
28
- logfire[httpx]
29
- distributed
30
- semver
34
+ playwright
35
+ diskcache
31
36
  openpyxl
32
- google-auth-httplib2
37
+ tinynetrc
38
+ pymupdf4llm
33
39
  dnspython[doh]
34
- openai
35
- Unidecode
36
- transformers[sentencepiece]
37
- cachetools
38
- google-auth-oauthlib
39
- pydantic
40
+ pydantic-ai[logfire,openai]
41
+ sentence_transformers
42
+ pydantic-settings
43
+ ollama
40
44
  httpx
41
- docker
42
- peft
43
- torchaudio
44
- flet-video
45
- regex
46
- pandas
47
- google-api-python-client
48
- appdirs
49
- logfire
50
45
  setuptools
46
+ google-api-python-client
47
+ distributed
48
+ google-auth-httplib2
49
+ dask[bag]
50
+ yamlscript
51
+ pyyaml
52
+ httpx_retries
53
+ huggingface_hub
54
+ flet-video
55
+ flet-webview
56
+ semver
57
+ pydantic
58
+ uvicorn[standard]
51
59
  flet[all]
52
- json_repair
53
- tokenizers
54
- bokeh
55
- google-auth
56
- html2text
57
- pymupdf4llm
58
60
  pytest-cov
59
- contexttimer
60
- fastapi
61
- flet-webview
62
- pydantic-settings
63
- sre_yield
64
- httpx_retries
65
- tabulate
66
- pyyaml
61
+ pandas
62
+ Unidecode
63
+ html2text
67
64
  pydevd-pycharm~=251.25410.159
68
- diskcache
69
- pymupdf
70
- dask[bag]
71
- filetype
65
+ sre_yield
66
+ torchaudio
67
+ regex
68
+ contexttimer
69
+ faker
70
+ openai
71
+ cachetools
72
+ bokeh
72
73
 
73
74
  [api]
74
75
  fastapi
@@ -81,6 +82,9 @@ logfire[fastapi]
81
82
  faker
82
83
  sre_yield
83
84
 
85
+ [browsers]
86
+ playwright
87
+
84
88
  [caching]
85
89
  diskcache
86
90
  cachetools
@@ -207,6 +211,12 @@ Unidecode
207
211
  [version.dev]
208
212
  semver
209
213
 
214
+ [webhook]
215
+ httpx
216
+ httpx_retries
217
+ logfire
218
+ logfire[httpx]
219
+
210
220
  [yaml]
211
221
  yamlscript
212
222
  pyyaml
@@ -39,7 +39,9 @@ DEPENDENCIES = {
39
39
  'dns': ['dnspython[doh]', 'http'],
40
40
  'patterns': ['regex'],
41
41
  'http': ['httpx', 'httpx_retries', 'logging', 'logfire[httpx]'],
42
- 'setup': ['setuptools']
42
+ 'setup': ['setuptools'],
43
+ 'webhook': ['http'],
44
+ 'browsers': ['playwright']
43
45
  }
44
46
 
45
47
  setup = Setup(
@@ -1 +0,0 @@
1
- 1.3.35
File without changes
File without changes
File without changes
File without changes