scitex 2.7.0__py3-none-any.whl → 2.7.3__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 (297) 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/fig/__init__.py +352 -0
  79. scitex/{vis → fig}/backend/_parser.py +1 -1
  80. scitex/{vis → fig}/canvas.py +1 -1
  81. scitex/{vis → fig}/editor/_defaults.py +70 -5
  82. scitex/fig/editor/_edit.py +751 -0
  83. scitex/{vis → fig}/editor/_qt_editor.py +181 -1
  84. scitex/fig/editor/flask_editor/_bbox.py +1276 -0
  85. scitex/fig/editor/flask_editor/_core.py +624 -0
  86. scitex/{vis → fig}/editor/flask_editor/_plotter.py +38 -4
  87. scitex/fig/editor/flask_editor/_renderer.py +739 -0
  88. scitex/{vis → fig}/editor/flask_editor/templates/__init__.py +1 -1
  89. scitex/fig/editor/flask_editor/templates/_html.py +834 -0
  90. scitex/fig/editor/flask_editor/templates/_scripts.py +3136 -0
  91. scitex/{vis → fig}/editor/flask_editor/templates/_styles.py +625 -18
  92. scitex/{vis → fig}/io/__init__.py +13 -1
  93. scitex/fig/io/_bundle.py +973 -0
  94. scitex/{vis → fig}/io/_canvas.py +1 -1
  95. scitex/{vis → fig}/io/_data.py +1 -1
  96. scitex/{vis → fig}/io/_export.py +1 -1
  97. scitex/{vis → fig}/io/_load.py +1 -1
  98. scitex/{vis → fig}/io/_panel.py +1 -1
  99. scitex/{vis → fig}/io/_save.py +1 -1
  100. scitex/{vis → fig}/model/__init__.py +1 -1
  101. scitex/{vis → fig}/model/_annotations.py +1 -1
  102. scitex/{vis → fig}/model/_axes.py +1 -1
  103. scitex/{vis → fig}/model/_figure.py +1 -1
  104. scitex/{vis → fig}/model/_guides.py +1 -1
  105. scitex/{vis → fig}/model/_plot.py +1 -1
  106. scitex/{vis → fig}/model/_styles.py +1 -1
  107. scitex/{vis → fig}/utils/__init__.py +1 -1
  108. scitex/io/__init__.py +10 -26
  109. scitex/io/_bundle.py +434 -0
  110. scitex/io/_flush.py +5 -2
  111. scitex/io/_load.py +98 -0
  112. scitex/io/_load_modules/_H5Explorer.py +5 -2
  113. scitex/io/_load_modules/_canvas.py +2 -2
  114. scitex/io/_load_modules/_image.py +3 -4
  115. scitex/io/_load_modules/_txt.py +4 -2
  116. scitex/io/_metadata.py +34 -324
  117. scitex/io/_metadata_modules/__init__.py +46 -0
  118. scitex/io/_metadata_modules/_embed.py +70 -0
  119. scitex/io/_metadata_modules/_read.py +64 -0
  120. scitex/io/_metadata_modules/_utils.py +79 -0
  121. scitex/io/_metadata_modules/embed_metadata_jpeg.py +74 -0
  122. scitex/io/_metadata_modules/embed_metadata_pdf.py +53 -0
  123. scitex/io/_metadata_modules/embed_metadata_png.py +26 -0
  124. scitex/io/_metadata_modules/embed_metadata_svg.py +62 -0
  125. scitex/io/_metadata_modules/read_metadata_jpeg.py +57 -0
  126. scitex/io/_metadata_modules/read_metadata_pdf.py +51 -0
  127. scitex/io/_metadata_modules/read_metadata_png.py +39 -0
  128. scitex/io/_metadata_modules/read_metadata_svg.py +44 -0
  129. scitex/io/_qr_utils.py +5 -3
  130. scitex/io/_save.py +548 -30
  131. scitex/io/_save_modules/_canvas.py +3 -3
  132. scitex/io/_save_modules/_image.py +5 -9
  133. scitex/io/_save_modules/_tex.py +7 -4
  134. scitex/io/utils/h5_to_zarr.py +11 -9
  135. scitex/msword/__init__.py +255 -0
  136. scitex/msword/profiles.py +357 -0
  137. scitex/msword/reader.py +753 -0
  138. scitex/msword/utils.py +289 -0
  139. scitex/msword/writer.py +362 -0
  140. scitex/plt/__init__.py +5 -2
  141. scitex/plt/_subplots/_AxesWrapper.py +6 -6
  142. scitex/plt/_subplots/_AxisWrapper.py +15 -9
  143. scitex/plt/_subplots/_AxisWrapperMixins/_AdjustmentMixin/__init__.py +36 -0
  144. scitex/plt/_subplots/_AxisWrapperMixins/_AdjustmentMixin/_labels.py +264 -0
  145. scitex/plt/_subplots/_AxisWrapperMixins/_AdjustmentMixin/_metadata.py +213 -0
  146. scitex/plt/_subplots/_AxisWrapperMixins/_AdjustmentMixin/_visual.py +128 -0
  147. scitex/plt/_subplots/_AxisWrapperMixins/_MatplotlibPlotMixin/__init__.py +59 -0
  148. scitex/plt/_subplots/_AxisWrapperMixins/_MatplotlibPlotMixin/_base.py +34 -0
  149. scitex/plt/_subplots/_AxisWrapperMixins/_MatplotlibPlotMixin/_scientific.py +593 -0
  150. scitex/plt/_subplots/_AxisWrapperMixins/_MatplotlibPlotMixin/_statistical.py +654 -0
  151. scitex/plt/_subplots/_AxisWrapperMixins/_MatplotlibPlotMixin/_stx_aliases.py +527 -0
  152. scitex/plt/_subplots/_AxisWrapperMixins/_RawMatplotlibMixin.py +321 -0
  153. scitex/plt/_subplots/_AxisWrapperMixins/_SeabornMixin/__init__.py +33 -0
  154. scitex/plt/_subplots/_AxisWrapperMixins/_SeabornMixin/_base.py +152 -0
  155. scitex/plt/_subplots/_AxisWrapperMixins/_SeabornMixin/_wrappers.py +600 -0
  156. scitex/plt/_subplots/_AxisWrapperMixins/__init__.py +79 -5
  157. scitex/plt/_subplots/_FigWrapper.py +6 -6
  158. scitex/plt/_subplots/_SubplotsWrapper.py +28 -18
  159. scitex/plt/_subplots/_export_as_csv.py +35 -5
  160. scitex/plt/_subplots/_export_as_csv_formatters/__init__.py +8 -0
  161. scitex/plt/_subplots/_export_as_csv_formatters/_format_annotate.py +10 -21
  162. scitex/plt/_subplots/_export_as_csv_formatters/_format_eventplot.py +18 -7
  163. scitex/plt/_subplots/_export_as_csv_formatters/_format_imshow2d.py +28 -12
  164. scitex/plt/_subplots/_export_as_csv_formatters/_format_matshow.py +10 -4
  165. scitex/plt/_subplots/_export_as_csv_formatters/_format_plot_imshow.py +13 -1
  166. scitex/plt/_subplots/_export_as_csv_formatters/_format_plot_kde.py +12 -2
  167. scitex/plt/_subplots/_export_as_csv_formatters/_format_plot_scatter.py +10 -3
  168. scitex/plt/_subplots/_export_as_csv_formatters/_format_quiver.py +10 -4
  169. scitex/plt/_subplots/_export_as_csv_formatters/_format_sns_jointplot.py +18 -3
  170. scitex/plt/_subplots/_export_as_csv_formatters/_format_sns_lineplot.py +44 -36
  171. scitex/plt/_subplots/_export_as_csv_formatters/_format_sns_pairplot.py +14 -2
  172. scitex/plt/_subplots/_export_as_csv_formatters/_format_streamplot.py +11 -5
  173. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_bar.py +84 -0
  174. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_barh.py +85 -0
  175. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_conf_mat.py +14 -3
  176. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_contour.py +54 -0
  177. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_ecdf.py +14 -2
  178. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_errorbar.py +120 -0
  179. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_heatmap.py +16 -6
  180. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_image.py +29 -19
  181. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_imshow.py +63 -0
  182. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_joyplot.py +22 -5
  183. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_mean_ci.py +18 -14
  184. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_mean_std.py +18 -14
  185. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_median_iqr.py +18 -14
  186. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_raster.py +10 -2
  187. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_scatter.py +51 -0
  188. scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_scatter_hist.py +18 -9
  189. scitex/plt/ax/_plot/_stx_ecdf.py +4 -2
  190. scitex/plt/gallery/_generate.py +421 -14
  191. scitex/plt/io/__init__.py +53 -0
  192. scitex/plt/io/_bundle.py +490 -0
  193. scitex/plt/io/_layered_bundle.py +1343 -0
  194. scitex/plt/styles/SCITEX_STYLE.yaml +26 -0
  195. scitex/plt/styles/__init__.py +14 -0
  196. scitex/plt/styles/presets.py +78 -0
  197. scitex/plt/utils/__init__.py +13 -1
  198. scitex/plt/utils/_collect_figure_metadata.py +10 -14
  199. scitex/plt/utils/_configure_mpl.py +6 -18
  200. scitex/plt/utils/_crop.py +32 -14
  201. scitex/plt/utils/_csv_column_naming.py +54 -0
  202. scitex/plt/utils/_figure_mm.py +116 -1
  203. scitex/plt/utils/_hitmap.py +1643 -0
  204. scitex/plt/utils/metadata/__init__.py +25 -0
  205. scitex/plt/utils/metadata/_core.py +9 -10
  206. scitex/plt/utils/metadata/_dimensions.py +6 -3
  207. scitex/plt/utils/metadata/_editable_export.py +405 -0
  208. scitex/plt/utils/metadata/_geometry_extraction.py +570 -0
  209. scitex/schema/__init__.py +109 -16
  210. scitex/schema/_canvas.py +1 -1
  211. scitex/schema/_plot.py +1015 -0
  212. scitex/schema/_stats.py +2 -2
  213. scitex/stats/__init__.py +117 -0
  214. scitex/stats/io/__init__.py +29 -0
  215. scitex/stats/io/_bundle.py +156 -0
  216. scitex/tex/__init__.py +4 -0
  217. scitex/tex/_export.py +890 -0
  218. {scitex-2.7.0.dist-info → scitex-2.7.3.dist-info}/METADATA +11 -1
  219. {scitex-2.7.0.dist-info → scitex-2.7.3.dist-info}/RECORD +238 -170
  220. scitex/io/memo.md +0 -2827
  221. scitex/plt/REQUESTS.md +0 -191
  222. scitex/plt/_subplots/TODO.md +0 -53
  223. scitex/plt/_subplots/_AxisWrapperMixins/_AdjustmentMixin.py +0 -559
  224. scitex/plt/_subplots/_AxisWrapperMixins/_MatplotlibPlotMixin.py +0 -1609
  225. scitex/plt/_subplots/_AxisWrapperMixins/_SeabornMixin.py +0 -447
  226. scitex/plt/templates/research-master/scitex/vis/gallery/area/fill_between.json +0 -110
  227. scitex/plt/templates/research-master/scitex/vis/gallery/area/fill_betweenx.json +0 -88
  228. scitex/plt/templates/research-master/scitex/vis/gallery/area/stx_fill_between.json +0 -103
  229. scitex/plt/templates/research-master/scitex/vis/gallery/area/stx_fillv.json +0 -106
  230. scitex/plt/templates/research-master/scitex/vis/gallery/categorical/bar.json +0 -92
  231. scitex/plt/templates/research-master/scitex/vis/gallery/categorical/barh.json +0 -92
  232. scitex/plt/templates/research-master/scitex/vis/gallery/categorical/boxplot.json +0 -92
  233. scitex/plt/templates/research-master/scitex/vis/gallery/categorical/stx_bar.json +0 -84
  234. scitex/plt/templates/research-master/scitex/vis/gallery/categorical/stx_barh.json +0 -84
  235. scitex/plt/templates/research-master/scitex/vis/gallery/categorical/stx_box.json +0 -83
  236. scitex/plt/templates/research-master/scitex/vis/gallery/categorical/stx_boxplot.json +0 -93
  237. scitex/plt/templates/research-master/scitex/vis/gallery/categorical/stx_violin.json +0 -91
  238. scitex/plt/templates/research-master/scitex/vis/gallery/categorical/stx_violinplot.json +0 -91
  239. scitex/plt/templates/research-master/scitex/vis/gallery/categorical/violinplot.json +0 -91
  240. scitex/plt/templates/research-master/scitex/vis/gallery/contour/contour.json +0 -97
  241. scitex/plt/templates/research-master/scitex/vis/gallery/contour/contourf.json +0 -98
  242. scitex/plt/templates/research-master/scitex/vis/gallery/contour/stx_contour.json +0 -84
  243. scitex/plt/templates/research-master/scitex/vis/gallery/distribution/hist.json +0 -101
  244. scitex/plt/templates/research-master/scitex/vis/gallery/distribution/hist2d.json +0 -96
  245. scitex/plt/templates/research-master/scitex/vis/gallery/distribution/stx_ecdf.json +0 -95
  246. scitex/plt/templates/research-master/scitex/vis/gallery/distribution/stx_joyplot.json +0 -95
  247. scitex/plt/templates/research-master/scitex/vis/gallery/distribution/stx_kde.json +0 -93
  248. scitex/plt/templates/research-master/scitex/vis/gallery/grid/imshow.json +0 -95
  249. scitex/plt/templates/research-master/scitex/vis/gallery/grid/matshow.json +0 -95
  250. scitex/plt/templates/research-master/scitex/vis/gallery/grid/stx_conf_mat.json +0 -83
  251. scitex/plt/templates/research-master/scitex/vis/gallery/grid/stx_heatmap.json +0 -92
  252. scitex/plt/templates/research-master/scitex/vis/gallery/grid/stx_image.json +0 -121
  253. scitex/plt/templates/research-master/scitex/vis/gallery/grid/stx_imshow.json +0 -84
  254. scitex/plt/templates/research-master/scitex/vis/gallery/line/plot.json +0 -110
  255. scitex/plt/templates/research-master/scitex/vis/gallery/line/step.json +0 -92
  256. scitex/plt/templates/research-master/scitex/vis/gallery/line/stx_line.json +0 -95
  257. scitex/plt/templates/research-master/scitex/vis/gallery/line/stx_shaded_line.json +0 -96
  258. scitex/plt/templates/research-master/scitex/vis/gallery/scatter/hexbin.json +0 -95
  259. scitex/plt/templates/research-master/scitex/vis/gallery/scatter/scatter.json +0 -95
  260. scitex/plt/templates/research-master/scitex/vis/gallery/scatter/stem.json +0 -92
  261. scitex/plt/templates/research-master/scitex/vis/gallery/scatter/stx_scatter.json +0 -84
  262. scitex/plt/templates/research-master/scitex/vis/gallery/special/pie.json +0 -94
  263. scitex/plt/templates/research-master/scitex/vis/gallery/special/stx_raster.json +0 -109
  264. scitex/plt/templates/research-master/scitex/vis/gallery/special/stx_rectangle.json +0 -108
  265. scitex/plt/templates/research-master/scitex/vis/gallery/statistical/errorbar.json +0 -93
  266. scitex/plt/templates/research-master/scitex/vis/gallery/statistical/stx_errorbar.json +0 -84
  267. scitex/plt/templates/research-master/scitex/vis/gallery/statistical/stx_mean_ci.json +0 -96
  268. scitex/plt/templates/research-master/scitex/vis/gallery/statistical/stx_mean_std.json +0 -96
  269. scitex/plt/templates/research-master/scitex/vis/gallery/statistical/stx_median_iqr.json +0 -96
  270. scitex/plt/templates/research-master/scitex/vis/gallery/vector/quiver.json +0 -99
  271. scitex/plt/templates/research-master/scitex/vis/gallery/vector/streamplot.json +0 -100
  272. scitex/vis/__init__.py +0 -177
  273. scitex/vis/editor/_edit.py +0 -390
  274. scitex/vis/editor/flask_editor/_bbox.py +0 -529
  275. scitex/vis/editor/flask_editor/_core.py +0 -168
  276. scitex/vis/editor/flask_editor/_renderer.py +0 -393
  277. scitex/vis/editor/flask_editor/templates/_html.py +0 -513
  278. scitex/vis/editor/flask_editor/templates/_scripts.py +0 -1261
  279. /scitex/{vis → fig}/README.md +0 -0
  280. /scitex/{vis → fig}/backend/__init__.py +0 -0
  281. /scitex/{vis → fig}/backend/_export.py +0 -0
  282. /scitex/{vis → fig}/backend/_render.py +0 -0
  283. /scitex/{vis → fig}/docs/CANVAS_ARCHITECTURE.md +0 -0
  284. /scitex/{vis → fig}/editor/__init__.py +0 -0
  285. /scitex/{vis → fig}/editor/_dearpygui_editor.py +0 -0
  286. /scitex/{vis → fig}/editor/_flask_editor.py +0 -0
  287. /scitex/{vis → fig}/editor/_mpl_editor.py +0 -0
  288. /scitex/{vis → fig}/editor/_tkinter_editor.py +0 -0
  289. /scitex/{vis → fig}/editor/flask_editor/__init__.py +0 -0
  290. /scitex/{vis → fig}/editor/flask_editor/_utils.py +0 -0
  291. /scitex/{vis → fig}/io/_directory.py +0 -0
  292. /scitex/{vis → fig}/model/_plot_types.py +0 -0
  293. /scitex/{vis → fig}/utils/_defaults.py +0 -0
  294. /scitex/{vis → fig}/utils/_validate.py +0 -0
  295. {scitex-2.7.0.dist-info → scitex-2.7.3.dist-info}/WHEEL +0 -0
  296. {scitex-2.7.0.dist-info → scitex-2.7.3.dist-info}/entry_points.txt +0 -0
  297. {scitex-2.7.0.dist-info → scitex-2.7.3.dist-info}/licenses/LICENSE +0 -0
