fmtr.tools 1.3.25__tar.gz → 1.3.27__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.
Files changed (94) hide show
  1. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/PKG-INFO +43 -43
  2. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/constants.py +2 -0
  3. fmtr_tools-1.3.27/fmtr/tools/interface_tools/controls.py +137 -0
  4. fmtr_tools-1.3.27/fmtr/tools/version +1 -0
  5. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr.tools.egg-info/PKG-INFO +43 -43
  6. fmtr_tools-1.3.25/fmtr/tools/interface_tools/controls.py +0 -73
  7. fmtr_tools-1.3.25/fmtr/tools/version +0 -1
  8. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/LICENSE +0 -0
  9. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/README.md +0 -0
  10. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/__init__.py +0 -0
  11. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/ai_tools/__init__.py +0 -0
  12. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/ai_tools/agentic_tools.py +0 -0
  13. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/ai_tools/inference_tools.py +0 -0
  14. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/api_tools.py +0 -0
  15. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/async_tools.py +0 -0
  16. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/augmentation_tools.py +0 -0
  17. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/caching_tools.py +0 -0
  18. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/data_modelling_tools.py +0 -0
  19. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/dataclass_tools.py +0 -0
  20. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/datatype_tools.py +0 -0
  21. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/debugging_tools.py +0 -0
  22. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/dns_tools/__init__.py +0 -0
  23. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/dns_tools/client.py +0 -0
  24. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/dns_tools/dm.py +0 -0
  25. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/dns_tools/proxy.py +0 -0
  26. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/dns_tools/server.py +0 -0
  27. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/docker_tools.py +0 -0
  28. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/entrypoints/__init__.py +0 -0
  29. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/entrypoints/cache_hfh.py +0 -0
  30. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/entrypoints/ep_test.py +0 -0
  31. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/entrypoints/install_yamlscript.py +0 -0
  32. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/entrypoints/remote_debug_test.py +0 -0
  33. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/entrypoints/shell_debug.py +0 -0
  34. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/environment_tools.py +0 -0
  35. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/function_tools.py +0 -0
  36. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/google_api_tools.py +0 -0
  37. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/hash_tools.py +0 -0
  38. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/hfh_tools.py +0 -0
  39. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/html_tools.py +0 -0
  40. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/http_tools.py +0 -0
  41. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/import_tools.py +0 -0
  42. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/inspection_tools.py +0 -0
  43. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/interface_tools/__init__.py +0 -0
  44. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/interface_tools/interface_tools.py +0 -0
  45. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/iterator_tools.py +0 -0
  46. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/json_fix_tools.py +0 -0
  47. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/json_tools.py +0 -0
  48. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/logging_tools.py +0 -0
  49. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/merging_tools.py +0 -0
  50. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/metric_tools.py +0 -0
  51. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/name_tools.py +0 -0
  52. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/netrc_tools.py +0 -0
  53. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/openai_tools.py +0 -0
  54. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/packaging_tools.py +0 -0
  55. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/parallel_tools.py +0 -0
  56. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/path_tools/__init__.py +0 -0
  57. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/path_tools/app_path_tools.py +0 -0
  58. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/path_tools/path_tools.py +0 -0
  59. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/path_tools/type_path_tools.py +0 -0
  60. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/pattern_tools.py +0 -0
  61. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/pdf_tools.py +0 -0
  62. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/platform_tools.py +0 -0
  63. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/process_tools.py +0 -0
  64. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/profiling_tools.py +0 -0
  65. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/random_tools.py +0 -0
  66. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/semantic_tools.py +0 -0
  67. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/settings_tools.py +0 -0
  68. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/setup_tools/__init__.py +0 -0
  69. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/setup_tools/setup_tools.py +0 -0
  70. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/spaces_tools.py +0 -0
  71. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/string_tools.py +0 -0
  72. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/tabular_tools.py +0 -0
  73. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/tests/__init__.py +0 -0
  74. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/tests/conftest.py +0 -0
  75. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/tests/helpers.py +0 -0
  76. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/tests/test_datatype.py +0 -0
  77. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/tests/test_environment.py +0 -0
  78. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/tests/test_json.py +0 -0
  79. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/tests/test_path.py +0 -0
  80. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/tests/test_yaml.py +0 -0
  81. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/tokenization_tools.py +0 -0
  82. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/tools.py +0 -0
  83. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/unicode_tools.py +0 -0
  84. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/version_tools/__init__.py +0 -0
  85. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/version_tools/version_tools.py +0 -0
  86. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr/tools/yaml_tools.py +0 -0
  87. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr.tools.egg-info/SOURCES.txt +0 -0
  88. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr.tools.egg-info/dependency_links.txt +0 -0
  89. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr.tools.egg-info/entry_points.txt +0 -0
  90. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr.tools.egg-info/requires.txt +42 -42
  91. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/fmtr.tools.egg-info/top_level.txt +0 -0
  92. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/pyproject.toml +0 -0
  93. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/setup.cfg +0 -0
  94. {fmtr_tools-1.3.25 → fmtr_tools-1.3.27}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fmtr.tools
