scitex 2.14.0__py3-none-any.whl → 2.15.1__py3-none-any.whl

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 (218) hide show
  1. scitex/__init__.py +47 -0
  2. scitex/_env_loader.py +156 -0
  3. scitex/_mcp_resources/__init__.py +37 -0
  4. scitex/_mcp_resources/_cheatsheet.py +135 -0
  5. scitex/_mcp_resources/_figrecipe.py +138 -0
  6. scitex/_mcp_resources/_formats.py +102 -0
  7. scitex/_mcp_resources/_modules.py +337 -0
  8. scitex/_mcp_resources/_session.py +149 -0
  9. scitex/_mcp_tools/__init__.py +4 -0
  10. scitex/_mcp_tools/audio.py +66 -0
  11. scitex/_mcp_tools/diagram.py +11 -95
  12. scitex/_mcp_tools/introspect.py +191 -0
  13. scitex/_mcp_tools/plt.py +260 -305
  14. scitex/_mcp_tools/scholar.py +74 -0
  15. scitex/_mcp_tools/social.py +244 -0
  16. scitex/_mcp_tools/writer.py +21 -204
  17. scitex/ai/_gen_ai/_PARAMS.py +10 -7
  18. scitex/ai/classification/reporters/_SingleClassificationReporter.py +45 -1603
  19. scitex/ai/classification/reporters/_mixins/__init__.py +36 -0
  20. scitex/ai/classification/reporters/_mixins/_constants.py +67 -0
  21. scitex/ai/classification/reporters/_mixins/_cv_summary.py +387 -0
  22. scitex/ai/classification/reporters/_mixins/_feature_importance.py +119 -0
  23. scitex/ai/classification/reporters/_mixins/_metrics.py +275 -0
  24. scitex/ai/classification/reporters/_mixins/_plotting.py +179 -0
  25. scitex/ai/classification/reporters/_mixins/_reports.py +153 -0
  26. scitex/ai/classification/reporters/_mixins/_storage.py +160 -0
  27. scitex/audio/README.md +40 -36
  28. scitex/audio/__init__.py +127 -59
  29. scitex/audio/_branding.py +185 -0
  30. scitex/audio/_mcp/__init__.py +32 -0
  31. scitex/audio/_mcp/handlers.py +59 -6
  32. scitex/audio/_mcp/speak_handlers.py +238 -0
  33. scitex/audio/_relay.py +225 -0
  34. scitex/audio/engines/elevenlabs_engine.py +6 -1
  35. scitex/audio/mcp_server.py +228 -75
  36. scitex/canvas/README.md +1 -1
  37. scitex/canvas/editor/_dearpygui/__init__.py +25 -0
  38. scitex/canvas/editor/_dearpygui/_editor.py +147 -0
  39. scitex/canvas/editor/_dearpygui/_handlers.py +476 -0
  40. scitex/canvas/editor/_dearpygui/_panels/__init__.py +17 -0
  41. scitex/canvas/editor/_dearpygui/_panels/_control.py +119 -0
  42. scitex/canvas/editor/_dearpygui/_panels/_element_controls.py +190 -0
  43. scitex/canvas/editor/_dearpygui/_panels/_preview.py +43 -0
  44. scitex/canvas/editor/_dearpygui/_panels/_sections.py +390 -0
  45. scitex/canvas/editor/_dearpygui/_plotting.py +187 -0
  46. scitex/canvas/editor/_dearpygui/_rendering.py +504 -0
  47. scitex/canvas/editor/_dearpygui/_selection.py +295 -0
  48. scitex/canvas/editor/_dearpygui/_state.py +93 -0
  49. scitex/canvas/editor/_dearpygui/_utils.py +61 -0
  50. scitex/canvas/editor/flask_editor/templates/__init__.py +32 -70
  51. scitex/cli/__init__.py +38 -43
  52. scitex/cli/audio.py +76 -27
  53. scitex/cli/capture.py +13 -20
  54. scitex/cli/introspect.py +443 -0
  55. scitex/cli/main.py +198 -109
  56. scitex/cli/mcp.py +60 -34
  57. scitex/cli/scholar/__init__.py +8 -0
  58. scitex/cli/scholar/_crossref_scitex.py +296 -0
  59. scitex/cli/scholar/_fetch.py +25 -3
  60. scitex/cli/social.py +314 -0
  61. scitex/cli/writer.py +117 -0
  62. scitex/config/README.md +1 -1
  63. scitex/config/__init__.py +16 -2
  64. scitex/config/_env_registry.py +191 -0
  65. scitex/diagram/__init__.py +42 -19
  66. scitex/diagram/mcp_server.py +13 -125
  67. scitex/introspect/__init__.py +75 -0
  68. scitex/introspect/_call_graph.py +303 -0
  69. scitex/introspect/_class_hierarchy.py +163 -0
  70. scitex/introspect/_core.py +42 -0
  71. scitex/introspect/_docstring.py +131 -0
  72. scitex/introspect/_examples.py +113 -0
  73. scitex/introspect/_imports.py +271 -0
  74. scitex/introspect/_mcp/__init__.py +37 -0
  75. scitex/introspect/_mcp/handlers.py +208 -0
  76. scitex/introspect/_members.py +151 -0
  77. scitex/introspect/_resolve.py +89 -0
  78. scitex/introspect/_signature.py +131 -0
  79. scitex/introspect/_source.py +80 -0
  80. scitex/introspect/_type_hints.py +172 -0
  81. scitex/io/bundle/README.md +1 -1
  82. scitex/mcp_server.py +98 -5
  83. scitex/plt/__init__.py +248 -550
  84. scitex/plt/_subplots/_AxisWrapperMixins/_SeabornMixin/_wrappers.py +5 -10
  85. scitex/plt/docs/EXTERNAL_PACKAGE_BRANDING.md +149 -0
  86. scitex/plt/gallery/README.md +1 -1
  87. scitex/plt/utils/_hitmap/__init__.py +82 -0
  88. scitex/plt/utils/_hitmap/_artist_extraction.py +343 -0
  89. scitex/plt/utils/_hitmap/_color_application.py +346 -0
  90. scitex/plt/utils/_hitmap/_color_conversion.py +121 -0
  91. scitex/plt/utils/_hitmap/_constants.py +40 -0
  92. scitex/plt/utils/_hitmap/_hitmap_core.py +334 -0
  93. scitex/plt/utils/_hitmap/_path_extraction.py +357 -0
  94. scitex/plt/utils/_hitmap/_query.py +113 -0
  95. scitex/plt/utils/_hitmap.py +46 -1616
  96. scitex/plt/utils/_metadata/__init__.py +80 -0
  97. scitex/plt/utils/_metadata/_artists/__init__.py +25 -0
  98. scitex/plt/utils/_metadata/_artists/_base.py +195 -0
  99. scitex/plt/utils/_metadata/_artists/_collections.py +356 -0
  100. scitex/plt/utils/_metadata/_artists/_extract.py +57 -0
  101. scitex/plt/utils/_metadata/_artists/_images.py +80 -0
  102. scitex/plt/utils/_metadata/_artists/_lines.py +261 -0
  103. scitex/plt/utils/_metadata/_artists/_patches.py +247 -0
  104. scitex/plt/utils/_metadata/_artists/_text.py +106 -0
  105. scitex/plt/utils/_metadata/_csv.py +416 -0
  106. scitex/plt/utils/_metadata/_detect.py +225 -0
  107. scitex/plt/utils/_metadata/_legend.py +127 -0
  108. scitex/plt/utils/_metadata/_rounding.py +117 -0
  109. scitex/plt/utils/_metadata/_verification.py +202 -0
  110. scitex/schema/README.md +1 -1
  111. scitex/scholar/__init__.py +8 -0
  112. scitex/scholar/_mcp/crossref_handlers.py +265 -0
  113. scitex/scholar/core/Scholar.py +63 -1700
  114. scitex/scholar/core/_mixins/__init__.py +36 -0
  115. scitex/scholar/core/_mixins/_enrichers.py +270 -0
  116. scitex/scholar/core/_mixins/_library_handlers.py +100 -0
  117. scitex/scholar/core/_mixins/_loaders.py +103 -0
  118. scitex/scholar/core/_mixins/_pdf_download.py +375 -0
  119. scitex/scholar/core/_mixins/_pipeline.py +312 -0
  120. scitex/scholar/core/_mixins/_project_handlers.py +125 -0
  121. scitex/scholar/core/_mixins/_savers.py +69 -0
  122. scitex/scholar/core/_mixins/_search.py +103 -0
  123. scitex/scholar/core/_mixins/_services.py +88 -0
  124. scitex/scholar/core/_mixins/_url_finding.py +105 -0
  125. scitex/scholar/crossref_scitex.py +367 -0
  126. scitex/scholar/docs/EXTERNAL_PACKAGE_BRANDING.md +149 -0
  127. scitex/scholar/examples/00_run_all.sh +120 -0
  128. scitex/scholar/jobs/_executors.py +27 -3
  129. scitex/scholar/pdf_download/ScholarPDFDownloader.py +38 -416
  130. scitex/scholar/pdf_download/_cli.py +154 -0
  131. scitex/scholar/pdf_download/strategies/__init__.py +11 -8
  132. scitex/scholar/pdf_download/strategies/manual_download_fallback.py +80 -3
  133. scitex/scholar/pipelines/ScholarPipelineBibTeX.py +73 -121
  134. scitex/scholar/pipelines/ScholarPipelineParallel.py +80 -138
  135. scitex/scholar/pipelines/ScholarPipelineSingle.py +43 -63
  136. scitex/scholar/pipelines/_single_steps.py +71 -36
  137. scitex/scholar/storage/_LibraryManager.py +97 -1695
  138. scitex/scholar/storage/_mixins/__init__.py +30 -0
  139. scitex/scholar/storage/_mixins/_bibtex_handlers.py +128 -0
  140. scitex/scholar/storage/_mixins/_library_operations.py +218 -0
  141. scitex/scholar/storage/_mixins/_metadata_conversion.py +226 -0
  142. scitex/scholar/storage/_mixins/_paper_saving.py +456 -0
  143. scitex/scholar/storage/_mixins/_resolution.py +376 -0
  144. scitex/scholar/storage/_mixins/_storage_helpers.py +121 -0
  145. scitex/scholar/storage/_mixins/_symlink_handlers.py +226 -0
  146. scitex/scholar/url_finder/.tmp/open_url/KNOWN_RESOLVERS.py +462 -0
  147. scitex/scholar/url_finder/.tmp/open_url/README.md +223 -0
  148. scitex/scholar/url_finder/.tmp/open_url/_DOIToURLResolver.py +694 -0
  149. scitex/scholar/url_finder/.tmp/open_url/_OpenURLResolver.py +1160 -0
  150. scitex/scholar/url_finder/.tmp/open_url/_ResolverLinkFinder.py +344 -0
  151. scitex/scholar/url_finder/.tmp/open_url/__init__.py +24 -0
  152. scitex/security/README.md +3 -3
  153. scitex/session/README.md +1 -1
  154. scitex/sh/README.md +1 -1
  155. scitex/social/__init__.py +153 -0
  156. scitex/social/docs/EXTERNAL_PACKAGE_BRANDING.md +149 -0
  157. scitex/template/README.md +1 -1
  158. scitex/template/clone_writer_directory.py +5 -5
  159. scitex/writer/README.md +1 -1
  160. scitex/writer/_mcp/handlers.py +11 -744
  161. scitex/writer/_mcp/tool_schemas.py +5 -335
  162. scitex-2.15.1.dist-info/METADATA +648 -0
  163. {scitex-2.14.0.dist-info → scitex-2.15.1.dist-info}/RECORD +166 -111
  164. scitex/canvas/editor/flask_editor/templates/_scripts.py +0 -4933
  165. scitex/canvas/editor/flask_editor/templates/_styles.py +0 -1658
  166. scitex/dev/plt/data/mpl/PLOTTING_FUNCTIONS.yaml +0 -90
  167. scitex/dev/plt/data/mpl/PLOTTING_SIGNATURES.yaml +0 -1571
  168. scitex/dev/plt/data/mpl/PLOTTING_SIGNATURES_DETAILED.yaml +0 -6262
  169. scitex/dev/plt/data/mpl/SIGNATURES_FLATTENED.yaml +0 -1274
  170. scitex/dev/plt/data/mpl/dir_ax.txt +0 -459
  171. scitex/diagram/_compile.py +0 -312
  172. scitex/diagram/_diagram.py +0 -355
  173. scitex/diagram/_mcp/__init__.py +0 -4
  174. scitex/diagram/_mcp/handlers.py +0 -400
  175. scitex/diagram/_mcp/tool_schemas.py +0 -157
  176. scitex/diagram/_presets.py +0 -173
  177. scitex/diagram/_schema.py +0 -182
  178. scitex/diagram/_split.py +0 -278
  179. scitex/plt/_mcp/__init__.py +0 -4
  180. scitex/plt/_mcp/_handlers_annotation.py +0 -102
  181. scitex/plt/_mcp/_handlers_figure.py +0 -195
  182. scitex/plt/_mcp/_handlers_plot.py +0 -252
  183. scitex/plt/_mcp/_handlers_style.py +0 -219
  184. scitex/plt/_mcp/handlers.py +0 -74
  185. scitex/plt/_mcp/tool_schemas.py +0 -497
  186. scitex/plt/mcp_server.py +0 -231
  187. scitex/scholar/data/.gitkeep +0 -0
  188. scitex/scholar/data/README.md +0 -44
  189. scitex/scholar/data/bib_files/bibliography.bib +0 -1952
  190. scitex/scholar/data/bib_files/neurovista.bib +0 -277
  191. scitex/scholar/data/bib_files/neurovista_enriched.bib +0 -441
  192. scitex/scholar/data/bib_files/neurovista_enriched_enriched.bib +0 -441
  193. scitex/scholar/data/bib_files/neurovista_processed.bib +0 -338
  194. scitex/scholar/data/bib_files/openaccess.bib +0 -89
  195. scitex/scholar/data/bib_files/pac-seizure_prediction_enriched.bib +0 -2178
  196. scitex/scholar/data/bib_files/pac.bib +0 -698
  197. scitex/scholar/data/bib_files/pac_enriched.bib +0 -1061
  198. scitex/scholar/data/bib_files/pac_processed.bib +0 -0
  199. scitex/scholar/data/bib_files/pac_titles.txt +0 -75
  200. scitex/scholar/data/bib_files/paywalled.bib +0 -98
  201. scitex/scholar/data/bib_files/related-papers-by-coauthors.bib +0 -58
  202. scitex/scholar/data/bib_files/related-papers-by-coauthors_enriched.bib +0 -87
  203. scitex/scholar/data/bib_files/seizure_prediction.bib +0 -694
  204. scitex/scholar/data/bib_files/seizure_prediction_processed.bib +0 -0
  205. scitex/scholar/data/bib_files/test_complete_enriched.bib +0 -437
  206. scitex/scholar/data/bib_files/test_final_enriched.bib +0 -437
  207. scitex/scholar/data/bib_files/test_seizure.bib +0 -46
  208. scitex/scholar/data/impact_factor/JCR_IF_2022.xlsx +0 -0
  209. scitex/scholar/data/impact_factor/JCR_IF_2024.db +0 -0
  210. scitex/scholar/data/impact_factor/JCR_IF_2024.xlsx +0 -0
  211. scitex/scholar/data/impact_factor/JCR_IF_2024_v01.db +0 -0
  212. scitex/scholar/data/impact_factor.db +0 -0
  213. scitex/scholar/examples/SUGGESTIONS.md +0 -865
  214. scitex/scholar/examples/dev.py +0 -38
  215. scitex-2.14.0.dist-info/METADATA +0 -1238
  216. {scitex-2.14.0.dist-info → scitex-2.15.1.dist-info}/WHEEL +0 -0
  217. {scitex-2.14.0.dist-info → scitex-2.15.1.dist-info}/entry_points.txt +0 -0
  218. {scitex-2.14.0.dist-info → scitex-2.15.1.dist-info}/licenses/LICENSE +0 -0
