fmtr.tools 1.3.22__tar.gz → 1.3.23__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 (92) hide show
  1. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/PKG-INFO +44 -44
  2. fmtr_tools-1.3.23/fmtr/tools/interface_tools.py +89 -0
  3. fmtr_tools-1.3.23/fmtr/tools/version +1 -0
  4. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr.tools.egg-info/PKG-INFO +44 -44
  5. fmtr_tools-1.3.22/fmtr/tools/interface_tools.py +0 -64
  6. fmtr_tools-1.3.22/fmtr/tools/version +0 -1
  7. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/LICENSE +0 -0
  8. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/README.md +0 -0
  9. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/__init__.py +0 -0
  10. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/ai_tools/__init__.py +0 -0
  11. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/ai_tools/agentic_tools.py +0 -0
  12. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/ai_tools/inference_tools.py +0 -0
  13. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/api_tools.py +0 -0
  14. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/async_tools.py +0 -0
  15. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/augmentation_tools.py +0 -0
  16. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/caching_tools.py +0 -0
  17. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/constants.py +0 -0
  18. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/data_modelling_tools.py +0 -0
  19. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/dataclass_tools.py +0 -0
  20. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/datatype_tools.py +0 -0
  21. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/debugging_tools.py +0 -0
  22. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/dns_tools/__init__.py +0 -0
  23. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/dns_tools/client.py +0 -0
  24. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/dns_tools/dm.py +0 -0
  25. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/dns_tools/proxy.py +0 -0
  26. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/dns_tools/server.py +0 -0
  27. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/docker_tools.py +0 -0
  28. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/entrypoints/__init__.py +0 -0
  29. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/entrypoints/cache_hfh.py +0 -0
  30. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/entrypoints/ep_test.py +0 -0
  31. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/entrypoints/install_yamlscript.py +0 -0
  32. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/entrypoints/remote_debug_test.py +0 -0
  33. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/entrypoints/shell_debug.py +0 -0
  34. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/environment_tools.py +0 -0
  35. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/function_tools.py +0 -0
  36. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/google_api_tools.py +0 -0
  37. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/hash_tools.py +0 -0
  38. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/hfh_tools.py +0 -0
  39. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/html_tools.py +0 -0
  40. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/http_tools.py +0 -0
  41. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/import_tools.py +0 -0
  42. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/inspection_tools.py +0 -0
  43. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/iterator_tools.py +0 -0
  44. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/json_fix_tools.py +0 -0
  45. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/json_tools.py +0 -0
  46. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/logging_tools.py +0 -0
  47. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/merging_tools.py +0 -0
  48. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/metric_tools.py +0 -0
  49. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/name_tools.py +0 -0
  50. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/netrc_tools.py +0 -0
  51. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/openai_tools.py +0 -0
  52. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/packaging_tools.py +0 -0
  53. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/parallel_tools.py +0 -0
  54. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/path_tools/__init__.py +0 -0
  55. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/path_tools/app_path_tools.py +0 -0
  56. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/path_tools/path_tools.py +0 -0
  57. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/path_tools/type_path_tools.py +0 -0
  58. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/pattern_tools.py +0 -0
  59. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/pdf_tools.py +0 -0
  60. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/platform_tools.py +0 -0
  61. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/process_tools.py +0 -0
  62. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/profiling_tools.py +0 -0
  63. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/random_tools.py +0 -0
  64. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/semantic_tools.py +0 -0
  65. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/settings_tools.py +0 -0
  66. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/setup_tools/__init__.py +0 -0
  67. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/setup_tools/setup_tools.py +0 -0
  68. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/spaces_tools.py +0 -0
  69. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/string_tools.py +0 -0
  70. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/tabular_tools.py +0 -0
  71. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/tests/__init__.py +0 -0
  72. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/tests/conftest.py +0 -0
  73. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/tests/helpers.py +0 -0
  74. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/tests/test_datatype.py +0 -0
  75. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/tests/test_environment.py +0 -0
  76. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/tests/test_json.py +0 -0
  77. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/tests/test_path.py +0 -0
  78. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/tests/test_yaml.py +0 -0
  79. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/tokenization_tools.py +0 -0
  80. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/tools.py +0 -0
  81. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/unicode_tools.py +0 -0
  82. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/version_tools/__init__.py +0 -0
  83. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/version_tools/version_tools.py +0 -0
  84. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr/tools/yaml_tools.py +0 -0
  85. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr.tools.egg-info/SOURCES.txt +0 -0
  86. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr.tools.egg-info/dependency_links.txt +0 -0
  87. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr.tools.egg-info/entry_points.txt +0 -0
  88. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr.tools.egg-info/requires.txt +43 -43
  89. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/fmtr.tools.egg-info/top_level.txt +0 -0
  90. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/pyproject.toml +0 -0
  91. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/setup.cfg +0 -0
  92. {fmtr_tools-1.3.22 → fmtr_tools-1.3.23}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fmtr.tools