3
- Version: 1.3.25
3
+ Version: 1.3.27
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: sre_yield; extra == "all"
130
- Requires-Dist: filetype; extra == "all"
131
- Requires-Dist: diskcache; extra == "all"
132
- Requires-Dist: pydevd-pycharm~=251.25410.159; extra == "all"
129
+ Requires-Dist: contexttimer; extra == "all"
130
+ Requires-Dist: semver; extra == "all"
131
+ Requires-Dist: httpx_retries; extra == "all"
132
+ Requires-Dist: yamlscript; extra == "all"
133
+ Requires-Dist: pyyaml; extra == "all"
134
+ Requires-Dist: dask[bag]; extra == "all"
135
+ Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
136
+ Requires-Dist: google-auth; extra == "all"
133
137
  Requires-Dist: google-api-python-client; extra == "all"
134
- Requires-Dist: logfire[httpx]; extra == "all"
135
- Requires-Dist: transformers[sentencepiece]; extra == "all"
136
- Requires-Dist: cachetools; extra == "all"
137
- Requires-Dist: logfire[fastapi]; extra == "all"
138
+ Requires-Dist: docker; extra == "all"
139
+ Requires-Dist: flet[all]; extra == "all"
140
+ Requires-Dist: distributed; extra == "all"
141
+ Requires-Dist: deepmerge; extra == "all"
138
142
  Requires-Dist: regex; extra == "all"
143
+ Requires-Dist: transformers[sentencepiece]; extra == "all"
144
+ Requires-Dist: openai; extra == "all"
145
+ Requires-Dist: pydevd-pycharm~=251.25410.159; extra == "all"
139
146
  Requires-Dist: torchvision; extra == "all"
147
+ Requires-Dist: pandas; extra == "all"
148
+ Requires-Dist: bokeh; extra == "all"
149
+ Requires-Dist: fastapi; extra == "all"
150
+ Requires-Dist: cachetools; extra == "all"
140
151
  Requires-Dist: pytest-cov; extra == "all"
141
- Requires-Dist: setuptools; extra == "all"
142
152
  Requires-Dist: peft; extra == "all"
143
- Requires-Dist: Unidecode; extra == "all"
144
- Requires-Dist: httpx_retries; extra == "all"
145
- Requires-Dist: uvicorn[standard]; extra == "all"
146
- Requires-Dist: google-auth-oauthlib; extra == "all"
147
- Requires-Dist: json_repair; extra == "all"
148
153
  Requires-Dist: pydantic-settings; extra == "all"
149
- Requires-Dist: httpx; extra == "all"
150
- Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
151
- Requires-Dist: tokenizers; extra == "all"
152
- Requires-Dist: deepmerge; extra == "all"
153
- Requires-Dist: dask[bag]; extra == "all"
154
- Requires-Dist: google-auth; extra == "all"
155
- Requires-Dist: fastapi; extra == "all"
156
154
  Requires-Dist: openpyxl; extra == "all"
157
- Requires-Dist: tabulate; extra == "all"
158
- Requires-Dist: faker; extra == "all"
159
- Requires-Dist: tinynetrc; extra == "all"
160
- Requires-Dist: flet-video; extra == "all"
161
- Requires-Dist: flet[all]; extra == "all"
162
- Requires-Dist: pymupdf; extra == "all"
163
- Requires-Dist: logfire; extra == "all"
164
- Requires-Dist: yamlscript; extra == "all"
165
- Requires-Dist: bokeh; extra == "all"
166
155
  Requires-Dist: google-auth-httplib2; extra == "all"
