fmtr.tools 1.3.72__tar.gz → 1.3.73__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 (100) hide show
  1. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/PKG-INFO +51 -51
  2. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/data_modelling_tools.py +12 -0
  3. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/interface_tools/controls.py +40 -3
  4. fmtr_tools-1.3.73/fmtr/tools/version +1 -0
  5. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr.tools.egg-info/PKG-INFO +51 -51
  6. fmtr_tools-1.3.72/fmtr/tools/version +0 -1
  7. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/LICENSE +0 -0
  8. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/README.md +0 -0
  9. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/__init__.py +0 -0
  10. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/ai_tools/__init__.py +0 -0
  11. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/ai_tools/agentic_tools.py +0 -0
  12. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/ai_tools/inference_tools.py +0 -0
  13. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/api_tools.py +0 -0
  14. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/async_tools.py +0 -0
  15. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/augmentation_tools.py +0 -0
  16. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/caching_tools.py +0 -0
  17. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/constants.py +0 -0
  18. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/context_tools.py +0 -0
  19. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/database_tools/__init__.py +0 -0
  20. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/database_tools/document.py +0 -0
  21. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/dataclass_tools.py +0 -0
  22. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/datatype_tools.py +0 -0
  23. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/datetime_tools.py +0 -0
  24. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/debugging_tools.py +0 -0
  25. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/dns_tools/__init__.py +0 -0
  26. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/dns_tools/client.py +0 -0
  27. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/dns_tools/dm.py +0 -0
  28. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/dns_tools/proxy.py +0 -0
  29. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/dns_tools/server.py +0 -0
  30. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/docker_tools/__init__.py +0 -0
  31. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/entrypoints/__init__.py +0 -0
  32. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/entrypoints/cache_hfh.py +0 -0
  33. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/entrypoints/ep_test.py +0 -0
  34. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/entrypoints/install_yamlscript.py +0 -0
  35. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/entrypoints/remote_debug_test.py +0 -0
  36. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/entrypoints/shell_debug.py +0 -0
  37. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/environment_tools.py +0 -0
  38. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/function_tools.py +0 -0
  39. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/google_api_tools.py +0 -0
  40. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/hash_tools.py +0 -0
  41. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/hfh_tools.py +0 -0
  42. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/html_tools.py +0 -0
  43. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/http_tools.py +0 -0
  44. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/import_tools.py +0 -0
  45. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/inherit_tools.py +0 -0
  46. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/inspection_tools.py +0 -0
  47. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/interface_tools/__init__.py +0 -0
  48. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/interface_tools/context.py +0 -0
  49. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/interface_tools/interface_tools.py +0 -0
  50. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/iterator_tools.py +0 -0
  51. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/json_fix_tools.py +0 -0
  52. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/json_tools.py +0 -0
  53. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/logging_tools.py +0 -0
  54. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/merging_tools.py +0 -0
  55. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/metric_tools.py +0 -0
  56. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/name_tools.py +0 -0
  57. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/netrc_tools.py +0 -0
  58. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/openai_tools.py +0 -0
  59. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/packaging_tools.py +0 -0
  60. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/parallel_tools.py +0 -0
  61. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/path_tools/__init__.py +0 -0
  62. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/path_tools/app_path_tools.py +0 -0
  63. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/path_tools/path_tools.py +0 -0
  64. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/path_tools/type_path_tools.py +0 -0
  65. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/pattern_tools.py +0 -0
  66. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/pdf_tools.py +0 -0
  67. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/platform_tools.py +0 -0
  68. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/process_tools.py +0 -0
  69. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/profiling_tools.py +0 -0
  70. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/random_tools.py +0 -0
  71. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/semantic_tools.py +0 -0
  72. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/settings_tools.py +0 -0
  73. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/setup_tools/__init__.py +0 -0
  74. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/setup_tools/setup_tools.py +0 -0
  75. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/spaces_tools.py +0 -0
  76. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/string_tools.py +0 -0
  77. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/tabular_tools.py +0 -0
  78. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/tests/__init__.py +0 -0
  79. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/tests/conftest.py +0 -0
  80. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/tests/helpers.py +0 -0
  81. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/tests/test_datatype.py +0 -0
  82. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/tests/test_environment.py +0 -0
  83. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/tests/test_json.py +0 -0
  84. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/tests/test_path.py +0 -0
  85. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/tests/test_yaml.py +0 -0
  86. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/tokenization_tools.py +0 -0
  87. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/tools.py +0 -0
  88. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/unicode_tools.py +0 -0
  89. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/version_tools/__init__.py +0 -0
  90. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/version_tools/version_tools.py +0 -0
  91. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/webhook_tools.py +0 -0
  92. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr/tools/yaml_tools.py +0 -0
  93. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr.tools.egg-info/SOURCES.txt +0 -0
  94. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr.tools.egg-info/dependency_links.txt +0 -0
  95. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr.tools.egg-info/entry_points.txt +0 -0
  96. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr.tools.egg-info/requires.txt +50 -50
  97. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/fmtr.tools.egg-info/top_level.txt +0 -0
  98. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/pyproject.toml +0 -0
  99. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/setup.cfg +0 -0
  100. {fmtr_tools-1.3.72 → fmtr_tools-1.3.73}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fmtr.tools