3
- Version: 1.3.22
3
+ Version: 1.3.23
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
@@ -126,61 +126,61 @@ Requires-Dist: logfire[httpx]; extra == "http"
126
126
  Provides-Extra: setup
127
127
  Requires-Dist: setuptools; extra == "setup"
128
128
  Provides-Extra: all
129
- Requires-Dist: pydantic; extra == "all"
130
- Requires-Dist: flet-webview; extra == "all"
129
+ Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
131
130
  Requires-Dist: semver; extra == "all"
132
- Requires-Dist: flet[all]; extra == "all"
133
- Requires-Dist: pydantic-settings; extra == "all"
131
+ Requires-Dist: deepmerge; extra == "all"
134
132
  Requires-Dist: distributed; extra == "all"
135
- Requires-Dist: sre_yield; extra == "all"
136
- Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
137
- Requires-Dist: appdirs; extra == "all"
138
- Requires-Dist: sentence_transformers; extra == "all"
139
- Requires-Dist: flet-video; extra == "all"
140
- Requires-Dist: pymupdf4llm; extra == "all"
141
- Requires-Dist: contexttimer; extra == "all"
142
- Requires-Dist: pytest-cov; extra == "all"
143
- Requires-Dist: yamlscript; extra == "all"
144
- Requires-Dist: bokeh; extra == "all"
145
- Requires-Dist: faker; extra == "all"
146
- Requires-Dist: openpyxl; extra == "all"
147
- Requires-Dist: uvicorn[standard]; extra == "all"
148
- Requires-Dist: torchvision; extra == "all"
149
- Requires-Dist: ollama; extra == "all"
133
+ Requires-Dist: flet-webview; extra == "all"
134
+ Requires-Dist: cachetools; extra == "all"
135
+ Requires-Dist: tabulate; extra == "all"
136
+ Requires-Dist: diskcache; extra == "all"
137
+ Requires-Dist: tinynetrc; extra == "all"
150
138
  Requires-Dist: pymupdf; extra == "all"
151
- Requires-Dist: regex; extra == "all"
152
- Requires-Dist: setuptools; extra == "all"
139
+ Requires-Dist: flet[all]; extra == "all"
140
+ Requires-Dist: html2text; extra == "all"
141
+ Requires-Dist: logfire[httpx]; extra == "all"
153
142
  Requires-Dist: tokenizers; extra == "all"
154
- Requires-Dist: google-auth; extra == "all"
155
- Requires-Dist: httpx_retries; extra == "all"
156
- Requires-Dist: httpx; extra == "all"
157
- Requires-Dist: Unidecode; extra == "all"
158
143
  Requires-Dist: openai; extra == "all"
159
- Requires-Dist: pyyaml; extra == "all"
144
+ Requires-Dist: transformers[sentencepiece]; extra == "all"
145
+ Requires-Dist: pymupdf4llm; extra == "all"
146
+ Requires-Dist: pydevd-pycharm~=251.25410.159; extra == "all"
147
+ Requires-Dist: torchaudio; extra == "all"
148
+ Requires-Dist: logfire; extra == "all"
160
149
  Requires-Dist: docker; extra == "all"
150
+ Requires-Dist: regex; extra == "all"
151
+ Requires-Dist: huggingface_hub; extra == "all"
152
+ Requires-Dist: pytest-cov; extra == "all"
161
153
  Requires-Dist: fastapi; extra == "all"
162
- Requires-Dist: diskcache; extra == "all"
163
- Requires-Dist: logfire[fastapi]; extra == "all"
164
- Requires-Dist: google-auth-oauthlib; extra == "all"
165
154
  Requires-Dist: pandas; extra == "all"