167
- Requires-Dist: contexttimer; extra == "all"
168
- Requires-Dist: ollama; extra == "all"
169
- Requires-Dist: pyyaml; extra == "all"
170
156
  Requires-Dist: torchaudio; extra == "all"
171
- Requires-Dist: appdirs; extra == "all"
172
- Requires-Dist: html2text; extra == "all"
173
- Requires-Dist: semver; extra == "all"
174
157
  Requires-Dist: pydantic; extra == "all"
175
- Requires-Dist: distributed; extra == "all"
176
- Requires-Dist: flet-webview; extra == "all"
158
+ Requires-Dist: sre_yield; extra == "all"
159
+ Requires-Dist: appdirs; extra == "all"
177
160
  Requires-Dist: huggingface_hub; extra == "all"
161
+ Requires-Dist: tinynetrc; extra == "all"
162
+ Requires-Dist: flet-webview; extra == "all"
163
+ Requires-Dist: pymupdf; extra == "all"
164
+ Requires-Dist: filetype; extra == "all"
165
+ Requires-Dist: dnspython[doh]; extra == "all"
178
166
  Requires-Dist: pymupdf4llm; extra == "all"
179
- Requires-Dist: openai; extra == "all"
167
+ Requires-Dist: logfire; extra == "all"
168
+ Requires-Dist: google-auth-oauthlib; extra == "all"
169
+ Requires-Dist: tokenizers; extra == "all"
170
+ Requires-Dist: ollama; extra == "all"
171
+ Requires-Dist: diskcache; extra == "all"
172
+ Requires-Dist: faker; extra == "all"
173
+ Requires-Dist: logfire[fastapi]; extra == "all"
174
+ Requires-Dist: setuptools; extra == "all"
175
+ Requires-Dist: logfire[httpx]; extra == "all"
176
+ Requires-Dist: tabulate; extra == "all"
180
177
  Requires-Dist: sentence_transformers; extra == "all"
181
- Requires-Dist: pandas; extra == "all"
182
- Requires-Dist: dnspython[doh]; extra == "all"
183
- Requires-Dist: docker; extra == "all"
178
+ Requires-Dist: html2text; extra == "all"
179
+ Requires-Dist: flet-video; extra == "all"
180
+ Requires-Dist: json_repair; extra == "all"
181
+ Requires-Dist: httpx; extra == "all"
182
+ Requires-Dist: Unidecode; extra == "all"
183
+ Requires-Dist: uvicorn[standard]; extra == "all"
184
184
  Dynamic: author
185
185
  Dynamic: author-email
186
186
  Dynamic: description
@@ -49,3 +49,5 @@ class Constants:
49
49
  PRODUCTION = "production"
50
50
 
51
51
  INFRA = 'infra'