@@ -1,219 +0,0 @@
1
- #!/usr/bin/env python3
2
- # Timestamp: 2026-01-13
3
- # File: src/scitex/plt/_mcp/_handlers_style.py
4
-
5
- """Style-related MCP handlers for SciTeX plt module."""
6
-
7
- from __future__ import annotations
8
-
9
- from typing import Optional
10
-
11
-
12
- async def get_style_handler() -> dict:
13
- """Get current SciTeX publication style configuration."""
14
- try:
15
- from scitex.plt.styles.presets import get_style
16
-
17
- style = get_style()
18
-
19
- return {
20
- "success": True,
21
- "style": style,
22
- "description": "Current SciTeX publication style configuration",
23
- }
24
- except Exception as e:
25
- return {"success": False, "error": str(e)}
26
-
27
-
28
- async def set_style_handler(
29
- axes_width_mm: Optional[float] = None,
30
- axes_height_mm: Optional[float] = None,
31
- margin_left_mm: Optional[float] = None,
32
- margin_right_mm: Optional[float] = None,
33
- margin_top_mm: Optional[float] = None,
34
- margin_bottom_mm: Optional[float] = None,
35
- dpi: Optional[int] = None,
36
- axis_font_size_pt: Optional[float] = None,
37
- tick_font_size_pt: Optional[float] = None,
38
- title_font_size_pt: Optional[float] = None,
39
- legend_font_size_pt: Optional[float] = None,
40
- trace_thickness_mm: Optional[float] = None,
41
- reset: bool = False,
42
- ) -> dict:
43
- """Set global style overrides for publication figures."""
44
- try:
45
- from scitex.plt.styles.presets import get_style, set_style
46
-
47
- if reset:
48
- set_style(None)
49
-
50
- style_updates = {}
51
- if axes_width_mm is not None:
52
- style_updates["axes_width_mm"] = axes_width_mm
53
- if axes_height_mm is not None:
54
- style_updates["axes_height_mm"] = axes_height_mm
55
- if margin_left_mm is not None:
56
- style_updates["margin_left_mm"] = margin_left_mm
57
- if margin_right_mm is not None:
58
- style_updates["margin_right_mm"] = margin_right_mm
59
- if margin_top_mm is not None:
60
- style_updates["margin_top_mm"] = margin_top_mm
61
- if margin_bottom_mm is not None:
62
- style_updates["margin_bottom_mm"] = margin_bottom_mm
63
- if dpi is not None:
64
- style_updates["dpi"] = dpi
65
- if axis_font_size_pt is not None:
66
- style_updates["axis_font_size_pt"] = axis_font_size_pt
67
- if tick_font_size_pt is not None:
68
- style_updates["tick_font_size_pt"] = tick_font_size_pt
69
- if title_font_size_pt is not None:
70
- style_updates["title_font_size_pt"] = title_font_size_pt
71
- if legend_font_size_pt is not None:
72
- style_updates["legend_font_size_pt"] = legend_font_size_pt
73
- if trace_thickness_mm is not None:
74
- style_updates["trace_thickness_mm"] = trace_thickness_mm
75
-
76
- if style_updates:
77
- set_style(style_updates)
78
-
79
- final_style = get_style()
80
-
81
- return {
82
- "success": True,
83
- "updated_parameters": list(style_updates.keys()),
84
- "style": final_style,
85
- "message": f"Updated {len(style_updates)} style parameters",
86
- }
87
- except Exception as e:
88
- return {"success": False, "error": str(e)}
89
-
90
-
91
- async def list_presets_handler() -> dict:
92
- """List available publication style presets."""
93
- try:
94
- presets = [
95
- {
96
- "name": "SCITEX_STYLE",
97
- "description": "Default SciTeX publication style",
98
- "axes_size_mm": "40x28",
99
- "dpi": 300,
100
- "font_sizes_pt": {"axis": 7, "tick": 7, "title": 8, "legend": 6},
101
- },
102
- {
103
- "name": "nature",
104
- "description": "Nature journal style (single column)",
105
- "axes_size_mm": "89x60",
106
- "dpi": 300,
107
- "notes": "Single column width: 89mm",
108
- },
109
- {
110
- "name": "science",
111
- "description": "Science journal style",
112
- "axes_size_mm": "85x60",
113
- "dpi": 300,
114
- "notes": "Single column width: 85mm",
115
- },
116
- {
117
- "name": "pnas",
118
- "description": "PNAS journal style",
119
- "axes_size_mm": "87x60",
120
- "dpi": 300,
121
- "notes": "Single column width: 8.7cm",
122
- },
123
- {
124
- "name": "ieee",
125
- "description": "IEEE journal style",
126
- "axes_size_mm": "88x60",
127
- "dpi": 300,
128
- "notes": "Single column width: 3.5 inches",
129
- },
130
- ]
131
-
132
- return {
133
- "success": True,
134
- "count": len(presets),
135
- "presets": presets,
136
- "usage": "Use set_style() to apply custom dimensions",
137
- }
138
- except Exception as e:
139
- return {"success": False, "error": str(e)}
140
-
141
-
142
- async def get_dpi_settings_handler() -> dict:
143
- """Get DPI settings for different output contexts."""
144
- try:
145
- from scitex.plt.styles.presets import (
146
- get_default_dpi,
147
- get_display_dpi,
148
- get_preview_dpi,
149
- )
150
-
151
- return {
152
- "success": True,
153
- "dpi_settings": {
154
- "save": {
155
- "value": get_default_dpi(),
156
- "description": "Publication-quality output (high resolution)",
157
- },
158
- "display": {
159
- "value": get_display_dpi(),
160
- "description": "Screen display (lower resolution for speed)",
161
- },
162
- "preview": {
163
- "value": get_preview_dpi(),
164
- "description": "Editor previews and thumbnails",
165
- },
166
- },
167
- "recommendation": "Use 'save' DPI for final figures, 'display' for iterating",
168
- }
169
- except Exception as e:
170
- return {"success": False, "error": str(e)}
171
-
172
-
173
- async def get_color_palette_handler(format: str = "hex") -> dict:
174
- """Get the SciTeX color palette."""
175
- try:
176
- from scitex.plt import color as color_module
177
-
178
- params = getattr(color_module, "PARAMS", {})
179
- rgba_cycle = params.get("RGBA_NORM_FOR_CYCLE", {})
180
-
181
- colors = {}
182
- for name, rgba in rgba_cycle.items():
183
- if format == "hex":
184
- r, g, b = int(rgba[0] * 255), int(rgba[1] * 255), int(rgba[2] * 255)
185
- colors[name] = f"#{r:02x}{g:02x}{b:02x}"
186
- elif format == "rgb":
187
- colors[name] = {
188
- "r": int(rgba[0] * 255),
189
- "g": int(rgba[1] * 255),
190
- "b": int(rgba[2] * 255),
191
- }
192
- else: # rgba
193
- colors[name] = {
194
- "r": rgba[0],
195
- "g": rgba[1],
196
- "b": rgba[2],
197
- "a": rgba[3] if len(rgba) > 3 else 1.0,
198
- }
199
-
200
- return {
201
- "success": True,
202
- "format": format,
203
- "count": len(colors),
204
- "colors": colors,
205
- "usage": "Colors are used in matplotlib's default color cycle",
206
- }
207
- except Exception as e:
208
- return {"success": False, "error": str(e)}
209
-
210
-
211
- __all__ = [
212
- "get_style_handler",
213
- "set_style_handler",
214
- "list_presets_handler",
215
- "get_dpi_settings_handler",
216
- "get_color_palette_handler",
217
- ]
218
-
219
- # EOF
@@ -1,74 +0,0 @@
1
- #!/usr/bin/env python3
2
- # Timestamp: 2026-01-13
3
- # File: src/scitex/plt/_mcp/handlers.py
4
-
5
- """MCP Handler implementations for SciTeX plt module.
6
-
7
- Provides async handlers for publication-quality plotting operations.
8
- This module re-exports handlers from submodules for backward compatibility.
9
- """
10
-
11
- from __future__ import annotations
12
-
13
- # Re-export annotation handlers
14
- from ._handlers_annotation import (
15
- add_panel_label_handler,
16
- add_significance_handler,
17
- )
18
-
19
- # Re-export figure registry and helper
20
- # Re-export figure management handlers
21
- from ._handlers_figure import (
22
- _FIGURE_REGISTRY,
23
- _get_axes,
24
- close_figure_handler,
25
- create_figure_handler,
26
- crop_figure_handler,
27
- save_figure_handler,
28
- )
29
-
30
- # Re-export plot handlers
31
- from ._handlers_plot import (
32
- plot_bar_handler,
33
- plot_box_handler,
34
- plot_line_handler,
35
- plot_scatter_handler,
36
- plot_violin_handler,
37
- )
38
-
39
- # Re-export style handlers
40
- from ._handlers_style import (
41
- get_color_palette_handler,
42
- get_dpi_settings_handler,
43
- get_style_handler,
44
- list_presets_handler,
45
- set_style_handler,
46
- )
47
-
48
- __all__ = [
49
- # Style handlers
50
- "get_style_handler",
51
- "set_style_handler",
52
- "list_presets_handler",
53
- "get_dpi_settings_handler",
54
- "get_color_palette_handler",
55
- # Figure management
56
- "create_figure_handler",
57
- "crop_figure_handler",
58
- "save_figure_handler",
59
- "close_figure_handler",
60
- # Plot handlers
61
- "plot_bar_handler",
62
- "plot_scatter_handler",
63
- "plot_line_handler",
64
- "plot_box_handler",
65
- "plot_violin_handler",
66
- # Annotation handlers
67
- "add_significance_handler",
68
- "add_panel_label_handler",
69
- # Internal (for submodules)
70
- "_FIGURE_REGISTRY",
71
- "_get_axes",
72
- ]
73
-
74
- # EOF