scitex 2.1.3__py3-none-any.whl → 2.3.0__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 (1325) hide show
  1. scitex/__init__.py +90 -10
  2. scitex/__main__.py +0 -110
  3. scitex/__version__.py +1 -1
  4. scitex/_optional_deps.py +0 -0
  5. scitex/ai/_gen_ai/_BaseGenAI.py +1 -1
  6. scitex/ai/classification/examples/timeseries_cv_demo.py +0 -0
  7. scitex/ai/classification/reporters/_ClassificationReporter.py +1 -1
  8. scitex/ai/classification/reporters/__init__.py +0 -0
  9. scitex/ai/classification/reporters/reporter_utils/__init__.py +0 -0
  10. scitex/ai/classification/reporters/reporter_utils/aggregation.py +0 -0
  11. scitex/ai/classification/reporters/reporter_utils/data_models.py +0 -0
  12. scitex/ai/classification/reporters/reporter_utils/reporting.py +0 -0
  13. scitex/ai/classification/reporters/reporter_utils/validation.py +0 -0
  14. scitex/ai/classification/timeseries/_TimeSeriesBlockingSplit.py +2 -2
  15. scitex/ai/classification/timeseries/_TimeSeriesCalendarSplit.py +2 -2
  16. scitex/ai/classification/timeseries/_TimeSeriesSlidingWindowSplit.py +6 -6
  17. scitex/ai/classification/timeseries/_TimeSeriesSlidingWindowSplit_v01-not-using-n_splits.py +6 -6
  18. scitex/ai/classification/timeseries/_TimeSeriesStratifiedSplit.py +2 -2
  19. scitex/ai/classification/timeseries/_normalize_timestamp.py +1 -1
  20. scitex/ai/feature_extraction/vit.py +1 -1
  21. scitex/ai/feature_selection/__init__.py +0 -0
  22. scitex/ai/feature_selection/feature_selection.py +0 -0
  23. scitex/ai/loss/multi_task_loss.py +1 -1
  24. scitex/ai/metrics/_calc_bacc.py +0 -0
  25. scitex/ai/metrics/_calc_bacc_from_conf_mat.py +0 -0
  26. scitex/ai/metrics/_calc_clf_report.py +0 -0
  27. scitex/ai/metrics/_calc_conf_mat.py +0 -0
  28. scitex/ai/metrics/_calc_feature_importance.py +0 -0
  29. scitex/ai/metrics/_calc_mcc.py +0 -0
  30. scitex/ai/metrics/_calc_pre_rec_auc.py +0 -0
  31. scitex/ai/metrics/_calc_roc_auc.py +0 -0
  32. scitex/ai/metrics/_calc_seizure_prediction_metrics.py +1 -1
  33. scitex/ai/metrics/_normalize_labels.py +0 -0
  34. scitex/ai/plt/_plot_conf_mat.py +1 -1
  35. scitex/ai/plt/_plot_feature_importance.py +1 -1
  36. scitex/ai/plt/_plot_learning_curve.py +1 -1
  37. scitex/ai/plt/_plot_optuna_study.py +1 -1
  38. scitex/ai/plt/_plot_pre_rec_curve.py +1 -1
  39. scitex/ai/plt/_plot_roc_curve.py +1 -1
  40. scitex/ai/sampling/undersample.py +1 -1
  41. scitex/ai/training/_LearningCurveLogger.py +1 -1
  42. scitex/benchmark/__init__.py +3 -3
  43. scitex/benchmark/benchmark.py +0 -0
  44. scitex/benchmark/monitor.py +0 -0
  45. scitex/benchmark/profiler.py +0 -0
  46. scitex/browser/__init__.py +0 -0
  47. scitex/browser/automation/CookieHandler.py +1 -1
  48. scitex/browser/automation/__init__.py +0 -0
  49. scitex/browser/collaboration/__init__.py +0 -0
  50. scitex/browser/collaboration/auth_helpers.py +0 -0
  51. scitex/browser/collaboration/collaborative_agent.py +0 -0
  52. scitex/browser/collaboration/credential_manager.py +0 -0
  53. scitex/browser/collaboration/interactive_panel.py +0 -0
  54. scitex/browser/collaboration/persistent_browser.py +0 -0
  55. scitex/browser/collaboration/shared_session.py +0 -0
  56. scitex/browser/collaboration/standard_interactions.py +0 -0
  57. scitex/browser/collaboration/visual_feedback.py +0 -0
  58. scitex/browser/core/BrowserMixin.py +1 -1
  59. scitex/browser/core/ChromeProfileManager.py +1 -1
  60. scitex/browser/core/__init__.py +0 -0
  61. scitex/browser/debugging/_browser_logger.py +1 -1
  62. scitex/browser/debugging/_highlight_element.py +1 -1
  63. scitex/browser/debugging/_show_grid.py +1 -1
  64. scitex/browser/interaction/click_center.py +1 -1
  65. scitex/browser/interaction/click_with_fallbacks.py +1 -1
  66. scitex/browser/interaction/close_popups.py +1 -1
  67. scitex/browser/interaction/fill_with_fallbacks.py +1 -1
  68. scitex/browser/pdf/__init__.py +0 -0
  69. scitex/browser/pdf/click_download_for_chrome_pdf_viewer.py +1 -1
  70. scitex/browser/pdf/detect_chrome_pdf_viewer.py +1 -1
  71. scitex/browser/remote/CaptchaHandler.py +0 -0
  72. scitex/browser/remote/ZenRowsAPIClient.py +0 -0
  73. scitex/browser/remote/__init__.py +0 -0
  74. scitex/browser/stealth/HumanBehavior.py +1 -1
  75. scitex/browser/stealth/StealthManager.py +1 -1
  76. scitex/browser/stealth/__init__.py +0 -0
  77. scitex/cli/__init__.py +0 -0
  78. scitex/cli/cloud.py +200 -9
  79. scitex/cli/main.py +139 -10
  80. scitex/cli/scholar.py +0 -0
  81. scitex/cli/security.py +109 -0
  82. scitex/cli/web.py +409 -0
  83. scitex/cli/writer.py +270 -0
  84. scitex/cloud/__init__.py +131 -0
  85. scitex/cloud/_matplotlib_hook.py +146 -0
  86. scitex/db/_delete_duplicates.py +1 -1
  87. scitex/db/_inspect_optimized.py +0 -0
  88. scitex/db/_postgresql/_PostgreSQL.py +1 -1
  89. scitex/db/_sqlite3/_SQLite3.py +1 -1
  90. scitex/decorators/__init__.py +9 -0
  91. scitex/dict/_DotDict.py +65 -138
  92. scitex/dict/__init__.py +1 -0
  93. scitex/dict/_flatten.py +2 -10
  94. scitex/dict/_listed_dict.py +2 -3
  95. scitex/dict/_pop_keys.py +2 -3
  96. scitex/dict/_replace.py +1 -3
  97. scitex/dict/_safe_merge.py +6 -16
  98. scitex/dict/_to_str.py +6 -3
  99. scitex/dsp/_demo_sig.py +1 -1
  100. scitex/dsp/_detect_ripples.py +1 -1
  101. scitex/dsp/_ensure_3d.py +1 -1
  102. scitex/dsp/_hilbert.py +2 -2
  103. scitex/dsp/_misc.py +1 -1
  104. scitex/dsp/_modulation_index.py +2 -2
  105. scitex/dsp/_pac.py +3 -3
  106. scitex/dsp/_psd.py +2 -2
  107. scitex/dsp/_resample.py +1 -1
  108. scitex/dsp/_transform.py +1 -1
  109. scitex/dsp/_wavelet.py +2 -2
  110. scitex/dsp/add_noise.py +1 -1
  111. scitex/dsp/filt.py +6 -6
  112. scitex/dsp/norm.py +1 -1
  113. scitex/dsp/reference.py +1 -1
  114. scitex/dsp/utils/_differential_bandpass_filters.py +3 -3
  115. scitex/dsp/utils/_ensure_3d.py +1 -1
  116. scitex/dsp/utils/_zero_pad.py +1 -1
  117. scitex/dsp/utils/filter.py +2 -2
  118. scitex/dt/_normalize_timestamp.py +1 -1
  119. scitex/gen/_check_host.py +1 -1
  120. scitex/gen/_deprecated_close.py +3 -3
  121. scitex/gen/_deprecated_start.py +1 -1
  122. scitex/gen/_norm.py +2 -2
  123. scitex/gen/_norm_cache.py +1 -1
  124. scitex/gen/_symlink.py +1 -1
  125. scitex/gen/_to_rank.py +1 -1
  126. scitex/gen/_transpose.py +1 -1
  127. scitex/git/__init__.py +0 -0
  128. scitex/git/_branch.py +5 -3
  129. scitex/git/_clone.py +35 -6
  130. scitex/git/_commit.py +3 -2
  131. scitex/git/_constants.py +0 -0
  132. scitex/git/_init.py +0 -0
  133. scitex/git/_remote.py +1 -1
  134. scitex/git/_result.py +0 -0
  135. scitex/git/_retry.py +0 -0
  136. scitex/git/_session.py +1 -1
  137. scitex/git/_types.py +0 -0
  138. scitex/git/_utils.py +0 -0
  139. scitex/git/_validation.py +0 -0
  140. scitex/git/_workflow.py +1 -1
  141. scitex/io/README.md +65 -1
  142. scitex/io/__init__.py +12 -0
  143. scitex/io/_glob.py +1 -1
  144. scitex/io/_load.py +59 -9
  145. scitex/io/_load_cache.py +0 -0
  146. scitex/io/_load_configs.py +9 -4
  147. scitex/io/_load_modules/_image.py +48 -4
  148. scitex/io/_load_modules/_pdf.py +95 -32
  149. scitex/io/_load_modules/_sqlite3.py +1 -1
  150. scitex/io/_metadata.py +298 -0
  151. scitex/io/_path.py +2 -2
  152. scitex/io/_qr_utils.py +75 -0
  153. scitex/io/_save.py +211 -23
  154. scitex/io/_save_modules/_image.py +68 -16
  155. scitex/io/_save_modules/_tex.py +1 -1
  156. scitex/io/memo.md +2827 -0
  157. scitex/io/utils/h5_to_zarr.py +1 -1
  158. scitex/linalg/_distance.py +2 -2
  159. scitex/linalg/_geometric_median.py +1 -1
  160. scitex/logging/README.md +1 -1
  161. scitex/logging/_Tee.py +2 -2
  162. scitex/logging/_context.py +0 -0
  163. scitex/logging/_formatters.py +9 -2
  164. scitex/logging/_handlers.py +0 -0
  165. scitex/logging/_levels.py +0 -0
  166. scitex/logging/_logger.py +59 -20
  167. scitex/logging/_print_capture.py +0 -0
  168. scitex/ml/__init__.py +1 -1
  169. scitex/nn/_Filters.py +6 -6
  170. scitex/nn/_Spectrogram.py +1 -1
  171. scitex/nn/_Wavelet.py +2 -2
  172. scitex/pd/_force_df.py +1 -1
  173. scitex/plt/README.md +26 -1
  174. scitex/plt/__init__.py +103 -5
  175. scitex/plt/_subplots/_AxesWrapper.py +2 -1
  176. scitex/plt/_subplots/_AxisWrapperMixins/_AdjustmentMixin.py +93 -4
  177. scitex/plt/_subplots/_AxisWrapperMixins/_MatplotlibPlotMixin.py +13 -3
  178. scitex/plt/_subplots/_AxisWrapperMixins/_UnitAwareMixin.py +2 -2
  179. scitex/plt/_subplots/_FigWrapper.py +104 -10
  180. scitex/plt/_subplots/_SubplotsWrapper.py +462 -2
  181. scitex/plt/_subplots/_export_as_csv.py +71 -4
  182. scitex/plt/_subplots/_export_as_csv_formatters/__init__.py +1 -0
  183. scitex/plt/_subplots/_export_as_csv_formatters/_format_annotate.py +0 -0
  184. scitex/plt/_subplots/_export_as_csv_formatters/_format_plot_imshow.py +40 -0
  185. scitex/plt/_subplots/_export_as_csv_formatters/_format_plot_scatter.py +0 -0
  186. scitex/plt/ax/__init__.py +9 -1
  187. scitex/plt/ax/_plot/__init__.py +2 -0
  188. scitex/plt/ax/_plot/_add_fitted_line.py +97 -0
  189. scitex/plt/ax/_plot/_plot_conf_mat.py +2 -2
  190. scitex/plt/ax/_plot/_plot_ecdf.py +1 -1
  191. scitex/plt/ax/_plot/_plot_heatmap.py +14 -3
  192. scitex/plt/ax/_plot/_plot_shaded_line.py +1 -1
  193. scitex/plt/ax/_style/__init__.py +1 -0
  194. scitex/plt/ax/_style/_auto_scale_axis.py +195 -0
  195. scitex/plt/ax/_style/_format_units.py +103 -0
  196. scitex/plt/ax/_style/_set_ticks.py +2 -2
  197. scitex/plt/ax/_style/_style_barplot.py +58 -0
  198. scitex/plt/ax/_style/_style_boxplot.py +98 -0
  199. scitex/plt/ax/_style/_style_errorbar.py +68 -0
  200. scitex/plt/ax/_style/_style_scatter.py +68 -0
  201. scitex/plt/ax/_style/_style_suptitles.py +76 -0
  202. scitex/plt/color/_PARAMS.py +2 -2
  203. scitex/plt/color/_colors.py +1 -1
  204. scitex/plt/presets.py +224 -0
  205. scitex/plt/utils/__init__.py +21 -0
  206. scitex/plt/utils/_calc_bacc_from_conf_mat.py +1 -1
  207. scitex/plt/utils/_collect_figure_metadata.py +478 -0
  208. scitex/plt/utils/_configure_mpl.py +98 -28
  209. scitex/plt/utils/_crop.py +232 -0
  210. scitex/plt/utils/_dimension_viewer.py +437 -0
  211. scitex/plt/utils/_figure_from_axes_mm.py +353 -0
  212. scitex/plt/utils/_figure_mm.py +342 -0
  213. scitex/plt/utils/_get_actual_font.py +56 -0
  214. scitex/plt/utils/_units.py +123 -0
  215. scitex/{rng/README.md → repro/README_RandomStateManager.md} +2 -2
  216. scitex/{rng → repro}/_RandomStateManager.py +99 -10
  217. scitex/repro/__init__.py +32 -50
  218. scitex/repro/_gen_ID.py +84 -0
  219. scitex/repro/_gen_timestamp.py +78 -0
  220. scitex/repro/_hash_array.py +143 -0
  221. scitex/reproduce/__init__.py +2 -2
  222. scitex/resource/_get_specs.py +1 -1
  223. scitex/resource/_log_processor_usages.py +4 -4
  224. scitex/rng/__init__.py +20 -27
  225. scitex/scholar/auth/core/__init__.py +0 -0
  226. scitex/scholar/auth/gateway/__init__.py +0 -0
  227. scitex/scholar/auth/providers/OpenAthensAuthenticator.py +3 -3
  228. scitex/scholar/auth/providers/__init__.py +0 -0
  229. scitex/scholar/auth/session/__init__.py +0 -0
  230. scitex/scholar/auth/sso/BaseSSOAutomator.py +1 -1
  231. scitex/scholar/auth/sso/__init__.py +0 -0
  232. scitex/scholar/browser/utils/__init__.py +0 -0
  233. scitex/scholar/cli/_CentralArgumentParser.py +0 -0
  234. scitex/scholar/cli/_argument_groups.py +0 -0
  235. scitex/scholar/cli/_doi_operations.py +0 -0
  236. scitex/scholar/cli/_url_utils.py +0 -0
  237. scitex/scholar/cli/handlers/__init__.py +0 -0
  238. scitex/scholar/cli/handlers/bibtex_handler.py +0 -0
  239. scitex/scholar/cli/handlers/doi_handler.py +0 -0
  240. scitex/scholar/cli/handlers/project_handler.py +0 -0
  241. scitex/scholar/cli/open_browser.py +0 -0
  242. scitex/scholar/cli/open_browser_auto.py +0 -0
  243. scitex/scholar/cli/open_browser_monitored.py +0 -0
  244. scitex/scholar/config/PublisherRules.py +0 -0
  245. scitex/scholar/config/core/_PathManager.py +42 -0
  246. scitex/scholar/core/__init__.py +0 -0
  247. scitex/scholar/docs/template.py +1 -1
  248. scitex/scholar/docs/to_claude/guidelines/python/env.md +1 -1
  249. scitex/scholar/docs/to_claude/guidelines/python/general.md +1 -1
  250. scitex/scholar/examples/07_storage_integration.py +1 -1
  251. scitex/scholar/examples/zotero_integration.py +0 -0
  252. scitex/scholar/impact_factor/estimation/ImpactFactorEstimationEngine.py +0 -0
  253. scitex/scholar/impact_factor/estimation/__init__.py +0 -0
  254. scitex/scholar/impact_factor/estimation/build_database.py +0 -0
  255. scitex/scholar/impact_factor/estimation/core/__init__.py +0 -0
  256. scitex/scholar/impact_factor/estimation/core/cache_manager.py +0 -0
  257. scitex/scholar/impact_factor/estimation/core/calculator.py +0 -0
  258. scitex/scholar/impact_factor/estimation/core/journal_matcher.py +0 -0
  259. scitex/scholar/impact_factor/jcr/ImpactFactorJCREngine.py +1 -1
  260. scitex/scholar/impact_factor/jcr/build_database.py +1 -1
  261. scitex/scholar/integration/__init__.py +0 -0
  262. scitex/scholar/integration/base.py +0 -0
  263. scitex/scholar/integration/mendeley/__init__.py +0 -0
  264. scitex/scholar/integration/mendeley/exporter.py +0 -0
  265. scitex/scholar/integration/mendeley/importer.py +0 -0
  266. scitex/scholar/integration/mendeley/linker.py +0 -0
  267. scitex/scholar/integration/mendeley/mapper.py +0 -0
  268. scitex/scholar/integration/zotero/__init__.py +0 -0
  269. scitex/scholar/integration/zotero/__main__.py +0 -0
  270. scitex/scholar/integration/zotero/exporter.py +0 -0
  271. scitex/scholar/integration/zotero/importer.py +0 -0
  272. scitex/scholar/integration/zotero/linker.py +0 -0
  273. scitex/scholar/integration/zotero/mapper.py +0 -0
  274. scitex/scholar/metadata_engines/individual/ArXivEngine.py +4 -1
  275. scitex/scholar/metadata_engines/individual/CrossRefEngine.py +20 -3
  276. scitex/scholar/metadata_engines/individual/__init__.py +0 -0
  277. scitex/scholar/metadata_engines/utils/_URLDOIExtractor.py +19 -1
  278. scitex/scholar/pdf_download/ScholarPDFDownloader.py +1 -1
  279. scitex/scholar/pdf_download/__init__.py +0 -0
  280. scitex/scholar/pipelines/ScholarPipelineBibTeX.py +1 -1
  281. scitex/scholar/pipelines/ScholarPipelineMetadataParallel.py +0 -0
  282. scitex/scholar/pipelines/ScholarPipelineMetadataSingle.py +102 -7
  283. scitex/scholar/pipelines/ScholarPipelineParallel.py +1 -1
  284. scitex/scholar/pipelines/ScholarPipelineSearchParallel.py +0 -0
  285. scitex/scholar/pipelines/ScholarPipelineSearchSingle.py +0 -0
  286. scitex/scholar/pipelines/ScholarPipelineSingle.py +1 -1
  287. scitex/scholar/pipelines/SearchQueryParser.py +0 -0
  288. scitex/scholar/pipelines/__init__.py +0 -0
  289. scitex/scholar/search_engines/ScholarSearchEngine.py +0 -0
  290. scitex/scholar/search_engines/_BaseSearchEngine.py +0 -0
  291. scitex/scholar/search_engines/__init__.py +0 -0
  292. scitex/scholar/search_engines/individual/ArXivSearchEngine.py +0 -0
  293. scitex/scholar/search_engines/individual/CrossRefSearchEngine.py +0 -0
  294. scitex/scholar/search_engines/individual/OpenAlexSearchEngine.py +0 -0
  295. scitex/scholar/search_engines/individual/PubMedSearchEngine.py +0 -0
  296. scitex/scholar/search_engines/individual/SemanticScholarSearchEngine.py +0 -0
  297. scitex/scholar/search_engines/individual/__init__.py +0 -0
  298. scitex/scholar/storage/BibTeXHandler.py +35 -5
  299. scitex/scholar/storage/PaperIO.py +1 -1
  300. scitex/scholar/storage/_DeduplicationManager.py +0 -0
  301. scitex/scholar/storage/_LibraryManager.py +0 -0
  302. scitex/scholar/storage/__init__.py +0 -0
  303. scitex/scholar/url_finder/strategies/find_pdf_urls_by_direct_links.py +0 -0
  304. scitex/scholar/url_finder/strategies/find_pdf_urls_by_dropdown.py +0 -0
  305. scitex/scholar/url_finder/strategies/find_pdf_urls_by_href.py +0 -0
  306. scitex/scholar/url_finder/translators/__init__.py +0 -0
  307. scitex/scholar/url_finder/translators/core/__init__.py +0 -0
  308. scitex/scholar/url_finder/translators/core/base.py +0 -0
  309. scitex/scholar/url_finder/translators/core/patterns.py +0 -0
  310. scitex/scholar/url_finder/translators/individual/BOFiP_Impots.py +0 -0
  311. scitex/scholar/url_finder/translators/individual/Baidu_Scholar.py +0 -0
  312. scitex/scholar/url_finder/translators/individual/Bangkok_Post.py +0 -0
  313. scitex/scholar/url_finder/translators/individual/Baruch_Foundation.py +0 -0
  314. scitex/scholar/url_finder/translators/individual/Beobachter.py +0 -0
  315. scitex/scholar/url_finder/translators/individual/Bezneng_Gajit.py +0 -0
  316. scitex/scholar/url_finder/translators/individual/BibLaTeX.py +0 -0
  317. scitex/scholar/url_finder/translators/individual/BibTeX.py +0 -0
  318. scitex/scholar/url_finder/translators/individual/Biblio_com.py +0 -0
  319. scitex/scholar/url_finder/translators/individual/Bibliontology_RDF.py +0 -0
  320. scitex/scholar/url_finder/translators/individual/CLASE.py +0 -0
  321. scitex/scholar/url_finder/translators/individual/COBISS.py +0 -0
  322. scitex/scholar/url_finder/translators/individual/COinS.py +0 -0
  323. scitex/scholar/url_finder/translators/individual/CQ_Press.py +0 -0
  324. scitex/scholar/url_finder/translators/individual/CROSBI.py +0 -0
  325. scitex/scholar/url_finder/translators/individual/CSL_JSON.py +0 -0
  326. scitex/scholar/url_finder/translators/individual/CSV.py +0 -0
  327. scitex/scholar/url_finder/translators/individual/CalMatters.py +0 -0
  328. scitex/scholar/url_finder/translators/individual/Calisphere.py +0 -0
  329. scitex/scholar/url_finder/translators/individual/Camara_Brasileira_do_Livro_ISBN.py +0 -0
  330. scitex/scholar/url_finder/translators/individual/CanLII.py +0 -0
  331. scitex/scholar/url_finder/translators/individual/Canada_com.py +0 -0
  332. scitex/scholar/url_finder/translators/individual/Canadian_Letters_and_Images.py +0 -0
  333. scitex/scholar/url_finder/translators/individual/Canadiana_ca.py +0 -0
  334. scitex/scholar/url_finder/translators/individual/Cascadilla_Proceedings_Project.py +0 -0
  335. scitex/scholar/url_finder/translators/individual/Central_and_Eastern_European_Online_Library_Journals.py +0 -0
  336. scitex/scholar/url_finder/translators/individual/Champlain_Society_Collection.py +0 -0
  337. scitex/scholar/url_finder/translators/individual/Chicago_Journal_of_Theoretical_Computer_Science.py +0 -0
  338. scitex/scholar/url_finder/translators/individual/Christian_Science_Monitor.py +0 -0
  339. scitex/scholar/url_finder/translators/individual/Columbia_University_Press.py +0 -0
  340. scitex/scholar/url_finder/translators/individual/Common_Place.py +0 -0
  341. scitex/scholar/url_finder/translators/individual/Cornell_LII.py +0 -0
  342. scitex/scholar/url_finder/translators/individual/Cornell_University_Press.py +0 -0
  343. scitex/scholar/url_finder/translators/individual/CourtListener.py +0 -0
  344. scitex/scholar/url_finder/translators/individual/DAI_Zenon.py +0 -0
  345. scitex/scholar/url_finder/translators/individual/__init__.py +0 -0
  346. scitex/scholar/url_finder/translators/individual/abc_news_australia.py +0 -0
  347. scitex/scholar/url_finder/translators/individual/access_engineering.py +0 -0
  348. scitex/scholar/url_finder/translators/individual/access_medicine.py +0 -0
  349. scitex/scholar/url_finder/translators/individual/access_science.py +0 -0
  350. scitex/scholar/url_finder/translators/individual/acls_humanities_ebook.py +0 -0
  351. scitex/scholar/url_finder/translators/individual/aclweb.py +0 -0
  352. scitex/scholar/url_finder/translators/individual/acm.py +0 -0
  353. scitex/scholar/url_finder/translators/individual/acm_digital_library.py +0 -0
  354. scitex/scholar/url_finder/translators/individual/acs.py +0 -0
  355. scitex/scholar/url_finder/translators/individual/acs_publications.py +0 -0
  356. scitex/scholar/url_finder/translators/individual/adam_matthew_digital.py +0 -0
  357. scitex/scholar/url_finder/translators/individual/ads_bibcode.py +0 -0
  358. scitex/scholar/url_finder/translators/individual/aea_web.py +0 -0
  359. scitex/scholar/url_finder/translators/individual/agencia_del_isbn.py +0 -0
  360. scitex/scholar/url_finder/translators/individual/agris.py +0 -0
  361. scitex/scholar/url_finder/translators/individual/ahval_news.py +0 -0
  362. scitex/scholar/url_finder/translators/individual/aip.py +0 -0
  363. scitex/scholar/url_finder/translators/individual/air_university_journals.py +0 -0
  364. scitex/scholar/url_finder/translators/individual/airiti.py +0 -0
  365. scitex/scholar/url_finder/translators/individual/alexander_street_press.py +0 -0
  366. scitex/scholar/url_finder/translators/individual/all_africa.py +0 -0
  367. scitex/scholar/url_finder/translators/individual/allafrica.py +0 -0
  368. scitex/scholar/url_finder/translators/individual/alsharekh.py +0 -0
  369. scitex/scholar/url_finder/translators/individual/alternet.py +0 -0
  370. scitex/scholar/url_finder/translators/individual/aluka.py +0 -0
  371. scitex/scholar/url_finder/translators/individual/amazon.py +0 -0
  372. scitex/scholar/url_finder/translators/individual/american_archive_public_broadcasting.py +0 -0
  373. scitex/scholar/url_finder/translators/individual/american_institute_aeronautics_astronautics.py +0 -0
  374. scitex/scholar/url_finder/translators/individual/american_prospect.py +0 -0
  375. scitex/scholar/url_finder/translators/individual/ams_journals.py +0 -0
  376. scitex/scholar/url_finder/translators/individual/ams_mathscinet.py +0 -0
  377. scitex/scholar/url_finder/translators/individual/ams_mathscinet_legacy.py +0 -0
  378. scitex/scholar/url_finder/translators/individual/ancestry_com_us_federal_census.py +0 -0
  379. scitex/scholar/url_finder/translators/individual/ancestry_us_federal_census.py +0 -0
  380. scitex/scholar/url_finder/translators/individual/annual_reviews.py +0 -0
  381. scitex/scholar/url_finder/translators/individual/antikvarium_hu.py +0 -0
  382. scitex/scholar/url_finder/translators/individual/aosic.py +0 -0
  383. scitex/scholar/url_finder/translators/individual/apa_psycnet.py +0 -0
  384. scitex/scholar/url_finder/translators/individual/apn_ru.py +0 -0
  385. scitex/scholar/url_finder/translators/individual/aps.py +0 -0
  386. scitex/scholar/url_finder/translators/individual/aps_physics.py +0 -0
  387. scitex/scholar/url_finder/translators/individual/aquadocs.py +0 -0
  388. scitex/scholar/url_finder/translators/individual/archeion.py +0 -0
  389. scitex/scholar/url_finder/translators/individual/archiv_fuer_sozialgeschichte.py +0 -0
  390. scitex/scholar/url_finder/translators/individual/ariana_news.py +0 -0
  391. scitex/scholar/url_finder/translators/individual/art_institute_of_chicago.py +0 -0
  392. scitex/scholar/url_finder/translators/individual/artefacts_canada.py +0 -0
  393. scitex/scholar/url_finder/translators/individual/artfl_encyclopedie.py +0 -0
  394. scitex/scholar/url_finder/translators/individual/artforum.py +0 -0
  395. scitex/scholar/url_finder/translators/individual/artnet.py +0 -0
  396. scitex/scholar/url_finder/translators/individual/artnews.py +0 -0
  397. scitex/scholar/url_finder/translators/individual/artstor.py +0 -0
  398. scitex/scholar/url_finder/translators/individual/arxiv.py +0 -0
  399. scitex/scholar/url_finder/translators/individual/asce.py +0 -0
  400. scitex/scholar/url_finder/translators/individual/asco_meeting_library.py +0 -0
  401. scitex/scholar/url_finder/translators/individual/astis.py +0 -0
  402. scitex/scholar/url_finder/translators/individual/atlanta_journal_constitution.py +0 -0
  403. scitex/scholar/url_finder/translators/individual/ats_international_journal.py +0 -0
  404. scitex/scholar/url_finder/translators/individual/atypon.py +0 -0
  405. scitex/scholar/url_finder/translators/individual/atypon_journals.py +0 -0
  406. scitex/scholar/url_finder/translators/individual/austlii_and_nzlii.py +0 -0
  407. scitex/scholar/url_finder/translators/individual/australian_dictionary_of_biography.py +0 -0
  408. scitex/scholar/url_finder/translators/individual/bailii.py +0 -0
  409. scitex/scholar/url_finder/translators/individual/bbc.py +0 -0
  410. scitex/scholar/url_finder/translators/individual/bbc_genome.py +0 -0
  411. scitex/scholar/url_finder/translators/individual/beck_online.py +0 -0
  412. scitex/scholar/url_finder/translators/individual/biblioteca_nacional_de_maestros.py +0 -0
  413. scitex/scholar/url_finder/translators/individual/bibliotheque_archives_nationale_quebec_pistard.py +0 -0
  414. scitex/scholar/url_finder/translators/individual/bibliotheque_archives_nationales_quebec.py +0 -0
  415. scitex/scholar/url_finder/translators/individual/bibliotheque_et_archives_nationale_du_quebec__pistard_.py +0 -0
  416. scitex/scholar/url_finder/translators/individual/bibliotheque_et_archives_nationales_du_quebec.py +0 -0
  417. scitex/scholar/url_finder/translators/individual/bibliotheque_nationale_de_france.py +0 -0
  418. scitex/scholar/url_finder/translators/individual/bibliotheque_nationale_france.py +0 -0
  419. scitex/scholar/url_finder/translators/individual/bibsys.py +0 -0
  420. scitex/scholar/url_finder/translators/individual/bioconductor.py +0 -0
  421. scitex/scholar/url_finder/translators/individual/biomed_central.py +0 -0
  422. scitex/scholar/url_finder/translators/individual/bioone.py +0 -0
  423. scitex/scholar/url_finder/translators/individual/biorxiv.py +0 -0
  424. scitex/scholar/url_finder/translators/individual/blaetter.py +0 -0
  425. scitex/scholar/url_finder/translators/individual/blogger.py +0 -0
  426. scitex/scholar/url_finder/translators/individual/bloomberg.py +0 -0
  427. scitex/scholar/url_finder/translators/individual/bloomsbury_food_library.py +0 -0
  428. scitex/scholar/url_finder/translators/individual/bluesky.py +0 -0
  429. scitex/scholar/url_finder/translators/individual/bnf_isbn.py +0 -0
  430. scitex/scholar/url_finder/translators/individual/bocc.py +0 -0
  431. scitex/scholar/url_finder/translators/individual/boe.py +0 -0
  432. scitex/scholar/url_finder/translators/individual/bookmarks.py +0 -0
  433. scitex/scholar/url_finder/translators/individual/bookshop_org.py +0 -0
  434. scitex/scholar/url_finder/translators/individual/boston_review.py +0 -0
  435. scitex/scholar/url_finder/translators/individual/bosworth_toller_anglo_saxon_dictionary.py +0 -0
  436. scitex/scholar/url_finder/translators/individual/bosworth_toller_s_anglo_saxon_dictionary_online.py +0 -0
  437. scitex/scholar/url_finder/translators/individual/bracero_history_archive.py +0 -0
  438. scitex/scholar/url_finder/translators/individual/brill.py +0 -0
  439. scitex/scholar/url_finder/translators/individual/brukerhandboken.py +0 -0
  440. scitex/scholar/url_finder/translators/individual/bryn_mawr_classical_review.py +0 -0
  441. scitex/scholar/url_finder/translators/individual/bundesgesetzblatt.py +0 -0
  442. scitex/scholar/url_finder/translators/individual/business_standard.py +0 -0
  443. scitex/scholar/url_finder/translators/individual/cabi___cab_abstracts.py +0 -0
  444. scitex/scholar/url_finder/translators/individual/cabi_cab_abstracts.py +0 -0
  445. scitex/scholar/url_finder/translators/individual/cairn.py +0 -0
  446. scitex/scholar/url_finder/translators/individual/cairn_info.py +0 -0
  447. scitex/scholar/url_finder/translators/individual/cambridge.py +0 -0
  448. scitex/scholar/url_finder/translators/individual/cambridge_core.py +0 -0
  449. scitex/scholar/url_finder/translators/individual/cambridge_engage_preprints.py +0 -0
  450. scitex/scholar/url_finder/translators/individual/caod.py +0 -0
  451. scitex/scholar/url_finder/translators/individual/cbc.py +0 -0
  452. scitex/scholar/url_finder/translators/individual/ccfr__bnf_.py +0 -0
  453. scitex/scholar/url_finder/translators/individual/ccfr_bnf.py +0 -0
  454. scitex/scholar/url_finder/translators/individual/cell_press.py +0 -0
  455. scitex/scholar/url_finder/translators/individual/cern_document_server.py +0 -0
  456. scitex/scholar/url_finder/translators/individual/ceur_workshop_proceedings.py +0 -0
  457. scitex/scholar/url_finder/translators/individual/cff.py +0 -0
  458. scitex/scholar/url_finder/translators/individual/cff_references.py +0 -0
  459. scitex/scholar/url_finder/translators/individual/champlain_society___collection.py +0 -0
  460. scitex/scholar/url_finder/translators/individual/chronicling_america.py +0 -0
  461. scitex/scholar/url_finder/translators/individual/cia_world_factbook.py +0 -0
  462. scitex/scholar/url_finder/translators/individual/cinii_research.py +0 -0
  463. scitex/scholar/url_finder/translators/individual/citavi_5_xml.py +0 -0
  464. scitex/scholar/url_finder/translators/individual/citeseer.py +0 -0
  465. scitex/scholar/url_finder/translators/individual/citizen_lab.py +0 -0
  466. scitex/scholar/url_finder/translators/individual/civilization_ca.py +0 -0
  467. scitex/scholar/url_finder/translators/individual/clacso.py +0 -0
  468. scitex/scholar/url_finder/translators/individual/climate_change_and_human_health_literature_portal.py +0 -0
  469. scitex/scholar/url_finder/translators/individual/climate_change_human_health.py +0 -0
  470. scitex/scholar/url_finder/translators/individual/clinical_key.py +0 -0
  471. scitex/scholar/url_finder/translators/individual/clinicaltrials_gov.py +0 -0
  472. scitex/scholar/url_finder/translators/individual/cnki.py +0 -0
  473. scitex/scholar/url_finder/translators/individual/code4lib_journal.py +0 -0
  474. scitex/scholar/url_finder/translators/individual/colorado_state_legislature.py +0 -0
  475. scitex/scholar/url_finder/translators/individual/computer_history_museum_archive.py +0 -0
  476. scitex/scholar/url_finder/translators/individual/copernicus.py +0 -0
  477. scitex/scholar/url_finder/translators/individual/crossref_rest.py +0 -0
  478. scitex/scholar/url_finder/translators/individual/crossref_unixref_xml.py +0 -0
  479. scitex/scholar/url_finder/translators/individual/csiro_publishing.py +0 -0
  480. scitex/scholar/url_finder/translators/individual/csiro_publishing_dup.py +0 -0
  481. scitex/scholar/url_finder/translators/individual/current_affairs.py +0 -0
  482. scitex/scholar/url_finder/translators/individual/dabi.py +0 -0
  483. scitex/scholar/url_finder/translators/individual/dagens_nyheter.py +0 -0
  484. scitex/scholar/url_finder/translators/individual/dagstuhl.py +0 -0
  485. scitex/scholar/url_finder/translators/individual/dagstuhl_research_online_publication_server.py +0 -0
  486. scitex/scholar/url_finder/translators/individual/dar_almandumah.py +0 -0
  487. scitex/scholar/url_finder/translators/individual/dart_europe.py +0 -0
  488. scitex/scholar/url_finder/translators/individual/data_gov.py +0 -0
  489. scitex/scholar/url_finder/translators/individual/databrary.py +0 -0
  490. scitex/scholar/url_finder/translators/individual/datacite_json.py +0 -0
  491. scitex/scholar/url_finder/translators/individual/dataverse.py +0 -0
  492. scitex/scholar/url_finder/translators/individual/daum_news.py +0 -0
  493. scitex/scholar/url_finder/translators/individual/dblp.py +0 -0
  494. scitex/scholar/url_finder/translators/individual/dblp_computer_science_bibliography.py +0 -0
  495. scitex/scholar/url_finder/translators/individual/dbpia.py +0 -0
  496. scitex/scholar/url_finder/translators/individual/de_gruyter_brill.py +0 -0
  497. scitex/scholar/url_finder/translators/individual/defense_technical_information_center.py +0 -0
  498. scitex/scholar/url_finder/translators/individual/dejure_org.py +0 -0
  499. scitex/scholar/url_finder/translators/individual/delpher.py +0 -0
  500. scitex/scholar/url_finder/translators/individual/demographic_research.py +0 -0
  501. scitex/scholar/url_finder/translators/individual/denik_cz.py +0 -0
  502. scitex/scholar/url_finder/translators/individual/depatisnet.py +0 -0
  503. scitex/scholar/url_finder/translators/individual/der_freitag.py +0 -0
  504. scitex/scholar/url_finder/translators/individual/der_spiegel.py +0 -0
  505. scitex/scholar/url_finder/translators/individual/desiring_god.py +0 -0
  506. scitex/scholar/url_finder/translators/individual/deutsche_fotothek.py +0 -0
  507. scitex/scholar/url_finder/translators/individual/deutsche_nationalbibliothek.py +0 -0
  508. scitex/scholar/url_finder/translators/individual/dhistory.py +0 -0
  509. scitex/scholar/url_finder/translators/individual/dialnet.py +0 -0
  510. scitex/scholar/url_finder/translators/individual/die_zeit.py +0 -0
  511. scitex/scholar/url_finder/translators/individual/digibib_net.py +0 -0
  512. scitex/scholar/url_finder/translators/individual/digital_humanities_quarterly.py +0 -0
  513. scitex/scholar/url_finder/translators/individual/digital_spy.py +0 -0
  514. scitex/scholar/url_finder/translators/individual/digizeitschriften.py +0 -0
  515. scitex/scholar/url_finder/translators/individual/dimensions.py +0 -0
  516. scitex/scholar/url_finder/translators/individual/dlibra.py +0 -0
  517. scitex/scholar/url_finder/translators/individual/doaj.py +0 -0
  518. scitex/scholar/url_finder/translators/individual/doi.py +0 -0
  519. scitex/scholar/url_finder/translators/individual/doi_content_negotiation.py +0 -0
  520. scitex/scholar/url_finder/translators/individual/douban.py +0 -0
  521. scitex/scholar/url_finder/translators/individual/dpla.py +0 -0
  522. scitex/scholar/url_finder/translators/individual/dreier_neuerscheinungsdienst.py +0 -0
  523. scitex/scholar/url_finder/translators/individual/drugbank_ca.py +0 -0
  524. scitex/scholar/url_finder/translators/individual/dryad.py +0 -0
  525. scitex/scholar/url_finder/translators/individual/dryad_digital_repository.py +0 -0
  526. scitex/scholar/url_finder/translators/individual/dspace.py +0 -0
  527. scitex/scholar/url_finder/translators/individual/dspace_intermediate_metadata.py +0 -0
  528. scitex/scholar/url_finder/translators/individual/duke_university_press_books.py +0 -0
  529. scitex/scholar/url_finder/translators/individual/e_periodica_switzerland.py +0 -0
  530. scitex/scholar/url_finder/translators/individual/eastview.py +0 -0
  531. scitex/scholar/url_finder/translators/individual/ebrary.py +0 -0
  532. scitex/scholar/url_finder/translators/individual/ebsco_discovery_layer.py +0 -0
  533. scitex/scholar/url_finder/translators/individual/ebscohost.py +0 -0
  534. scitex/scholar/url_finder/translators/individual/edinburgh_university_press_journals.py +0 -0
  535. scitex/scholar/url_finder/translators/individual/education_week.py +0 -0
  536. scitex/scholar/url_finder/translators/individual/eidr.py +0 -0
  537. scitex/scholar/url_finder/translators/individual/el_comercio__peru_.py +0 -0
  538. scitex/scholar/url_finder/translators/individual/el_pais.py +0 -0
  539. scitex/scholar/url_finder/translators/individual/electronic_colloquium_on_computational_complexity.py +0 -0
  540. scitex/scholar/url_finder/translators/individual/elibrary_ru.py +0 -0
  541. scitex/scholar/url_finder/translators/individual/elicit.py +0 -0
  542. scitex/scholar/url_finder/translators/individual/elife.py +0 -0
  543. scitex/scholar/url_finder/translators/individual/elsevier_health.py +0 -0
  544. scitex/scholar/url_finder/translators/individual/elsevier_health_journals.py +0 -0
  545. scitex/scholar/url_finder/translators/individual/elsevier_pure.py +0 -0
  546. scitex/scholar/url_finder/translators/individual/embedded_metadata.py +0 -0
  547. scitex/scholar/url_finder/translators/individual/emedicine.py +0 -0
  548. scitex/scholar/url_finder/translators/individual/emerald.py +0 -0
  549. scitex/scholar/url_finder/translators/individual/emerald_insight.py +0 -0
  550. scitex/scholar/url_finder/translators/individual/emja.py +0 -0
  551. scitex/scholar/url_finder/translators/individual/encyclopedia_of_chicago.py +0 -0
  552. scitex/scholar/url_finder/translators/individual/encyclopedia_of_korean_culture.py +0 -0
  553. scitex/scholar/url_finder/translators/individual/endnote_xml.py +0 -0
  554. scitex/scholar/url_finder/translators/individual/engineering_village.py +0 -0
  555. scitex/scholar/url_finder/translators/individual/envidat.py +0 -0
  556. scitex/scholar/url_finder/translators/individual/epa_national_library_catalog.py +0 -0
  557. scitex/scholar/url_finder/translators/individual/epicurious.py +0 -0
  558. scitex/scholar/url_finder/translators/individual/eprint_iacr.py +0 -0
  559. scitex/scholar/url_finder/translators/individual/eric.py +0 -0
  560. scitex/scholar/url_finder/translators/individual/erudit.py +0 -0
  561. scitex/scholar/url_finder/translators/individual/espacenet.py +0 -0
  562. scitex/scholar/url_finder/translators/individual/etatar_ru.py +0 -0
  563. scitex/scholar/url_finder/translators/individual/euclid.py +0 -0
  564. scitex/scholar/url_finder/translators/individual/eur_lex.py +0 -0
  565. scitex/scholar/url_finder/translators/individual/eurasianet.py +0 -0
  566. scitex/scholar/url_finder/translators/individual/eurogamerusgamer.py +0 -0
  567. scitex/scholar/url_finder/translators/individual/europe_pmc.py +0 -0
  568. scitex/scholar/url_finder/translators/individual/evernote.py +0 -0
  569. scitex/scholar/url_finder/translators/individual/f1000_research.py +0 -0
  570. scitex/scholar/url_finder/translators/individual/fachportal_padagogik.py +0 -0
  571. scitex/scholar/url_finder/translators/individual/factiva.py +0 -0
  572. scitex/scholar/url_finder/translators/individual/failed_architecture.py +0 -0
  573. scitex/scholar/url_finder/translators/individual/fairfax_australia.py +0 -0
  574. scitex/scholar/url_finder/translators/individual/fao_publications.py +0 -0
  575. scitex/scholar/url_finder/translators/individual/fatcat.py +0 -0
  576. scitex/scholar/url_finder/translators/individual/faz_net.py +0 -0
  577. scitex/scholar/url_finder/translators/individual/feb_web_ru.py +0 -0
  578. scitex/scholar/url_finder/translators/individual/figshare.py +0 -0
  579. scitex/scholar/url_finder/translators/individual/financial_times.py +0 -0
  580. scitex/scholar/url_finder/translators/individual/finna.py +0 -0
  581. scitex/scholar/url_finder/translators/individual/fishpond_co_nz.py +0 -0
  582. scitex/scholar/url_finder/translators/individual/flickr.py +0 -0
  583. scitex/scholar/url_finder/translators/individual/foreign_affairs.py +0 -0
  584. scitex/scholar/url_finder/translators/individual/foreign_policy.py +0 -0
  585. scitex/scholar/url_finder/translators/individual/fr_online_de.py +0 -0
  586. scitex/scholar/url_finder/translators/individual/freecite.py +0 -0
  587. scitex/scholar/url_finder/translators/individual/freepatentsonline.py +0 -0
  588. scitex/scholar/url_finder/translators/individual/frieze.py +0 -0
  589. scitex/scholar/url_finder/translators/individual/frontiers.py +0 -0
  590. scitex/scholar/url_finder/translators/individual/gale_databases.py +0 -0
  591. scitex/scholar/url_finder/translators/individual/galegdc.py +0 -0
  592. scitex/scholar/url_finder/translators/individual/galegroup.py +0 -0
  593. scitex/scholar/url_finder/translators/individual/gallica.py +0 -0
  594. scitex/scholar/url_finder/translators/individual/game_studies.py +0 -0
  595. scitex/scholar/url_finder/translators/individual/gamespot.py +0 -0
  596. scitex/scholar/url_finder/translators/individual/gamestar_gamepro.py +0 -0
  597. scitex/scholar/url_finder/translators/individual/gasyrlar_awazy.py +0 -0
  598. scitex/scholar/url_finder/translators/individual/gemeinsamer_bibliotheksverbund_isbn.py +0 -0
  599. scitex/scholar/url_finder/translators/individual/gene_ontology.py +0 -0
  600. scitex/scholar/url_finder/translators/individual/github.py +0 -0
  601. scitex/scholar/url_finder/translators/individual/globes.py +0 -0
  602. scitex/scholar/url_finder/translators/individual/gmail.py +0 -0
  603. scitex/scholar/url_finder/translators/individual/gms_german_medical_science.py +0 -0
  604. scitex/scholar/url_finder/translators/individual/goodreads.py +0 -0
  605. scitex/scholar/url_finder/translators/individual/google_books.py +0 -0
  606. scitex/scholar/url_finder/translators/individual/google_patents.py +0 -0
  607. scitex/scholar/url_finder/translators/individual/google_play.py +0 -0
  608. scitex/scholar/url_finder/translators/individual/google_presentation.py +0 -0
  609. scitex/scholar/url_finder/translators/individual/google_research.py +0 -0
  610. scitex/scholar/url_finder/translators/individual/google_scholar.py +0 -0
  611. scitex/scholar/url_finder/translators/individual/govinfo.py +0 -0
  612. scitex/scholar/url_finder/translators/individual/gpo_access_e_cfr.py +0 -0
  613. scitex/scholar/url_finder/translators/individual/gulag_many_days__many_lives.py +0 -0
  614. scitex/scholar/url_finder/translators/individual/haaretz.py +0 -0
  615. scitex/scholar/url_finder/translators/individual/habr.py +0 -0
  616. scitex/scholar/url_finder/translators/individual/hal.py +0 -0
  617. scitex/scholar/url_finder/translators/individual/hal_archives_ouvertes.py +0 -0
  618. scitex/scholar/url_finder/translators/individual/handelszeitung.py +0 -0
  619. scitex/scholar/url_finder/translators/individual/hanrei_watch.py +0 -0
  620. scitex/scholar/url_finder/translators/individual/harper_s_magazine.py +0 -0
  621. scitex/scholar/url_finder/translators/individual/harvard_business_review.py +0 -0
  622. scitex/scholar/url_finder/translators/individual/harvard_caselaw_access_project.py +0 -0
  623. scitex/scholar/url_finder/translators/individual/harvard_university_press_books.py +0 -0
  624. scitex/scholar/url_finder/translators/individual/hathitrust.py +0 -0
  625. scitex/scholar/url_finder/translators/individual/hcsp.py +0 -0
  626. scitex/scholar/url_finder/translators/individual/heinonline.py +0 -0
  627. scitex/scholar/url_finder/translators/individual/heise.py +0 -0
  628. scitex/scholar/url_finder/translators/individual/herder.py +0 -0
  629. scitex/scholar/url_finder/translators/individual/highbeam.py +0 -0
  630. scitex/scholar/url_finder/translators/individual/highwire.py +0 -0
  631. scitex/scholar/url_finder/translators/individual/highwire2.py +0 -0
  632. scitex/scholar/url_finder/translators/individual/highwire_2_0.py +0 -0
  633. scitex/scholar/url_finder/translators/individual/hindawi.py +0 -0
  634. scitex/scholar/url_finder/translators/individual/hindawi_publishers.py +0 -0
  635. scitex/scholar/url_finder/translators/individual/hispanic_american_periodical_index.py +0 -0
  636. scitex/scholar/url_finder/translators/individual/homeland_security_digital_library.py +0 -0
  637. scitex/scholar/url_finder/translators/individual/hudoc.py +0 -0
  638. scitex/scholar/url_finder/translators/individual/huff_post.py +0 -0
  639. scitex/scholar/url_finder/translators/individual/human_rights_watch.py +0 -0
  640. scitex/scholar/url_finder/translators/individual/ibisworld.py +0 -0
  641. scitex/scholar/url_finder/translators/individual/idea_alm.py +0 -0
  642. scitex/scholar/url_finder/translators/individual/idref.py +0 -0
  643. scitex/scholar/url_finder/translators/individual/ieee_computer_society.py +0 -0
  644. scitex/scholar/url_finder/translators/individual/ieee_xplore.py +0 -0
  645. scitex/scholar/url_finder/translators/individual/ietf.py +0 -0
  646. scitex/scholar/url_finder/translators/individual/ign.py +0 -0
  647. scitex/scholar/url_finder/translators/individual/imdb.py +0 -0
  648. scitex/scholar/url_finder/translators/individual/imf.py +0 -0
  649. scitex/scholar/url_finder/translators/individual/in_these_times.py +0 -0
  650. scitex/scholar/url_finder/translators/individual/informationssystem_medienpaedagogik.py +0 -0
  651. scitex/scholar/url_finder/translators/individual/informit_database.py +0 -0
  652. scitex/scholar/url_finder/translators/individual/infotrac.py +0 -0
  653. scitex/scholar/url_finder/translators/individual/ingenta_connect.py +0 -0
  654. scitex/scholar/url_finder/translators/individual/ingentaconnect.py +0 -0
  655. scitex/scholar/url_finder/translators/individual/inside_higher_ed.py +0 -0
  656. scitex/scholar/url_finder/translators/individual/insignia_opac.py +0 -0
  657. scitex/scholar/url_finder/translators/individual/inspire.py +0 -0
  658. scitex/scholar/url_finder/translators/individual/institute_of_contemporary_art.py +0 -0
  659. scitex/scholar/url_finder/translators/individual/institute_of_physics.py +0 -0
  660. scitex/scholar/url_finder/translators/individual/integrum.py +0 -0
  661. scitex/scholar/url_finder/translators/individual/intellixir.py +0 -0
  662. scitex/scholar/url_finder/translators/individual/inter_research_science_center.py +0 -0
  663. scitex/scholar/url_finder/translators/individual/international_nuclear_information_system.py +0 -0
  664. scitex/scholar/url_finder/translators/individual/internet_archive.py +0 -0
  665. scitex/scholar/url_finder/translators/individual/internet_archive_scholar.py +0 -0
  666. scitex/scholar/url_finder/translators/individual/internet_archive_wayback.py +0 -0
  667. scitex/scholar/url_finder/translators/individual/internet_archive_wayback_machine.py +0 -0
  668. scitex/scholar/url_finder/translators/individual/invenio_rdm.py +0 -0
  669. scitex/scholar/url_finder/translators/individual/inveniordm.py +0 -0
  670. scitex/scholar/url_finder/translators/individual/io_port.py +0 -0
  671. scitex/scholar/url_finder/translators/individual/iop.py +0 -0
  672. scitex/scholar/url_finder/translators/individual/ipcc.py +0 -0
  673. scitex/scholar/url_finder/translators/individual/isidore.py +0 -0
  674. scitex/scholar/url_finder/translators/individual/istc.py +0 -0
  675. scitex/scholar/url_finder/translators/individual/j_stage.py +0 -0
  676. scitex/scholar/url_finder/translators/individual/jahrbuch.py +0 -0
  677. scitex/scholar/url_finder/translators/individual/japan_times_online.py +0 -0
  678. scitex/scholar/url_finder/translators/individual/jets.py +0 -0
  679. scitex/scholar/url_finder/translators/individual/jisc_historical_texts.py +0 -0
  680. scitex/scholar/url_finder/translators/individual/journal_of_electronic_publishing.py +0 -0
  681. scitex/scholar/url_finder/translators/individual/journal_of_extension.py +0 -0
  682. scitex/scholar/url_finder/translators/individual/journal_of_machine_learning_research.py +0 -0
  683. scitex/scholar/url_finder/translators/individual/journal_of_religion_and_society.py +0 -0
  684. scitex/scholar/url_finder/translators/individual/jrc_publications_repository.py +0 -0
  685. scitex/scholar/url_finder/translators/individual/jstage.py +0 -0
  686. scitex/scholar/url_finder/translators/individual/juricaf.py +0 -0
  687. scitex/scholar/url_finder/translators/individual/jurion.py +0 -0
  688. scitex/scholar/url_finder/translators/individual/juris.py +0 -0
  689. scitex/scholar/url_finder/translators/individual/jurpc.py +0 -0
  690. scitex/scholar/url_finder/translators/individual/k10plus_isbn.py +0 -0
  691. scitex/scholar/url_finder/translators/individual/kanopy.py +0 -0
  692. scitex/scholar/url_finder/translators/individual/karger.py +0 -0
  693. scitex/scholar/url_finder/translators/individual/khaama_press.py +0 -0
  694. scitex/scholar/url_finder/translators/individual/kitapyurdu_com.py +0 -0
  695. scitex/scholar/url_finder/translators/individual/kommersant.py +0 -0
  696. scitex/scholar/url_finder/translators/individual/korean_national_library.py +0 -0
  697. scitex/scholar/url_finder/translators/individual/kstudy.py +0 -0
  698. scitex/scholar/url_finder/translators/individual/l_annee_philologique.py +0 -0
  699. scitex/scholar/url_finder/translators/individual/la_croix.py +0 -0
  700. scitex/scholar/url_finder/translators/individual/la_nacion__argentina_.py +0 -0
  701. scitex/scholar/url_finder/translators/individual/la_presse.py +0 -0
  702. scitex/scholar/url_finder/translators/individual/la_republica__peru_.py +0 -0
  703. scitex/scholar/url_finder/translators/individual/la_times.py +0 -0
  704. scitex/scholar/url_finder/translators/individual/lagen_nu.py +0 -0
  705. scitex/scholar/url_finder/translators/individual/landesbibliographie_baden_wurttemberg.py +0 -0
  706. scitex/scholar/url_finder/translators/individual/lapham_s_quarterly.py +0 -0
  707. scitex/scholar/url_finder/translators/individual/le_devoir.py +0 -0
  708. scitex/scholar/url_finder/translators/individual/le_figaro.py +0 -0
  709. scitex/scholar/url_finder/translators/individual/le_maitron.py +0 -0
  710. scitex/scholar/url_finder/translators/individual/le_monde.py +0 -0
  711. scitex/scholar/url_finder/translators/individual/le_monde_diplomatique.py +0 -0
  712. scitex/scholar/url_finder/translators/individual/legifrance.py +0 -0
  713. scitex/scholar/url_finder/translators/individual/legislative_insight.py +0 -0
  714. scitex/scholar/url_finder/translators/individual/lexis_.py +0 -0
  715. scitex/scholar/url_finder/translators/individual/lexisnexis.py +0 -0
  716. scitex/scholar/url_finder/translators/individual/libraries_tasmania.py +0 -0
  717. scitex/scholar/url_finder/translators/individual/library_catalog__aleph_.py +0 -0
  718. scitex/scholar/url_finder/translators/individual/library_catalog__amicus_.py +0 -0
  719. scitex/scholar/url_finder/translators/individual/library_catalog__aquabrowser_.py +0 -0
  720. scitex/scholar/url_finder/translators/individual/library_catalog__bibliocommons_.py +0 -0
  721. scitex/scholar/url_finder/translators/individual/library_catalog__blacklight_.py +0 -0
  722. scitex/scholar/url_finder/translators/individual/library_catalog__capita_prism_.py +0 -0
  723. scitex/scholar/url_finder/translators/individual/library_catalog__dra_.py +0 -0
  724. scitex/scholar/url_finder/translators/individual/library_catalog__dynix_.py +0 -0
  725. scitex/scholar/url_finder/translators/individual/library_catalog__encore_.py +0 -0
  726. scitex/scholar/url_finder/translators/individual/library_catalog__innopac_.py +0 -0
  727. scitex/scholar/url_finder/translators/individual/library_catalog__koha_.py +0 -0
  728. scitex/scholar/url_finder/translators/individual/library_catalog__mango_.py +0 -0
  729. scitex/scholar/url_finder/translators/individual/library_catalog__opals_.py +0 -0
  730. scitex/scholar/url_finder/translators/individual/library_catalog__pica2_.py +0 -0
  731. scitex/scholar/url_finder/translators/individual/library_catalog__pica_.py +0 -0
  732. scitex/scholar/url_finder/translators/individual/library_catalog__pika_.py +0 -0
  733. scitex/scholar/url_finder/translators/individual/library_catalog__polaris_.py +0 -0
  734. scitex/scholar/url_finder/translators/individual/library_catalog__quolto_.py +0 -0
  735. scitex/scholar/url_finder/translators/individual/library_catalog__rero_ils_.py +0 -0
  736. scitex/scholar/url_finder/translators/individual/library_catalog__sirsi_.py +0 -0
  737. scitex/scholar/url_finder/translators/individual/library_catalog__sirsi_elibrary_.py +0 -0
  738. scitex/scholar/url_finder/translators/individual/library_catalog__slims_.py +0 -0
  739. scitex/scholar/url_finder/translators/individual/library_catalog__tind_ils_.py +0 -0
  740. scitex/scholar/url_finder/translators/individual/library_catalog__tinread_.py +0 -0
  741. scitex/scholar/url_finder/translators/individual/library_catalog__tlcyouseemore_.py +0 -0
  742. scitex/scholar/url_finder/translators/individual/library_catalog__visual_library_2021_.py +0 -0
  743. scitex/scholar/url_finder/translators/individual/library_catalog__voyager_.py +0 -0
  744. scitex/scholar/url_finder/translators/individual/library_catalog__voyager_7_.py +0 -0
  745. scitex/scholar/url_finder/translators/individual/library_catalog__vtls_.py +0 -0
  746. scitex/scholar/url_finder/translators/individual/library_genesis.py +0 -0
  747. scitex/scholar/url_finder/translators/individual/library_hub_discover.py +0 -0
  748. scitex/scholar/url_finder/translators/individual/library_of_congress_digital_collections.py +0 -0
  749. scitex/scholar/url_finder/translators/individual/library_of_congress_isbn.py +0 -0
  750. scitex/scholar/url_finder/translators/individual/libris_isbn.py +0 -0
  751. scitex/scholar/url_finder/translators/individual/lingbuzz.py +0 -0
  752. scitex/scholar/url_finder/translators/individual/lippincott_williams_and_wilkins.py +0 -0
  753. scitex/scholar/url_finder/translators/individual/literary_hub.py +0 -0
  754. scitex/scholar/url_finder/translators/individual/litres.py +0 -0
  755. scitex/scholar/url_finder/translators/individual/livejournal.py +0 -0
  756. scitex/scholar/url_finder/translators/individual/livivo.py +0 -0
  757. scitex/scholar/url_finder/translators/individual/london_review_of_books.py +0 -0
  758. scitex/scholar/url_finder/translators/individual/lookus.py +0 -0
  759. scitex/scholar/url_finder/translators/individual/lulu.py +0 -0
  760. scitex/scholar/url_finder/translators/individual/lwn_net.py +0 -0
  761. scitex/scholar/url_finder/translators/individual/lww.py +0 -0
  762. scitex/scholar/url_finder/translators/individual/mab2.py +0 -0
  763. scitex/scholar/url_finder/translators/individual/magazines_russ_ru.py +0 -0
  764. scitex/scholar/url_finder/translators/individual/mailman.py +0 -0
  765. scitex/scholar/url_finder/translators/individual/mainichi_daily_news.py +0 -0
  766. scitex/scholar/url_finder/translators/individual/marc.py +0 -0
  767. scitex/scholar/url_finder/translators/individual/marcxml.py +0 -0
  768. scitex/scholar/url_finder/translators/individual/mastodon.py +0 -0
  769. scitex/scholar/url_finder/translators/individual/matbugat_ru.py +0 -0
  770. scitex/scholar/url_finder/translators/individual/max_planck_institute_for_the_history_of_science_virtual_laboratory_library.py +0 -0
  771. scitex/scholar/url_finder/translators/individual/mcv.py +0 -0
  772. scitex/scholar/url_finder/translators/individual/mdpi.py +0 -0
  773. scitex/scholar/url_finder/translators/individual/mdpi_journals.py +0 -0
  774. scitex/scholar/url_finder/translators/individual/medes.py +0 -0
  775. scitex/scholar/url_finder/translators/individual/medium.py +0 -0
  776. scitex/scholar/url_finder/translators/individual/medline_nbib.py +0 -0
  777. scitex/scholar/url_finder/translators/individual/medlinenbib.py +0 -0
  778. scitex/scholar/url_finder/translators/individual/medra.py +0 -0
  779. scitex/scholar/url_finder/translators/individual/metalib.py +0 -0
  780. scitex/scholar/url_finder/translators/individual/mets.py +0 -0
  781. scitex/scholar/url_finder/translators/individual/microbiology_society_journals.py +0 -0
  782. scitex/scholar/url_finder/translators/individual/microsoft_academic.py +0 -0
  783. scitex/scholar/url_finder/translators/individual/midas_journals.py +0 -0
  784. scitex/scholar/url_finder/translators/individual/mikromarc.py +0 -0
  785. scitex/scholar/url_finder/translators/individual/milli_kutuphane.py +0 -0
  786. scitex/scholar/url_finder/translators/individual/mit_press_books.py +0 -0
  787. scitex/scholar/url_finder/translators/individual/mods.py +0 -0
  788. scitex/scholar/url_finder/translators/individual/mpg_pure.py +0 -0
  789. scitex/scholar/url_finder/translators/individual/musee_du_louvre.py +0 -0
  790. scitex/scholar/url_finder/translators/individual/nagoya_university_opac.py +0 -0
  791. scitex/scholar/url_finder/translators/individual/nasa_ads.py +0 -0
  792. scitex/scholar/url_finder/translators/individual/nasa_ntrs.py +0 -0
  793. scitex/scholar/url_finder/translators/individual/national_academies_press.py +0 -0
  794. scitex/scholar/url_finder/translators/individual/national_agriculture_library.py +0 -0
  795. scitex/scholar/url_finder/translators/individual/national_archives_of_australia.py +0 -0
  796. scitex/scholar/url_finder/translators/individual/national_archives_of_south_africa.py +0 -0
  797. scitex/scholar/url_finder/translators/individual/national_bureau_of_economic_research.py +0 -0
  798. scitex/scholar/url_finder/translators/individual/national_diet_library_catalogue.py +0 -0
  799. scitex/scholar/url_finder/translators/individual/national_gallery_of_art___usa.py +0 -0
  800. scitex/scholar/url_finder/translators/individual/national_gallery_of_australia.py +0 -0
  801. scitex/scholar/url_finder/translators/individual/national_library_of_australia__new_catalog_.py +0 -0
  802. scitex/scholar/url_finder/translators/individual/national_library_of_belarus.py +0 -0
  803. scitex/scholar/url_finder/translators/individual/national_library_of_norway.py +0 -0
  804. scitex/scholar/url_finder/translators/individual/national_library_of_poland_isbn.py +0 -0
  805. scitex/scholar/url_finder/translators/individual/national_post.py +0 -0
  806. scitex/scholar/url_finder/translators/individual/national_technical_reports_library.py +0 -0
  807. scitex/scholar/url_finder/translators/individual/national_transportation_library_rosa_p.py +0 -0
  808. scitex/scholar/url_finder/translators/individual/nature.py +0 -0
  809. scitex/scholar/url_finder/translators/individual/nber.py +0 -0
  810. scitex/scholar/url_finder/translators/individual/ncbi_nucleotide.py +0 -0
  811. scitex/scholar/url_finder/translators/individual/neural_information_processing_systems.py +0 -0
  812. scitex/scholar/url_finder/translators/individual/new_left_review.py +0 -0
  813. scitex/scholar/url_finder/translators/individual/new_zealand_herald.py +0 -0
  814. scitex/scholar/url_finder/translators/individual/newlines_magazine.py +0 -0
  815. scitex/scholar/url_finder/translators/individual/news_corp_australia.py +0 -0
  816. scitex/scholar/url_finder/translators/individual/newsbank.py +0 -0
  817. scitex/scholar/url_finder/translators/individual/newshub_co_nz.py +0 -0
  818. scitex/scholar/url_finder/translators/individual/newsnettamedia.py +0 -0
  819. scitex/scholar/url_finder/translators/individual/newspapers_com.py +0 -0
  820. scitex/scholar/url_finder/translators/individual/noor_digital_library.py +0 -0
  821. scitex/scholar/url_finder/translators/individual/note_html.py +0 -0
  822. scitex/scholar/url_finder/translators/individual/note_markdown.py +0 -0
  823. scitex/scholar/url_finder/translators/individual/notre_dame_philosophical_reviews.py +0 -0
  824. scitex/scholar/url_finder/translators/individual/npr.py +0 -0
  825. scitex/scholar/url_finder/translators/individual/nrc_nl.py +0 -0
  826. scitex/scholar/url_finder/translators/individual/nrc_research_press.py +0 -0
  827. scitex/scholar/url_finder/translators/individual/ntsb_accident_reports.py +0 -0
  828. scitex/scholar/url_finder/translators/individual/nypl_menus.py +0 -0
  829. scitex/scholar/url_finder/translators/individual/nypl_research_catalog.py +0 -0
  830. scitex/scholar/url_finder/translators/individual/nytimes_com.py +0 -0
  831. scitex/scholar/url_finder/translators/individual/nzz_ch.py +0 -0
  832. scitex/scholar/url_finder/translators/individual/oapen.py +0 -0
  833. scitex/scholar/url_finder/translators/individual/oclc_worldcat_firstsearch.py +0 -0
  834. scitex/scholar/url_finder/translators/individual/oecd.py +0 -0
  835. scitex/scholar/url_finder/translators/individual/oecd_ilibrary.py +0 -0
  836. scitex/scholar/url_finder/translators/individual/ohiolink.py +0 -0
  837. scitex/scholar/url_finder/translators/individual/open_conf.py +0 -0
  838. scitex/scholar/url_finder/translators/individual/open_knowledge_repository.py +0 -0
  839. scitex/scholar/url_finder/translators/individual/open_worldcat.py +0 -0
  840. scitex/scholar/url_finder/translators/individual/openalex.py +0 -0
  841. scitex/scholar/url_finder/translators/individual/openalex_json.py +0 -0
  842. scitex/scholar/url_finder/translators/individual/openedition_books.py +0 -0
  843. scitex/scholar/url_finder/translators/individual/openedition_journals.py +0 -0
  844. scitex/scholar/url_finder/translators/individual/openjur.py +0 -0
  845. scitex/scholar/url_finder/translators/individual/optical_society_of_america.py +0 -0
  846. scitex/scholar/url_finder/translators/individual/optimization_online.py +0 -0
  847. scitex/scholar/url_finder/translators/individual/orcid.py +0 -0
  848. scitex/scholar/url_finder/translators/individual/osa.py +0 -0
  849. scitex/scholar/url_finder/translators/individual/osf_preprints.py +0 -0
  850. scitex/scholar/url_finder/translators/individual/osti_energy_citations.py +0 -0
  851. scitex/scholar/url_finder/translators/individual/ovid.py +0 -0
  852. scitex/scholar/url_finder/translators/individual/ovid_tagged.py +0 -0
  853. scitex/scholar/url_finder/translators/individual/oxford.py +0 -0
  854. scitex/scholar/url_finder/translators/individual/oxford_dictionaries_premium.py +0 -0
  855. scitex/scholar/url_finder/translators/individual/oxford_english_dictionary.py +0 -0
  856. scitex/scholar/url_finder/translators/individual/oxford_music_and_art_online.py +0 -0
  857. scitex/scholar/url_finder/translators/individual/oxford_reference.py +0 -0
  858. scitex/scholar/url_finder/translators/individual/oxford_university_press.py +0 -0
  859. scitex/scholar/url_finder/translators/individual/ozon_ru.py +0 -0
  860. scitex/scholar/url_finder/translators/individual/pajhwok_afghan_news.py +0 -0
  861. scitex/scholar/url_finder/translators/individual/papers_past.py +0 -0
  862. scitex/scholar/url_finder/translators/individual/paris_review.py +0 -0
  863. scitex/scholar/url_finder/translators/individual/pastebin.py +0 -0
  864. scitex/scholar/url_finder/translators/individual/patents___uspto.py +0 -0
  865. scitex/scholar/url_finder/translators/individual/pc_gamer.py +0 -0
  866. scitex/scholar/url_finder/translators/individual/pc_games.py +0 -0
  867. scitex/scholar/url_finder/translators/individual/peeters.py +0 -0
  868. scitex/scholar/url_finder/translators/individual/pei_archival_information_network.py +0 -0
  869. scitex/scholar/url_finder/translators/individual/pep_web.py +0 -0
  870. scitex/scholar/url_finder/translators/individual/perceiving_systems.py +0 -0
  871. scitex/scholar/url_finder/translators/individual/perlego.py +0 -0
  872. scitex/scholar/url_finder/translators/individual/philosopher_s_imprint.py +0 -0
  873. scitex/scholar/url_finder/translators/individual/philpapers.py +0 -0
  874. scitex/scholar/url_finder/translators/individual/pkp_catalog_systems.py +0 -0
  875. scitex/scholar/url_finder/translators/individual/pleade.py +0 -0
  876. scitex/scholar/url_finder/translators/individual/plos.py +0 -0
  877. scitex/scholar/url_finder/translators/individual/plos_journals.py +0 -0
  878. scitex/scholar/url_finder/translators/individual/pnas.py +0 -0
  879. scitex/scholar/url_finder/translators/individual/polygon.py +0 -0
  880. scitex/scholar/url_finder/translators/individual/potsdamer_neueste_nachrichten.py +0 -0
  881. scitex/scholar/url_finder/translators/individual/prc_history_review.py +0 -0
  882. scitex/scholar/url_finder/translators/individual/preprints_org.py +0 -0
  883. scitex/scholar/url_finder/translators/individual/primo.py +0 -0
  884. scitex/scholar/url_finder/translators/individual/primo_2018.py +0 -0
  885. scitex/scholar/url_finder/translators/individual/primo_normalized_xml.py +0 -0
  886. scitex/scholar/url_finder/translators/individual/probing_the_past.py +0 -0
  887. scitex/scholar/url_finder/translators/individual/project_gutenberg.py +0 -0
  888. scitex/scholar/url_finder/translators/individual/project_muse.py +0 -0
  889. scitex/scholar/url_finder/translators/individual/promed.py +0 -0
  890. scitex/scholar/url_finder/translators/individual/proquest.py +0 -0
  891. scitex/scholar/url_finder/translators/individual/proquest_ebook_central.py +0 -0
  892. scitex/scholar/url_finder/translators/individual/proquest_policyfile.py +0 -0
  893. scitex/scholar/url_finder/translators/individual/protein_data_bank.py +0 -0
  894. scitex/scholar/url_finder/translators/individual/pubfactory_journals.py +0 -0
  895. scitex/scholar/url_finder/translators/individual/public_record_office_victoria.py +0 -0
  896. scitex/scholar/url_finder/translators/individual/publications_du_quebec.py +0 -0
  897. scitex/scholar/url_finder/translators/individual/publications_office_of_the_european_union.py +0 -0
  898. scitex/scholar/url_finder/translators/individual/pubmed.py +0 -0
  899. scitex/scholar/url_finder/translators/individual/pubmed_central.py +0 -0
  900. scitex/scholar/url_finder/translators/individual/pubmed_xml.py +0 -0
  901. scitex/scholar/url_finder/translators/individual/pubpub.py +0 -0
  902. scitex/scholar/url_finder/translators/individual/pypi.py +0 -0
  903. scitex/scholar/url_finder/translators/individual/qatar_digital_library.py +0 -0
  904. scitex/scholar/url_finder/translators/individual/queensland_state_archives.py +0 -0
  905. scitex/scholar/url_finder/translators/individual/r_packages.py +0 -0
  906. scitex/scholar/url_finder/translators/individual/radio_free_europe__radio_liberty.py +0 -0
  907. scitex/scholar/url_finder/translators/individual/rand.py +0 -0
  908. scitex/scholar/url_finder/translators/individual/rdf.py +0 -0
  909. scitex/scholar/url_finder/translators/individual/rechtspraak_nl.py +0 -0
  910. scitex/scholar/url_finder/translators/individual/redalyc.py +0 -0
  911. scitex/scholar/url_finder/translators/individual/reddit.py +0 -0
  912. scitex/scholar/url_finder/translators/individual/referbibix.py +0 -0
  913. scitex/scholar/url_finder/translators/individual/refworks_tagged.py +0 -0
  914. scitex/scholar/url_finder/translators/individual/regeringskansliet.py +0 -0
  915. scitex/scholar/url_finder/translators/individual/repec___econpapers.py +0 -0
  916. scitex/scholar/url_finder/translators/individual/repec___ideas.py +0 -0
  917. scitex/scholar/url_finder/translators/individual/repec_ideas.py +0 -0
  918. scitex/scholar/url_finder/translators/individual/research_square.py +0 -0
  919. scitex/scholar/url_finder/translators/individual/researchgate.py +0 -0
  920. scitex/scholar/url_finder/translators/individual/retsinformation.py +0 -0
  921. scitex/scholar/url_finder/translators/individual/reuters.py +0 -0
  922. scitex/scholar/url_finder/translators/individual/ris.py +0 -0
  923. scitex/scholar/url_finder/translators/individual/rock__paper__shotgun.py +0 -0
  924. scitex/scholar/url_finder/translators/individual/roll_call.py +0 -0
  925. scitex/scholar/url_finder/translators/individual/rsc.py +0 -0
  926. scitex/scholar/url_finder/translators/individual/rsc_publishing.py +0 -0
  927. scitex/scholar/url_finder/translators/individual/russian_state_library.py +0 -0
  928. scitex/scholar/url_finder/translators/individual/sacramento_bee.py +0 -0
  929. scitex/scholar/url_finder/translators/individual/sae_papers.py +0 -0
  930. scitex/scholar/url_finder/translators/individual/safari_books_online.py +0 -0
  931. scitex/scholar/url_finder/translators/individual/sage.py +0 -0
  932. scitex/scholar/url_finder/translators/individual/sage_journals.py +0 -0
  933. scitex/scholar/url_finder/translators/individual/sage_knowledge.py +0 -0
  934. scitex/scholar/url_finder/translators/individual/saildart.py +0 -0
  935. scitex/scholar/url_finder/translators/individual/salt_research_archives.py +0 -0
  936. scitex/scholar/url_finder/translators/individual/sbn_it.py +0 -0
  937. scitex/scholar/url_finder/translators/individual/scholars_portal_journals.py +0 -0
  938. scitex/scholar/url_finder/translators/individual/scholia.py +0 -0
  939. scitex/scholar/url_finder/translators/individual/schweizer_radio_und_fernsehen_srf.py +0 -0
  940. scitex/scholar/url_finder/translators/individual/scielo.py +0 -0
  941. scitex/scholar/url_finder/translators/individual/sciencedirect.py +0 -0
  942. scitex/scholar/url_finder/translators/individual/scinapse.py +0 -0
  943. scitex/scholar/url_finder/translators/individual/scopus.py +0 -0
  944. scitex/scholar/url_finder/translators/individual/semantic_scholar.py +0 -0
  945. scitex/scholar/url_finder/translators/individual/semantics_visual_library.py +0 -0
  946. scitex/scholar/url_finder/translators/individual/sfu_ipinch.py +0 -0
  947. scitex/scholar/url_finder/translators/individual/silverchair.py +0 -0
  948. scitex/scholar/url_finder/translators/individual/sipri.py +0 -0
  949. scitex/scholar/url_finder/translators/individual/sirs_knowledge_source.py +0 -0
  950. scitex/scholar/url_finder/translators/individual/slate.py +0 -0
  951. scitex/scholar/url_finder/translators/individual/slideshare.py +0 -0
  952. scitex/scholar/url_finder/translators/individual/slub_dresden.py +0 -0
  953. scitex/scholar/url_finder/translators/individual/sora.py +0 -0
  954. scitex/scholar/url_finder/translators/individual/springer.py +0 -0
  955. scitex/scholar/url_finder/translators/individual/springer_link.py +0 -0
  956. scitex/scholar/url_finder/translators/individual/ssoar.py +0 -0
  957. scitex/scholar/url_finder/translators/individual/stack_exchange.py +0 -0
  958. scitex/scholar/url_finder/translators/individual/standard_ebooks.py +0 -0
  959. scitex/scholar/url_finder/translators/individual/stanford_encyclopedia_of_philosophy.py +0 -0
  960. scitex/scholar/url_finder/translators/individual/stanford_university_press.py +0 -0
  961. scitex/scholar/url_finder/translators/individual/state_records_office_of_western_australia.py +0 -0
  962. scitex/scholar/url_finder/translators/individual/state_records_office_wa.py +0 -0
  963. scitex/scholar/url_finder/translators/individual/stitcher.py +0 -0
  964. scitex/scholar/url_finder/translators/individual/store_norske_leksikon.py +0 -0
  965. scitex/scholar/url_finder/translators/individual/stuff_co_nz.py +0 -0
  966. scitex/scholar/url_finder/translators/individual/substack.py +0 -0
  967. scitex/scholar/url_finder/translators/individual/sud_ouest.py +0 -0
  968. scitex/scholar/url_finder/translators/individual/sueddeutsche_de.py +0 -0
  969. scitex/scholar/url_finder/translators/individual/summon_2.py +0 -0
  970. scitex/scholar/url_finder/translators/individual/superlib.py +0 -0
  971. scitex/scholar/url_finder/translators/individual/svenska_dagbladet.py +0 -0
  972. scitex/scholar/url_finder/translators/individual/sveriges_radio.py +0 -0
  973. scitex/scholar/url_finder/translators/individual/svt_nyheter.py +0 -0
  974. scitex/scholar/url_finder/translators/individual/tagesspiegel.py +0 -0
  975. scitex/scholar/url_finder/translators/individual/talis_aspire.py +0 -0
  976. scitex/scholar/url_finder/translators/individual/talisprism.py +0 -0
  977. scitex/scholar/url_finder/translators/individual/tatknigafund.py +0 -0
  978. scitex/scholar/url_finder/translators/individual/tatpressa_ru.py +0 -0
  979. scitex/scholar/url_finder/translators/individual/taylor___francis_ebooks.py +0 -0
  980. scitex/scholar/url_finder/translators/individual/taylor_and_francis_nejm.py +0 -0
  981. scitex/scholar/url_finder/translators/individual/taylor_francis.py +0 -0
  982. scitex/scholar/url_finder/translators/individual/taylor_francis_nejm.py +0 -0
  983. scitex/scholar/url_finder/translators/individual/taz_de.py +0 -0
  984. scitex/scholar/url_finder/translators/individual/tei.py +0 -0
  985. scitex/scholar/url_finder/translators/individual/tesis_doctorals_en_xarxa.py +0 -0
  986. scitex/scholar/url_finder/translators/individual/the_art_newspaper.py +0 -0
  987. scitex/scholar/url_finder/translators/individual/the_atlantic.py +0 -0
  988. scitex/scholar/url_finder/translators/individual/the_boston_globe.py +0 -0
  989. scitex/scholar/url_finder/translators/individual/the_chronicle_of_higher_education.py +0 -0
  990. scitex/scholar/url_finder/translators/individual/the_daily_beast.py +0 -0
  991. scitex/scholar/url_finder/translators/individual/the_economic_times___the_times_of_india.py +0 -0
  992. scitex/scholar/url_finder/translators/individual/the_economist.py +0 -0
  993. scitex/scholar/url_finder/translators/individual/the_free_dictionary.py +0 -0
  994. scitex/scholar/url_finder/translators/individual/the_globe_and_mail.py +0 -0
  995. scitex/scholar/url_finder/translators/individual/the_guardian.py +0 -0
  996. scitex/scholar/url_finder/translators/individual/the_hamilton_spectator.py +0 -0
  997. scitex/scholar/url_finder/translators/individual/the_hindu.py +0 -0
  998. scitex/scholar/url_finder/translators/individual/the_independent.py +0 -0
  999. scitex/scholar/url_finder/translators/individual/the_intercept.py +0 -0
  1000. scitex/scholar/url_finder/translators/individual/the_met.py +0 -0
  1001. scitex/scholar/url_finder/translators/individual/the_microfinance_gateway.py +0 -0
  1002. scitex/scholar/url_finder/translators/individual/the_nation.py +0 -0
  1003. scitex/scholar/url_finder/translators/individual/the_national_archives__uk_.py +0 -0
  1004. scitex/scholar/url_finder/translators/individual/the_new_republic.py +0 -0
  1005. scitex/scholar/url_finder/translators/individual/the_new_york_review_of_books.py +0 -0
  1006. scitex/scholar/url_finder/translators/individual/the_new_yorker.py +0 -0
  1007. scitex/scholar/url_finder/translators/individual/the_open_library.py +0 -0
  1008. scitex/scholar/url_finder/translators/individual/the_straits_times.py +0 -0
  1009. scitex/scholar/url_finder/translators/individual/the_telegraph.py +0 -0
  1010. scitex/scholar/url_finder/translators/individual/the_times_and_sunday_times.py +0 -0
  1011. scitex/scholar/url_finder/translators/individual/the_times_of_israel.py +0 -0
  1012. scitex/scholar/url_finder/translators/individual/themarker.py +0 -0
  1013. scitex/scholar/url_finder/translators/individual/theory_of_computing.py +0 -0
  1014. scitex/scholar/url_finder/translators/individual/thesesfr.py +0 -0
  1015. scitex/scholar/url_finder/translators/individual/thieme.py +0 -0
  1016. scitex/scholar/url_finder/translators/individual/time_com.py +0 -0
  1017. scitex/scholar/url_finder/translators/individual/timesmachine.py +0 -0
  1018. scitex/scholar/url_finder/translators/individual/tony_blair_institute.py +0 -0
  1019. scitex/scholar/url_finder/translators/individual/tony_blair_institute_for_global_change.py +0 -0
  1020. scitex/scholar/url_finder/translators/individual/toronto_star.py +0 -0
  1021. scitex/scholar/url_finder/translators/individual/transportation_research_board.py +0 -0
  1022. scitex/scholar/url_finder/translators/individual/treesearch.py +0 -0
  1023. scitex/scholar/url_finder/translators/individual/trove.py +0 -0
  1024. scitex/scholar/url_finder/translators/individual/tumblr.py +0 -0
  1025. scitex/scholar/url_finder/translators/individual/tv_by_the_numbers.py +0 -0
  1026. scitex/scholar/url_finder/translators/individual/tvnz.py +0 -0
  1027. scitex/scholar/url_finder/translators/individual/twitter.py +0 -0
  1028. scitex/scholar/url_finder/translators/individual/ubiquity_journals.py +0 -0
  1029. scitex/scholar/url_finder/translators/individual/uchicago_vufind.py +0 -0
  1030. scitex/scholar/url_finder/translators/individual/unapi.py +0 -0
  1031. scitex/scholar/url_finder/translators/individual/unesco.py +0 -0
  1032. scitex/scholar/url_finder/translators/individual/university_of_california_press_books.py +0 -0
  1033. scitex/scholar/url_finder/translators/individual/university_of_chicago_press_books.py +0 -0
  1034. scitex/scholar/url_finder/translators/individual/university_of_wisconsin_madison_libraries_catalog.py +0 -0
  1035. scitex/scholar/url_finder/translators/individual/university_press_scholarship.py +0 -0
  1036. scitex/scholar/url_finder/translators/individual/unqualified_dublin_core_rdf.py +0 -0
  1037. scitex/scholar/url_finder/translators/individual/unz_print_archive.py +0 -0
  1038. scitex/scholar/url_finder/translators/individual/upcommons.py +0 -0
  1039. scitex/scholar/url_finder/translators/individual/uptodate_references.py +0 -0
  1040. scitex/scholar/url_finder/translators/individual/us_national_archives_research_catalog.py +0 -0
  1041. scitex/scholar/url_finder/translators/individual/usenix.py +0 -0
  1042. scitex/scholar/url_finder/translators/individual/vanity_fair.py +0 -0
  1043. scitex/scholar/url_finder/translators/individual/verniana.py +0 -0
  1044. scitex/scholar/url_finder/translators/individual/verniana_jules_verne_studies.py +0 -0
  1045. scitex/scholar/url_finder/translators/individual/verso_books.py +0 -0
  1046. scitex/scholar/url_finder/translators/individual/vice.py +0 -0
  1047. scitex/scholar/url_finder/translators/individual/victoria___albert_museum.py +0 -0
  1048. scitex/scholar/url_finder/translators/individual/vimeo.py +0 -0
  1049. scitex/scholar/url_finder/translators/individual/vlex.py +0 -0
  1050. scitex/scholar/url_finder/translators/individual/voxeu.py +0 -0
  1051. scitex/scholar/url_finder/translators/individual/wall_street_journal.py +0 -0
  1052. scitex/scholar/url_finder/translators/individual/wanfang_data.py +0 -0
  1053. scitex/scholar/url_finder/translators/individual/washington_monthly.py +0 -0
  1054. scitex/scholar/url_finder/translators/individual/washington_post.py +0 -0
  1055. scitex/scholar/url_finder/translators/individual/web_of_science.py +0 -0
  1056. scitex/scholar/url_finder/translators/individual/web_of_science_nextgen.py +0 -0
  1057. scitex/scholar/url_finder/translators/individual/web_of_science_tagged.py +0 -0
  1058. scitex/scholar/url_finder/translators/individual/welt_online.py +0 -0
  1059. scitex/scholar/url_finder/translators/individual/westlaw_uk.py +0 -0
  1060. scitex/scholar/url_finder/translators/individual/who.py +0 -0
  1061. scitex/scholar/url_finder/translators/individual/wikidata.py +0 -0
  1062. scitex/scholar/url_finder/translators/individual/wikidata_quickstatements.py +0 -0
  1063. scitex/scholar/url_finder/translators/individual/wikileaks_plusd.py +0 -0
  1064. scitex/scholar/url_finder/translators/individual/wikimedia_commons.py +0 -0
  1065. scitex/scholar/url_finder/translators/individual/wikipedia.py +0 -0
  1066. scitex/scholar/url_finder/translators/individual/wikipedia_citation_templates.py +0 -0
  1067. scitex/scholar/url_finder/translators/individual/wikisource.py +0 -0
  1068. scitex/scholar/url_finder/translators/individual/wikiwand.py +0 -0
  1069. scitex/scholar/url_finder/translators/individual/wiktionary.py +0 -0
  1070. scitex/scholar/url_finder/translators/individual/wildlife_biology_in_practice.py +0 -0
  1071. scitex/scholar/url_finder/translators/individual/wiley.py +0 -0
  1072. scitex/scholar/url_finder/translators/individual/wiley_online_library.py +0 -0
  1073. scitex/scholar/url_finder/translators/individual/wilson_center_digital_archive.py +0 -0
  1074. scitex/scholar/url_finder/translators/individual/winnipeg_free_press.py +0 -0
  1075. scitex/scholar/url_finder/translators/individual/wipo.py +0 -0
  1076. scitex/scholar/url_finder/translators/individual/wired.py +0 -0
  1077. scitex/scholar/url_finder/translators/individual/wiso.py +0 -0
  1078. scitex/scholar/url_finder/translators/individual/womennews.py +0 -0
  1079. scitex/scholar/url_finder/translators/individual/world_bank.py +0 -0
  1080. scitex/scholar/url_finder/translators/individual/world_digital_library.py +0 -0
  1081. scitex/scholar/url_finder/translators/individual/world_history_connected.py +0 -0
  1082. scitex/scholar/url_finder/translators/individual/world_shakespeare_bibliography_online.py +0 -0
  1083. scitex/scholar/url_finder/translators/individual/worldcat_discovery_service.py +0 -0
  1084. scitex/scholar/url_finder/translators/individual/xml_contextobject.py +0 -0
  1085. scitex/scholar/url_finder/translators/individual/yandex_books.py +0 -0
  1086. scitex/scholar/url_finder/translators/individual/ynet.py +0 -0
  1087. scitex/scholar/url_finder/translators/individual/youtube.py +0 -0
  1088. scitex/scholar/url_finder/translators/individual/ypfs.py +0 -0
  1089. scitex/scholar/url_finder/translators/individual/ypsf.py +0 -0
  1090. scitex/scholar/url_finder/translators/individual/zbmath.py +0 -0
  1091. scitex/scholar/url_finder/translators/individual/zenodo.py +0 -0
  1092. scitex/scholar/url_finder/translators/individual/ziponline.py +0 -0
  1093. scitex/scholar/url_finder/translators/individual/zobodat.py +0 -0
  1094. scitex/scholar/url_finder/translators/individual/zotero_org.py +0 -0
  1095. scitex/scholar/url_finder/translators/individual/zotero_rdf.py +0 -0
  1096. scitex/scholar/url_finder/translators/individual/zoterobib.py +0 -0
  1097. scitex/scholar/utils/__init__.py +3 -0
  1098. scitex/scholar/utils/bibtex/__init__.py +0 -0
  1099. scitex/scholar/utils/cleanup/__init__.py +0 -0
  1100. scitex/scholar/utils/text/_TextNormalizer.py +0 -0
  1101. scitex/scholar/utils/text/__init__.py +0 -0
  1102. scitex/scholar/utils/validation/DOIValidator.py +289 -0
  1103. scitex/scholar/utils/validation/README.md +169 -0
  1104. scitex/scholar/utils/validation/__init__.py +13 -0
  1105. scitex/scholar/utils/validation/validate_library_dois.py +221 -0
  1106. scitex/scholar/zotero/__init__.py +0 -0
  1107. scitex/security/README.md +255 -0
  1108. scitex/security/__init__.py +35 -0
  1109. scitex/security/cli.py +140 -0
  1110. scitex/security/github.py +358 -0
  1111. scitex/session/README.md +95 -30
  1112. scitex/session/__init__.py +8 -3
  1113. scitex/session/_decorator.py +610 -0
  1114. scitex/session/_lifecycle.py +155 -62
  1115. scitex/session/_manager.py +0 -0
  1116. scitex/session/template.py +16 -110
  1117. scitex/sh/README.md +1 -1
  1118. scitex/sh/__init__.py +0 -0
  1119. scitex/stats/__init__.py +5 -3
  1120. scitex/stats/correct/_correct_bonferroni.py +3 -3
  1121. scitex/stats/correct/_correct_fdr.py +62 -62
  1122. scitex/stats/correct/_correct_fdr_.py +634 -0
  1123. scitex/stats/correct/_correct_holm.py +2 -2
  1124. scitex/stats/correct/_correct_sidak.py +2 -2
  1125. scitex/stats/descriptive/_circular.py +2 -2
  1126. scitex/stats/descriptive/_describe.py +2 -2
  1127. scitex/stats/descriptive/_nan.py +2 -2
  1128. scitex/stats/descriptive/_real.py +2 -2
  1129. scitex/stats/effect_sizes/_cliffs_delta.py +1 -1
  1130. scitex/stats/effect_sizes/_cohens_d.py +1 -1
  1131. scitex/stats/effect_sizes/_epsilon_squared.py +1 -1
  1132. scitex/stats/effect_sizes/_eta_squared.py +1 -1
  1133. scitex/stats/effect_sizes/_prob_superiority.py +1 -1
  1134. scitex/stats/posthoc/_dunnett.py +3 -3
  1135. scitex/stats/posthoc/_games_howell.py +3 -3
  1136. scitex/stats/posthoc/_tukey_hsd.py +3 -3
  1137. scitex/stats/power/_power.py +1 -1
  1138. scitex/stats/utils/_effect_size.py +1 -1
  1139. scitex/stats/utils/_formatters.py +1 -1
  1140. scitex/stats/utils/_normalizers.py +8 -5
  1141. scitex/stats/utils/_power.py +1 -1
  1142. scitex/str/_parse.py +1 -1
  1143. scitex/str/_replace.py +1 -1
  1144. scitex/template/_clone_project.py +58 -41
  1145. scitex/template/_copy.py +22 -15
  1146. scitex/template/_customize.py +9 -4
  1147. scitex/template/_git_strategy.py +32 -32
  1148. scitex/template/_logging_helpers.py +122 -0
  1149. scitex/template/clone_pip_project.py +24 -17
  1150. scitex/template/clone_research.py +26 -21
  1151. scitex/template/clone_singularity.py +25 -22
  1152. scitex/template/clone_writer_directory.py +24 -17
  1153. scitex/tex/_preview.py +2 -2
  1154. scitex/tex/_to_vec.py +1 -1
  1155. scitex/utils/_email.py +1 -1
  1156. scitex/utils/_verify_scitex_format.py +2 -2
  1157. scitex/utils/template.py +1 -1
  1158. scitex/vis/DJANGO_INTEGRATION.md +677 -0
  1159. scitex/vis/README.md +755 -0
  1160. scitex/vis/__init__.py +111 -0
  1161. scitex/vis/backend/__init__.py +56 -0
  1162. scitex/vis/backend/export.py +166 -0
  1163. scitex/vis/backend/parser.py +190 -0
  1164. scitex/vis/backend/render.py +385 -0
  1165. scitex/vis/io/__init__.py +36 -0
  1166. scitex/vis/io/load.py +168 -0
  1167. scitex/vis/io/save.py +131 -0
  1168. scitex/vis/model/__init__.py +118 -0
  1169. scitex/vis/model/annotations.py +118 -0
  1170. scitex/vis/model/axes.py +153 -0
  1171. scitex/vis/model/figure.py +139 -0
  1172. scitex/vis/model/guides.py +105 -0
  1173. scitex/vis/model/plot.py +126 -0
  1174. scitex/vis/model/plot_types.py +682 -0
  1175. scitex/vis/model/styles.py +246 -0
  1176. scitex/vis/tmp.txt +239 -0
  1177. scitex/vis/utils/__init__.py +75 -0
  1178. scitex/vis/utils/defaults.py +335 -0
  1179. scitex/vis/utils/validate.py +204 -0
  1180. scitex/web/__init__.py +4 -0
  1181. scitex/web/_scraping.py +373 -0
  1182. scitex/writer/README.md +11 -2
  1183. scitex/writer/Writer.py +75 -15
  1184. scitex/writer/_clone_writer_project.py +41 -28
  1185. scitex/writer/_compile/__init__.py +9 -67
  1186. scitex/writer/_compile/_parser.py +0 -0
  1187. scitex/writer/_compile/_runner.py +249 -28
  1188. scitex/writer/_compile/_validator.py +0 -0
  1189. scitex/writer/_compile/manuscript.py +109 -0
  1190. scitex/writer/_compile/revision.py +81 -0
  1191. scitex/writer/_compile/supplementary.py +99 -0
  1192. scitex/writer/_project/__init__.py +0 -0
  1193. scitex/writer/_project/_create.py +10 -12
  1194. scitex/writer/_project/_trees.py +0 -0
  1195. scitex/writer/_project/_validate.py +1 -1
  1196. scitex/writer/_validate_tree_structures.py +4 -4
  1197. scitex/writer/dataclasses/__init__.py +0 -0
  1198. scitex/writer/dataclasses/config/_WriterConfig.py +3 -3
  1199. scitex/writer/dataclasses/config/__init__.py +0 -0
  1200. scitex/writer/dataclasses/contents/_ManuscriptContents.py +4 -3
  1201. scitex/writer/dataclasses/contents/_RevisionContents.py +9 -5
  1202. scitex/writer/dataclasses/contents/_SupplementaryContents.py +7 -4
  1203. scitex/writer/dataclasses/contents/__init__.py +0 -0
  1204. scitex/writer/dataclasses/core/_Document.py +1 -1
  1205. scitex/writer/dataclasses/core/_DocumentSection.py +1 -1
  1206. scitex/writer/dataclasses/core/__init__.py +0 -0
  1207. scitex/writer/dataclasses/results/_CompilationResult.py +1 -1
  1208. scitex/writer/dataclasses/results/_LaTeXIssue.py +1 -1
  1209. scitex/writer/dataclasses/results/_SaveSectionsResponse.py +107 -0
  1210. scitex/writer/dataclasses/results/_SectionReadResponse.py +117 -0
  1211. scitex/writer/dataclasses/results/__init__.py +4 -0
  1212. scitex/writer/dataclasses/tree/_ConfigTree.py +3 -2
  1213. scitex/writer/dataclasses/tree/_ManuscriptTree.py +5 -3
  1214. scitex/writer/dataclasses/tree/_RevisionTree.py +7 -4
  1215. scitex/writer/dataclasses/tree/_ScriptsTree.py +5 -3
  1216. scitex/writer/dataclasses/tree/_SharedTree.py +5 -4
  1217. scitex/writer/dataclasses/tree/_SupplementaryTree.py +7 -4
  1218. scitex/writer/dataclasses/tree/__init__.py +0 -0
  1219. scitex/writer/tests/__init__.py +0 -0
  1220. scitex/writer/utils/.legacy_git_retry.py +1 -1
  1221. scitex/writer/utils/__init__.py +0 -0
  1222. scitex/writer/utils/_parse_latex_logs.py +1 -1
  1223. scitex/writer/utils/_parse_script_args.py +0 -0
  1224. scitex/writer/utils/_watch.py +0 -0
  1225. {scitex-2.1.3.dist-info → scitex-2.3.0.dist-info}/METADATA +361 -363
  1226. {scitex-2.1.3.dist-info → scitex-2.3.0.dist-info}/RECORD +299 -329
  1227. scitex-2.3.0.dist-info/licenses/LICENSE +661 -0
  1228. scitex/.claude/mcp-config.json +0 -42
  1229. scitex/_sh.py +0 -18
  1230. scitex/ai/training/legacy/early_stopping.py +0 -150
  1231. scitex/ai/training/legacy/learning_curve_logger.py +0 -557
  1232. scitex/ai/viewed-ai.md +0 -4984
  1233. scitex/browser/ARCHITECTURE_PROPOSAL.md +0 -795
  1234. scitex/browser/INTERACTIVE_COLLABORATION.md +0 -782
  1235. scitex/browser/SAFE_IMPLEMENTATION_PLAN.md +0 -363
  1236. scitex/browser/SHARED_BROWSER_SESSION.md +0 -652
  1237. scitex/browser/TODO.md +0 -11
  1238. scitex/browser/collaboration/CLIENTSERVER_ARCHITECTURE.md +0 -165
  1239. scitex/browser/collaboration/INTERACTION_STRATEGY.md +0 -547
  1240. scitex/browser/collaboration/NON_INTERFERING_LOGIC.md +0 -730
  1241. scitex/browser/template.py +0 -122
  1242. scitex/db/legacy/_inspect_v02.py +0 -171
  1243. scitex/db/legacy/_inspect_v03-not-optimized.py +0 -179
  1244. scitex/db/legacy/_inspect_v04-working-but-printing-both-scheme-and-first-row.py +0 -337
  1245. scitex/db/legacy/_inspect_v05-working-but-no-clear-separation-between-dtype-and-actual-values.py +0 -358
  1246. scitex/dict/_DotDict_v01-not-handling-recursive-instantiations.py +0 -442
  1247. scitex/dict/_DotDict_v02-not-serializing-Path-object.py +0 -446
  1248. scitex/plt/KNOWN_ISSUES.md +0 -68
  1249. scitex/plt/TODO.md +0 -7
  1250. scitex/project/DESIGN.md +0 -423
  1251. scitex/project/DJANGO_INTEGRATION.md +0 -546
  1252. scitex/project/NAMING.md +0 -251
  1253. scitex/project/README.md +0 -441
  1254. scitex/project/__init__.py +0 -80
  1255. scitex/project/core.py +0 -466
  1256. scitex/project/metadata.py +0 -345
  1257. scitex/project/storage.py +0 -321
  1258. scitex/project/validators.py +0 -296
  1259. scitex/reproduce/_hash_array.py +0 -22
  1260. scitex/rng/_RandomStateManager_v01-no-verbose-options.py +0 -414
  1261. scitex/scholar/.claude/agents/ArchitectAgent.md +0 -50
  1262. scitex/scholar/.claude/agents/BulletinBoardOrganizerAgent.md +0 -24
  1263. scitex/scholar/.claude/agents/DebuggerAgent.md +0 -38
  1264. scitex/scholar/.claude/agents/ExamplesDeveloperAgent.md +0 -49
  1265. scitex/scholar/.claude/agents/ExperimentationAgent.md +0 -13
  1266. scitex/scholar/.claude/agents/GitHandlerAgent.md +0 -38
  1267. scitex/scholar/.claude/agents/ResearcherAgent.md +0 -35
  1268. scitex/scholar/.claude/agents/ReviewerAgent.md +0 -70
  1269. scitex/scholar/.claude/agents/SciTeXTranslatorAgent.md +0 -55
  1270. scitex/scholar/.claude/agents/SourceDeveloperAgent.md +0 -48
  1271. scitex/scholar/.claude/agents/TestDeveloperAgent.md +0 -48
  1272. scitex/scholar/.claude/agents/TestResultsReportAgent.md +0 -52
  1273. scitex/scholar/.claude/agents/TestRunnerAgent.md +0 -48
  1274. scitex/scholar/.claude/mcp-config.json +0 -42
  1275. scitex/scholar/.legacy/metadata/doi/utils/legacy/_ConfigurationResolver.py +0 -387
  1276. scitex/scholar/.legacy/metadata/urls/.tmp/open_url/legacy/_MultiInstitutionalResolver.py +0 -397
  1277. scitex/scholar/.legacy/metadata/urls/.tmp/open_url/legacy/_OpenURLResolverWithZenRows.py +0 -718
  1278. scitex/scholar/.legacy/metadata/urls/.tmp/open_url/legacy/_ResumableOpenURLResolver.py +0 -298
  1279. scitex/scholar/.legacy/metadata/urls/.tmp/open_url/legacy/_UnimelbLibraryGoButtonSelector.py +0 -466
  1280. scitex/scholar/.legacy/metadata/urls/.tmp/open_url/legacy/_ZenRowsOpenURLResolver.py +0 -372
  1281. scitex/scholar/docs/to_claude/guidelines/.claude/mcp-config.json +0 -0
  1282. scitex/scholar/docs/to_claude/guidelines/.claude/settings.json +0 -231
  1283. scitex/scholar/url_finder/.tmp/open_url/legacy/_MultiInstitutionalResolver.py +0 -397
  1284. scitex/scholar/url_finder/.tmp/open_url/legacy/_OpenURLResolverWithZenRows.py +0 -718
  1285. scitex/scholar/url_finder/.tmp/open_url/legacy/_ResumableOpenURLResolver.py +0 -298
  1286. scitex/scholar/url_finder/.tmp/open_url/legacy/_UnimelbLibraryGoButtonSelector.py +0 -466
  1287. scitex/scholar/url_finder/.tmp/open_url/legacy/_ZenRowsOpenURLResolver.py +0 -372
  1288. scitex/stats/QUICKSTART.md +0 -260
  1289. scitex/stats/TODO.md +0 -19
  1290. scitex/stats/docs/API.md +0 -165
  1291. scitex/stats/docs/ARCHITECTURE.md +0 -732
  1292. scitex/stats/docs/MIGRATION_GUIDE.md +0 -253
  1293. scitex/stats/docs/PROGRESS.md +0 -635
  1294. scitex/stats/docs/SUMMARY.md +0 -241
  1295. scitex/stats/docs/TODO.md +0 -181
  1296. scitex/stats/docs/ax_parameter_migration.md +0 -125
  1297. scitex/stats/template.py +0 -119
  1298. scitex/stats/tests/categorical/__init__.py +0 -20
  1299. scitex/stats/tests/categorical/_test_chi2.py +0 -708
  1300. scitex/stats/tests/categorical/_test_cochran_q.py +0 -609
  1301. scitex/stats/tests/categorical/_test_fisher.py +0 -585
  1302. scitex/stats/tests/categorical/_test_mcnemar.py +0 -567
  1303. scitex/stats/tests/correlation/__init__.py +0 -32
  1304. scitex/stats/tests/correlation/_test_kendall.py +0 -508
  1305. scitex/stats/tests/correlation/_test_pearson.py +0 -588
  1306. scitex/stats/tests/correlation/_test_spearman.py +0 -485
  1307. scitex/stats/tests/correlation/_test_theilsen.py +0 -193
  1308. scitex/stats/tests/nonparametric/__init__.py +0 -23
  1309. scitex/stats/tests/nonparametric/_test_brunner_munzel.py +0 -559
  1310. scitex/stats/tests/nonparametric/_test_friedman.py +0 -595
  1311. scitex/stats/tests/nonparametric/_test_kruskal.py +0 -557
  1312. scitex/stats/tests/nonparametric/_test_mannwhitneyu.py +0 -518
  1313. scitex/stats/tests/nonparametric/_test_wilcoxon.py +0 -505
  1314. scitex/stats/tests/normality/__init__.py +0 -17
  1315. scitex/stats/tests/normality/_test_ks.py +0 -702
  1316. scitex/stats/tests/normality/_test_shapiro.py +0 -498
  1317. scitex/stats/tests/parametric/__init__.py +0 -27
  1318. scitex/stats/tests/parametric/_test_anova.py +0 -625
  1319. scitex/stats/tests/parametric/_test_anova_2way.py +0 -665
  1320. scitex/stats/tests/parametric/_test_anova_rm.py +0 -717
  1321. scitex/stats/tests/parametric/_test_ttest.py +0 -835
  1322. scitex/template/ANALYSIS.md +0 -202
  1323. scitex-2.1.3.dist-info/licenses/LICENSE +0 -21
  1324. {scitex-2.1.3.dist-info → scitex-2.3.0.dist-info}/WHEEL +0 -0
  1325. {scitex-2.1.3.dist-info → scitex-2.3.0.dist-info}/entry_points.txt +0 -0