52
+
53
+ PROMPT_NOT_SPECIFIED = '[None Specified]'
@@ -0,0 +1,137 @@
1
+ import inspect
2
+
3
+ import flet as ft
4
+
5
+
6
+ class ContextBase:
7
+ """
8
+
9
+ A mixin base that can be used as both a synchronous and asynchronous context manager,
10
+ or as a decorator to wrap synchronous or asynchronous functions.
11
+ The control becomes visible when entering the context or invoking the wrapped function,
12
+ and is hidden again when exiting.
13
+
14
+ """
15
+
16
+ def start(self):
17
+ """
18
+
19
+ Show the control and update the page.
20
+ """
21
+
22
+ self.visible = True
23
+ self.page.update()
24
+
25
+ def stop(self):
26
+ """
27
+
28
+ Hide the control and update the page.
29
+
30
+ """
31
+ self.visible = False
32
+ self.page.update()
33
+
34
+ def context(self, func):
35
+ """
36
+
37
+ Decorator that wraps a synchronous or asynchronous function.
38
+ While the function runs, the control is visible.
39
+
40
+ """
41
+ if inspect.iscoroutinefunction(func):
42
+ async def async_wrapped(*args, **kwargs):
43
+ async with self:
44
+ return await func(*args, **kwargs)
45
+
46
+ return async_wrapped
47
+ else:
48
+ def sync_wrapped(*args, **kwargs):
49
+ with self:
50
+ return func(*args, **kwargs)
51
+
52
+ return sync_wrapped
53
+
54
+ def __enter__(self):
55
+ """
56
+
57
+ Enter the control context (sync).
58
+
59
+ """
60
+ self.start()
61
+ return self
62
+
63
+ def __exit__(self, exc_type, exc_val, exc_tb):
64
+ """
65
+
66
+ Exit the control context (sync).
67
+
68
+ """
69
+ self.stop()
70
+
71
+ async def __aenter__(self):
72
+ """
73
+
74
+ Enter the control context (async).
75
+ """
76
+
77
+ result = self.start()
78
+ if inspect.isawaitable(result):
79
+ await result
80
+ return self
81
+
82
+ async def __aexit__(self, exc_type, exc_val, exc_tb):
83
+ """
84
+
85
+ Exit the control context (async).
86
+ """
87
+
88
+ result = self.stop()
89
+ if inspect.isawaitable(result):
90
+ await result
91
+
92
+
93
+ class ContextRing(ft.ProgressRing, ContextBase):
94
+ """
95
+
96
+ A progress ring as a context manager.
97
+
98
+ """
99
+
100
+ def __init__(self, *args, **kwargs):
101
+ """
102
+
103
+ Initialize the progress ring as hidden by default.
104
+
105
+ """
106
+ super().__init__(*args, **kwargs, visible=False)
107
+
108
+ class ProgressButton(ft.Button):
109
+ """
110
+
111
+ Button containing a progress ring.
112
+
113
+ """
114
+
115
+ def __init__(self, *args, on_click=None, ring: ContextRing = None, **kwargs):
116
+ """
117
+
118
+ Run on_click in run context manager
119
+
120
+ """
121
+ self.ring = ring or ContextRing()
122
+
123
+ super().__init__(*args, content=self.ring, on_click=self.ring.context(on_click), **kwargs)
124
+ self.context = self.ring.context
125
+
126
+
127
+ class SliderSteps(ft.Slider):
128
+ """
129
+
130
+ Slider control using step instead of divisions
131
+
132
+ """
133
+
134
+ def __init__(self, *args, min=10, max=100, step=10, **kwargs):
135
+ self.step = step
136
+ divisions = (max - min) // step
137
+ super().__init__(*args, min=min, max=max, divisions=divisions, **kwargs)
@@ -0,0 +1 @@
1
+ 1.3.27
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fmtr.tools
3
- Version: 1.3.25
3
+ Version: 1.3.27
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: sre_yield; extra == "all"
130
- Requires-Dist: filetype; extra == "all"
131
- Requires-Dist: diskcache; extra == "all"
132
- Requires-Dist: pydevd-pycharm~=251.25410.159; extra == "all"
129
+ Requires-Dist: contexttimer; extra == "all"
130
+ Requires-Dist: semver; extra == "all"
131
+ Requires-Dist: httpx_retries; extra == "all"
132
+ Requires-Dist: yamlscript; extra == "all"
133
+ Requires-Dist: pyyaml; extra == "all"
134
+ Requires-Dist: dask[bag]; extra == "all"
135
+ Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
136
+ Requires-Dist: google-auth; extra == "all"
133
137
  Requires-Dist: google-api-python-client; extra == "all"
134
- Requires-Dist: logfire[httpx]; extra == "all"
135
- Requires-Dist: transformers[sentencepiece]; extra == "all"
136
- Requires-Dist: cachetools; extra == "all"
137
- Requires-Dist: logfire[fastapi]; extra == "all"
138
+ Requires-Dist: docker; extra == "all"
139
+ Requires-Dist: flet[all]; extra == "all"
140
+ Requires-Dist: distributed; extra == "all"
141
+ Requires-Dist: deepmerge; extra == "all"
138
142
  Requires-Dist: regex; extra == "all"
143
+ Requires-Dist: transformers[sentencepiece]; extra == "all"
144
+ Requires-Dist: openai; extra == "all"
145
+ Requires-Dist: pydevd-pycharm~=251.25410.159; extra == "all"
139
146
  Requires-Dist: torchvision; extra == "all"
147
+ Requires-Dist: pandas; extra == "all"
148
+ Requires-Dist: bokeh; extra == "all"
149
+ Requires-Dist: fastapi; extra == "all"
150
+ Requires-Dist: cachetools; extra == "all"
140
151
  Requires-Dist: pytest-cov; extra == "all"