155
+ Requires-Dist: setuptools; extra == "all"
156
+ Requires-Dist: dask[bag]; extra == "all"
157
+ Requires-Dist: contexttimer; extra == "all"
166
158
  Requires-Dist: google-auth-httplib2; extra == "all"
167
- Requires-Dist: peft; extra == "all"
168
- Requires-Dist: torchaudio; extra == "all"
169
- Requires-Dist: dnspython[doh]; extra == "all"
170
- Requires-Dist: logfire; extra == "all"
171
- Requires-Dist: logfire[httpx]; extra == "all"
159
+ Requires-Dist: faker; extra == "all"
160
+ Requires-Dist: google-auth-oauthlib; extra == "all"
161
+ Requires-Dist: openpyxl; extra == "all"
172
162
  Requires-Dist: filetype; extra == "all"
163
+ Requires-Dist: sre_yield; extra == "all"
164
+ Requires-Dist: yamlscript; extra == "all"
173
165
  Requires-Dist: google-api-python-client; extra == "all"
174
- Requires-Dist: tinynetrc; extra == "all"
175
- Requires-Dist: deepmerge; extra == "all"
176
166
  Requires-Dist: json_repair; extra == "all"
177
- Requires-Dist: cachetools; extra == "all"
178
- Requires-Dist: html2text; extra == "all"
179
- Requires-Dist: huggingface_hub; extra == "all"
180
- Requires-Dist: tabulate; extra == "all"
181
- Requires-Dist: dask[bag]; extra == "all"
182
- Requires-Dist: pydevd-pycharm~=251.25410.159; extra == "all"
183
- Requires-Dist: transformers[sentencepiece]; extra == "all"
167
+ Requires-Dist: logfire[fastapi]; extra == "all"
168
+ Requires-Dist: dnspython[doh]; extra == "all"
169
+ Requires-Dist: appdirs; extra == "all"
170
+ Requires-Dist: httpx; extra == "all"
171
+ Requires-Dist: sentence_transformers; extra == "all"
172
+ Requires-Dist: google-auth; extra == "all"
173
+ Requires-Dist: pydantic-settings; extra == "all"
174
+ Requires-Dist: bokeh; extra == "all"
175
+ Requires-Dist: ollama; extra == "all"
176
+ Requires-Dist: torchvision; extra == "all"
177
+ Requires-Dist: peft; extra == "all"
178
+ Requires-Dist: uvicorn[standard]; extra == "all"
179
+ Requires-Dist: httpx_retries; extra == "all"
180
+ Requires-Dist: flet-video; extra == "all"
181
+ Requires-Dist: pydantic; extra == "all"
182
+ Requires-Dist: pyyaml; extra == "all"
183
+ Requires-Dist: Unidecode; extra == "all"
184
184
  Dynamic: author
185
185
  Dynamic: author-email
186
186
  Dynamic: description