@@ -16,7 +16,7 @@ This module provides backward compatibility by forwarding calls to the new
16
16
  scitex.session.close function while showing deprecation warnings.
17
17
  """
18
18
 
19
- from ..decorators._deprecated import deprecated
19
+ from scitex.decorators._deprecated import deprecated
20
20
 
21
21
 
22
22
  @deprecated(
@@ -42,7 +42,7 @@ def close(*args, **kwargs):
42
42
  Same return value as scitex.session.close()
43
43
  """
44
44
  # Import here to avoid circular dependencies
45
- from ..session import close as session_close
45
+ from scitex.session import close as session_close
46
46
 
47
47
  return session_close(*args, **kwargs)
48
48
 
@@ -70,7 +70,7 @@ def running2finished(*args, **kwargs):
70
70
  Same return value as scitex.session.running2finished()
71
71
  """
72
72
  # Import here to avoid circular dependencies
73
- from ..session import running2finished as session_running2finished
73
+ from scitex.session import running2finished as session_running2finished
74
74
 
75
75
  return session_running2finished(*args, **kwargs)
76
76
 
@@ -9,7 +9,7 @@ This module provides backward compatibility by forwarding calls to the new
9
9
  scitex.session.start function while showing deprecation warnings.
10
10
  """
11
11
 
