scitex 2.0.0__py2.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 (572) hide show
  1. scitex/__init__.py +73 -0
  2. scitex/__main__.py +89 -0
  3. scitex/__version__.py +14 -0
  4. scitex/_sh.py +59 -0
  5. scitex/ai/_LearningCurveLogger.py +583 -0
  6. scitex/ai/__Classifiers.py +101 -0
  7. scitex/ai/__init__.py +55 -0
  8. scitex/ai/_gen_ai/_Anthropic.py +173 -0
  9. scitex/ai/_gen_ai/_BaseGenAI.py +336 -0
  10. scitex/ai/_gen_ai/_DeepSeek.py +175 -0
  11. scitex/ai/_gen_ai/_Google.py +161 -0
  12. scitex/ai/_gen_ai/_Groq.py +97 -0
  13. scitex/ai/_gen_ai/_Llama.py +142 -0
  14. scitex/ai/_gen_ai/_OpenAI.py +230 -0
  15. scitex/ai/_gen_ai/_PARAMS.py +565 -0
  16. scitex/ai/_gen_ai/_Perplexity.py +191 -0
  17. scitex/ai/_gen_ai/__init__.py +32 -0
  18. scitex/ai/_gen_ai/_calc_cost.py +78 -0
  19. scitex/ai/_gen_ai/_format_output_func.py +183 -0
  20. scitex/ai/_gen_ai/_genai_factory.py +71 -0
  21. scitex/ai/act/__init__.py +8 -0
  22. scitex/ai/act/_define.py +11 -0
  23. scitex/ai/classification/__init__.py +7 -0
  24. scitex/ai/classification/classification_reporter.py +1137 -0
  25. scitex/ai/classification/classifier_server.py +131 -0
  26. scitex/ai/classification/classifiers.py +101 -0
  27. scitex/ai/classification_reporter.py +1161 -0
  28. scitex/ai/classifier_server.py +131 -0
  29. scitex/ai/clustering/__init__.py +11 -0
  30. scitex/ai/clustering/_pca.py +115 -0
  31. scitex/ai/clustering/_umap.py +376 -0
  32. scitex/ai/early_stopping.py +149 -0
  33. scitex/ai/feature_extraction/__init__.py +56 -0
  34. scitex/ai/feature_extraction/vit.py +148 -0
  35. scitex/ai/genai/__init__.py +277 -0
  36. scitex/ai/genai/anthropic.py +177 -0
  37. scitex/ai/genai/anthropic_provider.py +320 -0
  38. scitex/ai/genai/anthropic_refactored.py +109 -0
  39. scitex/ai/genai/auth_manager.py +200 -0
  40. scitex/ai/genai/base_genai.py +336 -0
  41. scitex/ai/genai/base_provider.py +291 -0
  42. scitex/ai/genai/calc_cost.py +78 -0
  43. scitex/ai/genai/chat_history.py +307 -0
  44. scitex/ai/genai/cost_tracker.py +276 -0
  45. scitex/ai/genai/deepseek.py +188 -0
  46. scitex/ai/genai/deepseek_provider.py +251 -0
  47. scitex/ai/genai/format_output_func.py +183 -0
  48. scitex/ai/genai/genai_factory.py +71 -0
  49. scitex/ai/genai/google.py +169 -0
  50. scitex/ai/genai/google_provider.py +228 -0
  51. scitex/ai/genai/groq.py +104 -0
  52. scitex/ai/genai/groq_provider.py +248 -0
  53. scitex/ai/genai/image_processor.py +250 -0
  54. scitex/ai/genai/llama.py +155 -0
  55. scitex/ai/genai/llama_provider.py +214 -0
  56. scitex/ai/genai/mock_provider.py +127 -0
  57. scitex/ai/genai/model_registry.py +304 -0
  58. scitex/ai/genai/openai.py +230 -0
  59. scitex/ai/genai/openai_provider.py +293 -0
  60. scitex/ai/genai/params.py +565 -0
  61. scitex/ai/genai/perplexity.py +202 -0
  62. scitex/ai/genai/perplexity_provider.py +205 -0
  63. scitex/ai/genai/provider_base.py +302 -0
  64. scitex/ai/genai/provider_factory.py +370 -0
  65. scitex/ai/genai/response_handler.py +235 -0
  66. scitex/ai/layer/_Pass.py +21 -0
  67. scitex/ai/layer/__init__.py +10 -0
  68. scitex/ai/layer/_switch.py +8 -0
  69. scitex/ai/loss/_L1L2Losses.py +34 -0
  70. scitex/ai/loss/__init__.py +12 -0
  71. scitex/ai/loss/multi_task_loss.py +47 -0
  72. scitex/ai/metrics/__init__.py +9 -0
  73. scitex/ai/metrics/_bACC.py +51 -0
  74. scitex/ai/metrics/silhoute_score_block.py +496 -0
  75. scitex/ai/optim/Ranger_Deep_Learning_Optimizer/__init__.py +0 -0
  76. scitex/ai/optim/Ranger_Deep_Learning_Optimizer/ranger/__init__.py +3 -0
  77. scitex/ai/optim/Ranger_Deep_Learning_Optimizer/ranger/ranger.py +207 -0
  78. scitex/ai/optim/Ranger_Deep_Learning_Optimizer/ranger/ranger2020.py +238 -0
  79. scitex/ai/optim/Ranger_Deep_Learning_Optimizer/ranger/ranger913A.py +215 -0
  80. scitex/ai/optim/Ranger_Deep_Learning_Optimizer/ranger/rangerqh.py +184 -0
  81. scitex/ai/optim/Ranger_Deep_Learning_Optimizer/setup.py +24 -0
  82. scitex/ai/optim/__init__.py +13 -0
  83. scitex/ai/optim/_get_set.py +31 -0
  84. scitex/ai/optim/_optimizers.py +71 -0
  85. scitex/ai/plt/__init__.py +21 -0
  86. scitex/ai/plt/_conf_mat.py +592 -0
  87. scitex/ai/plt/_learning_curve.py +194 -0
  88. scitex/ai/plt/_optuna_study.py +111 -0
  89. scitex/ai/plt/aucs/__init__.py +2 -0
  90. scitex/ai/plt/aucs/example.py +60 -0
  91. scitex/ai/plt/aucs/pre_rec_auc.py +223 -0
  92. scitex/ai/plt/aucs/roc_auc.py +246 -0
  93. scitex/ai/sampling/undersample.py +29 -0
  94. scitex/ai/sk/__init__.py +11 -0
  95. scitex/ai/sk/_clf.py +58 -0
  96. scitex/ai/sk/_to_sktime.py +100 -0
  97. scitex/ai/sklearn/__init__.py +26 -0
  98. scitex/ai/sklearn/clf.py +58 -0
  99. scitex/ai/sklearn/to_sktime.py +100 -0
  100. scitex/ai/training/__init__.py +7 -0
  101. scitex/ai/training/early_stopping.py +150 -0
  102. scitex/ai/training/learning_curve_logger.py +555 -0
  103. scitex/ai/utils/__init__.py +22 -0
  104. scitex/ai/utils/_check_params.py +50 -0
  105. scitex/ai/utils/_default_dataset.py +46 -0
  106. scitex/ai/utils/_format_samples_for_sktime.py +26 -0
  107. scitex/ai/utils/_label_encoder.py +134 -0
  108. scitex/ai/utils/_merge_labels.py +22 -0
  109. scitex/ai/utils/_sliding_window_data_augmentation.py +11 -0
  110. scitex/ai/utils/_under_sample.py +51 -0
  111. scitex/ai/utils/_verify_n_gpus.py +16 -0
  112. scitex/ai/utils/grid_search.py +148 -0
  113. scitex/context/__init__.py +9 -0
  114. scitex/context/_suppress_output.py +38 -0
  115. scitex/db/_BaseMixins/_BaseBackupMixin.py +30 -0
  116. scitex/db/_BaseMixins/_BaseBatchMixin.py +31 -0
  117. scitex/db/_BaseMixins/_BaseBlobMixin.py +81 -0
  118. scitex/db/_BaseMixins/_BaseConnectionMixin.py +43 -0
  119. scitex/db/_BaseMixins/_BaseImportExportMixin.py +39 -0
  120. scitex/db/_BaseMixins/_BaseIndexMixin.py +29 -0
  121. scitex/db/_BaseMixins/_BaseMaintenanceMixin.py +33 -0
  122. scitex/db/_BaseMixins/_BaseQueryMixin.py +52 -0
  123. scitex/db/_BaseMixins/_BaseRowMixin.py +32 -0
  124. scitex/db/_BaseMixins/_BaseSchemaMixin.py +44 -0
  125. scitex/db/_BaseMixins/_BaseTableMixin.py +66 -0
  126. scitex/db/_BaseMixins/_BaseTransactionMixin.py +52 -0
  127. scitex/db/_BaseMixins/__init__.py +30 -0
  128. scitex/db/_PostgreSQL.py +126 -0
  129. scitex/db/_PostgreSQLMixins/_BackupMixin.py +166 -0
  130. scitex/db/_PostgreSQLMixins/_BatchMixin.py +82 -0
  131. scitex/db/_PostgreSQLMixins/_BlobMixin.py +231 -0
  132. scitex/db/_PostgreSQLMixins/_ConnectionMixin.py +92 -0
  133. scitex/db/_PostgreSQLMixins/_ImportExportMixin.py +59 -0
  134. scitex/db/_PostgreSQLMixins/_IndexMixin.py +64 -0
  135. scitex/db/_PostgreSQLMixins/_MaintenanceMixin.py +175 -0
  136. scitex/db/_PostgreSQLMixins/_QueryMixin.py +108 -0
  137. scitex/db/_PostgreSQLMixins/_RowMixin.py +75 -0
  138. scitex/db/_PostgreSQLMixins/_SchemaMixin.py +126 -0
  139. scitex/db/_PostgreSQLMixins/_TableMixin.py +176 -0
  140. scitex/db/_PostgreSQLMixins/_TransactionMixin.py +57 -0
  141. scitex/db/_PostgreSQLMixins/__init__.py +34 -0
  142. scitex/db/_SQLite3.py +2136 -0
  143. scitex/db/_SQLite3Mixins/_BatchMixin.py +243 -0
  144. scitex/db/_SQLite3Mixins/_BlobMixin.py +229 -0
  145. scitex/db/_SQLite3Mixins/_ConnectionMixin.py +108 -0
  146. scitex/db/_SQLite3Mixins/_ImportExportMixin.py +80 -0
  147. scitex/db/_SQLite3Mixins/_IndexMixin.py +32 -0
  148. scitex/db/_SQLite3Mixins/_MaintenanceMixin.py +176 -0
  149. scitex/db/_SQLite3Mixins/_QueryMixin.py +83 -0
  150. scitex/db/_SQLite3Mixins/_RowMixin.py +75 -0
  151. scitex/db/_SQLite3Mixins/_TableMixin.py +183 -0
  152. scitex/db/_SQLite3Mixins/_TransactionMixin.py +71 -0
  153. scitex/db/_SQLite3Mixins/__init__.py +30 -0
  154. scitex/db/__init__.py +14 -0
  155. scitex/db/_delete_duplicates.py +397 -0
  156. scitex/db/_inspect.py +163 -0
  157. scitex/decorators/__init__.py +54 -0
  158. scitex/decorators/_auto_order.py +172 -0
  159. scitex/decorators/_batch_fn.py +127 -0
  160. scitex/decorators/_cache_disk.py +32 -0
  161. scitex/decorators/_cache_mem.py +12 -0
  162. scitex/decorators/_combined.py +98 -0
  163. scitex/decorators/_converters.py +282 -0
  164. scitex/decorators/_deprecated.py +26 -0
  165. scitex/decorators/_not_implemented.py +30 -0
  166. scitex/decorators/_numpy_fn.py +86 -0
  167. scitex/decorators/_pandas_fn.py +121 -0
  168. scitex/decorators/_preserve_doc.py +19 -0
  169. scitex/decorators/_signal_fn.py +95 -0
  170. scitex/decorators/_timeout.py +55 -0
  171. scitex/decorators/_torch_fn.py +136 -0
  172. scitex/decorators/_wrap.py +39 -0
  173. scitex/decorators/_xarray_fn.py +88 -0
  174. scitex/dev/__init__.py +15 -0
  175. scitex/dev/_analyze_code_flow.py +284 -0
  176. scitex/dev/_reload.py +59 -0
  177. scitex/dict/_DotDict.py +442 -0
  178. scitex/dict/__init__.py +18 -0
  179. scitex/dict/_listed_dict.py +42 -0
  180. scitex/dict/_pop_keys.py +36 -0
  181. scitex/dict/_replace.py +13 -0
  182. scitex/dict/_safe_merge.py +62 -0
  183. scitex/dict/_to_str.py +32 -0
  184. scitex/dsp/__init__.py +72 -0
  185. scitex/dsp/_crop.py +122 -0
  186. scitex/dsp/_demo_sig.py +331 -0
  187. scitex/dsp/_detect_ripples.py +212 -0
  188. scitex/dsp/_ensure_3d.py +18 -0
  189. scitex/dsp/_hilbert.py +78 -0
  190. scitex/dsp/_listen.py +702 -0
  191. scitex/dsp/_misc.py +30 -0
  192. scitex/dsp/_mne.py +32 -0
  193. scitex/dsp/_modulation_index.py +79 -0
  194. scitex/dsp/_pac.py +319 -0
  195. scitex/dsp/_psd.py +102 -0
  196. scitex/dsp/_resample.py +65 -0
  197. scitex/dsp/_time.py +36 -0
  198. scitex/dsp/_transform.py +68 -0
  199. scitex/dsp/_wavelet.py +212 -0
  200. scitex/dsp/add_noise.py +111 -0
  201. scitex/dsp/example.py +253 -0
  202. scitex/dsp/filt.py +155 -0
  203. scitex/dsp/norm.py +18 -0
  204. scitex/dsp/params.py +51 -0
  205. scitex/dsp/reference.py +43 -0
  206. scitex/dsp/template.py +25 -0
  207. scitex/dsp/utils/__init__.py +15 -0
  208. scitex/dsp/utils/_differential_bandpass_filters.py +120 -0
  209. scitex/dsp/utils/_ensure_3d.py +18 -0
  210. scitex/dsp/utils/_ensure_even_len.py +10 -0
  211. scitex/dsp/utils/_zero_pad.py +48 -0
  212. scitex/dsp/utils/filter.py +408 -0
  213. scitex/dsp/utils/pac.py +177 -0
  214. scitex/dt/__init__.py +8 -0
  215. scitex/dt/_linspace.py +130 -0
  216. scitex/etc/__init__.py +15 -0
  217. scitex/etc/wait_key.py +34 -0
  218. scitex/gen/_DimHandler.py +196 -0
  219. scitex/gen/_TimeStamper.py +244 -0
  220. scitex/gen/__init__.py +95 -0
  221. scitex/gen/_alternate_kwarg.py +13 -0
  222. scitex/gen/_cache.py +11 -0
  223. scitex/gen/_check_host.py +34 -0
  224. scitex/gen/_ci.py +12 -0
  225. scitex/gen/_close.py +222 -0
  226. scitex/gen/_embed.py +78 -0
  227. scitex/gen/_inspect_module.py +257 -0
  228. scitex/gen/_is_ipython.py +12 -0
  229. scitex/gen/_less.py +48 -0
  230. scitex/gen/_list_packages.py +139 -0
  231. scitex/gen/_mat2py.py +88 -0
  232. scitex/gen/_norm.py +170 -0
  233. scitex/gen/_paste.py +18 -0
  234. scitex/gen/_print_config.py +84 -0
  235. scitex/gen/_shell.py +48 -0
  236. scitex/gen/_src.py +111 -0
  237. scitex/gen/_start.py +451 -0
  238. scitex/gen/_symlink.py +55 -0
  239. scitex/gen/_symlog.py +27 -0
  240. scitex/gen/_tee.py +238 -0
  241. scitex/gen/_title2path.py +60 -0
  242. scitex/gen/_title_case.py +88 -0
  243. scitex/gen/_to_even.py +84 -0
  244. scitex/gen/_to_odd.py +34 -0
  245. scitex/gen/_to_rank.py +39 -0
  246. scitex/gen/_transpose.py +37 -0
  247. scitex/gen/_type.py +78 -0
  248. scitex/gen/_var_info.py +73 -0
  249. scitex/gen/_wrap.py +17 -0
  250. scitex/gen/_xml2dict.py +76 -0
  251. scitex/gen/misc.py +730 -0
  252. scitex/gen/path.py +0 -0
  253. scitex/general/__init__.py +5 -0
  254. scitex/gists/_SigMacro_processFigure_S.py +128 -0
  255. scitex/gists/_SigMacro_toBlue.py +172 -0
  256. scitex/gists/__init__.py +12 -0
  257. scitex/io/_H5Explorer.py +292 -0
  258. scitex/io/__init__.py +82 -0
  259. scitex/io/_cache.py +101 -0
  260. scitex/io/_flush.py +24 -0
  261. scitex/io/_glob.py +103 -0
  262. scitex/io/_json2md.py +113 -0
  263. scitex/io/_load.py +168 -0
  264. scitex/io/_load_configs.py +146 -0
  265. scitex/io/_load_modules/__init__.py +38 -0
  266. scitex/io/_load_modules/_catboost.py +66 -0
  267. scitex/io/_load_modules/_con.py +20 -0
  268. scitex/io/_load_modules/_db.py +24 -0
  269. scitex/io/_load_modules/_docx.py +42 -0
  270. scitex/io/_load_modules/_eeg.py +110 -0
  271. scitex/io/_load_modules/_hdf5.py +196 -0
  272. scitex/io/_load_modules/_image.py +19 -0
  273. scitex/io/_load_modules/_joblib.py +19 -0
  274. scitex/io/_load_modules/_json.py +18 -0
  275. scitex/io/_load_modules/_markdown.py +103 -0
  276. scitex/io/_load_modules/_matlab.py +37 -0
  277. scitex/io/_load_modules/_numpy.py +39 -0
  278. scitex/io/_load_modules/_optuna.py +155 -0
  279. scitex/io/_load_modules/_pandas.py +69 -0
  280. scitex/io/_load_modules/_pdf.py +31 -0
  281. scitex/io/_load_modules/_pickle.py +24 -0
  282. scitex/io/_load_modules/_torch.py +16 -0
  283. scitex/io/_load_modules/_txt.py +126 -0
  284. scitex/io/_load_modules/_xml.py +49 -0
  285. scitex/io/_load_modules/_yaml.py +23 -0
  286. scitex/io/_mv_to_tmp.py +19 -0
  287. scitex/io/_path.py +286 -0
  288. scitex/io/_reload.py +78 -0
  289. scitex/io/_save.py +539 -0
  290. scitex/io/_save_modules/__init__.py +66 -0
  291. scitex/io/_save_modules/_catboost.py +22 -0
  292. scitex/io/_save_modules/_csv.py +89 -0
  293. scitex/io/_save_modules/_excel.py +49 -0
  294. scitex/io/_save_modules/_hdf5.py +249 -0
  295. scitex/io/_save_modules/_html.py +48 -0
  296. scitex/io/_save_modules/_image.py +140 -0
  297. scitex/io/_save_modules/_joblib.py +25 -0
  298. scitex/io/_save_modules/_json.py +25 -0
  299. scitex/io/_save_modules/_listed_dfs_as_csv.py +57 -0
  300. scitex/io/_save_modules/_listed_scalars_as_csv.py +42 -0
  301. scitex/io/_save_modules/_matlab.py +24 -0
  302. scitex/io/_save_modules/_mp4.py +29 -0
  303. scitex/io/_save_modules/_numpy.py +57 -0
  304. scitex/io/_save_modules/_optuna_study_as_csv_and_pngs.py +38 -0
  305. scitex/io/_save_modules/_pickle.py +45 -0
  306. scitex/io/_save_modules/_plotly.py +27 -0
  307. scitex/io/_save_modules/_text.py +23 -0
  308. scitex/io/_save_modules/_torch.py +26 -0
  309. scitex/io/_save_modules/_yaml.py +29 -0
  310. scitex/life/__init__.py +10 -0
  311. scitex/life/_monitor_rain.py +49 -0
  312. scitex/linalg/__init__.py +17 -0
  313. scitex/linalg/_distance.py +63 -0
  314. scitex/linalg/_geometric_median.py +64 -0
  315. scitex/linalg/_misc.py +73 -0
  316. scitex/nn/_AxiswiseDropout.py +27 -0
  317. scitex/nn/_BNet.py +126 -0
  318. scitex/nn/_BNet_Res.py +164 -0
  319. scitex/nn/_ChannelGainChanger.py +44 -0
  320. scitex/nn/_DropoutChannels.py +50 -0
  321. scitex/nn/_Filters.py +489 -0
  322. scitex/nn/_FreqGainChanger.py +110 -0
  323. scitex/nn/_GaussianFilter.py +48 -0
  324. scitex/nn/_Hilbert.py +111 -0
  325. scitex/nn/_MNet_1000.py +157 -0
  326. scitex/nn/_ModulationIndex.py +221 -0
  327. scitex/nn/_PAC.py +414 -0
  328. scitex/nn/_PSD.py +40 -0
  329. scitex/nn/_ResNet1D.py +120 -0
  330. scitex/nn/_SpatialAttention.py +25 -0
  331. scitex/nn/_Spectrogram.py +161 -0
  332. scitex/nn/_SwapChannels.py +50 -0
  333. scitex/nn/_TransposeLayer.py +19 -0
  334. scitex/nn/_Wavelet.py +183 -0
  335. scitex/nn/__init__.py +63 -0
  336. scitex/os/__init__.py +8 -0
  337. scitex/os/_mv.py +50 -0
  338. scitex/parallel/__init__.py +8 -0
  339. scitex/parallel/_run.py +151 -0
  340. scitex/path/__init__.py +33 -0
  341. scitex/path/_clean.py +52 -0
  342. scitex/path/_find.py +108 -0
  343. scitex/path/_get_module_path.py +51 -0
  344. scitex/path/_get_spath.py +35 -0
  345. scitex/path/_getsize.py +18 -0
  346. scitex/path/_increment_version.py +87 -0
  347. scitex/path/_mk_spath.py +51 -0
  348. scitex/path/_path.py +19 -0
  349. scitex/path/_split.py +23 -0
  350. scitex/path/_this_path.py +19 -0
  351. scitex/path/_version.py +101 -0
  352. scitex/pd/__init__.py +41 -0
  353. scitex/pd/_find_indi.py +126 -0
  354. scitex/pd/_find_pval.py +113 -0
  355. scitex/pd/_force_df.py +154 -0
  356. scitex/pd/_from_xyz.py +71 -0
  357. scitex/pd/_ignore_SettingWithCopyWarning.py +34 -0
  358. scitex/pd/_melt_cols.py +81 -0
  359. scitex/pd/_merge_columns.py +221 -0
  360. scitex/pd/_mv.py +63 -0
  361. scitex/pd/_replace.py +62 -0
  362. scitex/pd/_round.py +93 -0
  363. scitex/pd/_slice.py +63 -0
  364. scitex/pd/_sort.py +91 -0
  365. scitex/pd/_to_numeric.py +53 -0
  366. scitex/pd/_to_xy.py +59 -0
  367. scitex/pd/_to_xyz.py +110 -0
  368. scitex/plt/__init__.py +36 -0
  369. scitex/plt/_subplots/_AxesWrapper.py +182 -0
  370. scitex/plt/_subplots/_AxisWrapper.py +249 -0
  371. scitex/plt/_subplots/_AxisWrapperMixins/_AdjustmentMixin.py +414 -0
  372. scitex/plt/_subplots/_AxisWrapperMixins/_MatplotlibPlotMixin.py +896 -0
  373. scitex/plt/_subplots/_AxisWrapperMixins/_SeabornMixin.py +368 -0
  374. scitex/plt/_subplots/_AxisWrapperMixins/_TrackingMixin.py +185 -0
  375. scitex/plt/_subplots/_AxisWrapperMixins/__init__.py +16 -0
  376. scitex/plt/_subplots/_FigWrapper.py +226 -0
  377. scitex/plt/_subplots/_SubplotsWrapper.py +171 -0
  378. scitex/plt/_subplots/__init__.py +111 -0
  379. scitex/plt/_subplots/_export_as_csv.py +232 -0
  380. scitex/plt/_subplots/_export_as_csv_formatters/__init__.py +61 -0
  381. scitex/plt/_subplots/_export_as_csv_formatters/_format_bar.py +90 -0
  382. scitex/plt/_subplots/_export_as_csv_formatters/_format_barh.py +49 -0
  383. scitex/plt/_subplots/_export_as_csv_formatters/_format_boxplot.py +46 -0
  384. scitex/plt/_subplots/_export_as_csv_formatters/_format_contour.py +39 -0
  385. scitex/plt/_subplots/_export_as_csv_formatters/_format_errorbar.py +125 -0
  386. scitex/plt/_subplots/_export_as_csv_formatters/_format_eventplot.py +72 -0
  387. scitex/plt/_subplots/_export_as_csv_formatters/_format_fill.py +34 -0
  388. scitex/plt/_subplots/_export_as_csv_formatters/_format_fill_between.py +36 -0
  389. scitex/plt/_subplots/_export_as_csv_formatters/_format_hist.py +79 -0
  390. scitex/plt/_subplots/_export_as_csv_formatters/_format_imshow.py +59 -0
  391. scitex/plt/_subplots/_export_as_csv_formatters/_format_imshow2d.py +32 -0
  392. scitex/plt/_subplots/_export_as_csv_formatters/_format_plot.py +79 -0
  393. scitex/plt/_subplots/_export_as_csv_formatters/_format_plot_box.py +75 -0
  394. scitex/plt/_subplots/_export_as_csv_formatters/_format_plot_conf_mat.py +64 -0
  395. scitex/plt/_subplots/_export_as_csv_formatters/_format_plot_ecdf.py +44 -0
  396. scitex/plt/_subplots/_export_as_csv_formatters/_format_plot_fillv.py +70 -0
  397. scitex/plt/_subplots/_export_as_csv_formatters/_format_plot_heatmap.py +66 -0
  398. scitex/plt/_subplots/_export_as_csv_formatters/_format_plot_image.py +95 -0
  399. scitex/plt/_subplots/_export_as_csv_formatters/_format_plot_joyplot.py +67 -0
  400. scitex/plt/_subplots/_export_as_csv_formatters/_format_plot_kde.py +52 -0
  401. scitex/plt/_subplots/_export_as_csv_formatters/_format_plot_line.py +46 -0
  402. scitex/plt/_subplots/_export_as_csv_formatters/_format_plot_mean_ci.py +46 -0
  403. scitex/plt/_subplots/_export_as_csv_formatters/_format_plot_mean_std.py +46 -0
  404. scitex/plt/_subplots/_export_as_csv_formatters/_format_plot_median_iqr.py +46 -0
  405. scitex/plt/_subplots/_export_as_csv_formatters/_format_plot_raster.py +44 -0
  406. scitex/plt/_subplots/_export_as_csv_formatters/_format_plot_rectangle.py +103 -0
  407. scitex/plt/_subplots/_export_as_csv_formatters/_format_plot_scatter_hist.py +82 -0
  408. scitex/plt/_subplots/_export_as_csv_formatters/_format_plot_shaded_line.py +58 -0
  409. scitex/plt/_subplots/_export_as_csv_formatters/_format_plot_violin.py +117 -0
  410. scitex/plt/_subplots/_export_as_csv_formatters/_format_scatter.py +30 -0
  411. scitex/plt/_subplots/_export_as_csv_formatters/_format_sns_barplot.py +51 -0
  412. scitex/plt/_subplots/_export_as_csv_formatters/_format_sns_boxplot.py +93 -0
  413. scitex/plt/_subplots/_export_as_csv_formatters/_format_sns_heatmap.py +94 -0
  414. scitex/plt/_subplots/_export_as_csv_formatters/_format_sns_histplot.py +92 -0
  415. scitex/plt/_subplots/_export_as_csv_formatters/_format_sns_jointplot.py +65 -0
  416. scitex/plt/_subplots/_export_as_csv_formatters/_format_sns_kdeplot.py +59 -0
  417. scitex/plt/_subplots/_export_as_csv_formatters/_format_sns_lineplot.py +58 -0
  418. scitex/plt/_subplots/_export_as_csv_formatters/_format_sns_pairplot.py +45 -0
  419. scitex/plt/_subplots/_export_as_csv_formatters/_format_sns_scatterplot.py +70 -0
  420. scitex/plt/_subplots/_export_as_csv_formatters/_format_sns_stripplot.py +75 -0
  421. scitex/plt/_subplots/_export_as_csv_formatters/_format_sns_swarmplot.py +75 -0
  422. scitex/plt/_subplots/_export_as_csv_formatters/_format_sns_violinplot.py +155 -0
  423. scitex/plt/_subplots/_export_as_csv_formatters/_format_violin.py +64 -0
  424. scitex/plt/_subplots/_export_as_csv_formatters/_format_violinplot.py +77 -0
  425. scitex/plt/_subplots/_export_as_csv_formatters/test_formatters.py +210 -0
  426. scitex/plt/_subplots/_export_as_csv_formatters/verify_formatters.py +342 -0
  427. scitex/plt/_subplots/_export_as_csv_formatters.py +115 -0
  428. scitex/plt/_tpl.py +28 -0
  429. scitex/plt/ax/__init__.py +114 -0
  430. scitex/plt/ax/_plot/__init__.py +53 -0
  431. scitex/plt/ax/_plot/_plot_circular_hist.py +124 -0
  432. scitex/plt/ax/_plot/_plot_conf_mat.py +136 -0
  433. scitex/plt/ax/_plot/_plot_cube.py +57 -0
  434. scitex/plt/ax/_plot/_plot_ecdf.py +84 -0
  435. scitex/plt/ax/_plot/_plot_fillv.py +55 -0
  436. scitex/plt/ax/_plot/_plot_heatmap.py +266 -0
  437. scitex/plt/ax/_plot/_plot_image.py +94 -0
  438. scitex/plt/ax/_plot/_plot_joyplot.py +76 -0
  439. scitex/plt/ax/_plot/_plot_raster.py +172 -0
  440. scitex/plt/ax/_plot/_plot_rectangle.py +69 -0
  441. scitex/plt/ax/_plot/_plot_scatter_hist.py +133 -0
  442. scitex/plt/ax/_plot/_plot_shaded_line.py +142 -0
  443. scitex/plt/ax/_plot/_plot_statistical_shaded_line.py +221 -0
  444. scitex/plt/ax/_plot/_plot_violin.py +343 -0
  445. scitex/plt/ax/_style/__init__.py +38 -0
  446. scitex/plt/ax/_style/_add_marginal_ax.py +44 -0
  447. scitex/plt/ax/_style/_add_panel.py +92 -0
  448. scitex/plt/ax/_style/_extend.py +64 -0
  449. scitex/plt/ax/_style/_force_aspect.py +37 -0
  450. scitex/plt/ax/_style/_format_label.py +23 -0
  451. scitex/plt/ax/_style/_hide_spines.py +84 -0
  452. scitex/plt/ax/_style/_map_ticks.py +182 -0
  453. scitex/plt/ax/_style/_rotate_labels.py +215 -0
  454. scitex/plt/ax/_style/_sci_note.py +279 -0
  455. scitex/plt/ax/_style/_set_log_scale.py +299 -0
  456. scitex/plt/ax/_style/_set_meta.py +261 -0
  457. scitex/plt/ax/_style/_set_n_ticks.py +37 -0
  458. scitex/plt/ax/_style/_set_size.py +16 -0
  459. scitex/plt/ax/_style/_set_supxyt.py +116 -0
  460. scitex/plt/ax/_style/_set_ticks.py +276 -0
  461. scitex/plt/ax/_style/_set_xyt.py +121 -0
  462. scitex/plt/ax/_style/_share_axes.py +264 -0
  463. scitex/plt/ax/_style/_shift.py +139 -0
  464. scitex/plt/ax/_style/_show_spines.py +333 -0
  465. scitex/plt/color/_PARAMS.py +70 -0
  466. scitex/plt/color/__init__.py +52 -0
  467. scitex/plt/color/_add_hue_col.py +41 -0
  468. scitex/plt/color/_colors.py +205 -0
  469. scitex/plt/color/_get_colors_from_cmap.py +134 -0
  470. scitex/plt/color/_interpolate.py +29 -0
  471. scitex/plt/color/_vizualize_colors.py +54 -0
  472. scitex/plt/utils/__init__.py +44 -0
  473. scitex/plt/utils/_calc_bacc_from_conf_mat.py +46 -0
  474. scitex/plt/utils/_calc_nice_ticks.py +101 -0
  475. scitex/plt/utils/_close.py +68 -0
  476. scitex/plt/utils/_colorbar.py +96 -0
  477. scitex/plt/utils/_configure_mpl.py +295 -0
  478. scitex/plt/utils/_histogram_utils.py +132 -0
  479. scitex/plt/utils/_im2grid.py +70 -0
  480. scitex/plt/utils/_is_valid_axis.py +78 -0
  481. scitex/plt/utils/_mk_colorbar.py +65 -0
  482. scitex/plt/utils/_mk_patches.py +26 -0
  483. scitex/plt/utils/_scientific_captions.py +638 -0
  484. scitex/plt/utils/_scitex_config.py +223 -0
  485. scitex/reproduce/__init__.py +14 -0
  486. scitex/reproduce/_fix_seeds.py +45 -0
  487. scitex/reproduce/_gen_ID.py +55 -0
  488. scitex/reproduce/_gen_timestamp.py +35 -0
  489. scitex/res/__init__.py +5 -0
  490. scitex/resource/__init__.py +13 -0
  491. scitex/resource/_get_processor_usages.py +281 -0
  492. scitex/resource/_get_specs.py +280 -0
  493. scitex/resource/_log_processor_usages.py +190 -0
  494. scitex/resource/_utils/__init__.py +31 -0
  495. scitex/resource/_utils/_get_env_info.py +481 -0
  496. scitex/resource/limit_ram.py +33 -0
  497. scitex/scholar/__init__.py +24 -0
  498. scitex/scholar/_local_search.py +454 -0
  499. scitex/scholar/_paper.py +244 -0
  500. scitex/scholar/_pdf_downloader.py +325 -0
  501. scitex/scholar/_search.py +393 -0
  502. scitex/scholar/_vector_search.py +370 -0
  503. scitex/scholar/_web_sources.py +457 -0
  504. scitex/stats/__init__.py +31 -0
  505. scitex/stats/_calc_partial_corr.py +17 -0
  506. scitex/stats/_corr_test_multi.py +94 -0
  507. scitex/stats/_corr_test_wrapper.py +115 -0
  508. scitex/stats/_describe_wrapper.py +90 -0
  509. scitex/stats/_multiple_corrections.py +63 -0
  510. scitex/stats/_nan_stats.py +93 -0
  511. scitex/stats/_p2stars.py +116 -0
  512. scitex/stats/_p2stars_wrapper.py +56 -0
  513. scitex/stats/_statistical_tests.py +73 -0
  514. scitex/stats/desc/__init__.py +40 -0
  515. scitex/stats/desc/_describe.py +189 -0
  516. scitex/stats/desc/_nan.py +289 -0
  517. scitex/stats/desc/_real.py +94 -0
  518. scitex/stats/multiple/__init__.py +14 -0
  519. scitex/stats/multiple/_bonferroni_correction.py +72 -0
  520. scitex/stats/multiple/_fdr_correction.py +400 -0
  521. scitex/stats/multiple/_multicompair.py +28 -0
  522. scitex/stats/tests/__corr_test.py +277 -0
  523. scitex/stats/tests/__corr_test_multi.py +343 -0
  524. scitex/stats/tests/__corr_test_single.py +277 -0
  525. scitex/stats/tests/__init__.py +22 -0
  526. scitex/stats/tests/_brunner_munzel_test.py +192 -0
  527. scitex/stats/tests/_nocorrelation_test.py +28 -0
  528. scitex/stats/tests/_smirnov_grubbs.py +98 -0
  529. scitex/str/__init__.py +113 -0
  530. scitex/str/_clean_path.py +75 -0
  531. scitex/str/_color_text.py +52 -0
  532. scitex/str/_decapitalize.py +58 -0
  533. scitex/str/_factor_out_digits.py +281 -0
  534. scitex/str/_format_plot_text.py +498 -0
  535. scitex/str/_grep.py +48 -0
  536. scitex/str/_latex.py +155 -0
  537. scitex/str/_latex_fallback.py +471 -0
  538. scitex/str/_mask_api.py +39 -0
  539. scitex/str/_mask_api_key.py +8 -0
  540. scitex/str/_parse.py +158 -0
  541. scitex/str/_print_block.py +47 -0
  542. scitex/str/_print_debug.py +68 -0
  543. scitex/str/_printc.py +62 -0
  544. scitex/str/_readable_bytes.py +38 -0
  545. scitex/str/_remove_ansi.py +23 -0
  546. scitex/str/_replace.py +134 -0
  547. scitex/str/_search.py +125 -0
  548. scitex/str/_squeeze_space.py +36 -0
  549. scitex/tex/__init__.py +10 -0
  550. scitex/tex/_preview.py +103 -0
  551. scitex/tex/_to_vec.py +116 -0
  552. scitex/torch/__init__.py +18 -0
  553. scitex/torch/_apply_to.py +34 -0
  554. scitex/torch/_nan_funcs.py +77 -0
  555. scitex/types/_ArrayLike.py +44 -0
  556. scitex/types/_ColorLike.py +21 -0
  557. scitex/types/__init__.py +14 -0
  558. scitex/types/_is_listed_X.py +70 -0
  559. scitex/utils/__init__.py +22 -0
  560. scitex/utils/_compress_hdf5.py +116 -0
  561. scitex/utils/_email.py +120 -0
  562. scitex/utils/_grid.py +148 -0
  563. scitex/utils/_notify.py +247 -0
  564. scitex/utils/_search.py +121 -0
  565. scitex/web/__init__.py +38 -0
  566. scitex/web/_search_pubmed.py +438 -0
  567. scitex/web/_summarize_url.py +158 -0
  568. scitex-2.0.0.dist-info/METADATA +307 -0
  569. scitex-2.0.0.dist-info/RECORD +572 -0
  570. scitex-2.0.0.dist-info/WHEEL +6 -0
  571. scitex-2.0.0.dist-info/licenses/LICENSE +7 -0
  572. scitex-2.0.0.dist-info/top_level.txt +1 -0