3
- Version: 1.3.72
3
+ Version: 1.3.73
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
@@ -168,68 +168,68 @@ Provides-Extra: db-document
168
168
  Requires-Dist: beanie[odm]; extra == "db-document"
169
169
  Requires-Dist: motor; extra == "db-document"
170
170
  Provides-Extra: all
171
- Requires-Dist: pytest-cov; extra == "all"
172
- Requires-Dist: deepmerge; extra == "all"
173
- Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
174
- Requires-Dist: tabulate; extra == "all"
171
+ Requires-Dist: contexttimer; extra == "all"
172
+ Requires-Dist: html2text; extra == "all"
175
173
  Requires-Dist: httpx; extra == "all"
176
- Requires-Dist: playwright; extra == "all"
177
- Requires-Dist: pydantic; extra == "all"
178
- Requires-Dist: pyyaml; extra == "all"
179
- Requires-Dist: deepdiff; extra == "all"
174
+ Requires-Dist: flet[all]; extra == "all"
180
175
  Requires-Dist: pydevd-pycharm~=251.25410.159; extra == "all"
181
- Requires-Dist: logfire[fastapi]; extra == "all"
182
- Requires-Dist: google-auth-oauthlib; extra == "all"
183
- Requires-Dist: openpyxl; extra == "all"
176
+ Requires-Dist: dask[bag]; extra == "all"
177
+ Requires-Dist: deepdiff; extra == "all"
178
+ Requires-Dist: huggingface_hub; extra == "all"
184
179
  Requires-Dist: torchaudio; extra == "all"
180
+ Requires-Dist: openpyxl; extra == "all"
181
+ Requires-Dist: setuptools; extra == "all"
182
+ Requires-Dist: httpx_retries; extra == "all"
183
+ Requires-Dist: beanie[odm]; extra == "all"
184
+ Requires-Dist: tabulate; extra == "all"
185
+ Requires-Dist: odfpy; extra == "all"
186
+ Requires-Dist: pytest-cov; extra == "all"
187
+ Requires-Dist: uvicorn[standard]; extra == "all"
188
+ Requires-Dist: distributed; extra == "all"
189
+ Requires-Dist: pyyaml; extra == "all"
190
+ Requires-Dist: filetype; extra == "all"
191
+ Requires-Dist: pycountry; extra == "all"
192
+ Requires-Dist: cachetools; extra == "all"
185
193
  Requires-Dist: flet-video; extra == "all"
186
- Requires-Dist: logfire; extra == "all"
187
- Requires-Dist: openai; extra == "all"
188
- Requires-Dist: ollama; extra == "all"
189
- Requires-Dist: google-auth; extra == "all"
190
- Requires-Dist: appdirs; extra == "all"
191
- Requires-Dist: logfire[httpx]; extra == "all"
192
- Requires-Dist: bokeh; extra == "all"
193
- Requires-Dist: transformers[sentencepiece]; extra == "all"
194
+ Requires-Dist: dnspython[doh]; extra == "all"
195
+ Requires-Dist: faker; extra == "all"
196
+ Requires-Dist: sentence_transformers; extra == "all"
197
+ Requires-Dist: torchvision; extra == "all"
194
198
  Requires-Dist: pydantic-settings; extra == "all"
195
- Requires-Dist: flet-webview; extra == "all"
196
- Requires-Dist: regex; extra == "all"
199
+ Requires-Dist: bokeh; extra == "all"
197
200
  Requires-Dist: pandas; extra == "all"