141
- Requires-Dist: setuptools; extra == "all"
142
152
  Requires-Dist: peft; extra == "all"
143
- Requires-Dist: Unidecode; extra == "all"
144
- Requires-Dist: httpx_retries; extra == "all"
145
- Requires-Dist: uvicorn[standard]; extra == "all"
146
- Requires-Dist: google-auth-oauthlib; extra == "all"
147
- Requires-Dist: json_repair; extra == "all"
148
153
  Requires-Dist: pydantic-settings; extra == "all"
149
- Requires-Dist: httpx; extra == "all"
150
- Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
151
- Requires-Dist: tokenizers; extra == "all"
152
- Requires-Dist: deepmerge; extra == "all"
153
- Requires-Dist: dask[bag]; extra == "all"
154
- Requires-Dist: google-auth; extra == "all"
155
- Requires-Dist: fastapi; extra == "all"
156
154
  Requires-Dist: openpyxl; extra == "all"
157
- Requires-Dist: tabulate; extra == "all"
158
- Requires-Dist: faker; extra == "all"
159
- Requires-Dist: tinynetrc; extra == "all"
160
- Requires-Dist: flet-video; extra == "all"
161
- Requires-Dist: flet[all]; extra == "all"
162
- Requires-Dist: pymupdf; extra == "all"
163
- Requires-Dist: logfire; extra == "all"
164
- Requires-Dist: yamlscript; extra == "all"
165
- Requires-Dist: bokeh; extra == "all"
166
155
  Requires-Dist: google-auth-httplib2; extra == "all"
167
- Requires-Dist: contexttimer; extra == "all"
168
- Requires-Dist: ollama; extra == "all"
169
- Requires-Dist: pyyaml; extra == "all"
170
156
  Requires-Dist: torchaudio; extra == "all"
171
- Requires-Dist: appdirs; extra == "all"
172
- Requires-Dist: html2text; extra == "all"
173
- Requires-Dist: semver; extra == "all"
174
157
  Requires-Dist: pydantic; extra == "all"
175
- Requires-Dist: distributed; extra == "all"
176
- Requires-Dist: flet-webview; extra == "all"
158
+ Requires-Dist: sre_yield; extra == "all"
159
+ Requires-Dist: appdirs; extra == "all"
177
160
  Requires-Dist: huggingface_hub; extra == "all"
161
+ Requires-Dist: tinynetrc; extra == "all"
162
+ Requires-Dist: flet-webview; extra == "all"
163
+ Requires-Dist: pymupdf; extra == "all"
164
+ Requires-Dist: filetype; extra == "all"
165
+ Requires-Dist: dnspython[doh]; extra == "all"
178
166
  Requires-Dist: pymupdf4llm; extra == "all"
179
- Requires-Dist: openai; extra == "all"
167
+ Requires-Dist: logfire; extra == "all"
168
+ Requires-Dist: google-auth-oauthlib; extra == "all"
169
+ Requires-Dist: tokenizers; extra == "all"
170
+ Requires-Dist: ollama; extra == "all"
171
+ Requires-Dist: diskcache; extra == "all"
172
+ Requires-Dist: faker; extra == "all"
173
+ Requires-Dist: logfire[fastapi]; extra == "all"
174
+ Requires-Dist: setuptools; extra == "all"
175
+ Requires-Dist: logfire[httpx]; extra == "all"
176
+ Requires-Dist: tabulate; extra == "all"
180
177
  Requires-Dist: sentence_transformers; extra == "all"
181
- Requires-Dist: pandas; extra == "all"
182
- Requires-Dist: dnspython[doh]; extra == "all"
183
- Requires-Dist: docker; extra == "all"
178
+ Requires-Dist: html2text; extra == "all"
179
+ Requires-Dist: flet-video; extra == "all"
180
+ Requires-Dist: json_repair; extra == "all"
181
+ Requires-Dist: httpx; extra == "all"
182
+ Requires-Dist: Unidecode; extra == "all"
183
+ Requires-Dist: uvicorn[standard]; extra == "all"
184
184
  Dynamic: author
185
185
  Dynamic: author-email
186
186
  Dynamic: description