scitex/gen/path.py ADDED
File without changes
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env python3
2
+ """Scitex general - general utilities (currently empty)."""
3
+
4
+ # This module is currently empty but preserved for compatibility
5
+ __all__ = []
@@ -0,0 +1,128 @@
1
+ def sigmacro_process_figure_s():
2
+ """Print a macro for SigmaPlot (v12.0) to format a panel.
3
+
4
+ Please refer to the 'Automating Routine Tasks' section of the official documentation.
5
+ """
6
+ print(
7
+ """
8
+ Option Explicit
9
+
10
+ ' Constants for FLAG_SET_BIT and FLAG_CLEAR_BIT should be defined
11
+ Const FLAG_SET_BIT As Long = 1 ' Assuming value, replace with actual value
12
+ Const FLAG_CLEAR_BIT As Long = 0 ' Assuming value, replace with actual value
13
+
14
+ ' Function to set option flag bits on
15
+ Function FlagOn(flag As Long) As Long
16
+ FlagOn = flag Or FLAG_SET_BIT
17
+ End Function
18
+
19
+ ' Function to set option flag bits off
20
+ Function FlagOff(flag As Long) As Long
21
+ FlagOff = flag And Not FLAG_CLEAR_BIT
22
+ End Function
23
+
24
+ ' Procedure to set the title size to 8 points
25
+ Sub setTitleSize()
26
+ ActiveDocument.CurrentPageItem.GraphPages(0).CurrentPageObject(GPT_GRAPH).NameObject.SetObjectCurrent
27
+ ActiveDocument.CurrentPageItem.SetCurrentObjectAttribute(GPM_SETOBJECTATTR, STA_SIZE, "111") ' Size set to 8 points
28
+ End Sub
29
+
30
+ ' Procedure to set label size for a given dimension to 8 points
31
+ Sub setLabelSize(dimension)
32
+ ' ActiveDocument.CurrentPageItem.GraphPages(0).CurrentPageObject(GPT_GRAPH).NameObject.SetObjectCurrent
33
+ ActiveDocument.CurrentPageItem.GraphPages(0).CurrentPageObject(GPT_AXIS).NameObject.SetObjectCurrent
34
+ ActiveDocument.CurrentPageItem.SetCurrentObjectAttribute(GPM_SETPLOTATTR, SLA_SELECTDIM, dimension)
35
+ ActiveDocument.CurrentPageItem.SetCurrentObjectAttribute(GPM_SETOBJECTATTR, STA_SIZE, "111") ' Size set to 8 points
36
+ End Sub
37
+
38
+ ' Procedure to set tick label size for a given dimension to 7 points
39
+ Sub setTickLabelSize(dimension)
40
+ ActiveDocument.CurrentPageItem.GraphPages(0).CurrentPageObject(GPT_GRAPH).NameObject.SetObjectCurrent
41
+ ActiveDocument.CurrentPageItem.SetCurrentObjectAttribute(GPM_SETPLOTATTR, SLA_SELECTDIM, dimension)
42
+ ActiveDocument.CurrentPageItem.GraphPages(0).CurrentPageObject(GPT_AXIS).TickLabelAttributes(SAA_LINE_MAJORTIC).SetObjectCurrent
43
+ ActiveDocument.CurrentPageItem.SetCurrentObjectAttribute(GPM_SETOBJECTATTR, STA_SIZE, "97") ' Size set to 7 points
44
+ End Sub
45
+
46
+ ' Procedure to process tick settings for a given dimension
47
+ Sub processTicks(dimension)
48
+ ' Ensure the object is correctly targeted before setting attributes
49
+ ActiveDocument.CurrentPageItem.GraphPages(0).CurrentPageObject(GPT_AXIS).NameObject.SetObjectCurrent
50
+ ActiveDocument.CurrentPageItem.SetCurrentObjectAttribute(GPM_SETPLOTATTR, SLA_SELECTDIM, dimension)
51
+ ActiveDocument.CurrentPageItem.SetCurrentObjectAttribute(GPM_SETAXISATTR, SAA_SELECTLINE, 1)
52
+ ActiveDocument.CurrentPageItem.SetCurrentObjectAttribute(GPM_SETAXISATTR, SEA_THICKNESS, &H00000008)
53
+ ActiveDocument.CurrentPageItem.SetCurrentObjectAttribute(GPM_SETAXISATTR, SAA_TICSIZE, &H00000020)
54
+ ActiveDocument.CurrentPageItem.SetCurrentObjectAttribute(GPM_SETAXISATTR, SAA_SELECTLINE, 2)
55
+ ActiveDocument.CurrentPageItem.SetCurrentObjectAttribute(GPM_SETAXISATTR, SEA_THICKNESS, &H00000008)
56
+ ActiveDocument.CurrentPageItem.SetCurrentObjectAttribute(GPM_SETAXISATTR, SAA_TICSIZE, &H00000020)
57
+ End Sub
58
+
59
+ ' Procedure to remove an axis for a given dimension
60
+ Sub removeAxis(dimension)
61
+ ActiveDocument.CurrentPageItem.SetCurrentObjectAttribute(GPM_SETPLOTATTR, SLA_SELECTDIM, dimension)
62
+ ActiveDocument.CurrentPageItem.SetCurrentObjectAttribute(GPM_SETAXISATTR, SAA_SUB2OPTIONS, &H00000000)
63
+ End Sub
64
+
65
+ Sub resizeFigure
66
+ ActiveDocument.CurrentPageItem.GraphPages(0).CurrentPageObject(GPT_GRAPH).NameObject.SetObjectCurrent
67
+ With ActiveDocument.CurrentPageItem.GraphPages(0).CurrentPageObject(GPT_GRAPH)
68
+ '.Top = 0
69
+ '.Left = 0
70
+ .Width = &H000004F5&
71
+ .Height = &H00000378&
72
+ End With
73
+ End Sub
74
+
75
+ ' Main procedure
76
+ Sub Main()
77
+ Dim FullPATH As String
78
+ Dim OrigPageName As String
79
+ Dim ObjectType As String
80
+ Dim COLOR As Long
81
+
82
+ ' Saves the original page to jump back
83
+ FullPATH = ActiveDocument.FullName
84
+ OrigPageName = ActiveDocument.CurrentPageItem.Name
85
+ ActiveDocument.NotebookItems(OrigPageName).IsCurrentBrowserEntry = True
86
+
87
+ ' Code to set the figure size should be implemented here
88
+ resizeFigure
89
+
90
+ ' Set the title sizes
91
+ setTitleSize
92
+
93
+ ' Set the sizes of X/Y labels
94
+ setLabelSize(1) ' X-axis
95
+ setLabelSize(2) ' Y-axis
96
+
97
+ ' Set the sizes of X/Y tick labels
98
+ setTickLabelSize(1) ' X-axis
99
+ setTickLabelSize(2) ' Y-axis
100
+
101
+ ' Set tick length and width
102
+ processTicks(1) ' X-axis
103
+ processTicks(2) ' Y-axis
104
+
105
+ ' Remove right and top axes
106
+ removeAxis(1) ' Right axis
107
+ removeAxis(2) ' Top axis
108
+
109
+ ' Go back to the original page
110
+ Notebooks(FullPATH).NotebookItems(OrigPageName).Open
111
+
112
+ End Sub
113
+ """
114
+ )
115
+
116
+
117
+ # Backward compatibility alias
118
+ import warnings
119
+
120
+
121
+ def SigMacro_processFigure_S():
122
+ """Deprecated: Use sigmacro_process_figure_s() instead."""
123
+ warnings.warn(
124
+ "SigMacro_processFigure_S is deprecated, use sigmacro_process_figure_s() instead",
125
+ DeprecationWarning,
126
+ stacklevel=2
127
+ )
128
+ return sigmacro_process_figure_s()
@@ -0,0 +1,172 @@
1
+ def sigmacro_to_blue():
2
+ """Print a macro for SigmaPlot (v12.0) that changes the color and style of the selected object.
3
+
4
+ Please refer to the 'Automating Routine Tasks' section of the official documentation.
5
+ """
6
+ print(
7
+ """
8
+ Option Explicit
9
+
10
+ Function FlagOn(flag As Long) As Long
11
+ FlagOn = flag Or FLAG_SET_BIT ' Use to set option flag bits on, leaving others unchanged
12
+ End Function
13
+
14
+ Function FlagOff(flag As Long) As Long
15
+ FlagOff = flag Or FLAG_CLEAR_BIT ' Use to set option flag bits off, leaving others unchanged
16
+ End Function
17
+
18
+ Function getColor(colorName As String) As Long
19
+ Select Case colorName
20
+
21
+ Case "Black"
22
+ getColor = RGB(0, 0, 0)
23
+ Case "Gray"
24
+ getColor = RGB(128, 128, 128)
25
+ Case "White"
26
+ getColor = RGB(255, 255, 255)
27
+
28
+
29
+ Case "Blue"
30
+ getColor = RGB(0, 128, 192)
31
+ Case "Green"
32
+ getColor = RGB(20, 180, 20)
33
+ Case "Red"
34
+ getColor = RGB(255, 70, 50)
35
+
36
+
37
+ Case "Yellow"
38
+ getColor = RGB(230, 160, 20)
39
+ Case "Purple"
40
+ getColor = RGB(200, 50, 255)
41
+
42
+
43
+ Case "Pink"
44
+ getColor = RGB(255, 150, 200)
45
+ Case "LightBlue"
46
+ getColor = RGB(20, 200, 200)
47
+
48
+
49
+ Case "DarkBlue"
50
+ getColor = RGB(0, 0, 100)
51
+ Case "Dan"
52
+ getColor = RGB(228, 94, 50)
53
+ Case "Brown"
54
+ getColor = RGB(128, 0, 0)
55
+
56
+ Case Else
57
+ ' Default or error handling
58
+ getColor = RGB(0, 0, 0) ' Returning black as default or for an unrecognized color
59
+ End Select
60
+ End Function
61
+
62
+
63
+ Sub updatePlot(COLOR As Long)
64
+ ActiveDocument.CurrentPageItem.GraphPages(0).CurrentPageObject(GPT_GRAPH).NameObject.SetObjectCurrent
65
+ ActiveDocument.CurrentPageItem.SetCurrentObjectAttribute(GPM_SETPLOTATTR, SEA_COLOR, COLOR)
66
+ ActiveDocument.CurrentPageItem.SetCurrentObjectAttribute(GPM_SETPLOTATTR, SEA_COLORREPEAT, &H00000002&)
67
+ ActiveDocument.CurrentPageItem.SetCurrentObjectAttribute(GPM_SETPLOTATTR, SEA_THICKNESS, &H00000005&) ' .12 mm = .047 Inches
68
+ End Sub
69
+
70
+ Sub updateScatter(COLOR As Long)
71
+ ActiveDocument.CurrentPageItem.GraphPages(0).CurrentPageObject(GPT_GRAPH).NameObject.SetObjectCurrent
72
+ ActiveDocument.CurrentPageItem.SetCurrentObjectAttribute(GPM_SETPLOTATTR, SSA_EDGECOLOR, COLOR)
73
+ ActiveDocument.CurrentPageItem.SetCurrentObjectAttribute(GPM_SETPLOTATTR, SSA_COLOR, COLOR)
74
+ ActiveDocument.CurrentPageItem.SetCurrentObjectAttribute(GPM_SETPLOTATTR, SSA_COLORREPEAT, &H00000002&)
75
+ ActiveDocument.CurrentPageItem.SetCurrentObjectAttribute(GPM_SETPLOTATTR, SSA_SIZE, &H00000020&) ' .8 mm = .032 inch
76
+ ' fixme scattersize=0.032 Innches
77
+ End Sub
78
+ Sub updateSolid(COLOR As Long)
79
+ ActiveDocument.CurrentPageItem.GraphPages(0).CurrentPageObject(GPT_GRAPH).NameObject.SetObjectCurrent
80
+ ActiveDocument.CurrentPageItem.SetCurrentObjectAttribute(GPM_SETPLOTATTR, SDA_COLOR, COLOR)
81
+ ActiveDocument.CurrentPageItem.SetCurrentObjectAttribute(GPM_SETPLOTATTR, SDA_COLORREPEAT, &H00000002&)
82
+ End Sub
83
+
84
+
85
+
86
+ Function findObjectType() As String
87
+ On Error GoTo ErrorHandler
88
+
89
+ Dim ObjectType As Variant
90
+ Dim object_type As Variant
91
+ object_type = ActiveDocument.CurrentPageItem.GraphPages(0).CurrentPageObject(GPT_GRAPH).Plots(0).GetAttribute(SLA_TYPE, ObjectType)
92
+
93
+ If object_type = False Then
94
+ findObjectType = "Error: Failed to get object type."
95
+ Exit Function
96
+ End If
97
+
98
+ ' Map the ObjectType to a string
99
+ Select Case object_type
100
+ Case SLA_TYPE_SCATTER
101
+ findObjectType = "Scatter/Line"
102
+ Case SLA_TYPE_BAR
103
+ findObjectType = "Bar"
104
+ Case SLA_TYPE_STACKED
105
+ findObjectType = "Stacked Bar"
106
+ Case SLA_TYPE_TUKEY
107
+ findObjectType = "Box"
108
+ Case SLA_TYPE_3DSCATTER
109
+ findObjectType = "3D Scatter/Line"
110
+ Case Else
111
+ findObjectType = "Unknown Object Type: " & object_type
112
+ End Select
113
+ Exit Function
114
+
115
+ ErrorHandler:
116
+ findObjectType = "An error has occurred: " & Err.Description
117
+ End Function
118
+
119
+ Sub Main()
120
+ On Error GoTo ErrorHandler
121
+
122
+ Dim FullPATH As String
123
+ Dim OrigPageName As String
124
+ Dim ObjectType As String
125
+ Dim COLOR As Long
126
+
127
+ ' Remember the original page
128
+ FullPATH = ActiveDocument.FullName
129
+ OrigPageName = ActiveDocument.CurrentPageItem.Name
130
+ ActiveDocument.NotebookItems(OrigPageName).IsCurrentBrowserEntry = True
131
+
132
+ ' Get the color value for blue
133
+ COLOR = getColor("Blue")
134
+
135
+ ' Find the type of the object
136
+ ObjectType = findObjectType()
137
+
138
+ ' Check the object type and call the corresponding update function
139
+ If ObjectType = "Scatter/Line" Or ObjectType = "3D Scatter/Line" Then
140
+ updatePlot COLOR
141
+ updateScatter COLOR
142
+ ElseIf ObjectType = "Bar" Or ObjectType = "Stacked Bar" Or ObjectType = "Box" Then
143
+ updateSolid COLOR
144
+ Else
145
+ ' Raise a custom error
146
+ Err.Raise vbObjectError + 513, "Main", "Unknown or unsupported object type: " & ObjectType
147
+ End If
148
+
149
+ ' Go back to the original page
150
+ Notebooks(FullPATH).NotebookItems(OrigPageName).Open
151
+
152
+ Exit Sub
153
+
154
+ ErrorHandler:
155
+ MsgBox "An error has occurred: " & Err.Description
156
+ End Sub
157
+ """
158
+ )
159
+
160
+
161
+ # Backward compatibility alias
162
+ import warnings
163
+
164
+
165
+ def SigMacro_toBlue():
166
+ """Deprecated: Use sigmacro_to_blue() instead."""
167
+ warnings.warn(
168
+ "SigMacro_toBlue is deprecated, use sigmacro_to_blue() instead",
169
+ DeprecationWarning,
170
+ stacklevel=2
171
+ )
172
+ return sigmacro_to_blue()
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env python3
2
+ """Scitex gists module."""
3
+
4
+ from ._SigMacro_processFigure_S import SigMacro_processFigure_S, sigmacro_process_figure_s
5
+ from ._SigMacro_toBlue import SigMacro_toBlue, sigmacro_to_blue
6
+
7
+ __all__ = [
8
+ "SigMacro_processFigure_S",
9
+ "SigMacro_toBlue",
10
+ "sigmacro_process_figure_s",
11
+ "sigmacro_to_blue",
12
+ ]
@@ -0,0 +1,292 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # Timestamp: "2025-06-14 18:05:18 (ywatanabe)"
4
+ # File: /ssh:sp:/home/ywatanabe/proj/SciTeX-Code/src/scitex/io/_H5Explorer.py
5
+ # ----------------------------------------
6
+ import os
7
+ __FILE__ = (
8
+ "./src/scitex/io/_H5Explorer.py"
9
+ )
10
+ __DIR__ = os.path.dirname(__FILE__)
11
+ # ----------------------------------------
12
+ import warnings
13
+
14
+ # Time-stamp: "2025-06-13 21:00:00 (ywatanabe)"
15
+
16
+ """HDF5 file explorer for interactive data inspection."""
17
+
18
+ from typing import Any, Dict, List, Optional
19
+
20
+ import h5py
21
+ import numpy as np
22
+
23
+
24
+ class H5Explorer:
25
+ """Interactive HDF5 file explorer.
26
+
27
+ This class provides convenient methods to explore HDF5 files,
28
+ inspect their structure, and load data.
29
+
30
+ Example:
31
+ >>> explorer = H5Explorer('data.h5')
32
+ >>> explorer.explore() # Display file structure
33
+ >>> data = explorer.load('group1/dataset1') # Load specific dataset
34
+ >>> explorer.close()
35
+ """
36
+
37
+ def __init__(self, filepath: str, mode: str = "r"):
38
+ """Initialize H5Explorer.
39
+
40
+ Args:
41
+ filepath: Path to HDF5 file
42
+ mode: File opening mode ('r' for read, 'r+' for read/write)
43
+ """
44
+ self.filepath = filepath
45
+ self.mode = mode
46
+ self.file = h5py.File(filepath, mode)
47
+
48
+ def __enter__(self):
49
+ """Context manager entry."""
50
+ return self
51
+
52
+ def __exit__(self, exc_type, exc_val, exc_tb):
53
+ """Context manager exit."""
54
+ self.close()
55
+
56
+ def close(self):
57
+ """Close the HDF5 file."""
58
+ if hasattr(self, "file") and self.file:
59
+ self.file.close()
60
+
61
+ def explore(
62
+ self, path: str = "/", max_depth: Optional[int] = None
63
+ ) -> None:
64
+ """Explore HDF5 file structure interactively."""
65
+ self.show(path, max_depth)
66
+
67
+ def show(
68
+ self,
69
+ path: str = "/",
70
+ max_depth: Optional[int] = None,
71
+ indent: str = "",
72
+ _current_depth: int = 0,
73
+ ) -> None:
74
+ """Display HDF5 file structure.
75
+
76
+ Args:
77
+ path: Starting path in HDF5 file
78
+ max_depth: Maximum depth to explore (None for unlimited)
79
+ indent: Indentation string (used internally)
80
+ _current_depth: Current depth (used internally)
81
+ """
82
+ if max_depth is not None and _current_depth > max_depth:
83
+ return
84
+
85
+ item = self.file[path] if path != "/" else self.file
86
+
87
+ if isinstance(item, h5py.Group):
88
+ if path != "/":
89
+ print(f"{indent}[{path.split('/')[-1]}]")
90
+ for key in sorted(item.keys()):
91
+ subpath = f"{path}/{key}".replace("//", "/")
92
+ self.show(
93
+ subpath, max_depth, indent + " ", _current_depth + 1
94
+ )
95
+ elif isinstance(item, h5py.Dataset):
96
+ name = path.split("/")[-1]
97
+ shape = item.shape
98
+ dtype = item.dtype
99
+ size = item.size
100
+ print(f"{indent}{name}: shape={shape}, dtype={dtype}, size={size}")
101
+
102
+ def keys(self, path: str = "/") -> List[str]:
103
+ """Get keys at specified path.
104
+
105
+ Args:
106
+ path: Path in HDF5 file
107
+
108
+ Returns:
109
+ List of keys at the specified path
110
+ """
111
+ item = self.file[path] if path != "/" else self.file
112
+ if isinstance(item, h5py.Group):
113
+ return list(item.keys())
114
+ return []
115
+
116
+ def load(self, path: str) -> Any:
117
+ """Load data from specified path.
118
+
119
+ Args:
120
+ path: Path to dataset or group in HDF5 file
121
+
122
+ Returns:
123
+ Data from the specified path
124
+ """
125
+ item = self.file[path]
126
+
127
+ if isinstance(item, h5py.Dataset):
128
+ data = item[()]
129
+ # Decode bytes to string if needed
130
+ if isinstance(data, bytes):
131
+ return data.decode("utf-8")
132
+ # Handle pickled objects (stored as np.void)
133
+ elif isinstance(data, np.void):
134
+ import pickle
135
+ return pickle.loads(data.tobytes())
136
+ return data
137
+ elif isinstance(item, h5py.Group):
138
+ # Load group as dictionary
139
+ result = {}
140
+ for key in item.keys():
141
+ result[key] = self.load(f"{path}/{key}".replace("//", "/"))
142
+ # Also load attributes
143
+ for key in item.attrs.keys():
144
+ result[f"_attr_{key}"] = item.attrs[key]
145
+ return result
146
+ else:
147
+ return item
148
+
149
+ def get(self, path: str) -> Any:
150
+ """Alias for load() method for compatibility.
151
+
152
+ Args:
153
+ path: Path to dataset or group in HDF5 file
154
+
155
+ Returns:
156
+ Data from the specified path
157
+ """
158
+ return self.load(path)
159
+
160
+ def get_info(self, path: str = "/") -> Dict[str, Any]:
161
+ """Get information about an item.
162
+
163
+ Args:
164
+ path: Path to item in HDF5 file
165
+
166
+ Returns:
167
+ Dictionary with item information
168
+ """
169
+ item = self.file[path] if path != "/" else self.file
170
+
171
+ info = {
172
+ "path": path,
173
+ "type": type(item).__name__,
174
+ }
175
+
176
+ if isinstance(item, h5py.Dataset):
177
+ info.update(
178
+ {
179
+ "shape": item.shape,
180
+ "dtype": str(item.dtype),
181
+ "size": item.size,
182
+ "compression": item.compression,
183
+ "chunks": item.chunks,
184
+ }
185
+ )
186
+ elif isinstance(item, h5py.Group):
187
+ info["n_items"] = len(item.keys())
188
+ info["keys"] = list(item.keys())
189
+
190
+ # Add attributes
191
+ if hasattr(item, "attrs") and len(item.attrs) > 0:
192
+ info["attributes"] = dict(item.attrs)
193
+
194
+ return info
195
+
196
+ def find(self, pattern: str, path: str = "/") -> List[str]:
197
+ """Find items matching pattern.
198
+
199
+ Args:
200
+ pattern: Pattern to search for in item names
201
+ path: Starting path for search
202
+
203
+ Returns:
204
+ List of paths matching the pattern
205
+ """
206
+ matches = []
207
+
208
+ def _search(current_path):
209
+ item = (
210
+ self.file[current_path] if current_path != "/" else self.file
211
+ )
212
+
213
+ if isinstance(item, h5py.Group):
214
+ for key in item.keys():
215
+ subpath = f"{current_path}/{key}".replace("//", "/")
216
+ if pattern.lower() in key.lower():
217
+ matches.append(subpath)
218
+ _search(subpath)
219
+ elif pattern.lower() in current_path.split("/")[-1].lower():
220
+ matches.append(current_path)
221
+
222
+ _search(path)
223
+ return matches
224
+
225
+ def get_shape(self, path: str) -> Optional[tuple]:
226
+ """Get shape of a dataset.
227
+
228
+ Args:
229
+ path: Path to dataset
230
+
231
+ Returns:
232
+ Shape tuple or None if not a dataset
233
+ """
234
+ item = self.file[path]
235
+ if isinstance(item, h5py.Dataset):
236
+ return item.shape
237
+ return None
238
+
239
+ def get_dtype(self, path: str) -> Optional[np.dtype]:
240
+ """Get dtype of a dataset.
241
+
242
+ Args:
243
+ path: Path to dataset
244
+
245
+ Returns:
246
+ Numpy dtype or None if not a dataset
247
+ """
248
+ item = self.file[path]
249
+ if isinstance(item, h5py.Dataset):
250
+ return item.dtype
251
+ return None
252
+
253
+
254
+ # Convenience function
255
+
256
+
257
+ def explore_h5(filepath: str) -> None:
258
+ """Explore HDF5 file structure.
259
+
260
+ Args:
261
+ filepath: Path to HDF5 file
262
+ """
263
+ if os.path.exists(filepath):
264
+ explorer = H5Explorer(filepath)
265
+ explorer.explore()
266
+ explorer.close()
267
+ else:
268
+ warnings.warn(f"Warning: File does not exist: {filepath}")
269
+
270
+
271
+ def has_h5_key(h5_path, key):
272
+ """Check if key exists in HDF5 file."""
273
+ h5_path = os.path.realpath(h5_path)
274
+
275
+ if not os.path.exists(h5_path):
276
+ return False
277
+
278
+ try:
279
+ with h5py.File(h5_path, "r") as h5_file:
280
+ parts = key.split("/")
281
+ current = h5_file
282
+ for part in parts:
283
+ if part in current:
284
+ current = current[part]
285
+ else:
286
+ return False
287
+ return True
288
+
289
+ except (KeyError, FileNotFoundError, OSError):
290
+ return False
291
+
292
+ # EOF
scitex/io/__init__.py ADDED
@@ -0,0 +1,82 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # Timestamp: "2025-06-14 16:00:50 (ywatanabe)"
4
+ # File: /ssh:sp:/home/ywatanabe/proj/SciTeX-Code/src/scitex/io/__init__.py
5
+ # ----------------------------------------
6
+ import os
7
+ __FILE__ = (
8
+ "./src/scitex/io/__init__.py"
9
+ )
10
+ __DIR__ = os.path.dirname(__FILE__)
11
+ # ----------------------------------------
12
+ """Scitex IO module with lazy imports to avoid circular dependencies."""
13
+
14
+ # Import commonly used functions directly
15
+ from ._save import save
16
+ from ._load import load
17
+ from ._load_configs import load_configs
18
+ from ._glob import glob, parse_glob
19
+ from ._reload import reload
20
+ from ._flush import flush
21
+ from ._cache import cache
22
+ from ._H5Explorer import H5Explorer, explore_h5, has_h5_key
23
+
24
+ # Import save module functions
25
+ try:
26
+ from ._save_modules import (
27
+ save_image,
28
+ save_text,
29
+ save_mp4,
30
+ save_listed_dfs_as_csv,
31
+ save_listed_scalars_as_csv,
32
+ save_optuna_study_as_csv_and_pngs,
33
+ )
34
+ except ImportError as e:
35
+ # Fallback for missing functions
36
+ save_image = None
37
+ save_text = None
38
+ save_mp4 = None
39
+ save_listed_dfs_as_csv = None
40
+ save_listed_scalars_as_csv = None
41
+ save_optuna_study_as_csv_and_pngs = None
42
+
43
+ # Optional imports that might fail
44
+ try:
45
+ from ._path import path
46
+ except ImportError:
47
+ path = None
48
+
49
+ try:
50
+ from ._mv_to_tmp import mv_to_tmp
51
+ except ImportError:
52
+ mv_to_tmp = None
53
+
54
+ try:
55
+ from ._json2md import json2md
56
+ except ImportError:
57
+ json2md = None
58
+
59
+ __all__ = [
60
+ "save",
61
+ "load",
62
+ "load_configs",
63
+ "glob",
64
+ "parse_glob",
65
+ "reload",
66
+ "flush",
67
+ "cache",
68
+ "H5Explorer",
69
+ "explore_h5",
70
+ "has_h5_key",
71
+ "path",
72
+ "mv_to_tmp",
73
+ "json2md",
74
+ "save_image",
75
+ "save_text",
76
+ "save_mp4",
77
+ "save_listed_dfs_as_csv",
78
+ "save_listed_scalars_as_csv",
79
+ "save_optuna_study_as_csv_and_pngs",
80
+ ]
81
+
82
+ # EOF