198
- Requires-Dist: google-auth-httplib2; extra == "all"
199
- Requires-Dist: contexttimer; extra == "all"
200
- Requires-Dist: semver; extra == "all"
201
- Requires-Dist: pycountry; extra == "all"
202
- Requires-Dist: peft; extra == "all"
203
- Requires-Dist: uvicorn[standard]; extra == "all"
204
- Requires-Dist: pymupdf; extra == "all"
205
- Requires-Dist: faker; extra == "all"
206
- Requires-Dist: setuptools; extra == "all"
207
- Requires-Dist: motor; extra == "all"
208
- Requires-Dist: tokenizers; extra == "all"
201
+ Requires-Dist: google-auth; extra == "all"
209
202
  Requires-Dist: diskcache; extra == "all"
210
- Requires-Dist: huggingface_hub; extra == "all"
211
- Requires-Dist: python-on-whales; extra == "all"
212
- Requires-Dist: sentence_transformers; extra == "all"
213
- Requires-Dist: flet[all]; extra == "all"
203
+ Requires-Dist: appdirs; extra == "all"
204
+ Requires-Dist: ollama; extra == "all"
205
+ Requires-Dist: pymupdf; extra == "all"
214
206
  Requires-Dist: pydantic-extra-types; extra == "all"
215
- Requires-Dist: filetype; extra == "all"
216
- Requires-Dist: fastapi; extra == "all"
217
- Requires-Dist: cachetools; extra == "all"
218
- Requires-Dist: dnspython[doh]; extra == "all"
219
- Requires-Dist: httpx_retries; extra == "all"
220
- Requires-Dist: dask[bag]; extra == "all"
221
- Requires-Dist: sre_yield; extra == "all"
207
+ Requires-Dist: json_repair; extra == "all"
222
208
  Requires-Dist: Unidecode; extra == "all"
223
- Requires-Dist: torchvision; extra == "all"
224
- Requires-Dist: html2text; extra == "all"
225
- Requires-Dist: pymupdf4llm; extra == "all"
226
209
  Requires-Dist: google-api-python-client; extra == "all"
210
+ Requires-Dist: google-auth-httplib2; extra == "all"
227
211
  Requires-Dist: yamlscript; extra == "all"
228
- Requires-Dist: odfpy; extra == "all"
229
- Requires-Dist: distributed; extra == "all"
230
- Requires-Dist: json_repair; extra == "all"
231
- Requires-Dist: beanie[odm]; extra == "all"
212
+ Requires-Dist: pydantic; extra == "all"
213
+ Requires-Dist: fastapi; extra == "all"
214
+ Requires-Dist: sre_yield; extra == "all"
232
215
  Requires-Dist: tinynetrc; extra == "all"
216
+ Requires-Dist: logfire[fastapi]; extra == "all"
217
+ Requires-Dist: flet-webview; extra == "all"
218
+ Requires-Dist: google-auth-oauthlib; extra == "all"
219
+ Requires-Dist: logfire; extra == "all"
220
+ Requires-Dist: motor; extra == "all"
221
+ Requires-Dist: playwright; extra == "all"
222
+ Requires-Dist: peft; extra == "all"
223
+ Requires-Dist: openai; extra == "all"
224
+ Requires-Dist: semver; extra == "all"
225
+ Requires-Dist: deepmerge; extra == "all"
226
+ Requires-Dist: transformers[sentencepiece]; extra == "all"
227
+ Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
228
+ Requires-Dist: logfire[httpx]; extra == "all"
229
+ Requires-Dist: regex; extra == "all"
230
+ Requires-Dist: pymupdf4llm; extra == "all"
231
+ Requires-Dist: tokenizers; extra == "all"
232
+ Requires-Dist: python-on-whales; extra == "all"
233
233
  Dynamic: author
234
234
  Dynamic: author-email
235
235
  Dynamic: description
@@ -236,6 +236,18 @@ class Base(BaseModel, MixinFromJson):
236
236
  df = tabular.pd.json_normalize(data, sep='_')
237
237
  return df
238
238
 
239
+ @classmethod
240
+ def to_df_empty(cls):
241
+ """
242
+
243
+ Empty DataFrame
244
+
245
+ """
246
+ from fmtr.tools import tabular
247
+
248
+ row = {name: None for name in cls.model_fields.keys()}
249
+ df = tabular.pd.DataFrame([row])
250
+ return df
239
251
 