@@ -0,0 +1,89 @@
1
+ import flet as ft
2
+ from flet.core.types import AppView
3
+ from flet.core.view import View
4
+
5
+ from fmtr.tools.logging_tools import logger
6
+
7
+
8
+ class Interface(ft.Column):
9
+ """
10
+
11
+ Simple interface base class.
12
+
13
+ """
14
+ TITLE = 'Base Interface'
15
+ HOST = '0.0.0.0'
16
+ PORT = 8080
17
+ URL = None
18
+ APPVIEW = AppView.WEB_BROWSER
19
+ PATH_ASSETS = None
20
+ ROUTE_ROOT = '/'
21
+
22
+ THEME = ft.Theme(color_scheme=ft.ColorScheme(primary=ft.Colors.PINK))
23
+
24
+ @classmethod
25
+ def render(cls, page: ft.Page):
26
+ """
27
+
28
+ Interface entry point. Set relevant callbacks, and add instantiated self to page views
29
+
30
+ """
31
+ if not page.on_route_change:
32
+ page.theme = cls.THEME
33
+ page.views.clear()
34
+ page.views.append(cls())
35
+
36
+ page.on_route_change = cls.route
37
+ page.on_view_pop = cls.pop
38
+
39
+ page.go(cls.ROUTE_ROOT)
40
+
41
+ @classmethod
42
+ def route(cls, event: ft.RouteChangeEvent):
43
+ """
44
+
45
+ Overridable router.
46
+
47
+ """
48
+ logger.debug(f'Route change: {event=}')
49
+
50
+ @classmethod
51
+ def pop(cls, view: View, page: ft.Page):
52
+ """
53
+
54
+ Overridable view pop.
55
+
56
+ """
57
+ logger.debug(f'View popped: {page.route=} {len(page.views)=} {view=}')
58
+
59
+ @classmethod
60
+ def launch(cls):
61
+ """
62
+
63
+ Launch via render method
64
+
65
+ """
66
+
67
+ if cls.URL:
68
+ url = cls.URL
69
+ else:
70
+ url = f'http://{cls.HOST}:{cls.PORT}'
71
+
72
+ logger.info(f"Launching {cls.TITLE} at {url}")
73
+ ft.app(cls.render, view=cls.APPVIEW, host=cls.HOST, port=cls.PORT, assets_dir=cls.PATH_ASSETS)
74
+
75
+
76
+ class Test(ft.Column):
77
+ """
78
+
79
+ Simple test interface.
80
+
81
+ """
82
+ TITLE = 'Test Interface'
83
+
84
+ def __init__(self):
85
+ controls = [ft.Text(self.TITLE)]
86
+ super().__init__(controls=controls)
87
+
88
+ if __name__ == "__main__":
89
+ Interface.launch()
@@ -0,0 +1 @@
1
+ 1.3.23
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fmtr.tools
3
- Version: 1.3.22
3
+ Version: 1.3.23
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
@@ -126,61 +126,61 @@ Requires-Dist: logfire[httpx]; extra == "http"
126
126
  Provides-Extra: setup
127
127
  Requires-Dist: setuptools; extra == "setup"
128
128
  Provides-Extra: all
129
- Requires-Dist: pydantic; extra == "all"
130
- Requires-Dist: flet-webview; extra == "all"
129
+ Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
131
130
  Requires-Dist: semver; extra == "all"
132
- Requires-Dist: flet[all]; extra == "all"
133
- Requires-Dist: pydantic-settings; extra == "all"
131
+ Requires-Dist: deepmerge; extra == "all"
134
132
  Requires-Dist: distributed; extra == "all"
135
- Requires-Dist: sre_yield; extra == "all"
136
- Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
137
- Requires-Dist: appdirs; extra == "all"
138
- Requires-Dist: sentence_transformers; extra == "all"
139
- Requires-Dist: flet-video; extra == "all"
140
- Requires-Dist: pymupdf4llm; extra == "all"
141
- Requires-Dist: contexttimer; extra == "all"
142
- Requires-Dist: pytest-cov; extra == "all"
143
- Requires-Dist: yamlscript; extra == "all"
144
- Requires-Dist: bokeh; extra == "all"
145
- Requires-Dist: faker; extra == "all"
146
- Requires-Dist: openpyxl; extra == "all"
147
- Requires-Dist: uvicorn[standard]; extra == "all"
148
- Requires-Dist: torchvision; extra == "all"
149
- Requires-Dist: ollama; extra == "all"
133
+ Requires-Dist: flet-webview; extra == "all"
134
+ Requires-Dist: cachetools; extra == "all"
135
+ Requires-Dist: tabulate; extra == "all"
136
+ Requires-Dist: diskcache; extra == "all"
137
+ Requires-Dist: tinynetrc; extra == "all"
150
138
  Requires-Dist: pymupdf; extra == "all"
151
- Requires-Dist: regex; extra == "all"
152
- Requires-Dist: setuptools; extra == "all"
139
+ Requires-Dist: flet[all]; extra == "all"
140
+ Requires-Dist: html2text; extra == "all"
141
+ Requires-Dist: logfire[httpx]; extra == "all"
153
142
  Requires-Dist: tokenizers; extra == "all"
154
- Requires-Dist: google-auth; extra == "all"
155
- Requires-Dist: httpx_retries; extra == "all"
156
- Requires-Dist: httpx; extra == "all"
157
- Requires-Dist: Unidecode; extra == "all"
158
143
  Requires-Dist: openai; extra == "all"