@@ -1,73 +0,0 @@
1
- import flet as ft
2
-
3
-
4
- class ContextRing(ft.ProgressRing):
5
- """
6
-
7
- Context manager progress ring.
8
-
9
- """
10
-
11
- def __init__(self, *args, **kwargs):
12
- """
13
-
14
- Start out not visible.
15
-
16
- """
17
- super().__init__(*args, **kwargs, visible=False)
18
-
19
- def start(self):
20
- """
21
-
22
- Update to visible when in context.
23
-
24
- """
25
- self.visible = True
26
- self.page.update()
27
-
28
- def stop(self):
29
- """
30
-
31
- Update to not visible when exiting context.
32
-
33
- """
34
- self.visible = False
35
- self.page.update()
36
-
37
- def context(self, func):
38
- """
39
-
40
- Context manager decorator.
41
-
42
- """
43
-
44
- def wrapped(*args, **kwargs):
45
- with self:
46
- func(*args, **kwargs)
47
-
48
- return wrapped
49
-
50
- def __enter__(self):
51
- self.start()
52
- return self
53
-
54
- def __exit__(self, exc_type, exc_val, exc_tb):
55
- self.stop()
56
-
57
-
58
- class ProgressButton(ft.Button):
59
- """
60
-
61
- Button with progress ring.
62
-
63
- """
64
-
65
- def __init__(self, *args, on_click=None, **kwargs):
66
- """
67
-
68
- Run on_click in run context manager
69
-
70
- """
71
- self.ring = ContextRing()
72
- super().__init__(*args, content=self.ring, on_click=self.ring.context(on_click), **kwargs)
73
- self.context = self.ring.context
@@ -1 +0,0 @@
1
- 1.3.25
File without changes
File without changes
@@ -14,61 +14,61 @@ pydantic-ai[logfire,openai]
14
14
  ollama
15
15
 
16
16
  [all]
17
- sre_yield
18
- filetype
19
- diskcache
20
- pydevd-pycharm~=251.25410.159
17
+ contexttimer
18
+ semver
19
+ httpx_retries
20
+ yamlscript
21
+ pyyaml
22
+ dask[bag]
23
+ pydantic-ai[logfire,openai]
24
+ google-auth
21
25
  google-api-python-client
22
- logfire[httpx]
23
- transformers[sentencepiece]
24
- cachetools
25
- logfire[fastapi]
26
+ docker
27
+ flet[all]
28
+ distributed
29
+ deepmerge
26
30
  regex
31
+ transformers[sentencepiece]
32
+ openai
33
+ pydevd-pycharm~=251.25410.159
27
34
  torchvision
35
+ pandas
36
+ bokeh
37
+ fastapi
38
+ cachetools
28
39
  pytest-cov
29
- setuptools
30
40
  peft
31
- Unidecode
32
- httpx_retries
33
- uvicorn[standard]
34
- google-auth-oauthlib
35
- json_repair
36
41
  pydantic-settings
37
- httpx
38
- pydantic-ai[logfire,openai]
39
- tokenizers
40
- deepmerge
41
- dask[bag]
42
- google-auth
43
- fastapi
44
42
  openpyxl
45
- tabulate
46
- faker
47
- tinynetrc
48
- flet-video
49
- flet[all]
50
- pymupdf
51
- logfire
52
- yamlscript
53
- bokeh
54
43
  google-auth-httplib2
55
- contexttimer
56
- ollama
57
- pyyaml
58
44
  torchaudio
59
- appdirs
60
- html2text
61
- semver
62
45
  pydantic
63
- distributed
64
- flet-webview
46
+ sre_yield
47
+ appdirs
65
48
  huggingface_hub
49
+ tinynetrc
50
+ flet-webview
51
+ pymupdf
52
+ filetype
53
+ dnspython[doh]
66
54
  pymupdf4llm
67
- openai
55
+ logfire
56
+ google-auth-oauthlib
57
+ tokenizers
58
+ ollama
59
+ diskcache
60
+ faker
61
+ logfire[fastapi]
62
+ setuptools
63
+ logfire[httpx]
64
+ tabulate
68
65
  sentence_transformers
69
- pandas
70
- dnspython[doh]
71
- docker
66
+ html2text
67
+ flet-video
68
+ json_repair
69
+ httpx
70
+ Unidecode
71
+ uvicorn[standard]
72
72
 
73
73
  [api]
74
74
  fastapi
File without changes
File without changes
File without changes