@@ -1,99 +0,0 @@
1
- {
2
- "scitex_schema": "scitex.plt.figure.recipe",
3
- "scitex_schema_version": "0.2.0",
4
- "figure_uuid": "1374949e-fb44-4a2d-89ca-8d50e41e1ca9",
5
- "runtime": {
6
- "scitex_version": "2.6.0",
7
- "matplotlib_version": "3.10.7",
8
- "created_at": "2025-12-09T23:03:43.343053"
9
- },
10
- "figure": {
11
- "size_mm": [
12
- 80.0,
13
- 68.0
14
- ],
15
- "dpi": 300,
16
- "auto_crop": true,
17
- "crop_margin_mm": 1.0,
18
- "mode": "publication"
19
- },
20
- "axes_bbox_px": {
21
- "x0": 176,
22
- "y0": 147,
23
- "x1": 649,
24
- "y1": 478,
25
- "width": 472,
26
- "height": 331
27
- },
28
- "axes_bbox_mm": {
29
- "x0": 20.0,
30
- "y0": 19.99,
31
- "x1": 60.0,
32
- "y1": 47.99,
33
- "width": 40.0,
34
- "height": 28.0
35
- },
36
- "style": {
37
- "axis_thickness_mm": 0.2,
38
- "tick_length_mm": 0.8,
39
- "tick_thickness_mm": 0.2,
40
- "trace_thickness_mm": 0.2,
41
- "marker_size_mm": 0.8,
42
- "axis_font_size_pt": 7,
43
- "tick_font_size_pt": 7,
44
- "title_font_size_pt": 8,
45
- "legend_font_size_pt": 6,
46
- "label_pad_pt": 0.5,
47
- "tick_pad_pt": 2.0,
48
- "title_pad_pt": 1.0,
49
- "font_family": "Arial",
50
- "n_ticks": 4
51
- },
52
- "axes": {
53
- "ax_00": {
54
- "grid_position": {
55
- "row": 0,
56
- "col": 0
57
- },
58
- "xaxis": {
59
- "label": "X",
60
- "lim": [
61
- -3.1429,
62
- 3.1429
63
- ]
64
- },
65
- "yaxis": {
66
- "label": "Y",
67
- "lim": [
68
- -2.2,
69
- 2.2
70
- ]
71
- },
72
- "calls": [
73
- {
74
- "id": "ax_00_rotation_field",
75
- "method": "quiver",
76
- "data_ref": {
77
- "x": "ax-row-0-col-0_trace-id-ax_00_rotation_field_variable-x",
78
- "y": "ax-row-0-col-0_trace-id-ax_00_rotation_field_variable-y",
79
- "u": "ax-row-0-col-0_trace-id-ax_00_rotation_field_variable-u",
80
- "v": "ax-row-0-col-0_trace-id-ax_00_rotation_field_variable-v"
81
- },
82
- "kwargs": {
83
- "width": 0.003
84
- }
85
- }
86
- ]
87
- }
88
- },
89
- "data": {
90
- "csv_path": "quiver.csv",
91
- "columns_actual": [
92
- "ax_00_rotation_field_quiver_x",
93
- "ax_00_rotation_field_quiver_y",
94
- "ax_00_rotation_field_quiver_u",
95
- "ax_00_rotation_field_quiver_v"
96
- ],
97
- "csv_hash": "fceafd100793c375"
98
- }
99
- }
@@ -1,100 +0,0 @@
1
- {
2
- "scitex_schema": "scitex.plt.figure.recipe",
3
- "scitex_schema_version": "0.2.0",
4
- "figure_uuid": "2b093fec-f7c0-44ad-8394-d777161cca82",
5
- "runtime": {
6
- "scitex_version": "2.6.0",
7
- "matplotlib_version": "3.10.7",
8
- "created_at": "2025-12-09T23:03:44.862947"
9
- },
10
- "figure": {
11
- "size_mm": [
12
- 80.0,
13
- 68.0
14
- ],
15
- "dpi": 300,
16
- "auto_crop": true,
17
- "crop_margin_mm": 1.0,
18
- "mode": "publication"
19
- },
20
- "axes_bbox_px": {
21
- "x0": 176,
22
- "y0": 148,
23
- "x1": 649,
24
- "y1": 479,
25
- "width": 472,
26
- "height": 331
27
- },
28
- "axes_bbox_mm": {
29
- "x0": 20.0,
30
- "y0": 19.99,
31
- "x1": 60.0,
32
- "y1": 47.99,
33
- "width": 40.0,
34
- "height": 28.0
35
- },
36
- "style": {
37
- "axis_thickness_mm": 0.2,
38
- "tick_length_mm": 0.8,
39
- "tick_thickness_mm": 0.2,
40
- "trace_thickness_mm": 0.2,
41
- "marker_size_mm": 0.8,
42
- "axis_font_size_pt": 7,
43
- "tick_font_size_pt": 7,
44
- "title_font_size_pt": 8,
45
- "legend_font_size_pt": 6,
46
- "label_pad_pt": 0.5,
47
- "tick_pad_pt": 2.0,
48
- "title_pad_pt": 1.0,
49
- "font_family": "Arial",
50
- "n_ticks": 4
51
- },
52
- "axes": {
53
- "ax_00": {
54
- "grid_position": {
55
- "row": 0,
56
- "col": 0
57
- },
58
- "xaxis": {
59
- "label": "X",
60
- "lim": [
61
- -2.8571,
62
- 2.8571
63
- ]
64
- },
65
- "yaxis": {
66
- "label": "Y",
67
- "lim": [
68
- -2.0,
69
- 2.0
70
- ]
71
- },
72
- "calls": [
73
- {
74
- "id": "ax_00_flow_field",
75
- "method": "streamplot",
76
- "data_ref": {
77
- "x": "ax-row-0-col-0_trace-id-ax_00_flow_field_variable-x",
78
- "y": "ax-row-0-col-0_trace-id-ax_00_flow_field_variable-y",
79
- "u": "ax-row-0-col-0_trace-id-ax_00_flow_field_variable-u",
80
- "v": "ax-row-0-col-0_trace-id-ax_00_flow_field_variable-v"
81
- },
82
- "kwargs": {
83
- "density": 1,
84
- "linewidth": 0.5669
85
- }
86
- }
87
- ]
88
- }
89
- },
90
- "data": {
91
- "csv_path": "streamplot.csv",
92
- "columns_actual": [
93
- "ax_00_flow_field_streamplot_x",
94
- "ax_00_flow_field_streamplot_y",
95
- "ax_00_flow_field_streamplot_u",
96
- "ax_00_flow_field_streamplot_v"
97
- ],
98
- "csv_hash": "f652d8cf630fa60e"
99
- }
100
- }
scitex/vis/__init__.py DELETED
@@ -1,177 +0,0 @@
1
- #!/usr/bin/env python3
2
- # -*- coding: utf-8 -*-
3
- # Timestamp: 2025-12-08
4
- # File: ./src/scitex/vis/__init__.py
5
- """
6
- SciTeX Visualization Module (scitex.vis)
7
-
8
- Canvas-based composition of publication-quality figures.
9
-
10
- Terminology:
11
- - Canvas: A paper figure workspace (e.g., "Figure 1" in publication)
12
- - Panel: A single component on canvas (stx.plt output or image)
13
- - Figure: Reserved for matplotlib's fig object (see scitex.plt)
14
-
15
- Quick Start:
16
- -----------
17
- >>> import scitex as stx
18
- >>>
19
- >>> # Create canvas and add panels
20
- >>> stx.vis.create_canvas("/output", "fig1")
21
- >>> stx.vis.add_panel("/output", "fig1", "panel_a", source="plot.png",
22
- ... position=(10, 10), size=(80, 60), label="A")
23
- >>>
24
- >>> # Save with stx.io (auto-exports PNG/PDF/SVG)
25
- >>> canvas = stx.io.load("/output/fig1.canvas")
26
- >>> stx.io.save(canvas, "/output/fig1_copy.canvas")
27
-
28
- Directory Structure:
29
- -------------------
30
- {parent_dir}/{canvas_name}.canvas/
31
- ├── canvas.json # Layout, panels, composition
32
- ├── panels/ # Panel directories
33
- └── exports/ # canvas.png, canvas.pdf, canvas.svg
34
- """
35
-
36
- # Submodules for advanced use
37
- from . import io
38
- from . import model
39
- from . import backend
40
- from . import utils
41
- from . import editor
42
-
43
- # Canvas class
44
- from .canvas import Canvas
45
-
46
- # =============================================================================
47
- # Primary API (minimal, reusable, flexible)
48
- # =============================================================================
49
-
50
- # Canvas operations
51
- from .io import (
52
- ensure_canvas_directory as create_canvas,
53
- get_canvas_directory_path as get_canvas_path,
54
- canvas_directory_exists as canvas_exists,
55
- list_canvas_directories as list_canvases,
56
- delete_canvas_directory as delete_canvas,
57
- )
58
-
59
- # Panel operations
60
- from .io import (
61
- add_panel_from_scitex,
62
- add_panel_from_image,
63
- update_panel,
64
- remove_panel,
65
- list_panels,
66
- )
67
-
68
- # Export (usually handled by stx.io.save, but available for explicit use)
69
- from .io import export_canvas_to_file as export_canvas
70
-
71
- # Data integrity
72
- from .io import verify_all_data_hashes as verify_data
73
-
74
- # Editor
75
- from .editor import edit
76
-
77
-
78
- # =============================================================================
79
- # Convenience wrapper for add_panel
80
- # =============================================================================
81
- def add_panel(
82
- parent_dir,
83
- canvas_name,
84
- panel_name,
85
- source,
86
- position=(0, 0),
87
- size=(50, 50),
88
- label="",
89
- bundle=False,
90
- **kwargs,
91
- ):
92
- """
93
- Add a panel to canvas (auto-detects scitex vs image type).
94
-
95
- Parameters
96
- ----------
97
- parent_dir : str or Path
98
- Parent directory containing canvas
99
- canvas_name : str
100
- Canvas name
101
- panel_name : str
102
- Name for the panel
103
- source : str or Path
104
- Source file (PNG, JPG, SVG)
105
- position : tuple
106
- (x_mm, y_mm) position on canvas
107
- size : tuple
108
- (width_mm, height_mm) panel size
109
- label : str
110
- Panel label (A, B, C...)
111
- bundle : bool
112
- If True, copy files. If False (default), use symlinks.
113
- **kwargs
114
- Additional panel properties (rotation_deg, opacity, flip_h, etc.)
115
- """
116
- from pathlib import Path
117
-
118
- source = Path(source)
119
- panel_properties = {
120
- "position": {"x_mm": position[0], "y_mm": position[1]},
121
- "size": {"width_mm": size[0], "height_mm": size[1]},
122
- **kwargs,
123
- }
124
- if label:
125
- panel_properties["label"] = {"text": label, "position": "top-left"}
126
-
127
- # Check if scitex output (has .json/.csv siblings)
128
- json_sibling = source.parent / f"{source.stem}.json"
129
- if json_sibling.exists():
130
- return add_panel_from_scitex(
131
- project_dir=parent_dir,
132
- canvas_name=canvas_name,
133
- panel_name=panel_name,
134
- source_png=source,
135
- panel_properties=panel_properties,
136
- bundle=bundle,
137
- )
138
- else:
139
- return add_panel_from_image(
140
- project_dir=parent_dir,
141
- canvas_name=canvas_name,
142
- panel_name=panel_name,
143
- source_image=source,
144
- panel_properties=panel_properties,
145
- bundle=bundle,
146
- )
147
-
148
-
149
- __all__ = [
150
- # Canvas class
151
- "Canvas",
152
- # Submodules (advanced)
153
- "io",
154
- "model",
155
- "backend",
156
- "utils",
157
- "editor",
158
- # Canvas operations
159
- "create_canvas",
160
- "get_canvas_path",
161
- "canvas_exists",
162
- "list_canvases",
163
- "delete_canvas",
164
- # Panel operations
165
- "add_panel",
166
- "update_panel",
167
- "remove_panel",
168
- "list_panels",
169
- # Export
170
- "export_canvas",
171
- # Data integrity
172
- "verify_data",
173
- # Editor
174
- "edit",
175
- ]
176
-
177
- # EOF