240
252
  class Root(RootModel, MixinFromJson):
241
253
  """
@@ -46,7 +46,7 @@ class Cell(ft.DataCell):
46
46
 
47
47
  """
48
48
 
49
- return ft.Text(str(self.value), color=self.color)
49
+ return ft.Text(str(self.value), color=self.color, bgcolor=self.bgcolor)
50
50
 
51
51
  @property
52
52
  def color(self):
@@ -60,6 +60,16 @@ class Cell(ft.DataCell):
60
60
  else:
61
61
  return None
62
62
 
63
+ @property
64
+ def bgcolor(self):
65
+ """
66
+
67
+ Basic conditional formatting
68
+
69
+ """
70
+ return None
71
+
72
+
63
73
  @property
64
74
  def gesture_detector(self):
65
75
  """
@@ -67,7 +77,7 @@ class Cell(ft.DataCell):
67
77
  Make arbitrary content clickable
68
78
 
69
79
  """
70
- return ft.GestureDetector(content=self.text, on_tap=self.click_tap)
80
+ return ft.GestureDetector(content=self.text, on_tap=self.click_tap, on_double_tap=self.click_double_tap)
71
81
 
72
82
  async def click_tap(self, event: TapEvent):
73
83
  """
@@ -87,6 +97,24 @@ class Cell(ft.DataCell):
87
97
  """
88
98
  logger.info(f"Clicked {self.column=} {self.series.id=} {self.value=}")
89
99
 
100
+ async def click_double_tap(self, event: TapEvent):
101
+ """
102
+
103
+ Default cell click behavior — override in subclass if needed
104
+
105
+ """
106
+ value = await self.double_click(event=event)
107
+ event.page.update()
108
+ return value
109
+
110
+ async def double_click(self, event: Optional[TapEvent] = None):
111
+ """
112
+
113
+ Default cell double click behavior — override in subclass if needed
114
+
115
+ """
116
+ logger.info(f"Double-clicked {self.column=} {self.series.id=} {self.value=}")
117
+
90
118
 
91
119
  class Row(ft.DataRow):
