scitex 2.7.0__py3-none-any.whl → 2.8.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 (355) hide show
  1. scitex/__init__.py +6 -2
  2. scitex/__version__.py +1 -1
  3. scitex/audio/README.md +52 -0
  4. scitex/audio/__init__.py +384 -0
  5. scitex/audio/__main__.py +129 -0
  6. scitex/audio/_tts.py +334 -0
  7. scitex/audio/engines/__init__.py +44 -0
  8. scitex/audio/engines/base.py +275 -0
  9. scitex/audio/engines/elevenlabs_engine.py +143 -0
  10. scitex/audio/engines/gtts_engine.py +162 -0
  11. scitex/audio/engines/pyttsx3_engine.py +131 -0
  12. scitex/audio/mcp_server.py +757 -0
  13. scitex/bridge/_helpers.py +1 -1
  14. scitex/bridge/_plt_vis.py +1 -1
  15. scitex/bridge/_stats_vis.py +1 -1
  16. scitex/dev/plt/__init__.py +272 -0
  17. scitex/dev/plt/plot_mpl_axhline.py +28 -0
  18. scitex/dev/plt/plot_mpl_axhspan.py +28 -0
  19. scitex/dev/plt/plot_mpl_axvline.py +28 -0
  20. scitex/dev/plt/plot_mpl_axvspan.py +28 -0
  21. scitex/dev/plt/plot_mpl_bar.py +29 -0
  22. scitex/dev/plt/plot_mpl_barh.py +29 -0
  23. scitex/dev/plt/plot_mpl_boxplot.py +28 -0
  24. scitex/dev/plt/plot_mpl_contour.py +31 -0
  25. scitex/dev/plt/plot_mpl_contourf.py +31 -0
  26. scitex/dev/plt/plot_mpl_errorbar.py +30 -0
  27. scitex/dev/plt/plot_mpl_eventplot.py +28 -0
  28. scitex/dev/plt/plot_mpl_fill.py +30 -0
  29. scitex/dev/plt/plot_mpl_fill_between.py +31 -0
  30. scitex/dev/plt/plot_mpl_hexbin.py +28 -0
  31. scitex/dev/plt/plot_mpl_hist.py +28 -0
  32. scitex/dev/plt/plot_mpl_hist2d.py +28 -0
  33. scitex/dev/plt/plot_mpl_imshow.py +29 -0
  34. scitex/dev/plt/plot_mpl_pcolormesh.py +31 -0
  35. scitex/dev/plt/plot_mpl_pie.py +29 -0
  36. scitex/dev/plt/plot_mpl_plot.py +29 -0
  37. scitex/dev/plt/plot_mpl_quiver.py +31 -0
  38. scitex/dev/plt/plot_mpl_scatter.py +28 -0
  39. scitex/dev/plt/plot_mpl_stackplot.py +31 -0
  40. scitex/dev/plt/plot_mpl_stem.py +29 -0
  41. scitex/dev/plt/plot_mpl_step.py +29 -0
  42. scitex/dev/plt/plot_mpl_violinplot.py +28 -0
  43. scitex/dev/plt/plot_sns_barplot.py +29 -0
  44. scitex/dev/plt/plot_sns_boxplot.py +29 -0
  45. scitex/dev/plt/plot_sns_heatmap.py +28 -0
  46. scitex/dev/plt/plot_sns_histplot.py +29 -0
  47. scitex/dev/plt/plot_sns_kdeplot.py +29 -0
  48. scitex/dev/plt/plot_sns_lineplot.py +31 -0
  49. scitex/dev/plt/plot_sns_scatterplot.py +29 -0
  50. scitex/dev/plt/plot_sns_stripplot.py +29 -0
  51. scitex/dev/plt/plot_sns_swarmplot.py +29 -0
  52. scitex/dev/plt/plot_sns_violinplot.py +29 -0
  53. scitex/dev/plt/plot_stx_bar.py +29 -0
  54. scitex/dev/plt/plot_stx_barh.py +29 -0
  55. scitex/dev/plt/plot_stx_box.py +28 -0
  56. scitex/dev/plt/plot_stx_boxplot.py +28 -0
  57. scitex/dev/plt/plot_stx_conf_mat.py +28 -0
  58. scitex/dev/plt/plot_stx_contour.py +31 -0
  59. scitex/dev/plt/plot_stx_ecdf.py +28 -0
  60. scitex/dev/plt/plot_stx_errorbar.py +30 -0
  61. scitex/dev/plt/plot_stx_fill_between.py +31 -0
  62. scitex/dev/plt/plot_stx_fillv.py +28 -0
  63. scitex/dev/plt/plot_stx_heatmap.py +28 -0
  64. scitex/dev/plt/plot_stx_image.py +28 -0
  65. scitex/dev/plt/plot_stx_imshow.py +28 -0
  66. scitex/dev/plt/plot_stx_joyplot.py +28 -0
  67. scitex/dev/plt/plot_stx_kde.py +28 -0
  68. scitex/dev/plt/plot_stx_line.py +28 -0
  69. scitex/dev/plt/plot_stx_mean_ci.py +28 -0
  70. scitex/dev/plt/plot_stx_mean_std.py +28 -0
  71. scitex/dev/plt/plot_stx_median_iqr.py +28 -0
  72. scitex/dev/plt/plot_stx_raster.py +28 -0
  73. scitex/dev/plt/plot_stx_rectangle.py +28 -0
  74. scitex/dev/plt/plot_stx_scatter.py +29 -0
  75. scitex/dev/plt/plot_stx_shaded_line.py +29 -0
  76. scitex/dev/plt/plot_stx_violin.py +28 -0
  77. scitex/dev/plt/plot_stx_violinplot.py +28 -0
  78. scitex/diagram/README.md +197 -0
  79. scitex/diagram/__init__.py +48 -0
  80. scitex/diagram/_compile.py +312 -0
  81. scitex/diagram/_diagram.py +355 -0
  82. scitex/diagram/_presets.py +173 -0
  83. scitex/diagram/_schema.py +182 -0
  84. scitex/diagram/_split.py +278 -0
  85. scitex/fig/__init__.py +352 -0
  86. scitex/{vis → fig}/backend/_parser.py +1 -1
  87. scitex/{vis → fig}/canvas.py +1 -1
  88. scitex/{vis → fig}/editor/__init__.py +5 -2
  89. scitex/{vis → fig}/editor/_dearpygui_editor.py +1 -1
  90. scitex/{vis → fig}/editor/_defaults.py +70 -5
  91. scitex/{vis → fig}/editor/_mpl_editor.py +1 -1
  92. scitex/{vis → fig}/editor/_qt_editor.py +182 -2
  93. scitex/{vis → fig}/editor/_tkinter_editor.py +1 -1
  94. scitex/fig/editor/edit/__init__.py +50 -0
  95. scitex/fig/editor/edit/backend_detector.py +109 -0
  96. scitex/fig/editor/edit/bundle_resolver.py +240 -0
  97. scitex/fig/editor/edit/editor_launcher.py +239 -0
  98. scitex/fig/editor/edit/manual_handler.py +53 -0
  99. scitex/fig/editor/edit/panel_loader.py +232 -0
  100. scitex/fig/editor/edit/path_resolver.py +67 -0
  101. scitex/fig/editor/flask_editor/_bbox.py +1299 -0
  102. scitex/fig/editor/flask_editor/_core.py +1429 -0
  103. scitex/{vis → fig}/editor/flask_editor/_plotter.py +38 -4
  104. scitex/fig/editor/flask_editor/_renderer.py +813 -0
  105. scitex/fig/editor/flask_editor/static/css/base/reset.css +41 -0
  106. scitex/fig/editor/flask_editor/static/css/base/typography.css +16 -0
  107. scitex/fig/editor/flask_editor/static/css/base/variables.css +85 -0
  108. scitex/fig/editor/flask_editor/static/css/components/buttons.css +217 -0
  109. scitex/fig/editor/flask_editor/static/css/components/context-menu.css +93 -0
  110. scitex/fig/editor/flask_editor/static/css/components/dropdown.css +57 -0
  111. scitex/fig/editor/flask_editor/static/css/components/forms.css +112 -0
  112. scitex/fig/editor/flask_editor/static/css/components/modal.css +59 -0
  113. scitex/fig/editor/flask_editor/static/css/components/sections.css +212 -0
  114. scitex/fig/editor/flask_editor/static/css/features/canvas.css +176 -0
  115. scitex/fig/editor/flask_editor/static/css/features/element-inspector.css +190 -0
  116. scitex/fig/editor/flask_editor/static/css/features/loading.css +59 -0
  117. scitex/fig/editor/flask_editor/static/css/features/overlay.css +45 -0
  118. scitex/fig/editor/flask_editor/static/css/features/panel-grid.css +95 -0
  119. scitex/fig/editor/flask_editor/static/css/features/selection.css +101 -0
  120. scitex/fig/editor/flask_editor/static/css/features/statistics.css +138 -0
  121. scitex/fig/editor/flask_editor/static/css/index.css +31 -0
  122. scitex/fig/editor/flask_editor/static/css/layout/container.css +7 -0
  123. scitex/fig/editor/flask_editor/static/css/layout/controls.css +56 -0
  124. scitex/fig/editor/flask_editor/static/css/layout/preview.css +78 -0
  125. scitex/fig/editor/flask_editor/static/js/alignment/axis.js +314 -0
  126. scitex/fig/editor/flask_editor/static/js/alignment/basic.js +107 -0
  127. scitex/fig/editor/flask_editor/static/js/alignment/distribute.js +54 -0
  128. scitex/fig/editor/flask_editor/static/js/canvas/canvas.js +172 -0
  129. scitex/fig/editor/flask_editor/static/js/canvas/dragging.js +258 -0
  130. scitex/fig/editor/flask_editor/static/js/canvas/resize.js +48 -0
  131. scitex/fig/editor/flask_editor/static/js/canvas/selection.js +71 -0
  132. scitex/fig/editor/flask_editor/static/js/core/api.js +288 -0
  133. scitex/fig/editor/flask_editor/static/js/core/state.js +143 -0
  134. scitex/fig/editor/flask_editor/static/js/core/utils.js +245 -0
  135. scitex/fig/editor/flask_editor/static/js/dev/element-inspector.js +992 -0
  136. scitex/fig/editor/flask_editor/static/js/editor/bbox.js +339 -0
  137. scitex/fig/editor/flask_editor/static/js/editor/element-drag.js +286 -0
  138. scitex/fig/editor/flask_editor/static/js/editor/overlay.js +371 -0
  139. scitex/fig/editor/flask_editor/static/js/editor/preview.js +293 -0
  140. scitex/fig/editor/flask_editor/static/js/main.js +426 -0
  141. scitex/fig/editor/flask_editor/static/js/shortcuts/context-menu.js +152 -0
  142. scitex/fig/editor/flask_editor/static/js/shortcuts/keyboard.js +265 -0
  143. scitex/fig/editor/flask_editor/static/js/ui/controls.js +184 -0
  144. scitex/fig/editor/flask_editor/static/js/ui/download.js +57 -0
  145. scitex/fig/editor/flask_editor/static/js/ui/help.js +100 -0
  146. scitex/fig/editor/flask_editor/static/js/ui/theme.js +34 -0
  147. scitex/fig/editor/flask_editor/templates/__init__.py +123 -0
  148. scitex/fig/editor/flask_editor/templates/_html.py +852 -0
  149. scitex/fig/editor/flask_editor/templates/_scripts.py +4933 -0
  150. scitex/fig/editor/flask_editor/templates/_styles.py +1658 -0
  151. scitex/{vis → fig}/io/__init__.py +13 -1
  152. scitex/fig/io/_bundle.py +1058 -0
  153. scitex/{vis → fig}/io/_canvas.py +1 -1
  154. scitex/{vis → fig}/io/_data.py +1 -1
  155. scitex/{vis → fig}/io/_export.py +1 -1
  156. scitex/{vis → fig}/io/_load.py +1 -1
  157. scitex/{vis → fig}/io/_panel.py +1 -1
  158. scitex/{vis → fig}/io/_save.py +1 -1
  159. scitex/{vis → fig}/model/__init__.py +1 -1
  160. scitex/{vis → fig}/model/_annotations.py +1 -1
  161. scitex/{vis → fig}/model/_axes.py +1 -1
  162. scitex/{vis → fig}/model/_figure.py +1 -1
  163. scitex/{vis → fig}/model/_guides.py +1 -1
  164. scitex/{vis → fig}/model/_plot.py +1 -1
  165. scitex/{vis → fig}/model/_styles.py +1 -1
  166. scitex/{vis → fig}/utils/__init__.py +1 -1
  167. scitex/io/__init__.py +22 -26
  168. scitex/io/_bundle.py +493 -0
  169. scitex/io/_flush.py +5 -2
  170. scitex/io/_load.py +98 -0
  171. scitex/io/_load_modules/_H5Explorer.py +5 -2
  172. scitex/io/_load_modules/_canvas.py +2 -2
  173. scitex/io/_load_modules/_image.py +3 -4
  174. scitex/io/_load_modules/_txt.py +4 -2
  175. scitex/io/_metadata.py +34 -324
  176. scitex/io/_metadata_modules/__init__.py +46 -0
  177. scitex/io/_metadata_modules/_embed.py +70 -0
  178. scitex/io/_metadata_modules/_read.py +64 -0
  179. scitex/io/_metadata_modules/_utils.py +79 -0
  180. scitex/io/_metadata_modules/embed_metadata_jpeg.py +74 -0
  181. scitex/io/_metadata_modules/embed_metadata_pdf.py +53 -0
  182. scitex/io/_metadata_modules/embed_metadata_png.py +26 -0
  183. scitex/io/_metadata_modules/embed_metadata_svg.py +62 -0
  184. scitex/io/_metadata_modules/read_metadata_jpeg.py +57 -0
  185. scitex/io/_metadata_modules/read_metadata_pdf.py +51 -0
  186. scitex/io/_metadata_modules/read_metadata_png.py +39 -0
  187. scitex/io/_metadata_modules/read_metadata_svg.py +44 -0
  188. scitex/io/_qr_utils.py +5 -3
  189. scitex/io/_save.py +548 -30
  190. scitex/io/_save_modules/_canvas.py +3 -3
  191. scitex/io/_save_modules/_image.py +5 -9
  192. scitex/io/_save_modules/_tex.py +7 -4
  193. scitex/io/_zip_bundle.py +439 -0
  194. scitex/io/utils/h5_to_zarr.py +11 -9
  195. scitex/msword/__init__.py +255 -0
  196. scitex/msword/profiles.py +357 -0
  197. scitex/msword/reader.py +753 -0
  198. scitex/msword/utils.py +289 -0
  199. scitex/msword/writer.py +362 -0
  200. scitex/plt/__init__.py +5 -2
  201. scitex/plt/_subplots/_AxesWrapper.py +6 -6
  202. scitex/plt/_subplots/_AxisWrapper.py +15 -9
  203. scitex/plt/_subplots/_AxisWrapperMixins/_AdjustmentMixin/__init__.py +36 -0
  204. scitex/plt/_subplots/_AxisWrapperMixins/_AdjustmentMixin/_labels.py +264 -0
  205. scitex/plt/_subplots/_AxisWrapperMixins/_AdjustmentMixin/_metadata.py +213 -0
  206. scitex/plt/_subplots/_AxisWrapperMixins/_AdjustmentMixin/_visual.py +128 -0
  207. scitex/plt/_subplots/_AxisWrapperMixins/_MatplotlibPlotMixin/__init__.py +59 -0
  208. scitex/plt/_subplots/_AxisWrapperMixins/_MatplotlibPlotMixin/_base.py +34 -0
  209. scitex/plt/_subplots/_AxisWrapperMixins/_MatplotlibPlotMixin/_scientific.py +593 -0
  210. scitex/plt/_subplots/_AxisWrapperMixins/_MatplotlibPlotMixin/_statistical.py +654 -0
  211. scitex/plt/_subplots/_AxisWrapperMixins/_MatplotlibPlotMixin/_stx_aliases.py +527 -0
  212. scitex/plt/_subplots/_AxisWrapperMixins/_RawMatplotlibMixin.py +321 -0
  213. scitex/plt/_subplots/_AxisWrapperMixins/_SeabornMixin/__init__.py +33 -0
  214. scitex/plt/_subplots/_AxisWrapperMixins/_SeabornMixin/_base.py +152 -0
  215. scitex/plt/_subplots/_AxisWrapperMixins/_SeabornMixin/_wrappers.py +600 -0
  216. scitex/plt/_subplots/_AxisWrapperMixins/__init__.py +79 -5
  217. scitex/plt/_subplots/_FigWrapper.py +6 -6
  218. scitex/plt/_subplots/_SubplotsWrapper.py +28 -18
  219. scitex/plt/_subplots/_export_as_csv.py +35 -5
  220. scitex/plt/_subplots/_export_as_csv_formatters/__init__.py +8 -0
  221. scitex/plt/_subplots/_export_as_csv_formatters/_format_annotate.py +10 -21
  222. scitex/plt/_subplots/_export_as_csv_formatters/_format_eventplot.py +18 -7
  223. scitex/plt/_subplots/_export_as_csv_formatters/_format_imshow2d.py +28 -12
  224. scitex/plt/_subplots/_export_as_csv_formatters/_format_matshow.py +10 -4
  225. scitex/plt/_subplots/_export_as_csv_formatters/_format_plot_imshow.py +13 -1
  226. scitex/plt/_subplots/_export_as_csv_formatters/_format_plot_kde.py +12 -2
  227. scitex/plt/_subplots/_export_as_csv_formatters/_format_plot_scatter.py +10 -3
  228. scitex/plt/_subplots/_export_as_csv_formatters/_format_quiver.py +10 -4
  229. scitex/plt/_subplots/_export_as_csv_formatters/_format_sns_jointplot.py +18 -3
  230. scitex/plt/_subplots/_export_as_csv_formatters/_format_sns_lineplot.py +44 -36
  231. scitex/plt/_subplots/_export_as_csv_formatters/_format_sns_pairplot.py +14 -2
  232. scitex/plt/_subplots/_export_as_csv_formatters/_format_streamplot.py +11 -5
  233. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_bar.py +84 -0
  234. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_barh.py +85 -0
  235. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_conf_mat.py +14 -3
  236. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_contour.py +54 -0
  237. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_ecdf.py +14 -2
  238. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_errorbar.py +120 -0
  239. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_heatmap.py +16 -6
  240. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_image.py +29 -19
  241. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_imshow.py +63 -0
  242. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_joyplot.py +22 -5
  243. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_mean_ci.py +18 -14
  244. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_mean_std.py +18 -14
  245. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_median_iqr.py +18 -14
  246. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_raster.py +10 -2
  247. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_scatter.py +51 -0
  248. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_scatter_hist.py +18 -9
  249. scitex/plt/ax/_plot/_stx_ecdf.py +4 -2
  250. scitex/plt/gallery/_generate.py +421 -14
  251. scitex/plt/io/__init__.py +53 -0
  252. scitex/plt/io/_bundle.py +490 -0
  253. scitex/plt/io/_layered_bundle.py +1343 -0
  254. scitex/plt/styles/SCITEX_STYLE.yaml +26 -0
  255. scitex/plt/styles/__init__.py +14 -0
  256. scitex/plt/styles/presets.py +78 -0
  257. scitex/plt/utils/__init__.py +13 -1
  258. scitex/plt/utils/_collect_figure_metadata.py +10 -14
  259. scitex/plt/utils/_configure_mpl.py +6 -18
  260. scitex/plt/utils/_crop.py +32 -14
  261. scitex/plt/utils/_csv_column_naming.py +54 -0
  262. scitex/plt/utils/_figure_mm.py +116 -1
  263. scitex/plt/utils/_hitmap.py +1643 -0
  264. scitex/plt/utils/metadata/__init__.py +25 -0
  265. scitex/plt/utils/metadata/_core.py +9 -10
  266. scitex/plt/utils/metadata/_dimensions.py +6 -3
  267. scitex/plt/utils/metadata/_editable_export.py +405 -0
  268. scitex/plt/utils/metadata/_geometry_extraction.py +570 -0
  269. scitex/schema/__init__.py +109 -16
  270. scitex/schema/_canvas.py +1 -1
  271. scitex/schema/_plot.py +1015 -0
  272. scitex/schema/_stats.py +2 -2
  273. scitex/stats/__init__.py +117 -0
  274. scitex/stats/io/__init__.py +29 -0
  275. scitex/stats/io/_bundle.py +156 -0
  276. scitex/tex/__init__.py +4 -0
  277. scitex/tex/_export.py +890 -0
  278. {scitex-2.7.0.dist-info → scitex-2.8.1.dist-info}/METADATA +11 -1
  279. {scitex-2.7.0.dist-info → scitex-2.8.1.dist-info}/RECORD +294 -170
  280. scitex/io/memo.md +0 -2827
  281. scitex/plt/REQUESTS.md +0 -191
  282. scitex/plt/_subplots/TODO.md +0 -53
  283. scitex/plt/_subplots/_AxisWrapperMixins/_AdjustmentMixin.py +0 -559
  284. scitex/plt/_subplots/_AxisWrapperMixins/_MatplotlibPlotMixin.py +0 -1609
  285. scitex/plt/_subplots/_AxisWrapperMixins/_SeabornMixin.py +0 -447
  286. scitex/plt/templates/research-master/scitex/vis/gallery/area/fill_between.json +0 -110
  287. scitex/plt/templates/research-master/scitex/vis/gallery/area/fill_betweenx.json +0 -88
  288. scitex/plt/templates/research-master/scitex/vis/gallery/area/stx_fill_between.json +0 -103
  289. scitex/plt/templates/research-master/scitex/vis/gallery/area/stx_fillv.json +0 -106
  290. scitex/plt/templates/research-master/scitex/vis/gallery/categorical/bar.json +0 -92
  291. scitex/plt/templates/research-master/scitex/vis/gallery/categorical/barh.json +0 -92
  292. scitex/plt/templates/research-master/scitex/vis/gallery/categorical/boxplot.json +0 -92
  293. scitex/plt/templates/research-master/scitex/vis/gallery/categorical/stx_bar.json +0 -84
  294. scitex/plt/templates/research-master/scitex/vis/gallery/categorical/stx_barh.json +0 -84
  295. scitex/plt/templates/research-master/scitex/vis/gallery/categorical/stx_box.json +0 -83
  296. scitex/plt/templates/research-master/scitex/vis/gallery/categorical/stx_boxplot.json +0 -93
  297. scitex/plt/templates/research-master/scitex/vis/gallery/categorical/stx_violin.json +0 -91
  298. scitex/plt/templates/research-master/scitex/vis/gallery/categorical/stx_violinplot.json +0 -91
  299. scitex/plt/templates/research-master/scitex/vis/gallery/categorical/violinplot.json +0 -91
  300. scitex/plt/templates/research-master/scitex/vis/gallery/contour/contour.json +0 -97
  301. scitex/plt/templates/research-master/scitex/vis/gallery/contour/contourf.json +0 -98
  302. scitex/plt/templates/research-master/scitex/vis/gallery/contour/stx_contour.json +0 -84
  303. scitex/plt/templates/research-master/scitex/vis/gallery/distribution/hist.json +0 -101
  304. scitex/plt/templates/research-master/scitex/vis/gallery/distribution/hist2d.json +0 -96
  305. scitex/plt/templates/research-master/scitex/vis/gallery/distribution/stx_ecdf.json +0 -95
  306. scitex/plt/templates/research-master/scitex/vis/gallery/distribution/stx_joyplot.json +0 -95
  307. scitex/plt/templates/research-master/scitex/vis/gallery/distribution/stx_kde.json +0 -93
  308. scitex/plt/templates/research-master/scitex/vis/gallery/grid/imshow.json +0 -95
  309. scitex/plt/templates/research-master/scitex/vis/gallery/grid/matshow.json +0 -95
  310. scitex/plt/templates/research-master/scitex/vis/gallery/grid/stx_conf_mat.json +0 -83
  311. scitex/plt/templates/research-master/scitex/vis/gallery/grid/stx_heatmap.json +0 -92
  312. scitex/plt/templates/research-master/scitex/vis/gallery/grid/stx_image.json +0 -121
  313. scitex/plt/templates/research-master/scitex/vis/gallery/grid/stx_imshow.json +0 -84
  314. scitex/plt/templates/research-master/scitex/vis/gallery/line/plot.json +0 -110
  315. scitex/plt/templates/research-master/scitex/vis/gallery/line/step.json +0 -92
  316. scitex/plt/templates/research-master/scitex/vis/gallery/line/stx_line.json +0 -95
  317. scitex/plt/templates/research-master/scitex/vis/gallery/line/stx_shaded_line.json +0 -96
  318. scitex/plt/templates/research-master/scitex/vis/gallery/scatter/hexbin.json +0 -95
  319. scitex/plt/templates/research-master/scitex/vis/gallery/scatter/scatter.json +0 -95
  320. scitex/plt/templates/research-master/scitex/vis/gallery/scatter/stem.json +0 -92
  321. scitex/plt/templates/research-master/scitex/vis/gallery/scatter/stx_scatter.json +0 -84
  322. scitex/plt/templates/research-master/scitex/vis/gallery/special/pie.json +0 -94
  323. scitex/plt/templates/research-master/scitex/vis/gallery/special/stx_raster.json +0 -109
  324. scitex/plt/templates/research-master/scitex/vis/gallery/special/stx_rectangle.json +0 -108
  325. scitex/plt/templates/research-master/scitex/vis/gallery/statistical/errorbar.json +0 -93
  326. scitex/plt/templates/research-master/scitex/vis/gallery/statistical/stx_errorbar.json +0 -84
  327. scitex/plt/templates/research-master/scitex/vis/gallery/statistical/stx_mean_ci.json +0 -96
  328. scitex/plt/templates/research-master/scitex/vis/gallery/statistical/stx_mean_std.json +0 -96
  329. scitex/plt/templates/research-master/scitex/vis/gallery/statistical/stx_median_iqr.json +0 -96
  330. scitex/plt/templates/research-master/scitex/vis/gallery/vector/quiver.json +0 -99
  331. scitex/plt/templates/research-master/scitex/vis/gallery/vector/streamplot.json +0 -100
  332. scitex/vis/__init__.py +0 -177
  333. scitex/vis/editor/_edit.py +0 -390
  334. scitex/vis/editor/flask_editor/_bbox.py +0 -529
  335. scitex/vis/editor/flask_editor/_core.py +0 -168
  336. scitex/vis/editor/flask_editor/_renderer.py +0 -393
  337. scitex/vis/editor/flask_editor/templates/__init__.py +0 -33
  338. scitex/vis/editor/flask_editor/templates/_html.py +0 -513
  339. scitex/vis/editor/flask_editor/templates/_scripts.py +0 -1261
  340. scitex/vis/editor/flask_editor/templates/_styles.py +0 -739
  341. /scitex/{vis → fig}/README.md +0 -0
  342. /scitex/{vis → fig}/backend/__init__.py +0 -0
  343. /scitex/{vis → fig}/backend/_export.py +0 -0
  344. /scitex/{vis → fig}/backend/_render.py +0 -0
  345. /scitex/{vis → fig}/docs/CANVAS_ARCHITECTURE.md +0 -0
  346. /scitex/{vis → fig}/editor/_flask_editor.py +0 -0
  347. /scitex/{vis → fig}/editor/flask_editor/__init__.py +0 -0
  348. /scitex/{vis → fig}/editor/flask_editor/_utils.py +0 -0
  349. /scitex/{vis → fig}/io/_directory.py +0 -0
  350. /scitex/{vis → fig}/model/_plot_types.py +0 -0
  351. /scitex/{vis → fig}/utils/_defaults.py +0 -0
  352. /scitex/{vis → fig}/utils/_validate.py +0 -0
  353. {scitex-2.7.0.dist-info → scitex-2.8.1.dist-info}/WHEEL +0 -0
  354. {scitex-2.7.0.dist-info → scitex-2.8.1.dist-info}/entry_points.txt +0 -0
  355. {scitex-2.7.0.dist-info → scitex-2.8.1.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,527 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # Timestamp: "2025-12-13 (ywatanabe)"
4
+ # File: _stx_aliases.py - stx_ aliases for standard matplotlib methods
5
+
6
+ """stx_ prefixed aliases for standard matplotlib methods with tracking support."""
7
+
8
+ import os
9
+ from typing import List, Optional, Sequence, Union
10
+
11
+ import numpy as np
12
+ import pandas as pd
13
+ from matplotlib.container import BarContainer
14
+ from matplotlib.collections import PathCollection
15
+ from matplotlib.contour import QuadContourSet
16
+ from matplotlib.image import AxesImage
17
+
18
+ from scitex.types import ArrayLike
19
+
20
+ __FILE__ = __file__
21
+ __DIR__ = os.path.dirname(__FILE__)
22
+
23
+
24
+ class StxAliasesMixin:
25
+ """Mixin providing stx_ aliases for standard matplotlib methods.
26
+
27
+ These methods wrap standard matplotlib plotting functions with:
28
+ - SciTeX styling applied automatically
29
+ - Data tracking for reproducibility
30
+ - Sample size annotations in labels
31
+ """
32
+
33
+ def stx_bar(
34
+ self,
35
+ x: ArrayLike,
36
+ height: ArrayLike,
37
+ *,
38
+ track: bool = True,
39
+ id: Optional[str] = None,
40
+ **kwargs,
41
+ ) -> BarContainer:
42
+ """Create a bar plot with SciTeX styling and tracking.
43
+
44
+ Parameters
45
+ ----------
46
+ x : array-like
47
+ X coordinates of the bars.
48
+ height : array-like
49
+ Heights of the bars.
50
+ track : bool, default True
51
+ Enable data tracking for reproducibility.
52
+ id : str, optional
53
+ Unique identifier for this plot element.
54
+ **kwargs
55
+ Additional arguments passed to `matplotlib.axes.Axes.bar`.
56
+
57
+ Returns
58
+ -------
59
+ BarContainer
60
+ Container with all the bars.
61
+
62
+ See Also
63
+ --------
64
+ stx_barh : Horizontal bar plot.
65
+ mpl_bar : Raw matplotlib bar without styling.
66
+
67
+ Examples
68
+ --------
69
+ >>> ax.stx_bar([1, 2, 3], [4, 5, 6])
70
+ >>> ax.stx_bar(x, height, label="Group A", color="blue")
71
+ """
72
+ method_name = "stx_bar"
73
+
74
+ if kwargs.get("label"):
75
+ n_samples = len(x)
76
+ kwargs["label"] = f"{kwargs['label']} ($n$={n_samples})"
77
+
78
+ with self._no_tracking():
79
+ result = self._axis_mpl.bar(x, height, **kwargs)
80
+
81
+ tracked_dict = {"bar_df": pd.DataFrame({"x": x, "height": height})}
82
+ self._track(track, id, method_name, tracked_dict, None)
83
+
84
+ from scitex.plt.ax import style_barplot
85
+
86
+ style_barplot(result)
87
+
88
+ self._apply_scitex_postprocess(method_name, result)
89
+
90
+ return result
91
+
92
+ def stx_barh(
93
+ self,
94
+ y: ArrayLike,
95
+ width: ArrayLike,
96
+ *,
97
+ track: bool = True,
98
+ id: Optional[str] = None,
99
+ **kwargs,
100
+ ) -> BarContainer:
101
+ """Create a horizontal bar plot with SciTeX styling and tracking.
102
+
103
+ Parameters
104
+ ----------
105
+ y : array-like
106
+ Y coordinates of the bars.
107
+ width : array-like
108
+ Widths of the bars.
109
+ track : bool, default True
110
+ Enable data tracking for reproducibility.
111
+ id : str, optional
112
+ Unique identifier for this plot element.
113
+ **kwargs
114
+ Additional arguments passed to `matplotlib.axes.Axes.barh`.
115
+
116
+ Returns
117
+ -------
118
+ BarContainer
119
+ Container with all the bars.
120
+
121
+ See Also
122
+ --------
123
+ stx_bar : Vertical bar plot.
124
+ mpl_barh : Raw matplotlib barh without styling.
125
+
126
+ Examples
127
+ --------
128
+ >>> ax.stx_barh([1, 2, 3], [4, 5, 6])
129
+ """
130
+ method_name = "stx_barh"
131
+
132
+ if kwargs.get("label"):
133
+ n_samples = len(y)
134
+ kwargs["label"] = f"{kwargs['label']} ($n$={n_samples})"
135
+
136
+ with self._no_tracking():
137
+ result = self._axis_mpl.barh(y, width, **kwargs)
138
+
139
+ tracked_dict = {"barh_df": pd.DataFrame({"y": y, "width": width})}
140
+ self._track(track, id, method_name, tracked_dict, None)
141
+ self._apply_scitex_postprocess(method_name, result)
142
+
143
+ return result
144
+
145
+ def stx_scatter(
146
+ self,
147
+ x: ArrayLike,
148
+ y: ArrayLike,
149
+ *,
150
+ track: bool = True,
151
+ id: Optional[str] = None,
152
+ **kwargs,
153
+ ) -> PathCollection:
154
+ """Create a scatter plot with SciTeX styling and tracking.
155
+
156
+ Parameters
157
+ ----------
158
+ x : array-like
159
+ X coordinates of the data points.
160
+ y : array-like
161
+ Y coordinates of the data points.
162
+ track : bool, default True
163
+ Enable data tracking for reproducibility.
164
+ id : str, optional
165
+ Unique identifier for this plot element.
166
+ **kwargs
167
+ Additional arguments passed to `matplotlib.axes.Axes.scatter`.
168
+
169
+ Returns
170
+ -------
171
+ PathCollection
172
+ Collection of scatter points.
173
+
174
+ See Also
175
+ --------
176
+ sns_scatterplot : DataFrame-based scatter plot.
177
+ mpl_scatter : Raw matplotlib scatter without styling.
178
+
179
+ Examples
180
+ --------
181
+ >>> ax.stx_scatter(x, y, label="Data", s=50)
182
+ """
183
+ method_name = "stx_scatter"
184
+
185
+ if kwargs.get("label"):
186
+ n_samples = len(x)
187
+ kwargs["label"] = f"{kwargs['label']} ($n$={n_samples})"
188
+
189
+ with self._no_tracking():
190
+ result = self._axis_mpl.scatter(x, y, **kwargs)
191
+
192
+ tracked_dict = {"scatter_df": pd.DataFrame({"x": x, "y": y})}
193
+ self._track(track, id, method_name, tracked_dict, None)
194
+
195
+ from scitex.plt.ax import style_scatter
196
+
197
+ style_scatter(result)
198
+
199
+ self._apply_scitex_postprocess(method_name, result)
200
+
201
+ return result
202
+
203
+ def stx_errorbar(
204
+ self,
205
+ x: ArrayLike,
206
+ y: ArrayLike,
207
+ *,
208
+ yerr: Optional[ArrayLike] = None,
209
+ xerr: Optional[ArrayLike] = None,
210
+ track: bool = True,
211
+ id: Optional[str] = None,
212
+ **kwargs,
213
+ ):
214
+ """Create an error bar plot with SciTeX styling and tracking.
215
+
216
+ Parameters
217
+ ----------
218
+ x : array-like
219
+ X coordinates of the data points.
220
+ y : array-like
221
+ Y coordinates of the data points.
222
+ yerr : array-like, optional
223
+ Error values for y-axis (symmetric or asymmetric).
224
+ xerr : array-like, optional
225
+ Error values for x-axis (symmetric or asymmetric).
226
+ track : bool, default True
227
+ Enable data tracking for reproducibility.
228
+ id : str, optional
229
+ Unique identifier for this plot element.
230
+ **kwargs
231
+ Additional arguments passed to `matplotlib.axes.Axes.errorbar`.
232
+
233
+ Returns
234
+ -------
235
+ ErrorbarContainer
236
+ Container with the plotted errorbar lines.
237
+
238
+ See Also
239
+ --------
240
+ stx_mean_std : Mean line with standard deviation shading.
241
+ stx_mean_ci : Mean line with confidence interval shading.
242
+
243
+ Examples
244
+ --------
245
+ >>> ax.stx_errorbar(x, y, yerr=std, fmt='o-')
246
+ """
247
+ method_name = "stx_errorbar"
248
+
249
+ if kwargs.get("label"):
250
+ n_samples = len(x)
251
+ kwargs["label"] = f"{kwargs['label']} ($n$={n_samples})"
252
+
253
+ with self._no_tracking():
254
+ result = self._axis_mpl.errorbar(x, y, yerr=yerr, xerr=xerr, **kwargs)
255
+
256
+ df_dict = {"x": x, "y": y}
257
+ if yerr is not None:
258
+ df_dict["yerr"] = yerr
259
+ if xerr is not None:
260
+ df_dict["xerr"] = xerr
261
+ tracked_dict = {"errorbar_df": pd.DataFrame(df_dict)}
262
+ self._track(track, id, method_name, tracked_dict, None)
263
+
264
+ from scitex.plt.ax import style_errorbar
265
+
266
+ style_errorbar(result)
267
+
268
+ self._apply_scitex_postprocess(method_name, result)
269
+
270
+ return result
271
+
272
+ def stx_fill_between(
273
+ self,
274
+ x: ArrayLike,
275
+ y1: ArrayLike,
276
+ y2: Union[float, ArrayLike] = 0,
277
+ *,
278
+ track: bool = True,
279
+ id: Optional[str] = None,
280
+ **kwargs,
281
+ ):
282
+ """Fill the area between two curves with SciTeX styling and tracking.
283
+
284
+ Parameters
285
+ ----------
286
+ x : array-like
287
+ X coordinates for the fill region.
288
+ y1 : array-like
289
+ First y-boundary curve.
290
+ y2 : float or array-like, default 0
291
+ Second y-boundary curve.
292
+ track : bool, default True
293
+ Enable data tracking for reproducibility.
294
+ id : str, optional
295
+ Unique identifier for this plot element.
296
+ **kwargs
297
+ Additional arguments passed to `matplotlib.axes.Axes.fill_between`.
298
+
299
+ Returns
300
+ -------
301
+ PolyCollection
302
+ Collection representing the filled area.
303
+
304
+ See Also
305
+ --------
306
+ stx_shaded_line : Line plot with shaded confidence region.
307
+
308
+ Examples
309
+ --------
310
+ >>> ax.stx_fill_between(x, y_lower, y_upper, alpha=0.3)
311
+ """
312
+ method_name = "stx_fill_between"
313
+
314
+ with self._no_tracking():
315
+ result = self._axis_mpl.fill_between(x, y1, y2, **kwargs)
316
+
317
+ tracked_dict = {
318
+ "fill_between_df": pd.DataFrame(
319
+ {
320
+ "x": x,
321
+ "y1": y1,
322
+ "y2": y2 if hasattr(y2, "__len__") else [y2] * len(x),
323
+ }
324
+ )
325
+ }
326
+ self._track(track, id, method_name, tracked_dict, None)
327
+ self._apply_scitex_postprocess(method_name, result)
328
+
329
+ return result
330
+
331
+ def stx_contour(
332
+ self,
333
+ X: ArrayLike,
334
+ Y: ArrayLike,
335
+ Z: ArrayLike,
336
+ *,
337
+ track: bool = True,
338
+ id: Optional[str] = None,
339
+ **kwargs,
340
+ ) -> QuadContourSet:
341
+ """Create a contour plot with SciTeX styling and tracking.
342
+
343
+ Parameters
344
+ ----------
345
+ X : array-like
346
+ X coordinates of the grid (2D array or 1D for meshgrid).
347
+ Y : array-like
348
+ Y coordinates of the grid (2D array or 1D for meshgrid).
349
+ Z : array-like
350
+ Values at each grid point (2D array).
351
+ track : bool, default True
352
+ Enable data tracking for reproducibility.
353
+ id : str, optional
354
+ Unique identifier for this plot element.
355
+ **kwargs
356
+ Additional arguments passed to `matplotlib.axes.Axes.contour`.
357
+
358
+ Returns
359
+ -------
360
+ QuadContourSet
361
+ The contour set object.
362
+
363
+ See Also
364
+ --------
365
+ stx_imshow : Display data as an image.
366
+ mpl_contour : Raw matplotlib contour without styling.
367
+
368
+ Examples
369
+ --------
370
+ >>> ax.stx_contour(X, Y, Z, levels=10)
371
+ """
372
+ method_name = "stx_contour"
373
+
374
+ with self._no_tracking():
375
+ result = self._axis_mpl.contour(X, Y, Z, **kwargs)
376
+
377
+ tracked_dict = {
378
+ "contour_df": pd.DataFrame(
379
+ {"X": np.ravel(X), "Y": np.ravel(Y), "Z": np.ravel(Z)}
380
+ )
381
+ }
382
+ self._track(track, id, method_name, tracked_dict, None)
383
+
384
+ self._apply_scitex_postprocess(method_name, result)
385
+
386
+ return result
387
+
388
+ def stx_imshow(
389
+ self,
390
+ data: ArrayLike,
391
+ *,
392
+ track: bool = True,
393
+ id: Optional[str] = None,
394
+ **kwargs,
395
+ ) -> AxesImage:
396
+ """Display data as an image with SciTeX styling and tracking.
397
+
398
+ Parameters
399
+ ----------
400
+ data : array-like
401
+ Image data (2D or 3D array for RGB/RGBA).
402
+ track : bool, default True
403
+ Enable data tracking for reproducibility.
404
+ id : str, optional
405
+ Unique identifier for this plot element.
406
+ **kwargs
407
+ Additional arguments passed to `matplotlib.axes.Axes.imshow`.
408
+
409
+ Returns
410
+ -------
411
+ AxesImage
412
+ The image object.
413
+
414
+ See Also
415
+ --------
416
+ stx_image : Scientific image display with colorbar.
417
+ mpl_imshow : Raw matplotlib imshow without styling.
418
+
419
+ Examples
420
+ --------
421
+ >>> ax.stx_imshow(image_array, cmap='viridis')
422
+ """
423
+ method_name = "stx_imshow"
424
+
425
+ with self._no_tracking():
426
+ result = self._axis_mpl.imshow(data, **kwargs)
427
+
428
+ if hasattr(data, "shape") and len(data.shape) == 2:
429
+ n_rows, n_cols = data.shape
430
+ df = pd.DataFrame(data, columns=[f"col_{i}" for i in range(n_cols)])
431
+ else:
432
+ df = pd.DataFrame(data)
433
+ tracked_dict = {"imshow_df": df}
434
+ self._track(track, id, method_name, tracked_dict, None)
435
+
436
+ self._apply_scitex_postprocess(method_name, result)
437
+
438
+ return result
439
+
440
+ def stx_boxplot(
441
+ self,
442
+ data: Union[ArrayLike, Sequence[ArrayLike]],
443
+ *,
444
+ colors: Optional[List[str]] = None,
445
+ track: bool = True,
446
+ id: Optional[str] = None,
447
+ **kwargs,
448
+ ) -> dict:
449
+ """Create a boxplot with SciTeX styling and tracking.
450
+
451
+ This is an alias for :meth:`stx_box`.
452
+
453
+ Parameters
454
+ ----------
455
+ data : array-like or sequence of array-like
456
+ Data for the boxplot. Can be a single array or list of arrays.
457
+ colors : list of str, optional
458
+ Colors for each box.
459
+ track : bool, default True
460
+ Enable data tracking for reproducibility.
461
+ id : str, optional
462
+ Unique identifier for this plot element.
463
+ **kwargs
464
+ Additional arguments passed to `matplotlib.axes.Axes.boxplot`.
465
+
466
+ Returns
467
+ -------
468
+ dict
469
+ Dictionary mapping component names to artists.
470
+
471
+ See Also
472
+ --------
473
+ stx_box : Primary boxplot method.
474
+ sns_boxplot : DataFrame-based boxplot.
475
+ stx_violin : Violin plot alternative.
476
+
477
+ Examples
478
+ --------
479
+ >>> ax.stx_boxplot([data1, data2, data3], labels=['A', 'B', 'C'])
480
+ """
481
+ return self.stx_box(data, colors=colors, track=track, id=id, **kwargs)
482
+
483
+ def stx_violinplot(
484
+ self,
485
+ data: Union[ArrayLike, Sequence[ArrayLike]],
486
+ *,
487
+ colors: Optional[List[str]] = None,
488
+ track: bool = True,
489
+ id: Optional[str] = None,
490
+ **kwargs,
491
+ ) -> "Axes":
492
+ """Create a violin plot with SciTeX styling and tracking.
493
+
494
+ This is an alias for :meth:`stx_violin`.
495
+
496
+ Parameters
497
+ ----------
498
+ data : array-like or sequence of array-like
499
+ Data for the violin plot. Can be a single array or list of arrays.
500
+ colors : list of str, optional
501
+ Colors for each violin.
502
+ track : bool, default True
503
+ Enable data tracking for reproducibility.
504
+ id : str, optional
505
+ Unique identifier for this plot element.
506
+ **kwargs
507
+ Additional arguments passed to the violin plot function.
508
+
509
+ Returns
510
+ -------
511
+ Axes
512
+ The axes with the violin plot.
513
+
514
+ See Also
515
+ --------
516
+ stx_violin : Primary violin plot method.
517
+ sns_violinplot : DataFrame-based violin plot.
518
+ stx_box : Boxplot alternative.
519
+
520
+ Examples
521
+ --------
522
+ >>> ax.stx_violinplot([data1, data2], labels=['A', 'B'])
523
+ """
524
+ return self.stx_violin(data, colors=colors, track=track, id=id, **kwargs)
525
+
526
+
527
+ # EOF