159
- Requires-Dist: pyyaml; extra == "all"
144
+ Requires-Dist: transformers[sentencepiece]; extra == "all"
145
+ Requires-Dist: pymupdf4llm; extra == "all"
146
+ Requires-Dist: pydevd-pycharm~=251.25410.159; extra == "all"
147
+ Requires-Dist: torchaudio; extra == "all"
148
+ Requires-Dist: logfire; extra == "all"
160
149
  Requires-Dist: docker; extra == "all"
150
+ Requires-Dist: regex; extra == "all"
151
+ Requires-Dist: huggingface_hub; extra == "all"
152
+ Requires-Dist: pytest-cov; extra == "all"
161
153
  Requires-Dist: fastapi; extra == "all"
162
- Requires-Dist: diskcache; extra == "all"
163
- Requires-Dist: logfire[fastapi]; extra == "all"
164
- Requires-Dist: google-auth-oauthlib; extra == "all"
165
154
  Requires-Dist: pandas; extra == "all"
155
+ Requires-Dist: setuptools; extra == "all"
156
+ Requires-Dist: dask[bag]; extra == "all"
157
+ Requires-Dist: contexttimer; extra == "all"
166
158
  Requires-Dist: google-auth-httplib2; extra == "all"
167
- Requires-Dist: peft; extra == "all"
168
- Requires-Dist: torchaudio; extra == "all"
169
- Requires-Dist: dnspython[doh]; extra == "all"
170
- Requires-Dist: logfire; extra == "all"
171
- Requires-Dist: logfire[httpx]; extra == "all"
159
+ Requires-Dist: faker; extra == "all"
160
+ Requires-Dist: google-auth-oauthlib; extra == "all"
161
+ Requires-Dist: openpyxl; extra == "all"
172
162
  Requires-Dist: filetype; extra == "all"
163
+ Requires-Dist: sre_yield; extra == "all"
164
+ Requires-Dist: yamlscript; extra == "all"
173
165
  Requires-Dist: google-api-python-client; extra == "all"
174
- Requires-Dist: tinynetrc; extra == "all"
175
- Requires-Dist: deepmerge; extra == "all"
176
166
  Requires-Dist: json_repair; extra == "all"
177
- Requires-Dist: cachetools; extra == "all"
178
- Requires-Dist: html2text; extra == "all"
179
- Requires-Dist: huggingface_hub; extra == "all"
180
- Requires-Dist: tabulate; extra == "all"
181
- Requires-Dist: dask[bag]; extra == "all"
182
- Requires-Dist: pydevd-pycharm~=251.25410.159; extra == "all"
183
- Requires-Dist: transformers[sentencepiece]; extra == "all"
167
+ Requires-Dist: logfire[fastapi]; extra == "all"
168
+ Requires-Dist: dnspython[doh]; extra == "all"
169
+ Requires-Dist: appdirs; extra == "all"
170
+ Requires-Dist: httpx; extra == "all"
171
+ Requires-Dist: sentence_transformers; extra == "all"
172
+ Requires-Dist: google-auth; extra == "all"
173
+ Requires-Dist: pydantic-settings; extra == "all"
174
+ Requires-Dist: bokeh; extra == "all"
175
+ Requires-Dist: ollama; extra == "all"
176
+ Requires-Dist: torchvision; extra == "all"
177
+ Requires-Dist: peft; extra == "all"
178
+ Requires-Dist: uvicorn[standard]; extra == "all"
179
+ Requires-Dist: httpx_retries; extra == "all"
180
+ Requires-Dist: flet-video; extra == "all"
181
+ Requires-Dist: pydantic; extra == "all"
182
+ Requires-Dist: pyyaml; extra == "all"
183
+ Requires-Dist: Unidecode; extra == "all"
184
184
  Dynamic: author
185
185
  Dynamic: author-email
186
186
  Dynamic: description