92
120
  """
@@ -100,7 +128,16 @@ class Row(ft.DataRow):
100
128
  def __init__(self, series):
101
129
  self.series = series
102
130
  cells = [self.TypeCell(series, col) for col in series.index]
103
- super().__init__(cells)
131
+ super().__init__(cells, color=self.row_color)
132
+
133
+ @property
134
+ def row_color(self):
135
+ """
136
+
137
+ Basic conditional formatting
138
+
139
+ """
140
+ return None
104
141
 
105
142
 
106
143
  class Column(ft.DataColumn):
@@ -0,0 +1 @@
1
+ 1.3.73
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fmtr.tools
3
- Version: 1.3.72
3
+ Version: 1.3.73
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
@@ -168,68 +168,68 @@ Provides-Extra: db-document
168
168
  Requires-Dist: beanie[odm]; extra == "db-document"
169
169
  Requires-Dist: motor; extra == "db-document"
170
170
  Provides-Extra: all
171
- Requires-Dist: pytest-cov; extra == "all"
172
- Requires-Dist: deepmerge; extra == "all"
173
- Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
174
- Requires-Dist: tabulate; extra == "all"
171
+ Requires-Dist: contexttimer; extra == "all"
172
+ Requires-Dist: html2text; extra == "all"
175
173
  Requires-Dist: httpx; extra == "all"
176
- Requires-Dist: playwright; extra == "all"
177
- Requires-Dist: pydantic; extra == "all"
178
- Requires-Dist: pyyaml; extra == "all"
179
- Requires-Dist: deepdiff; extra == "all"
174
+ Requires-Dist: flet[all]; extra == "all"
180
175
  Requires-Dist: pydevd-pycharm~=251.25410.159; extra == "all"
181
- Requires-Dist: logfire[fastapi]; extra == "all"
182
- Requires-Dist: google-auth-oauthlib; extra == "all"
183
- Requires-Dist: openpyxl; extra == "all"
176
+ Requires-Dist: dask[bag]; extra == "all"
177
+ Requires-Dist: deepdiff; extra == "all"
178
+ Requires-Dist: huggingface_hub; extra == "all"
184
179
  Requires-Dist: torchaudio; extra == "all"
180
+ Requires-Dist: openpyxl; extra == "all"
181
+ Requires-Dist: setuptools; extra == "all"
182
+ Requires-Dist: httpx_retries; extra == "all"
183
+ Requires-Dist: beanie[odm]; extra == "all"
184
+ Requires-Dist: tabulate; extra == "all"
185
+ Requires-Dist: odfpy; extra == "all"
186
+ Requires-Dist: pytest-cov; extra == "all"
187
+ Requires-Dist: uvicorn[standard]; extra == "all"
188
+ Requires-Dist: distributed; extra == "all"
189
+ Requires-Dist: pyyaml; extra == "all"
190
+ Requires-Dist: filetype; extra == "all"
191
+ Requires-Dist: pycountry; extra == "all"
192
+ Requires-Dist: cachetools; extra == "all"
185
193
  Requires-Dist: flet-video; extra == "all"
186
- Requires-Dist: logfire; extra == "all"
187
- Requires-Dist: openai; extra == "all"
188
- Requires-Dist: ollama; extra == "all"
189
- Requires-Dist: google-auth; extra == "all"
190
- Requires-Dist: appdirs; extra == "all"
191
- Requires-Dist: logfire[httpx]; extra == "all"
192
- Requires-Dist: bokeh; extra == "all"
193
- Requires-Dist: transformers[sentencepiece]; extra == "all"
194
+ Requires-Dist: dnspython[doh]; extra == "all"
195
+ Requires-Dist: faker; extra == "all"
196
+ Requires-Dist: sentence_transformers; extra == "all"
197
+ Requires-Dist: torchvision; extra == "all"
194
198
  Requires-Dist: pydantic-settings; extra == "all"
195
- Requires-Dist: flet-webview; extra == "all"
196
- Requires-Dist: regex; extra == "all"
199
+ Requires-Dist: bokeh; extra == "all"
197
200
  Requires-Dist: pandas; extra == "all"
198
- Requires-Dist: google-auth-httplib2; extra == "all"
199
- Requires-Dist: contexttimer; extra == "all"
200
- Requires-Dist: semver; extra == "all"
201
- Requires-Dist: pycountry; extra == "all"
202
- Requires-Dist: peft; extra == "all"
203
- Requires-Dist: uvicorn[standard]; extra == "all"
204
- Requires-Dist: pymupdf; extra == "all"
205
- Requires-Dist: faker; extra == "all"
206
- Requires-Dist: setuptools; extra == "all"
207
- Requires-Dist: motor; extra == "all"
208
- Requires-Dist: tokenizers; extra == "all"
201
+ Requires-Dist: google-auth; extra == "all"
209
202
  Requires-Dist: diskcache; extra == "all"
210
- Requires-Dist: huggingface_hub; extra == "all"
211
- Requires-Dist: python-on-whales; extra == "all"
212
- Requires-Dist: sentence_transformers; extra == "all"
213
- Requires-Dist: flet[all]; extra == "all"
203
+ Requires-Dist: appdirs; extra == "all"
204
+ Requires-Dist: ollama; extra == "all"
205
+ Requires-Dist: pymupdf; extra == "all"
214
206
  Requires-Dist: pydantic-extra-types; extra == "all"
215
- Requires-Dist: filetype; extra == "all"
216
- Requires-Dist: fastapi; extra == "all"
217
- Requires-Dist: cachetools; extra == "all"
218
- Requires-Dist: dnspython[doh]; extra == "all"
219
- Requires-Dist: httpx_retries; extra == "all"
220
- Requires-Dist: dask[bag]; extra == "all"
221
- Requires-Dist: sre_yield; extra == "all"
207
+ Requires-Dist: json_repair; extra == "all"
222
208
  Requires-Dist: Unidecode; extra == "all"
223
- Requires-Dist: torchvision; extra == "all"
224
- Requires-Dist: html2text; extra == "all"
225
- Requires-Dist: pymupdf4llm; extra == "all"
226
209
  Requires-Dist: google-api-python-client; extra == "all"
210
+ Requires-Dist: google-auth-httplib2; extra == "all"
227
211
  Requires-Dist: yamlscript; extra == "all"
228
- Requires-Dist: odfpy; extra == "all"
229
- Requires-Dist: distributed; extra == "all"
230
- Requires-Dist: json_repair; extra == "all"
231
- Requires-Dist: beanie[odm]; extra == "all"
212
+ Requires-Dist: pydantic; extra == "all"
213
+ Requires-Dist: fastapi; extra == "all"
214
+ Requires-Dist: sre_yield; extra == "all"
232
215
  Requires-Dist: tinynetrc; extra == "all"
216
+ Requires-Dist: logfire[fastapi]; extra == "all"
217
+ Requires-Dist: flet-webview; extra == "all"
218
+ Requires-Dist: google-auth-oauthlib; extra == "all"
219
+ Requires-Dist: logfire; extra == "all"
220
+ Requires-Dist: motor; extra == "all"
221
+ Requires-Dist: playwright; extra == "all"
222
+ Requires-Dist: peft; extra == "all"
223
+ Requires-Dist: openai; extra == "all"
224
+ Requires-Dist: semver; extra == "all"
225
+ Requires-Dist: deepmerge; extra == "all"
226
+ Requires-Dist: transformers[sentencepiece]; extra == "all"
227
+ Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
228
+ Requires-Dist: logfire[httpx]; extra == "all"
229
+ Requires-Dist: regex; extra == "all"
230
+ Requires-Dist: pymupdf4llm; extra == "all"
231
+ Requires-Dist: tokenizers; extra == "all"
232
+ Requires-Dist: python-on-whales; extra == "all"
233
233
  Dynamic: author
234
234
  Dynamic: author-email
235
235
  Dynamic: description
@@ -1 +0,0 @@
1
- 1.3.72
File without changes
File without changes
@@ -18,68 +18,68 @@ pydantic-ai[logfire,openai]
18
18
  ollama
19
19
 
20
20
  [all]
21
- pytest-cov
22
- deepmerge
23
- pydantic-ai[logfire,openai]
24
- tabulate
21
+ contexttimer
22
+ html2text
25
23
  httpx
26
- playwright
27
- pydantic
28
- pyyaml
29
- deepdiff
24
+ flet[all]
30
25
  pydevd-pycharm~=251.25410.159
31
- logfire[fastapi]
32
- google-auth-oauthlib
33
- openpyxl
26
+ dask[bag]
27
+ deepdiff
28
+ huggingface_hub
34
29
  torchaudio
30
+ openpyxl
31
+ setuptools
32
+ httpx_retries
33
+ beanie[odm]
34
+ tabulate
35
+ odfpy
36
+ pytest-cov
37
+ uvicorn[standard]
38
+ distributed
39
+ pyyaml
40
+ filetype
41
+ pycountry
42
+ cachetools
35
43
  flet-video
36
- logfire
37
- openai
38
- ollama
39
- google-auth
40
- appdirs
41
- logfire[httpx]
42
- bokeh
43
- transformers[sentencepiece]
44
+ dnspython[doh]
45
+ faker
46
+ sentence_transformers
47
+ torchvision
44
48
  pydantic-settings
45
- flet-webview
46
- regex
49
+ bokeh
47
50
  pandas
48
- google-auth-httplib2
49
- contexttimer
50
- semver
51
- pycountry
52
- peft
53
- uvicorn[standard]
54
- pymupdf
55
- faker
56
- setuptools
57
- motor
58
- tokenizers
51
+ google-auth
59
52
  diskcache
60
- huggingface_hub
61
- python-on-whales
62
- sentence_transformers
63
- flet[all]
53
+ appdirs
54
+ ollama
55
+ pymupdf
64
56
  pydantic-extra-types
65
- filetype
66
- fastapi
67
- cachetools
68
- dnspython[doh]
69
- httpx_retries
70
- dask[bag]
71
- sre_yield
57
+ json_repair
72
58
  Unidecode
73
- torchvision
74
- html2text
75
- pymupdf4llm
76
59
  google-api-python-client
60
+ google-auth-httplib2
77
61
  yamlscript
78
- odfpy
79
- distributed
80
- json_repair
81
- beanie[odm]
62
+ pydantic
63
+ fastapi
64
+ sre_yield
82
65
  tinynetrc
66
+ logfire[fastapi]
67
+ flet-webview
68
+ google-auth-oauthlib
69
+ logfire
70
+ motor
71
+ playwright
72
+ peft
73
+ openai
74
+ semver
75
+ deepmerge
76
+ transformers[sentencepiece]
77
+ pydantic-ai[logfire,openai]
78
+ logfire[httpx]
79
+ regex
80
+ pymupdf4llm
81
+ tokenizers
82
+ python-on-whales
83
83
 
84
84
  [api]
85
85
  fastapi
File without changes
File without changes
File without changes