12
- from ..decorators._deprecated import deprecated
12
+ from scitex.decorators._deprecated import deprecated
13
13
 
14
14
 
15
15
  @deprecated(
scitex/gen/_norm.py CHANGED
@@ -7,8 +7,8 @@ THIS_FILE = "/home/ywatanabe/proj/scitex_repo/src/scitex/gen/_norm.py"
7
7
 
8
8
  import torch
9
9
 
10
- from ..decorators import torch_fn
11
- from ..torch import nanstd
10
+ from scitex.decorators import torch_fn
11
+ from scitex.torch import nanstd
12
12
 
13
13
 
14
14
  @torch_fn
scitex/gen/_norm_cache.py CHANGED
@@ -14,7 +14,7 @@ from functools import lru_cache
14
14
  from typing import Union, Tuple, Optional
15
15
  import hashlib
16
16
 
17
- from ..decorators import torch_fn
17
+ from scitex.decorators import torch_fn
18
18
 
19
19
 
20
20
  # Cache for normalized data
scitex/gen/_symlink.py CHANGED
@@ -4,7 +4,7 @@
4
4
  # File: ./scitex_repo/src/scitex/gen/_symlink.py
5
5
 
6
6
  import os
7
- from ..str._color_text import color_text
7
+ from scitex.str._color_text import color_text
8
8
 
9
9
 
10
10
  def symlink(tgt, src, force=False):
scitex/gen/_to_rank.py CHANGED
@@ -10,7 +10,7 @@
10
10
  import torch
11
11
 
12
12
  # from .._converters import
13
- from ..decorators import torch_fn
13
+ from scitex.decorators import torch_fn
14
14
 
15
15
 
16
16
  @torch_fn
scitex/gen/_transpose.py CHANGED
@@ -3,7 +3,7 @@
3
3
  # Time-stamp: "2024-08-24 09:47:16 (ywatanabe)"
4
4
  # ./src/scitex/gen/_transpose.py
5
5
 
6
- from ..decorators import numpy_fn
6
+ from scitex.decorators import numpy_fn
7
7
  import numpy as np
8
8
 
9
9
 
scitex/git/__init__.py CHANGED
File without changes
scitex/git/_branch.py CHANGED
@@ -16,7 +16,7 @@ Examples
16
16
 
17
17
  from pathlib import Path
18
18
  from scitex.logging import getLogger
19
- from scitex._sh import sh
19
+ from scitex.sh import sh
20
20
  from ._utils import _in_directory
21
21
  from ._constants import EXIT_SUCCESS, EXIT_FAILURE
22
22
  from ._validation import validate_branch_name, validate_path
@@ -76,7 +76,8 @@ def git_branch_rename(repo_path: Path, new_name: str, verbose: bool = True) -> b
76
76
  logger.error(f"Failed to rename branch in {repo_path}: {error_msg}")
77
77
  return False
78
78
 
79
- logger.info(f"Branch renamed to {new_name}")
79
+ if verbose:
80
+ logger.info(f"Branch renamed to {new_name}")
80
81
  return True
81
82
 
82
83
 
@@ -132,7 +133,8 @@ def git_checkout_new_branch(repo_path: Path, branch_name: str, verbose: bool = T
132
133
  logger.error(f"Failed to create branch {branch_name} in {repo_path}: {error_msg}")
133
134
  return False
134
135
 
135
- logger.info(f"Switched to new branch: {branch_name}")
136
+ if verbose:
137
+ logger.info(f"Switched to new branch: {branch_name}")
136
138
  return True
137
139
 
138
140
 
scitex/git/_clone.py CHANGED
@@ -8,13 +8,13 @@ Git clone operations.
8
8
 
9
9
  from pathlib import Path
10
10
  from scitex.logging import getLogger
11
- from scitex._sh import sh
11
+ from scitex.sh import sh
12
12
  from ._constants import EXIT_SUCCESS, EXIT_FAILURE
13
13
 
14
14
  logger = getLogger(__name__)
15
15
 
16
16
 
17
- def clone_repo(url: str, target_path: Path, verbose: bool = True) -> bool:
17
+ def clone_repo(url: str, target_path: Path, branch: str = None, tag: str = None, verbose: bool = True) -> bool:
18
18
  """
19
19
  Safely clone a git repository.
20
20
 
@@ -24,6 +24,12 @@ def clone_repo(url: str, target_path: Path, verbose: bool = True) -> bool:
24
24
  Git repository URL
25
25
  target_path : Path
26
26
  Destination path for cloning
27
+ branch : str, optional
28
+ Specific branch to clone. If None, clones the default branch.
29
+ Mutually exclusive with tag parameter.
30
+ tag : str, optional
31
+ Specific tag/release to clone. If None, clones the default branch.
32
+ Mutually exclusive with branch parameter.
27
33
  verbose : bool
28
34
  Enable verbose output
29
35
 
@@ -31,15 +37,34 @@ def clone_repo(url: str, target_path: Path, verbose: bool = True) -> bool:
31
37
  -------
32
38
  bool
33
39
  True if successful, False otherwise
40
+
41
+ Raises
42
+ ------
43
+ ValueError
44
+ If both branch and tag are specified
34
45
  """
35
46
  from ._remote import _validate_git_url
36
47
 
48
+ # Validate mutual exclusivity
49
+ if branch and tag:
50
+ raise ValueError("Cannot specify both 'branch' and 'tag' parameters. They are mutually exclusive.")
51
+
37
52
  if not _validate_git_url(url):
38
53
  logger.error(f"Invalid git URL: {url}")
39
54
  return False
40
55
 
56
+ cmd = ["git", "clone"]
57
+ ref_info = ""
58
+ if branch:
59
+ cmd.extend(["--branch", branch])
60
+ ref_info = f" (branch: {branch})"
61
+ elif tag:
62
+ cmd.extend(["--branch", tag])
63
+ ref_info = f" (tag: {tag})"
64
+ cmd.extend([url, str(target_path)])
65
+
41
66
  result = sh(
42
- ["git", "clone", url, str(target_path)],
67
+ cmd,
43
68
  verbose=verbose,
44
69
  return_as="dict"
45
70
  )
@@ -48,7 +73,8 @@ def clone_repo(url: str, target_path: Path, verbose: bool = True) -> bool:
48
73
  logger.error(f"Failed to clone repository: {result['stderr']}")
49
74
  return False
50
75
 
51
- logger.info("Repository cloned successfully")
76
+ if verbose:
77
+ logger.info(f"Repository cloned successfully{ref_info}")
52
78
  return True
53
79
 
54
80
 
@@ -85,7 +111,8 @@ def git_init(repo_path: Path, verbose: bool = True) -> bool:
85
111
  logger.warning(f"Failed to initialize git repository: {result['stderr']}")
86
112
  return False
87
113
 
88
- logger.info("Git repository initialized")
114
+ if verbose:
115
+ logger.info("Git repository initialized")
89
116
  return True
90
117
 
91
118
 
@@ -94,7 +121,7 @@ def main(args):
94
121
  if not args.url:
95
122
  logger.error("URL required for clone action")
96
123
  return EXIT_FAILURE
97
- success = clone_repo(args.url, args.path, args.verbose)
124
+ success = clone_repo(args.url, args.path, branch=args.branch, tag=args.tag, verbose=args.verbose)
98
125
  return EXIT_SUCCESS if success else EXIT_FAILURE
99
126
  elif args.action == "init":
100
127
  success = git_init(args.path, args.verbose)
@@ -108,6 +135,8 @@ def parse_args():
108
135
  parser.add_argument("--action", choices=["clone", "init"], required=True)
109
136
  parser.add_argument("--url", help="Repository URL for cloning")
110
137
  parser.add_argument("--path", type=Path, required=True)
138
+ parser.add_argument("--branch", help="Branch to clone (mutually exclusive with --tag)")
139
+ parser.add_argument("--tag", help="Tag/release to clone (mutually exclusive with --branch)")
111
140
  parser.add_argument("--verbose", action="store_true")
112
141
  return parser.parse_args()
113
142
 
scitex/git/_commit.py CHANGED
@@ -17,7 +17,7 @@ Examples
17
17
 
18
18
  from pathlib import Path
19
19
  from scitex.logging import getLogger
20
- from scitex._sh import sh
20
+ from scitex.sh import sh
21
21
  from ._utils import _in_directory
22
22
  from ._constants import EXIT_SUCCESS, EXIT_FAILURE
23
23
  from ._validation import validate_commit_message, validate_path
@@ -126,7 +126,8 @@ def git_commit(repo_path: Path, message: str, verbose: bool = True) -> bool:
126
126
  logger.error(f"Failed to commit in {repo_path}: {error_msg}")
127
127
  return False
128
128
 
129
- logger.info("Commit created successfully")
129
+ if verbose:
130
+ logger.info("Commit created successfully")
130
131
  return True
131
132
 
132
133
 
scitex/git/_constants.py CHANGED
File without changes
scitex/git/_init.py CHANGED
File without changes
scitex/git/_remote.py CHANGED
@@ -9,7 +9,7 @@ Git remote operations.
9
9
  from pathlib import Path
10
10
  from typing import Optional
11
11
  from scitex.logging import getLogger
12
- from scitex._sh import sh
12
+ from scitex.sh import sh
13
13
  from ._utils import _in_directory
14
14
  from ._constants import EXIT_SUCCESS, EXIT_FAILURE
15
15
 
scitex/git/_result.py CHANGED
File without changes
scitex/git/_retry.py CHANGED
File without changes
scitex/git/_session.py CHANGED
@@ -32,7 +32,7 @@ def run_with_session(parse_args_func, main_func):
32
32
 
33
33
  args = parse_args_func()
34
34
 
35
- CONFIG, sys.stdout, sys.stderr, plt_obj, CC, rng = stx.session.start(
35
+ CONFIG, sys.stdout, sys.stderr, plt_obj, CC, rng_manager = stx.session.start(
36
36
  sys,
37
37
  plt,
38
38
  args=args,
scitex/git/_types.py CHANGED
File without changes
scitex/git/_utils.py CHANGED
File without changes
scitex/git/_validation.py CHANGED
File without changes
scitex/git/_workflow.py CHANGED
@@ -62,7 +62,7 @@ def _rollback_commit(repo_path: Path, verbose: bool = True) -> None:
62
62
  verbose : bool
63
63
  Enable verbose output
64
64
  """
65
- from scitex._sh import sh
65
+ from scitex.sh import sh
66
66
  from ._utils import _in_directory
67
67
  from scitex.logging import getLogger
68
68
 
scitex/io/README.md CHANGED
@@ -79,7 +79,7 @@ scitex.io.save(model.state_dict(), 'model.pth')
79
79
 
80
80
  # Save an image using PIL
81
81
  image = Image.new('RGB', (100, 100), color='red')
82
- scitex.io.save(image, 'image.jpg')
82
+ scitex.io.save(image, 'image.png') # Use PNG for lossless quality
83
83
 
84
84
  # Save a dictionary as a JSON file
85
85
  data = {'name': 'Alice', 'age': 30}
@@ -90,7 +90,71 @@ text = "Hello, World!"
90
90
  scitex.io.save(text, 'hello.txt')
91
91
  ```
92
92
 
93
+ ## ⚠️ File Format Best Practices for Scientific Figures
93
94
 
95
+ ### **NEVER use JPEG for scientific figures!**
96
+
97
+ JPEG uses lossy compression that creates artifacts around text, lines, and sharp edges, making it unsuitable for scientific figures.
98
+
99
+ #### Recommended Formats:
100
+
101
+ 1. **PNG (Portable Network Graphics)** ✅ BEST for raster figures
102
+ - **Lossless compression** - no quality loss
103
+ - Perfect for figures with text, lines, and solid colors
104
+ - Supports transparency
105
+ - Metadata preserved (scitex stores full metadata in PNG tEXt chunks)
106
+ - Auto-cropping preserves quality and DPI
107
+ ```python
108
+ scitex.io.save(fig, 'figure.png', dpi=300, auto_crop=True)
109
+ ```
110
+
111
+ 2. **PDF (Portable Document Format)** ✅ BEST for vector graphics
112
+ - **Vector format** - infinite zoom without quality loss
113
+ - Required by most scientific journals
114
+ - Smaller file size for line art
115
+ - Metadata preserved (scitex stores metadata in PDF Subject field)
116
+ ```python
117
+ scitex.io.save(fig, 'figure.pdf')
118
+ ```
119
+
120
+ 3. **JPEG (Joint Photographic Experts Group)** ❌ NEVER for scientific figures
121
+ - **Lossy compression** - creates visible artifacts
122
+ - Degrades quality around text and lines
123
+ - Not suitable for graphs, plots, or diagrams
124
+ - Only use for photographs
125
+
126
+ #### Example - Publication-Ready Figure Saving:
127
+
128
+ ```python
129
+ import scitex as stx
130
+
131
+ # Create publication figure
132
+ fig, ax = stx.plt.subplots(**stx.plt.presets.SCITEX_STYLE)
133
+ ax.plot(x, y, label='Data')
134
+ ax.set_xlabel('Time [s]')
135
+ ax.set_ylabel('Amplitude [a.u.]')
136
+ ax.legend()
137
+
138
+ # Save in publication formats (PNG + PDF)
139
+ stx.io.save(fig, 'figure1.png', dpi=300, auto_crop=True) # Lossless raster
140
+ stx.io.save(fig, 'figure1.pdf') # Vector format
141
+
142
+ # DO NOT save as JPEG - it creates artifacts!
143
+ # stx.io.save(fig, 'figure1.jpg') # ❌ WRONG - lossy compression!
144
+ ```
145
+
146
+ #### Auto-Cropping Feature:
147
+
148
+ By default (`auto_crop=True`), figures are automatically cropped to content with 1mm margin:
149
+ - Removes excess whitespace
150
+ - Preserves image quality (PNG: lossless, PDF: vector)
151
+ - Preserves DPI metadata (300 DPI for publication)
152
+ - Preserves scitex metadata (version, style, dimensions, etc.)
153
+
154
+ ```python
155
+ # Auto-crop is enabled by default
156
+ stx.io.save(fig, 'figure.png') # Automatically cropped, metadata preserved
157
+ ```
94
158
 
95
159
  <summary>Advanced Usage</summary>
96
160
 
scitex/io/__init__.py CHANGED
@@ -69,6 +69,14 @@ except ImportError:
69
69
  migrate_h5_to_zarr = None
70
70
  migrate_h5_to_zarr_batch = None
71
71
 
72
+ # Import metadata functions
73
+ try:
74
+ from ._metadata import read_metadata, embed_metadata, has_metadata
75
+ except ImportError:
76
+ read_metadata = None
77
+ embed_metadata = None
78
+ has_metadata = None
79
+
72
80
  __all__ = [
73
81
  "save",
74
82
  "load",
@@ -99,6 +107,10 @@ __all__ = [
99
107
  "get_cache_info",
100
108
  "configure_cache",
101
109
  "clear_load_cache",
110
+ # Metadata functions
111
+ "read_metadata",
112
+ "embed_metadata",
113
+ "has_metadata",
102
114
  ]
103
115
 
104
116
  # EOF
scitex/io/_glob.py CHANGED
@@ -9,7 +9,7 @@ import re as _re
9
9
  from glob import glob as _glob
10
10
  from pathlib import Path
11
11
  from typing import Union
12
- from ..str._parse import parse as _parse
12
+ from scitex.str._parse import parse as _parse
13
13
  from natsort import natsorted as _natsorted
14
14
 
15
15
 
scitex/io/_load.py CHANGED
@@ -13,8 +13,8 @@ import glob
13
13
  from pathlib import Path
14
14
  from typing import Any, Union
15
15
 
16
- from ..decorators import preserve_doc
17
- from ..str._clean_path import clean_path
16
+ from scitex.decorators import preserve_doc
17
+ from scitex.str._clean_path import clean_path
18
18
  from ._load_cache import (
19
19
  cache_data,
20
20
  configure_cache,
@@ -52,6 +52,7 @@ def load(
52
52
  show: bool = False,
53
53
  verbose: bool = False,
54
54
  cache: bool = True,
55
+ metadata: bool = None, # None = auto-detect (True for images)
55
56
  **kwargs,
56
57
  ) -> Any:
57
58
  """
@@ -73,14 +74,30 @@ def load(
73
74
  If True, print verbose output during loading. Default is False.
74
75
  cache : bool, optional
75
76
  If True, enable caching for faster repeated loads. Default is True.
77
+ metadata : bool or None, optional
78
+ If True, return tuple (data, metadata_dict) for images and PDFs.
79
+ If False, return data only.
80
+ If None (default), automatically True for images, False for PDFs and other formats.
81
+ Works for image files (.png, .jpg, .jpeg, .tiff, .tif) and PDF files.
82
+ For PDFs, metadata_dict contains embedded scitex metadata from PDF Subject field.
76
83
  **kwargs : dict
77
84
  Additional keyword arguments to be passed to the specific loading function.
85
+ For PDFs, can include: mode='full'|'text'|'scientific', etc.
78
86
 
79
87
  Returns
80
88
  -------
81
89
  object
82
90
  The loaded data object, which can be of various types depending on the input file format.
83
91
 
92
+ For images with metadata=True (default):
93
+ Returns tuple (image, metadata_dict). metadata_dict is None if no metadata found.
94
+
95
+ For PDFs with metadata=False (default):
96
+ Returns dict with keys: 'full_text', 'sections', 'metadata', 'pages', etc.
97
+
98
+ For PDFs with metadata=True:
99
+ Returns tuple (pdf_data_dict, metadata_dict). Enables consistent API with images.
100
+
84
101
  Raises
85
102
  ------
86
103
  ValueError
@@ -100,9 +117,27 @@ def load(
100
117
 
101
118
  Examples
102
119
  --------
120
+ >>> # Load CSV data
103
121
  >>> data = load('data.csv')
104
- >>> image = load('image.png')
105
- >>> model = load('model.pth')
122
+
123
+ >>> # Load image with metadata (default behavior)
124
+ >>> img, meta = load('figure.png')
125
+ >>> print(meta['scitex']['version'])
126
+
127
+ >>> # Load image without metadata
128
+ >>> img = load('figure.png', metadata=False)
129
+
130
+ >>> # Load PDF with default extraction (no metadata tuple)
131
+ >>> pdf = load('paper.pdf')
132
+ >>> print(pdf['full_text'])
133
+
134
+ >>> # Load PDF with metadata tuple (consistent API with images)
135
+ >>> pdf, meta = load('paper.pdf', metadata=True)
136
+ >>> print(meta['scitex']['version'])
137
+
138
+ >>> # Load PDF with specific mode
139
+ >>> text = load('paper.pdf', mode='text')
140
+
106
141
  >>> # Load file without extension (e.g., UUID PDF)
107
142
  >>> pdf = load('f2694ccb-1b6f-4994-add8-5111fd4d52f1', ext='pdf')
108
143
  """
@@ -156,8 +191,8 @@ def load(
156
191
  except Exception:
157
192
  raise FileNotFoundError(f"File not found: {lpath}")
158
193
 
159
- # Try to get from cache first
160
- if cache:
194
+ # Try to get from cache first (skip cache if metadata is requested for images)
195
+ if cache and not metadata:
161
196
  cached_data = get_cached_data(lpath)
162
197
  if cached_data is not None:
163
198
  if verbose:
@@ -233,6 +268,14 @@ def load(
233
268
  # Auto-detect from filename
234
269
  detected_ext = lpath.split(".")[-1] if "." in lpath else ""
235
270
 
271
+ # Auto-detect metadata for images and PDFs
272
+ is_image = detected_ext in ["jpg", "jpeg", "png", "tiff", "tif"]
273
+ is_pdf = detected_ext == "pdf"
274
+
275
+ if metadata is None:
276
+ # Default: True for images, False for other formats (PDFs default to False for backward compatibility)
277
+ metadata = is_image
278
+
236
279
  # Special handling for numpy files with caching
237
280
  if cache and detected_ext in ["npy", "npz"]:
238
281
  return load_npy_cached(lpath, **kwargs)
@@ -240,10 +283,17 @@ def load(
240
283
  loader = preserve_doc(loaders_dict.get(detected_ext, _load_txt))
241
284
 
242
285
  try:
243
- result = loader(lpath, **kwargs)
286
+ # Pass metadata parameter for images and PDFs
287
+ if is_image:
288
+ result = loader(lpath, metadata=metadata, verbose=verbose, **kwargs)
289
+ elif is_pdf:
290
+ # Pass metadata parameter to PDF loader for API consistency
291
+ result = loader(lpath, metadata=metadata, **kwargs)
292
+ else:
293
+ result = loader(lpath, **kwargs)
244
294
 
245
- # Cache the result if caching is enabled
246
- if cache:
295
+ # Cache the result if caching is enabled (skip if metadata was used)
296
+ if cache and not metadata:
247
297
  cache_data(lpath, result)
248
298
  if verbose:
249
299
  print(f"[Cache STORED] Cached data for: {lpath}")
scitex/io/_load_cache.py CHANGED
File without changes
@@ -14,7 +14,7 @@ __DIR__ = os.path.dirname(__FILE__)
14
14
  from pathlib import Path
15
15
  from typing import Optional, Union
16
16
 
17
- from ..dict import DotDict
17
+ from scitex.dict import DotDict
18
18
  from ._glob import glob
19
19
  from ._load import load
20
20
 
@@ -78,14 +78,17 @@ def load_configs(
78
78
  )
79
79
  )
80
80
 
81
- # Load and merge configs
81
+ # Load and merge configs (namespaced by filename)
82
82
  CONFIGS = {}
83
83
 
84
84
  # Load from main config directory
85
85
  config_pattern = f"{config_dir}/*.yaml"
86
86
  for lpath in glob(config_pattern):
87
87
  if config := load(lpath):
88
- CONFIGS.update(apply_debug_values(config, IS_DEBUG))
88
+ # Extract filename without extension as namespace
89
+ filename = Path(lpath).stem
90
+ # Apply debug values and namespace under filename
91
+ CONFIGS[filename] = apply_debug_values(config, IS_DEBUG)
89
92
 
90
93
  # Load from categories subdirectory if it exists
91
94
  categories_dir = f"{config_dir}/categories"
@@ -93,7 +96,9 @@ def load_configs(
93
96
  categories_pattern = f"{categories_dir}/*.yaml"
94
97
  for lpath in glob(categories_pattern):
95
98
  if config := load(lpath):
96
- CONFIGS.update(apply_debug_values(config, IS_DEBUG))
99
+ # Extract filename without extension as namespace
100
+ filename = Path(lpath).stem
101
+ CONFIGS[filename] = apply_debug_values(config, IS_DEBUG)
97
102
 
98
103
  return DotDict(CONFIGS)
99
104
 
@@ -3,17 +3,61 @@
3
3
  # Time-stamp: "2024-11-14 07:55:38 (ywatanabe)"
4
4
  # File: ./scitex_repo/src/scitex/io/_load_modules/_image.py
5
5
 
6
- from typing import Any
6
+ import logging
7
+ from typing import Any, Dict, Optional, Tuple, Union
7
8
 
8
9
  from PIL import Image
9
10
 
11
+ logger = logging.getLogger(__name__)
10
12
 
11
- def _load_image(lpath: str, **kwargs) -> Any:
12
- """Load image file."""
13
+
14
+ def _load_image(lpath: str, metadata: bool = True, verbose: bool = False, **kwargs) -> Union[Any, Tuple[Any, Optional[Dict]]]:
15
+ """
16
+ Load image file.
17
+
18
+ Args:
19
+ lpath: Path to image file
20
+ metadata: If True, return (image, metadata_dict) tuple. Default True.
21
+ verbose: If True, log information about metadata loading. Default False.
22
+ **kwargs: Additional arguments passed to Image.open()
23
+
24
+ Returns:
25
+ By default (metadata=True): (PIL.Image, dict) tuple
26
+ If metadata=False: PIL.Image object only
27
+ If no metadata found, returns (PIL.Image, None)
28
+ """
13
29
  supported_exts = [".jpg", ".jpeg", ".png", ".tiff", ".tif"]
14
30
  if not any(lpath.lower().endswith(ext) for ext in supported_exts):
15
31
  raise ValueError("Unsupported image format")
16
- return Image.open(lpath, **kwargs)
32
+
33
+ img = Image.open(lpath, **kwargs)
34
+
35
+ if not metadata:
36
+ return img
37
+
38
+ # Try to read metadata
39
+ if verbose:
40
+ logger.info(f"✅ Loading image with metadata from: {lpath}")
41
+
42
+ try:
43
+ from .._metadata import read_metadata
44
+ metadata_dict = read_metadata(lpath)
45
+
46
+ if verbose:
47
+ if metadata_dict:
48
+ logger.info(f" • Embedded metadata found:")
49
+ for key, value in metadata_dict.items():
50
+ logger.info(f" - {key}: {value}")
51
+ else:
52
+ logger.info(" • No embedded metadata found")
53
+
54
+ return img, metadata_dict
55
+
56
+ except Exception as e:
57
+ # If metadata reading fails, return None
58
+ import warnings
59
+ warnings.warn(f"Failed to read metadata: {e}")
60
+ return img, None
17
61
 
18
62
 
19
63
  # EOF