@@ -1,64 +0,0 @@
1
- import flet as ft
2
- from flet.core.event import Event
3
- from flet.core.types import AppView
4
- from flet.core.view import View
5
-
6
- from fmtr.tools.logging_tools import logger
7
-
8
-
9
- class Interface:
10
- """
11
-
12
- Simple interface base class.
13
-
14
- """
15
- TITLE = 'Base Interface'
16
- HOST = '0.0.0.0'
17
- PORT = 8080
18
- APPVIEW = AppView.WEB_BROWSER
19
- PATH_ASSETS = None
20
- ROUTE_ROOT = '/'
21
-
22
- def render(self, page: ft.Page):
23
- """
24
-
25
- Interface entry point.
26
-
27
- """
28
-
29
- if not page.on_route_change:
30
- page.on_route_change = lambda e, page=page: self.route(page, e)
31
- page.on_view_pop = lambda view, page=page: self.pop(page, view)
32
-
33
- page.go(self.ROUTE_ROOT)
34
-
35
- def route(self, page: ft.Page, event: Event):
36
- """
37
-
38
- Overridable router.
39
-
40
- """
41
- raise NotImplementedError
42
-
43
- def pop(self, page: ft.Page, view: View):
44
- """
45
-
46
- Overridable view pop.
47
-
48
- """
49
- raise NotImplementedError
50
-
51
- @classmethod
52
- def launch(cls):
53
- """
54
-
55
- Initialise self and launch.
56
-
57
- """
58
- self = cls()
59
- logger.info(f"Launching {self.TITLE} at http://{self.HOST}:{self.PORT}")
60
- ft.app(self.render, view=self.APPVIEW, host=self.HOST, port=self.PORT, assets_dir=self.PATH_ASSETS)
61
-
62
-
63
- if __name__ == "__main__":
64
- Interface.launch()
@@ -1 +0,0 @@
1
- 1.3.22
File without changes
File without changes
@@ -14,61 +14,61 @@ pydantic-ai[logfire,openai]
14
14
  ollama
15
15
 
16
16
  [all]
17
- pydantic
18
- flet-webview
17
+ pydantic-ai[logfire,openai]
19
18
  semver
20
- flet[all]
21
- pydantic-settings
19
+ deepmerge
22
20
  distributed
23
- sre_yield
24
- pydantic-ai[logfire,openai]
25
- appdirs
26
- sentence_transformers
27
- flet-video
28
- pymupdf4llm
29
- contexttimer
30
- pytest-cov
31
- yamlscript
32
- bokeh
33
- faker
34
- openpyxl
35
- uvicorn[standard]
36
- torchvision
37
- ollama
21
+ flet-webview
22
+ cachetools
23
+ tabulate
24
+ diskcache
25
+ tinynetrc
38
26
  pymupdf
39
- regex
40
- setuptools
27
+ flet[all]
28
+ html2text
29
+ logfire[httpx]
41
30
  tokenizers
42
- google-auth
43
- httpx_retries
44
- httpx
45
- Unidecode
46
31
  openai
47
- pyyaml
32
+ transformers[sentencepiece]
33
+ pymupdf4llm
34
+ pydevd-pycharm~=251.25410.159
35
+ torchaudio
36
+ logfire
48
37
  docker
38
+ regex
39
+ huggingface_hub
40
+ pytest-cov
49
41
  fastapi
50
- diskcache
51
- logfire[fastapi]
52
- google-auth-oauthlib
53
42
  pandas
43
+ setuptools
44
+ dask[bag]
45
+ contexttimer
54
46
  google-auth-httplib2
55
- peft
56
- torchaudio
57
- dnspython[doh]
58
- logfire
59
- logfire[httpx]
47
+ faker
48
+ google-auth-oauthlib
49
+ openpyxl
60
50
  filetype
51
+ sre_yield
52
+ yamlscript
61
53
  google-api-python-client
62
- tinynetrc
63
- deepmerge
64
54
  json_repair
65
- cachetools
66
- html2text
67
- huggingface_hub
68
- tabulate
69
- dask[bag]
70
- pydevd-pycharm~=251.25410.159
71
- transformers[sentencepiece]
55
+ logfire[fastapi]
56
+ dnspython[doh]
57
+ appdirs
58
+ httpx
59
+ sentence_transformers
60
+ google-auth
61
+ pydantic-settings
62
+ bokeh
63
+ ollama
64
+ torchvision
65
+ peft
66
+ uvicorn[standard]
67
+ httpx_retries
68
+ flet-video
69
+ pydantic
70
+ pyyaml
71
+ Unidecode
72
72
 
73
73
  [api]
74
74
  fastapi
File without changes
File without changes
File without changes