scitex 2.14.0__py3-none-any.whl → 2.16.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 (1856) hide show
  1. scitex/__init__.py +71 -17
  2. scitex/_env_loader.py +156 -0
  3. scitex/_mcp_resources/__init__.py +39 -0
  4. scitex/_mcp_resources/_cheatsheet.py +135 -0
  5. scitex/_mcp_resources/_figrecipe.py +138 -0
  6. scitex/_mcp_resources/_formats.py +102 -0
  7. scitex/_mcp_resources/_modules.py +337 -0
  8. scitex/_mcp_resources/_scholar.py +148 -0
  9. scitex/_mcp_resources/_session.py +149 -0
  10. scitex/_mcp_tools/__init__.py +6 -0
  11. scitex/_mcp_tools/audio.py +66 -0
  12. scitex/_mcp_tools/canvas.py +36 -15
  13. scitex/_mcp_tools/dataset.py +27 -0
  14. scitex/_mcp_tools/diagram.py +11 -95
  15. scitex/_mcp_tools/introspect.py +210 -0
  16. scitex/_mcp_tools/plt.py +263 -308
  17. scitex/_mcp_tools/scholar.py +57 -32
  18. scitex/_mcp_tools/social.py +27 -0
  19. scitex/_mcp_tools/template.py +24 -0
  20. scitex/_mcp_tools/writer.py +17 -210
  21. scitex/ai/_gen_ai/_PARAMS.py +10 -7
  22. scitex/ai/classification/reporters/_SingleClassificationReporter.py +45 -1603
  23. scitex/ai/classification/reporters/_mixins/__init__.py +36 -0
  24. scitex/ai/classification/reporters/_mixins/_constants.py +67 -0
  25. scitex/ai/classification/reporters/_mixins/_cv_summary.py +387 -0
  26. scitex/ai/classification/reporters/_mixins/_feature_importance.py +119 -0
  27. scitex/ai/classification/reporters/_mixins/_metrics.py +275 -0
  28. scitex/ai/classification/reporters/_mixins/_plotting.py +179 -0
  29. scitex/ai/classification/reporters/_mixins/_reports.py +153 -0
  30. scitex/ai/classification/reporters/_mixins/_storage.py +160 -0
  31. scitex/ai/classification/timeseries/_TimeSeriesSlidingWindowSplit.py +30 -1550
  32. scitex/ai/classification/timeseries/_sliding_window_core.py +467 -0
  33. scitex/ai/classification/timeseries/_sliding_window_plotting.py +369 -0
  34. scitex/audio/README.md +40 -36
  35. scitex/audio/__init__.py +160 -91
  36. scitex/audio/_branding.py +185 -0
  37. scitex/audio/_mcp/__init__.py +32 -0
  38. scitex/audio/_mcp/handlers.py +67 -12
  39. scitex/audio/_mcp/speak_handlers.py +238 -0
  40. scitex/audio/_relay.py +225 -0
  41. scitex/audio/_tts.py +18 -10
  42. scitex/audio/engines/__init__.py +4 -8
  43. scitex/audio/engines/_base.py +287 -0
  44. scitex/audio/engines/_elevenlabs_engine.py +151 -0
  45. scitex/audio/engines/_gtts_engine.py +162 -0
  46. scitex/audio/engines/_pyttsx3_engine.py +131 -0
  47. scitex/audio/mcp_server.py +228 -75
  48. scitex/bridge/_stats_plt.py +1 -1
  49. scitex/canvas/README.md +1 -1
  50. scitex/canvas/__init__.py +169 -287
  51. scitex/canvas/_legacy.py +171 -0
  52. scitex/canvas/editor/_dearpygui/__init__.py +25 -0
  53. scitex/canvas/editor/_dearpygui/_editor.py +147 -0
  54. scitex/canvas/editor/_dearpygui/_handlers.py +476 -0
  55. scitex/canvas/editor/_dearpygui/_panels/__init__.py +17 -0
  56. scitex/canvas/editor/_dearpygui/_panels/_control.py +119 -0
  57. scitex/canvas/editor/_dearpygui/_panels/_element_controls.py +190 -0
  58. scitex/canvas/editor/_dearpygui/_panels/_preview.py +43 -0
  59. scitex/canvas/editor/_dearpygui/_panels/_sections.py +390 -0
  60. scitex/canvas/editor/_dearpygui/_plotting.py +187 -0
  61. scitex/canvas/editor/_dearpygui/_rendering.py +504 -0
  62. scitex/canvas/editor/_dearpygui/_selection.py +295 -0
  63. scitex/canvas/editor/_dearpygui/_state.py +93 -0
  64. scitex/canvas/editor/_dearpygui/_utils.py +61 -0
  65. scitex/canvas/editor/flask_editor/_core/__init__.py +27 -0
  66. scitex/canvas/editor/flask_editor/_core/_bbox_extraction.py +200 -0
  67. scitex/canvas/editor/flask_editor/_core/_editor.py +173 -0
  68. scitex/canvas/editor/flask_editor/_core/_export_helpers.py +353 -0
  69. scitex/canvas/editor/flask_editor/_core/_routes_basic.py +190 -0
  70. scitex/canvas/editor/flask_editor/_core/_routes_export.py +332 -0
  71. scitex/canvas/editor/flask_editor/_core/_routes_panels.py +252 -0
  72. scitex/canvas/editor/flask_editor/_core/_routes_save.py +218 -0
  73. scitex/canvas/editor/flask_editor/_core.py +25 -1684
  74. scitex/canvas/editor/flask_editor/templates/__init__.py +32 -70
  75. scitex/canvas/mcp_server.py +16 -3
  76. scitex/capture/__init__.py +5 -6
  77. scitex/capture/mcp_server.py +16 -2
  78. scitex/cli/__init__.py +94 -42
  79. scitex/cli/audio.py +194 -45
  80. scitex/cli/capture.py +151 -20
  81. scitex/cli/dataset.py +76 -0
  82. scitex/cli/introspect.py +524 -0
  83. scitex/cli/main.py +240 -115
  84. scitex/cli/mcp.py +239 -88
  85. scitex/cli/plt.py +432 -0
  86. scitex/cli/repro.py +15 -8
  87. scitex/cli/resource.py +15 -8
  88. scitex/cli/scholar/__init__.py +190 -10
  89. scitex/cli/scholar/_crossref_scitex.py +55 -0
  90. scitex/cli/scholar/_fetch.py +25 -3
  91. scitex/cli/scholar/_openalex_scitex.py +55 -0
  92. scitex/cli/social.py +355 -0
  93. scitex/cli/stats.py +154 -11
  94. scitex/cli/template.py +129 -12
  95. scitex/cli/tex.py +15 -8
  96. scitex/cli/writer.py +49 -299
  97. scitex/cloud/__init__.py +41 -2
  98. scitex/config/README.md +1 -1
  99. scitex/config/__init__.py +16 -2
  100. scitex/config/_env_registry.py +256 -0
  101. scitex/context/__init__.py +22 -0
  102. scitex/dataset/__init__.py +85 -0
  103. scitex/dev/__init__.py +20 -1
  104. scitex/diagram/__init__.py +42 -19
  105. scitex/diagram/mcp_server.py +13 -125
  106. scitex/gen/__init__.py +50 -14
  107. scitex/gen/_list_packages.py +4 -4
  108. scitex/introspect/__init__.py +82 -0
  109. scitex/introspect/_call_graph.py +303 -0
  110. scitex/introspect/_class_hierarchy.py +163 -0
  111. scitex/introspect/_core.py +41 -0
  112. scitex/introspect/_docstring.py +131 -0
  113. scitex/introspect/_examples.py +113 -0
  114. scitex/introspect/_imports.py +271 -0
  115. scitex/introspect/_list_api.py +266 -0
  116. scitex/introspect/_mcp/__init__.py +41 -0
  117. scitex/introspect/_mcp/handlers.py +233 -0
  118. scitex/introspect/_members.py +155 -0
  119. scitex/introspect/_resolve.py +89 -0
  120. scitex/introspect/_signature.py +131 -0
  121. scitex/introspect/_source.py +80 -0
  122. scitex/introspect/_type_hints.py +172 -0
  123. scitex/io/__init__.py +15 -11
  124. scitex/io/_save.py +1 -2
  125. scitex/io/_save_modules/_tex.py +4 -7
  126. scitex/io/bundle/README.md +1 -1
  127. scitex/logging/__init__.py +86 -58
  128. scitex/logging/_formatters.py +19 -9
  129. scitex/mcp_server.py +98 -5
  130. scitex/os/__init__.py +4 -0
  131. scitex/os/_check_host.py +33 -0
  132. scitex/plt/__init__.py +245 -550
  133. scitex/plt/_subplots/_AxisWrapperMixins/_SeabornMixin/_wrappers.py +5 -10
  134. scitex/plt/docs/EXTERNAL_PACKAGE_BRANDING.md +149 -0
  135. scitex/plt/gallery/README.md +1 -1
  136. scitex/plt/utils/_hitmap/__init__.py +82 -0
  137. scitex/plt/utils/_hitmap/_artist_extraction.py +343 -0
  138. scitex/plt/utils/_hitmap/_color_application.py +346 -0
  139. scitex/plt/utils/_hitmap/_color_conversion.py +121 -0
  140. scitex/plt/utils/_hitmap/_constants.py +40 -0
  141. scitex/plt/utils/_hitmap/_hitmap_core.py +334 -0
  142. scitex/plt/utils/_hitmap/_path_extraction.py +357 -0
  143. scitex/plt/utils/_hitmap/_query.py +113 -0
  144. scitex/plt/utils/_hitmap.py +46 -1616
  145. scitex/plt/utils/_metadata/__init__.py +80 -0
  146. scitex/plt/utils/_metadata/_artists/__init__.py +25 -0
  147. scitex/plt/utils/_metadata/_artists/_base.py +195 -0
  148. scitex/plt/utils/_metadata/_artists/_collections.py +356 -0
  149. scitex/plt/utils/_metadata/_artists/_extract.py +57 -0
  150. scitex/plt/utils/_metadata/_artists/_images.py +80 -0
  151. scitex/plt/utils/_metadata/_artists/_lines.py +261 -0
  152. scitex/plt/utils/_metadata/_artists/_patches.py +247 -0
  153. scitex/plt/utils/_metadata/_artists/_text.py +106 -0
  154. scitex/plt/utils/_metadata/_csv.py +416 -0
  155. scitex/plt/utils/_metadata/_detect.py +225 -0
  156. scitex/plt/utils/_metadata/_legend.py +127 -0
  157. scitex/plt/utils/_metadata/_rounding.py +117 -0
  158. scitex/plt/utils/_metadata/_verification.py +202 -0
  159. scitex/schema/README.md +1 -1
  160. scitex/schema/_stats.py +8 -16
  161. scitex/scholar/__init__.py +30 -14
  162. scitex/scholar/_mcp/crossref_handlers.py +265 -0
  163. scitex/scholar/_mcp/crossref_tool_schemas.py +133 -0
  164. scitex/scholar/_mcp/openalex_handlers.py +212 -0
  165. scitex/scholar/_mcp/openalex_tool_schemas.py +96 -0
  166. scitex/scholar/_mcp/tool_schemas.py +16 -1
  167. scitex/scholar/core/Scholar.py +63 -1700
  168. scitex/scholar/core/_mixins/__init__.py +36 -0
  169. scitex/scholar/core/_mixins/_enrichers.py +270 -0
  170. scitex/scholar/core/_mixins/_library_handlers.py +100 -0
  171. scitex/scholar/core/_mixins/_loaders.py +103 -0
  172. scitex/scholar/core/_mixins/_pdf_download.py +375 -0
  173. scitex/scholar/core/_mixins/_pipeline.py +312 -0
  174. scitex/scholar/core/_mixins/_project_handlers.py +125 -0
  175. scitex/scholar/core/_mixins/_savers.py +69 -0
  176. scitex/scholar/core/_mixins/_search.py +103 -0
  177. scitex/scholar/core/_mixins/_services.py +88 -0
  178. scitex/scholar/core/_mixins/_url_finding.py +105 -0
  179. scitex/scholar/docs/EXTERNAL_PACKAGE_BRANDING.md +149 -0
  180. scitex/scholar/examples/00_run_all.sh +120 -0
  181. scitex/scholar/examples/03_02-engine-for-bibtex.py +1 -1
  182. scitex/scholar/examples/04_02-url-for-bibtex.py +1 -1
  183. scitex/scholar/examples/06_parse_bibtex.py +1 -1
  184. scitex/scholar/examples/99_fullpipeline-for-bibtex.py +1 -1
  185. scitex/scholar/jobs/_executors.py +27 -3
  186. scitex/scholar/local_dbs/__init__.py +31 -0
  187. scitex/scholar/local_dbs/crossref_scitex.py +30 -0
  188. scitex/scholar/local_dbs/openalex_scitex.py +30 -0
  189. scitex/scholar/mcp_server.py +59 -4
  190. scitex/scholar/pdf_download/ScholarPDFDownloader.py +38 -416
  191. scitex/scholar/pdf_download/_cli.py +154 -0
  192. scitex/scholar/pdf_download/strategies/__init__.py +11 -8
  193. scitex/scholar/pdf_download/strategies/manual_download_fallback.py +80 -3
  194. scitex/scholar/pipelines/ScholarPipelineBibTeX.py +73 -121
  195. scitex/scholar/pipelines/ScholarPipelineMetadataSingle.py +1 -1
  196. scitex/scholar/pipelines/ScholarPipelineParallel.py +80 -138
  197. scitex/scholar/pipelines/ScholarPipelineSingle.py +43 -63
  198. scitex/scholar/pipelines/_single_steps.py +71 -36
  199. scitex/scholar/storage/_LibraryManager.py +97 -1695
  200. scitex/scholar/storage/_mixins/__init__.py +30 -0
  201. scitex/scholar/storage/_mixins/_bibtex_handlers.py +128 -0
  202. scitex/scholar/storage/_mixins/_library_operations.py +218 -0
  203. scitex/scholar/storage/_mixins/_metadata_conversion.py +226 -0
  204. scitex/scholar/storage/_mixins/_paper_saving.py +456 -0
  205. scitex/scholar/storage/_mixins/_resolution.py +376 -0
  206. scitex/scholar/storage/_mixins/_storage_helpers.py +121 -0
  207. scitex/scholar/storage/_mixins/_symlink_handlers.py +226 -0
  208. scitex/scholar/url_finder/strategies/find_pdf_urls_by_zotero_translators.py +6 -4
  209. scitex/scholar/url_finder/translators/__init__.py +4 -3
  210. scitex/scholar/url_finder/translators/_core/registry.py +372 -0
  211. scitex/scholar/url_finder/translators/_individual/CLASE.py +23 -0
  212. scitex/scholar/url_finder/translators/_individual/COBISS.py +23 -0
  213. scitex/scholar/url_finder/translators/_individual/COinS.py +23 -0
  214. scitex/scholar/url_finder/translators/_individual/CQ_Press.py +23 -0
  215. scitex/scholar/url_finder/translators/_individual/CROSBI.py +23 -0
  216. scitex/scholar/url_finder/translators/_individual/CSL_JSON.py +23 -0
  217. scitex/scholar/url_finder/translators/_individual/CSV.py +23 -0
  218. scitex/scholar/url_finder/translators/_individual/CalMatters.py +23 -0
  219. scitex/scholar/url_finder/translators/_individual/Calisphere.py +23 -0
  220. scitex/scholar/url_finder/translators/_individual/__init__.py +25 -0
  221. scitex/scholar/url_finder/translators/_individual/abc_news_australia.py +23 -0
  222. scitex/scholar/url_finder/translators/_individual/access_engineering.py +23 -0
  223. scitex/scholar/url_finder/translators/_individual/access_medicine.py +255 -0
  224. scitex/scholar/url_finder/translators/_individual/access_science.py +23 -0
  225. scitex/scholar/url_finder/translators/_individual/acls_humanities_ebook.py +23 -0
  226. scitex/scholar/url_finder/translators/_individual/aclweb.py +23 -0
  227. scitex/scholar/url_finder/translators/_individual/acm_digital_library.py +355 -0
  228. scitex/scholar/url_finder/translators/_individual/acs.py +23 -0
  229. scitex/scholar/url_finder/translators/_individual/acs_publications.py +23 -0
  230. scitex/scholar/url_finder/translators/_individual/adam_matthew_digital.py +23 -0
  231. scitex/scholar/url_finder/translators/_individual/ads_bibcode.py +23 -0
  232. scitex/scholar/url_finder/translators/_individual/aea_web.py +23 -0
  233. scitex/scholar/url_finder/translators/_individual/agencia_del_isbn.py +23 -0
  234. scitex/scholar/url_finder/translators/_individual/agris.py +23 -0
  235. scitex/scholar/url_finder/translators/_individual/ahval_news.py +23 -0
  236. scitex/scholar/url_finder/translators/_individual/aip.py +23 -0
  237. scitex/scholar/url_finder/translators/_individual/air_university_journals.py +23 -0
  238. scitex/scholar/url_finder/translators/_individual/airiti.py +25 -0
  239. scitex/scholar/url_finder/translators/_individual/alexander_street_press.py +23 -0
  240. scitex/scholar/url_finder/translators/_individual/all_africa.py +23 -0
  241. scitex/scholar/url_finder/translators/_individual/allafrica.py +23 -0
  242. scitex/scholar/url_finder/translators/_individual/alsharekh.py +23 -0
  243. scitex/scholar/url_finder/translators/_individual/alternet.py +23 -0
  244. scitex/scholar/url_finder/translators/_individual/aluka.py +23 -0
  245. scitex/scholar/url_finder/translators/_individual/amazon.py +23 -0
  246. scitex/scholar/url_finder/translators/_individual/american_archive_public_broadcasting.py +23 -0
  247. scitex/scholar/url_finder/translators/_individual/american_institute_aeronautics_astronautics.py +23 -0
  248. scitex/scholar/url_finder/translators/_individual/american_prospect.py +23 -0
  249. scitex/scholar/url_finder/translators/_individual/ams_journals.py +23 -0
  250. scitex/scholar/url_finder/translators/_individual/ams_mathscinet.py +23 -0
  251. scitex/scholar/url_finder/translators/_individual/ams_mathscinet_legacy.py +23 -0
  252. scitex/scholar/url_finder/translators/_individual/ancestry_com_us_federal_census.py +23 -0
  253. scitex/scholar/url_finder/translators/_individual/ancestry_us_federal_census.py +23 -0
  254. scitex/scholar/url_finder/translators/_individual/annual_reviews.py +23 -0
  255. scitex/scholar/url_finder/translators/_individual/antikvarium_hu.py +23 -0
  256. scitex/scholar/url_finder/translators/_individual/aosic.py +25 -0
  257. scitex/scholar/url_finder/translators/_individual/apa_psycnet.py +23 -0
  258. scitex/scholar/url_finder/translators/_individual/apn_ru.py +23 -0
  259. scitex/scholar/url_finder/translators/_individual/aps.py +23 -0
  260. scitex/scholar/url_finder/translators/_individual/aquadocs.py +23 -0
  261. scitex/scholar/url_finder/translators/_individual/archeion.py +23 -0
  262. scitex/scholar/url_finder/translators/_individual/archiv_fuer_sozialgeschichte.py +23 -0
  263. scitex/scholar/url_finder/translators/_individual/archive_ouverte_aosic.py +25 -0
  264. scitex/scholar/url_finder/translators/_individual/archive_ouverte_en_sciences_de_l_information_et_de_la_communication___aosic_.py +27 -0
  265. scitex/scholar/url_finder/translators/_individual/archives_canada.py +23 -0
  266. scitex/scholar/url_finder/translators/_individual/ariana_news.py +23 -0
  267. scitex/scholar/url_finder/translators/_individual/art_institute_of_chicago.py +23 -0
  268. scitex/scholar/url_finder/translators/_individual/artefacts_canada.py +23 -0
  269. scitex/scholar/url_finder/translators/_individual/artfl_encyclopedie.py +23 -0
  270. scitex/scholar/url_finder/translators/_individual/artnet.py +23 -0
  271. scitex/scholar/url_finder/translators/_individual/artnews.py +23 -0
  272. scitex/scholar/url_finder/translators/_individual/artstor.py +23 -0
  273. scitex/scholar/url_finder/translators/_individual/arxiv.py +39 -0
  274. scitex/scholar/url_finder/translators/_individual/arxiv_org.py +122 -0
  275. scitex/scholar/url_finder/translators/_individual/asce.py +23 -0
  276. scitex/scholar/url_finder/translators/_individual/asco_meeting_library.py +23 -0
  277. scitex/scholar/url_finder/translators/_individual/astis.py +23 -0
  278. scitex/scholar/url_finder/translators/_individual/ats_international_journal.py +23 -0
  279. scitex/scholar/url_finder/translators/_individual/atypon.py +23 -0
  280. scitex/scholar/url_finder/translators/_individual/atypon_journals.py +253 -0
  281. scitex/scholar/url_finder/translators/_individual/beck_online.py +23 -0
  282. scitex/scholar/url_finder/translators/_individual/bibliotheque_et_archives_nationale_du_quebec__pistard_.py +23 -0
  283. scitex/scholar/url_finder/translators/_individual/bibliotheque_et_archives_nationales_du_quebec.py +23 -0
  284. scitex/scholar/url_finder/translators/_individual/bibliotheque_nationale_de_france.py +23 -0
  285. scitex/scholar/url_finder/translators/_individual/biomed_central.py +151 -0
  286. scitex/scholar/url_finder/translators/_individual/bioone.py +23 -0
  287. scitex/scholar/url_finder/translators/_individual/biorxiv.py +146 -0
  288. scitex/scholar/url_finder/translators/_individual/blaetter.py +23 -0
  289. scitex/scholar/url_finder/translators/_individual/bnf_isbn.py +118 -0
  290. scitex/scholar/url_finder/translators/_individual/bookmarks.py +23 -0
  291. scitex/scholar/url_finder/translators/_individual/bookshop_org.py +23 -0
  292. scitex/scholar/url_finder/translators/_individual/boston_review.py +23 -0
  293. scitex/scholar/url_finder/translators/_individual/bosworth_toller_anglo_saxon_dictionary.py +23 -0
  294. scitex/scholar/url_finder/translators/_individual/bosworth_toller_s_anglo_saxon_dictionary_online.py +23 -0
  295. scitex/scholar/url_finder/translators/_individual/bracero_history_archive.py +23 -0
  296. scitex/scholar/url_finder/translators/_individual/brill.py +25 -0
  297. scitex/scholar/url_finder/translators/_individual/brukerhandboken.py +23 -0
  298. scitex/scholar/url_finder/translators/_individual/bryn_mawr_classical_review.py +23 -0
  299. scitex/scholar/url_finder/translators/_individual/bundesgesetzblatt.py +23 -0
  300. scitex/scholar/url_finder/translators/_individual/cabi___cab_abstracts.py +23 -0
  301. scitex/scholar/url_finder/translators/_individual/cairn.py +23 -0
  302. scitex/scholar/url_finder/translators/_individual/cairn_info.py +23 -0
  303. scitex/scholar/url_finder/translators/_individual/cambridge.py +25 -0
  304. scitex/scholar/url_finder/translators/_individual/cambridge_core.py +178 -0
  305. scitex/scholar/url_finder/translators/_individual/cambridge_engage_preprints.py +23 -0
  306. scitex/scholar/url_finder/translators/_individual/ccfr__bnf_.py +23 -0
  307. scitex/scholar/url_finder/translators/_individual/cell_press.py +150 -0
  308. scitex/scholar/url_finder/translators/_individual/cern_document_server.py +23 -0
  309. scitex/scholar/url_finder/translators/_individual/ceur_workshop_proceedings.py +23 -0
  310. scitex/scholar/url_finder/translators/_individual/cff.py +23 -0
  311. scitex/scholar/url_finder/translators/_individual/cff_references.py +23 -0
  312. scitex/scholar/url_finder/translators/_individual/champlain_society___collection.py +23 -0
  313. scitex/scholar/url_finder/translators/_individual/chronicling_america.py +23 -0
  314. scitex/scholar/url_finder/translators/_individual/cinii_research.py +23 -0
  315. scitex/scholar/url_finder/translators/_individual/citavi_5_xml.py +23 -0
  316. scitex/scholar/url_finder/translators/_individual/citeseer.py +23 -0
  317. scitex/scholar/url_finder/translators/_individual/citizen_lab.py +23 -0
  318. scitex/scholar/url_finder/translators/_individual/civilization_ca.py +23 -0
  319. scitex/scholar/url_finder/translators/_individual/clacso.py +23 -0
  320. scitex/scholar/url_finder/translators/_individual/climate_change_and_human_health_literature_portal.py +23 -0
  321. scitex/scholar/url_finder/translators/_individual/climate_change_human_health.py +23 -0
  322. scitex/scholar/url_finder/translators/_individual/clinical_key.py +23 -0
  323. scitex/scholar/url_finder/translators/_individual/clinicaltrials_gov.py +23 -0
  324. scitex/scholar/url_finder/translators/_individual/cnki.py +23 -0
  325. scitex/scholar/url_finder/translators/_individual/code4lib_journal.py +23 -0
  326. scitex/scholar/url_finder/translators/_individual/colorado_state_legislature.py +23 -0
  327. scitex/scholar/url_finder/translators/_individual/computer_history_museum_archive.py +23 -0
  328. scitex/scholar/url_finder/translators/_individual/copernicus.py +23 -0
  329. scitex/scholar/url_finder/translators/_individual/crossref_rest.py +618 -0
  330. scitex/scholar/url_finder/translators/_individual/crossref_unixref_xml.py +23 -0
  331. scitex/scholar/url_finder/translators/_individual/csiro_publishing.py +23 -0
  332. scitex/scholar/url_finder/translators/_individual/csiro_publishing_dup.py +23 -0
  333. scitex/scholar/url_finder/translators/_individual/dagens_nyheter.py +25 -0
  334. scitex/scholar/url_finder/translators/_individual/dagstuhl_research_online_publication_server.py +23 -0
  335. scitex/scholar/url_finder/translators/_individual/de_gruyter_brill.py +23 -0
  336. scitex/scholar/url_finder/translators/_individual/dejure_org.py +23 -0
  337. scitex/scholar/url_finder/translators/_individual/desiring_god.py +23 -0
  338. scitex/scholar/url_finder/translators/_individual/deutsche_fotothek.py +23 -0
  339. scitex/scholar/url_finder/translators/_individual/deutsche_nationalbibliothek.py +23 -0
  340. scitex/scholar/url_finder/translators/_individual/dhistory.py +23 -0
  341. scitex/scholar/url_finder/translators/_individual/dialnet.py +23 -0
  342. scitex/scholar/url_finder/translators/_individual/die_zeit.py +23 -0
  343. scitex/scholar/url_finder/translators/_individual/digibib_net.py +25 -0
  344. scitex/scholar/url_finder/translators/_individual/digital_humanities_quarterly.py +23 -0
  345. scitex/scholar/url_finder/translators/_individual/digital_spy.py +23 -0
  346. scitex/scholar/url_finder/translators/_individual/digizeitschriften.py +25 -0
  347. scitex/scholar/url_finder/translators/_individual/dimensions.py +23 -0
  348. scitex/scholar/url_finder/translators/_individual/dlibra.py +23 -0
  349. scitex/scholar/url_finder/translators/_individual/doaj.py +23 -0
  350. scitex/scholar/url_finder/translators/_individual/doi.py +23 -0
  351. scitex/scholar/url_finder/translators/_individual/doi_content_negotiation.py +23 -0
  352. scitex/scholar/url_finder/translators/_individual/douban.py +23 -0
  353. scitex/scholar/url_finder/translators/_individual/dreier_neuerscheinungsdienst.py +23 -0
  354. scitex/scholar/url_finder/translators/_individual/drugbank_ca.py +23 -0
  355. scitex/scholar/url_finder/translators/_individual/dryad.py +23 -0
  356. scitex/scholar/url_finder/translators/_individual/dryad_digital_repository.py +23 -0
  357. scitex/scholar/url_finder/translators/_individual/dspace_intermediate_metadata.py +23 -0
  358. scitex/scholar/url_finder/translators/_individual/duke_university_press_books.py +23 -0
  359. scitex/scholar/url_finder/translators/_individual/e_periodica_switzerland.py +23 -0
  360. scitex/scholar/url_finder/translators/_individual/eastview.py +23 -0
  361. scitex/scholar/url_finder/translators/_individual/ebrary.py +25 -0
  362. scitex/scholar/url_finder/translators/_individual/ebsco_discovery_layer.py +23 -0
  363. scitex/scholar/url_finder/translators/_individual/ebscohost.py +25 -0
  364. scitex/scholar/url_finder/translators/_individual/edinburgh_university_press_journals.py +23 -0
  365. scitex/scholar/url_finder/translators/_individual/education_week.py +23 -0
  366. scitex/scholar/url_finder/translators/_individual/eidr.py +23 -0
  367. scitex/scholar/url_finder/translators/_individual/el_comercio__peru_.py +23 -0
  368. scitex/scholar/url_finder/translators/_individual/el_pais.py +23 -0
  369. scitex/scholar/url_finder/translators/_individual/electronic_colloquium_on_computational_complexity.py +25 -0
  370. scitex/scholar/url_finder/translators/_individual/elibrary_ru.py +23 -0
  371. scitex/scholar/url_finder/translators/_individual/elicit.py +23 -0
  372. scitex/scholar/url_finder/translators/_individual/elife.py +25 -0
  373. scitex/scholar/url_finder/translators/_individual/elsevier_health.py +23 -0
  374. scitex/scholar/url_finder/translators/_individual/elsevier_health_journals.py +25 -0
  375. scitex/scholar/url_finder/translators/_individual/elsevier_pure.py +23 -0
  376. scitex/scholar/url_finder/translators/_individual/embedded_metadata.py +23 -0
  377. scitex/scholar/url_finder/translators/_individual/emedicine.py +23 -0
  378. scitex/scholar/url_finder/translators/_individual/emerald.py +25 -0
  379. scitex/scholar/url_finder/translators/_individual/emerald_insight.py +25 -0
  380. scitex/scholar/url_finder/translators/_individual/emja.py +23 -0
  381. scitex/scholar/url_finder/translators/_individual/encyclopedia_of_chicago.py +23 -0
  382. scitex/scholar/url_finder/translators/_individual/encyclopedia_of_korean_culture.py +23 -0
  383. scitex/scholar/url_finder/translators/_individual/endnote_xml.py +23 -0
  384. scitex/scholar/url_finder/translators/_individual/engineering_village.py +23 -0
  385. scitex/scholar/url_finder/translators/_individual/envidat.py +23 -0
  386. scitex/scholar/url_finder/translators/_individual/epa_national_library_catalog.py +23 -0
  387. scitex/scholar/url_finder/translators/_individual/epicurious.py +25 -0
  388. scitex/scholar/url_finder/translators/_individual/eprint_iacr.py +23 -0
  389. scitex/scholar/url_finder/translators/_individual/eric.py +23 -0
  390. scitex/scholar/url_finder/translators/_individual/erudit.py +23 -0
  391. scitex/scholar/url_finder/translators/_individual/espacenet.py +23 -0
  392. scitex/scholar/url_finder/translators/_individual/etatar_ru.py +23 -0
  393. scitex/scholar/url_finder/translators/_individual/euclid.py +23 -0
  394. scitex/scholar/url_finder/translators/_individual/eur_lex.py +23 -0
  395. scitex/scholar/url_finder/translators/_individual/eurasianet.py +23 -0
  396. scitex/scholar/url_finder/translators/_individual/eurogamerusgamer.py +25 -0
  397. scitex/scholar/url_finder/translators/_individual/europe_pmc.py +23 -0
  398. scitex/scholar/url_finder/translators/_individual/evernote.py +23 -0
  399. scitex/scholar/url_finder/translators/_individual/f1000_research.py +23 -0
  400. scitex/scholar/url_finder/translators/_individual/fachportal_padagogik.py +25 -0
  401. scitex/scholar/url_finder/translators/_individual/factiva.py +23 -0
  402. scitex/scholar/url_finder/translators/_individual/failed_architecture.py +23 -0
  403. scitex/scholar/url_finder/translators/_individual/fairfax_australia.py +23 -0
  404. scitex/scholar/url_finder/translators/_individual/fao_publications.py +23 -0
  405. scitex/scholar/url_finder/translators/_individual/fatcat.py +23 -0
  406. scitex/scholar/url_finder/translators/_individual/faz_net.py +23 -0
  407. scitex/scholar/url_finder/translators/_individual/feb_web_ru.py +23 -0
  408. scitex/scholar/url_finder/translators/_individual/figshare.py +23 -0
  409. scitex/scholar/url_finder/translators/_individual/financial_times.py +23 -0
  410. scitex/scholar/url_finder/translators/_individual/finna.py +23 -0
  411. scitex/scholar/url_finder/translators/_individual/fishpond_co_nz.py +23 -0
  412. scitex/scholar/url_finder/translators/_individual/flickr.py +23 -0
  413. scitex/scholar/url_finder/translators/_individual/foreign_affairs.py +23 -0
  414. scitex/scholar/url_finder/translators/_individual/foreign_policy.py +23 -0
  415. scitex/scholar/url_finder/translators/_individual/fr_online_de.py +23 -0
  416. scitex/scholar/url_finder/translators/_individual/freecite.py +23 -0
  417. scitex/scholar/url_finder/translators/_individual/freepatentsonline.py +23 -0
  418. scitex/scholar/url_finder/translators/_individual/frieze.py +23 -0
  419. scitex/scholar/url_finder/translators/_individual/frontiers.py +84 -0
  420. scitex/scholar/url_finder/translators/_individual/gale_databases.py +25 -0
  421. scitex/scholar/url_finder/translators/_individual/galegdc.py +23 -0
  422. scitex/scholar/url_finder/translators/_individual/galegroup.py +23 -0
  423. scitex/scholar/url_finder/translators/_individual/gallica.py +23 -0
  424. scitex/scholar/url_finder/translators/_individual/game_studies.py +23 -0
  425. scitex/scholar/url_finder/translators/_individual/gamespot.py +23 -0
  426. scitex/scholar/url_finder/translators/_individual/gamestar_gamepro.py +23 -0
  427. scitex/scholar/url_finder/translators/_individual/gasyrlar_awazy.py +23 -0
  428. scitex/scholar/url_finder/translators/_individual/gemeinsamer_bibliotheksverbund_isbn.py +23 -0
  429. scitex/scholar/url_finder/translators/_individual/gene_ontology.py +23 -0
  430. scitex/scholar/url_finder/translators/_individual/github.py +23 -0
  431. scitex/scholar/url_finder/translators/_individual/globes.py +23 -0
  432. scitex/scholar/url_finder/translators/_individual/gmail.py +23 -0
  433. scitex/scholar/url_finder/translators/_individual/goodreads.py +23 -0
  434. scitex/scholar/url_finder/translators/_individual/google_books.py +23 -0
  435. scitex/scholar/url_finder/translators/_individual/google_patents.py +23 -0
  436. scitex/scholar/url_finder/translators/_individual/google_play.py +23 -0
  437. scitex/scholar/url_finder/translators/_individual/google_presentation.py +23 -0
  438. scitex/scholar/url_finder/translators/_individual/google_research.py +23 -0
  439. scitex/scholar/url_finder/translators/_individual/google_scholar.py +23 -0
  440. scitex/scholar/url_finder/translators/_individual/govinfo.py +23 -0
  441. scitex/scholar/url_finder/translators/_individual/gpo_access_e_cfr.py +23 -0
  442. scitex/scholar/url_finder/translators/_individual/gulag_many_days__many_lives.py +23 -0
  443. scitex/scholar/url_finder/translators/_individual/haaretz.py +23 -0
  444. scitex/scholar/url_finder/translators/_individual/habr.py +23 -0
  445. scitex/scholar/url_finder/translators/_individual/hal.py +23 -0
  446. scitex/scholar/url_finder/translators/_individual/hal_archives_ouvertes.py +23 -0
  447. scitex/scholar/url_finder/translators/_individual/handelszeitung.py +23 -0
  448. scitex/scholar/url_finder/translators/_individual/hanrei_watch.py +23 -0
  449. scitex/scholar/url_finder/translators/_individual/harper_s_magazine.py +23 -0
  450. scitex/scholar/url_finder/translators/_individual/harvard_business_review.py +23 -0
  451. scitex/scholar/url_finder/translators/_individual/harvard_caselaw_access_project.py +23 -0
  452. scitex/scholar/url_finder/translators/_individual/harvard_university_press_books.py +23 -0
  453. scitex/scholar/url_finder/translators/_individual/hathitrust.py +23 -0
  454. scitex/scholar/url_finder/translators/_individual/hcsp.py +23 -0
  455. scitex/scholar/url_finder/translators/_individual/heinonline.py +23 -0
  456. scitex/scholar/url_finder/translators/_individual/heise.py +23 -0
  457. scitex/scholar/url_finder/translators/_individual/herder.py +23 -0
  458. scitex/scholar/url_finder/translators/_individual/highbeam.py +23 -0
  459. scitex/scholar/url_finder/translators/_individual/highwire.py +23 -0
  460. scitex/scholar/url_finder/translators/_individual/highwire2.py +23 -0
  461. scitex/scholar/url_finder/translators/_individual/highwire_2_0.py +23 -0
  462. scitex/scholar/url_finder/translators/_individual/hindawi.py +23 -0
  463. scitex/scholar/url_finder/translators/_individual/hindawi_publishers.py +23 -0
  464. scitex/scholar/url_finder/translators/_individual/hispanic_american_periodical_index.py +23 -0
  465. scitex/scholar/url_finder/translators/_individual/homeland_security_digital_library.py +23 -0
  466. scitex/scholar/url_finder/translators/_individual/hudoc.py +23 -0
  467. scitex/scholar/url_finder/translators/_individual/huff_post.py +23 -0
  468. scitex/scholar/url_finder/translators/_individual/human_rights_watch.py +23 -0
  469. scitex/scholar/url_finder/translators/_individual/ibisworld.py +23 -0
  470. scitex/scholar/url_finder/translators/_individual/idea_alm.py +23 -0
  471. scitex/scholar/url_finder/translators/_individual/idref.py +23 -0
  472. scitex/scholar/url_finder/translators/_individual/ieee_xplore.py +265 -0
  473. scitex/scholar/url_finder/translators/_individual/ietf.py +23 -0
  474. scitex/scholar/url_finder/translators/_individual/ign.py +23 -0
  475. scitex/scholar/url_finder/translators/_individual/imdb.py +23 -0
  476. scitex/scholar/url_finder/translators/_individual/imf.py +23 -0
  477. scitex/scholar/url_finder/translators/_individual/in_these_times.py +23 -0
  478. scitex/scholar/url_finder/translators/_individual/informationssystem_medienpaedagogik.py +23 -0
  479. scitex/scholar/url_finder/translators/_individual/informit_database.py +23 -0
  480. scitex/scholar/url_finder/translators/_individual/infotrac.py +23 -0
  481. scitex/scholar/url_finder/translators/_individual/ingenta_connect.py +23 -0
  482. scitex/scholar/url_finder/translators/_individual/ingentaconnect.py +23 -0
  483. scitex/scholar/url_finder/translators/_individual/inside_higher_ed.py +23 -0
  484. scitex/scholar/url_finder/translators/_individual/insignia_opac.py +23 -0
  485. scitex/scholar/url_finder/translators/_individual/inspire.py +23 -0
  486. scitex/scholar/url_finder/translators/_individual/institute_of_contemporary_art.py +23 -0
  487. scitex/scholar/url_finder/translators/_individual/institute_of_physics.py +23 -0
  488. scitex/scholar/url_finder/translators/_individual/integrum.py +23 -0
  489. scitex/scholar/url_finder/translators/_individual/intellixir.py +23 -0
  490. scitex/scholar/url_finder/translators/_individual/international_nuclear_information_system.py +23 -0
  491. scitex/scholar/url_finder/translators/_individual/internet_archive.py +23 -0
  492. scitex/scholar/url_finder/translators/_individual/internet_archive_scholar.py +23 -0
  493. scitex/scholar/url_finder/translators/_individual/internet_archive_wayback.py +23 -0
  494. scitex/scholar/url_finder/translators/_individual/internet_archive_wayback_machine.py +23 -0
  495. scitex/scholar/url_finder/translators/_individual/invenio_rdm.py +23 -0
  496. scitex/scholar/url_finder/translators/_individual/inveniordm.py +23 -0
  497. scitex/scholar/url_finder/translators/_individual/io_port.py +23 -0
  498. scitex/scholar/url_finder/translators/_individual/iop.py +23 -0
  499. scitex/scholar/url_finder/translators/_individual/ipcc.py +23 -0
  500. scitex/scholar/url_finder/translators/_individual/isidore.py +23 -0
  501. scitex/scholar/url_finder/translators/_individual/istc.py +23 -0
  502. scitex/scholar/url_finder/translators/_individual/j_stage.py +23 -0
  503. scitex/scholar/url_finder/translators/_individual/jahrbuch.py +23 -0
  504. scitex/scholar/url_finder/translators/_individual/japan_times_online.py +23 -0
  505. scitex/scholar/url_finder/translators/_individual/jets.py +23 -0
  506. scitex/scholar/url_finder/translators/_individual/jisc_historical_texts.py +25 -0
  507. scitex/scholar/url_finder/translators/_individual/journal_of_electronic_publishing.py +23 -0
  508. scitex/scholar/url_finder/translators/_individual/journal_of_extension.py +23 -0
  509. scitex/scholar/url_finder/translators/_individual/journal_of_machine_learning_research.py +23 -0
  510. scitex/scholar/url_finder/translators/_individual/journal_of_religion_and_society.py +23 -0
  511. scitex/scholar/url_finder/translators/_individual/jrc_publications_repository.py +23 -0
  512. scitex/scholar/url_finder/translators/_individual/jstage.py +23 -0
  513. scitex/scholar/url_finder/translators/_individual/jstor.py +211 -0
  514. scitex/scholar/url_finder/translators/_individual/juricaf.py +23 -0
  515. scitex/scholar/url_finder/translators/_individual/jurion.py +23 -0
  516. scitex/scholar/url_finder/translators/_individual/juris.py +23 -0
  517. scitex/scholar/url_finder/translators/_individual/jurpc.py +23 -0
  518. scitex/scholar/url_finder/translators/_individual/k10plus_isbn.py +23 -0
  519. scitex/scholar/url_finder/translators/_individual/kanopy.py +23 -0
  520. scitex/scholar/url_finder/translators/_individual/karger.py +23 -0
  521. scitex/scholar/url_finder/translators/_individual/khaama_press.py +23 -0
  522. scitex/scholar/url_finder/translators/_individual/kitapyurdu_com.py +23 -0
  523. scitex/scholar/url_finder/translators/_individual/kommersant.py +23 -0
  524. scitex/scholar/url_finder/translators/_individual/korean_national_library.py +25 -0
  525. scitex/scholar/url_finder/translators/_individual/kstudy.py +23 -0
  526. scitex/scholar/url_finder/translators/_individual/l_annee_philologique.py +23 -0
  527. scitex/scholar/url_finder/translators/_individual/la_croix.py +23 -0
  528. scitex/scholar/url_finder/translators/_individual/la_nacion__argentina_.py +23 -0
  529. scitex/scholar/url_finder/translators/_individual/la_presse.py +23 -0
  530. scitex/scholar/url_finder/translators/_individual/la_republica__peru_.py +23 -0
  531. scitex/scholar/url_finder/translators/_individual/la_times.py +25 -0
  532. scitex/scholar/url_finder/translators/_individual/lagen_nu.py +23 -0
  533. scitex/scholar/url_finder/translators/_individual/landesbibliographie_baden_wurttemberg.py +25 -0
  534. scitex/scholar/url_finder/translators/_individual/lapham_s_quarterly.py +23 -0
  535. scitex/scholar/url_finder/translators/_individual/le_devoir.py +23 -0
  536. scitex/scholar/url_finder/translators/_individual/le_figaro.py +23 -0
  537. scitex/scholar/url_finder/translators/_individual/le_maitron.py +23 -0
  538. scitex/scholar/url_finder/translators/_individual/le_monde.py +23 -0
  539. scitex/scholar/url_finder/translators/_individual/le_monde_diplomatique.py +23 -0
  540. scitex/scholar/url_finder/translators/_individual/legifrance.py +23 -0
  541. scitex/scholar/url_finder/translators/_individual/legislative_insight.py +25 -0
  542. scitex/scholar/url_finder/translators/_individual/lexis_.py +23 -0
  543. scitex/scholar/url_finder/translators/_individual/lexisnexis.py +23 -0
  544. scitex/scholar/url_finder/translators/_individual/libraries_tasmania.py +25 -0
  545. scitex/scholar/url_finder/translators/_individual/library_catalog__aleph_.py +23 -0
  546. scitex/scholar/url_finder/translators/_individual/library_catalog__amicus_.py +23 -0
  547. scitex/scholar/url_finder/translators/_individual/library_catalog__aquabrowser_.py +23 -0
  548. scitex/scholar/url_finder/translators/_individual/library_catalog__bibliocommons_.py +23 -0
  549. scitex/scholar/url_finder/translators/_individual/library_catalog__blacklight_.py +23 -0
  550. scitex/scholar/url_finder/translators/_individual/library_catalog__capita_prism_.py +23 -0
  551. scitex/scholar/url_finder/translators/_individual/library_catalog__dra_.py +23 -0
  552. scitex/scholar/url_finder/translators/_individual/library_catalog__dynix_.py +23 -0
  553. scitex/scholar/url_finder/translators/_individual/library_catalog__encore_.py +23 -0
  554. scitex/scholar/url_finder/translators/_individual/library_catalog__innopac_.py +23 -0
  555. scitex/scholar/url_finder/translators/_individual/library_catalog__koha_.py +25 -0
  556. scitex/scholar/url_finder/translators/_individual/library_catalog__mango_.py +23 -0
  557. scitex/scholar/url_finder/translators/_individual/library_catalog__opals_.py +23 -0
  558. scitex/scholar/url_finder/translators/_individual/library_catalog__pica2_.py +23 -0
  559. scitex/scholar/url_finder/translators/_individual/library_catalog__pica_.py +23 -0
  560. scitex/scholar/url_finder/translators/_individual/library_catalog__pika_.py +23 -0
  561. scitex/scholar/url_finder/translators/_individual/library_catalog__polaris_.py +23 -0
  562. scitex/scholar/url_finder/translators/_individual/library_catalog__quolto_.py +23 -0
  563. scitex/scholar/url_finder/translators/_individual/library_catalog__rero_ils_.py +23 -0
  564. scitex/scholar/url_finder/translators/_individual/library_catalog__sirsi_.py +23 -0
  565. scitex/scholar/url_finder/translators/_individual/library_catalog__sirsi_elibrary_.py +23 -0
  566. scitex/scholar/url_finder/translators/_individual/library_catalog__slims_.py +23 -0
  567. scitex/scholar/url_finder/translators/_individual/library_catalog__tind_ils_.py +23 -0
  568. scitex/scholar/url_finder/translators/_individual/library_catalog__tinread_.py +23 -0
  569. scitex/scholar/url_finder/translators/_individual/library_catalog__tlcyouseemore_.py +23 -0
  570. scitex/scholar/url_finder/translators/_individual/library_catalog__visual_library_2021_.py +23 -0
  571. scitex/scholar/url_finder/translators/_individual/library_catalog__voyager_.py +23 -0
  572. scitex/scholar/url_finder/translators/_individual/library_catalog__voyager_7_.py +23 -0
  573. scitex/scholar/url_finder/translators/_individual/library_catalog__vtls_.py +23 -0
  574. scitex/scholar/url_finder/translators/_individual/library_genesis.py +23 -0
  575. scitex/scholar/url_finder/translators/_individual/library_hub_discover.py +23 -0
  576. scitex/scholar/url_finder/translators/_individual/library_of_congress_digital_collections.py +23 -0
  577. scitex/scholar/url_finder/translators/_individual/library_of_congress_isbn.py +23 -0
  578. scitex/scholar/url_finder/translators/_individual/libris_isbn.py +23 -0
  579. scitex/scholar/url_finder/translators/_individual/lippincott_williams_and_wilkins.py +23 -0
  580. scitex/scholar/url_finder/translators/_individual/literary_hub.py +23 -0
  581. scitex/scholar/url_finder/translators/_individual/litres.py +23 -0
  582. scitex/scholar/url_finder/translators/_individual/livejournal.py +23 -0
  583. scitex/scholar/url_finder/translators/_individual/livivo.py +23 -0
  584. scitex/scholar/url_finder/translators/_individual/london_review_of_books.py +23 -0
  585. scitex/scholar/url_finder/translators/_individual/lookus.py +23 -0
  586. scitex/scholar/url_finder/translators/_individual/lulu.py +23 -0
  587. scitex/scholar/url_finder/translators/_individual/lwn_net.py +23 -0
  588. scitex/scholar/url_finder/translators/_individual/lww.py +23 -0
  589. scitex/scholar/url_finder/translators/_individual/mab2.py +23 -0
  590. scitex/scholar/url_finder/translators/_individual/magazines_russ_ru.py +23 -0
  591. scitex/scholar/url_finder/translators/_individual/mailman.py +23 -0
  592. scitex/scholar/url_finder/translators/_individual/mainichi_daily_news.py +23 -0
  593. scitex/scholar/url_finder/translators/_individual/marc.py +23 -0
  594. scitex/scholar/url_finder/translators/_individual/marcxml.py +23 -0
  595. scitex/scholar/url_finder/translators/_individual/mastodon.py +23 -0
  596. scitex/scholar/url_finder/translators/_individual/matbugat_ru.py +23 -0
  597. scitex/scholar/url_finder/translators/_individual/max_planck_institute_for_the_history_of_science_virtual_laboratory_library.py +25 -0
  598. scitex/scholar/url_finder/translators/_individual/mcv.py +23 -0
  599. scitex/scholar/url_finder/translators/_individual/mdpi.py +76 -0
  600. scitex/scholar/url_finder/translators/_individual/mdpi_journals.py +23 -0
  601. scitex/scholar/url_finder/translators/_individual/medes.py +23 -0
  602. scitex/scholar/url_finder/translators/_individual/medium.py +23 -0
  603. scitex/scholar/url_finder/translators/_individual/medline_nbib.py +23 -0
  604. scitex/scholar/url_finder/translators/_individual/medlinenbib.py +23 -0
  605. scitex/scholar/url_finder/translators/_individual/medra.py +23 -0
  606. scitex/scholar/url_finder/translators/_individual/metalib.py +23 -0
  607. scitex/scholar/url_finder/translators/_individual/mets.py +23 -0
  608. scitex/scholar/url_finder/translators/_individual/microbiology_society_journals.py +25 -0
  609. scitex/scholar/url_finder/translators/_individual/microsoft_academic.py +23 -0
  610. scitex/scholar/url_finder/translators/_individual/midas_journals.py +25 -0
  611. scitex/scholar/url_finder/translators/_individual/mikromarc.py +23 -0
  612. scitex/scholar/url_finder/translators/_individual/milli_kutuphane.py +23 -0
  613. scitex/scholar/url_finder/translators/_individual/mit_press_books.py +23 -0
  614. scitex/scholar/url_finder/translators/_individual/mods.py +23 -0
  615. scitex/scholar/url_finder/translators/_individual/mpg_pure.py +23 -0
  616. scitex/scholar/url_finder/translators/_individual/musee_du_louvre.py +23 -0
  617. scitex/scholar/url_finder/translators/_individual/nagoya_university_opac.py +25 -0
  618. scitex/scholar/url_finder/translators/_individual/nasa_ads.py +23 -0
  619. scitex/scholar/url_finder/translators/_individual/nasa_ntrs.py +23 -0
  620. scitex/scholar/url_finder/translators/_individual/national_academies_press.py +23 -0
  621. scitex/scholar/url_finder/translators/_individual/national_agriculture_library.py +23 -0
  622. scitex/scholar/url_finder/translators/_individual/national_archives_of_australia.py +23 -0
  623. scitex/scholar/url_finder/translators/_individual/national_archives_of_south_africa.py +23 -0
  624. scitex/scholar/url_finder/translators/_individual/national_bureau_of_economic_research.py +23 -0
  625. scitex/scholar/url_finder/translators/_individual/national_diet_library_catalogue.py +23 -0
  626. scitex/scholar/url_finder/translators/_individual/national_gallery_of_art___usa.py +23 -0
  627. scitex/scholar/url_finder/translators/_individual/national_gallery_of_australia.py +23 -0
  628. scitex/scholar/url_finder/translators/_individual/national_library_of_australia__new_catalog_.py +23 -0
  629. scitex/scholar/url_finder/translators/_individual/national_library_of_belarus.py +23 -0
  630. scitex/scholar/url_finder/translators/_individual/national_library_of_norway.py +23 -0
  631. scitex/scholar/url_finder/translators/_individual/national_library_of_poland_isbn.py +23 -0
  632. scitex/scholar/url_finder/translators/_individual/national_post.py +23 -0
  633. scitex/scholar/url_finder/translators/_individual/national_technical_reports_library.py +23 -0
  634. scitex/scholar/url_finder/translators/_individual/national_transportation_library_rosa_p.py +23 -0
  635. scitex/scholar/url_finder/translators/_individual/nature.py +23 -0
  636. scitex/scholar/url_finder/translators/_individual/nature_publishing_group.py +193 -0
  637. scitex/scholar/url_finder/translators/_individual/nber.py +23 -0
  638. scitex/scholar/url_finder/translators/_individual/ncbi_nucleotide.py +23 -0
  639. scitex/scholar/url_finder/translators/_individual/neural_information_processing_systems.py +23 -0
  640. scitex/scholar/url_finder/translators/_individual/new_left_review.py +23 -0
  641. scitex/scholar/url_finder/translators/_individual/new_zealand_herald.py +23 -0
  642. scitex/scholar/url_finder/translators/_individual/newlines_magazine.py +23 -0
  643. scitex/scholar/url_finder/translators/_individual/news_corp_australia.py +23 -0
  644. scitex/scholar/url_finder/translators/_individual/newsbank.py +23 -0
  645. scitex/scholar/url_finder/translators/_individual/newshub_co_nz.py +23 -0
  646. scitex/scholar/url_finder/translators/_individual/newsnettamedia.py +23 -0
  647. scitex/scholar/url_finder/translators/_individual/newspapers_com.py +23 -0
  648. scitex/scholar/url_finder/translators/_individual/noor_digital_library.py +23 -0
  649. scitex/scholar/url_finder/translators/_individual/note_html.py +23 -0
  650. scitex/scholar/url_finder/translators/_individual/note_markdown.py +23 -0
  651. scitex/scholar/url_finder/translators/_individual/notre_dame_philosophical_reviews.py +23 -0
  652. scitex/scholar/url_finder/translators/_individual/npr.py +23 -0
  653. scitex/scholar/url_finder/translators/_individual/nrc_nl.py +23 -0
  654. scitex/scholar/url_finder/translators/_individual/nrc_research_press.py +23 -0
  655. scitex/scholar/url_finder/translators/_individual/ntsb_accident_reports.py +25 -0
  656. scitex/scholar/url_finder/translators/_individual/nypl_menus.py +23 -0
  657. scitex/scholar/url_finder/translators/_individual/nypl_research_catalog.py +23 -0
  658. scitex/scholar/url_finder/translators/_individual/nytimes_com.py +23 -0
  659. scitex/scholar/url_finder/translators/_individual/nzz_ch.py +23 -0
  660. scitex/scholar/url_finder/translators/_individual/oapen.py +23 -0
  661. scitex/scholar/url_finder/translators/_individual/oclc_worldcat_firstsearch.py +23 -0
  662. scitex/scholar/url_finder/translators/_individual/oecd.py +23 -0
  663. scitex/scholar/url_finder/translators/_individual/oecd_ilibrary.py +23 -0
  664. scitex/scholar/url_finder/translators/_individual/ohiolink.py +23 -0
  665. scitex/scholar/url_finder/translators/_individual/open_conf.py +23 -0
  666. scitex/scholar/url_finder/translators/_individual/open_knowledge_repository.py +23 -0
  667. scitex/scholar/url_finder/translators/_individual/open_worldcat.py +23 -0
  668. scitex/scholar/url_finder/translators/_individual/openalex.py +23 -0
  669. scitex/scholar/url_finder/translators/_individual/openalex_json.py +23 -0
  670. scitex/scholar/url_finder/translators/_individual/openedition_books.py +23 -0
  671. scitex/scholar/url_finder/translators/_individual/openjur.py +23 -0
  672. scitex/scholar/url_finder/translators/_individual/optical_society_of_america.py +23 -0
  673. scitex/scholar/url_finder/translators/_individual/optimization_online.py +23 -0
  674. scitex/scholar/url_finder/translators/_individual/osa.py +23 -0
  675. scitex/scholar/url_finder/translators/_individual/osf_preprints.py +23 -0
  676. scitex/scholar/url_finder/translators/_individual/osti_energy_citations.py +23 -0
  677. scitex/scholar/url_finder/translators/_individual/ovid.py +23 -0
  678. scitex/scholar/url_finder/translators/_individual/ovid_tagged.py +23 -0
  679. scitex/scholar/url_finder/translators/_individual/oxford.py +148 -0
  680. scitex/scholar/url_finder/translators/_individual/oxford_dictionaries_premium.py +25 -0
  681. scitex/scholar/url_finder/translators/_individual/oxford_english_dictionary.py +23 -0
  682. scitex/scholar/url_finder/translators/_individual/oxford_music_and_art_online.py +23 -0
  683. scitex/scholar/url_finder/translators/_individual/oxford_reference.py +23 -0
  684. scitex/scholar/url_finder/translators/_individual/oxford_university_press.py +23 -0
  685. scitex/scholar/url_finder/translators/_individual/ozon_ru.py +25 -0
  686. scitex/scholar/url_finder/translators/_individual/pajhwok_afghan_news.py +23 -0
  687. scitex/scholar/url_finder/translators/_individual/papers_past.py +23 -0
  688. scitex/scholar/url_finder/translators/_individual/paris_review.py +23 -0
  689. scitex/scholar/url_finder/translators/_individual/pastebin.py +23 -0
  690. scitex/scholar/url_finder/translators/_individual/patents___uspto.py +23 -0
  691. scitex/scholar/url_finder/translators/_individual/pc_gamer.py +23 -0
  692. scitex/scholar/url_finder/translators/_individual/pc_games.py +23 -0
  693. scitex/scholar/url_finder/translators/_individual/peeters.py +23 -0
  694. scitex/scholar/url_finder/translators/_individual/pei_archival_information_network.py +23 -0
  695. scitex/scholar/url_finder/translators/_individual/pep_web.py +23 -0
  696. scitex/scholar/url_finder/translators/_individual/perceiving_systems.py +23 -0
  697. scitex/scholar/url_finder/translators/_individual/perlego.py +23 -0
  698. scitex/scholar/url_finder/translators/_individual/philosopher_s_imprint.py +23 -0
  699. scitex/scholar/url_finder/translators/_individual/philpapers.py +23 -0
  700. scitex/scholar/url_finder/translators/_individual/pkp_catalog_systems.py +23 -0
  701. scitex/scholar/url_finder/translators/_individual/pleade.py +23 -0
  702. scitex/scholar/url_finder/translators/_individual/plos.py +111 -0
  703. scitex/scholar/url_finder/translators/_individual/plos_journals.py +23 -0
  704. scitex/scholar/url_finder/translators/_individual/pnas.py +23 -0
  705. scitex/scholar/url_finder/translators/_individual/polygon.py +25 -0
  706. scitex/scholar/url_finder/translators/_individual/potsdamer_neueste_nachrichten.py +23 -0
  707. scitex/scholar/url_finder/translators/_individual/prc_history_review.py +23 -0
  708. scitex/scholar/url_finder/translators/_individual/preprints_org.py +23 -0
  709. scitex/scholar/url_finder/translators/_individual/primo.py +25 -0
  710. scitex/scholar/url_finder/translators/_individual/primo_2018.py +23 -0
  711. scitex/scholar/url_finder/translators/_individual/primo_normalized_xml.py +23 -0
  712. scitex/scholar/url_finder/translators/_individual/probing_the_past.py +23 -0
  713. scitex/scholar/url_finder/translators/_individual/project_gutenberg.py +23 -0
  714. scitex/scholar/url_finder/translators/_individual/project_muse.py +25 -0
  715. scitex/scholar/url_finder/translators/_individual/promed.py +23 -0
  716. scitex/scholar/url_finder/translators/_individual/proquest.py +23 -0
  717. scitex/scholar/url_finder/translators/_individual/proquest_ebook_central.py +23 -0
  718. scitex/scholar/url_finder/translators/_individual/proquest_policyfile.py +23 -0
  719. scitex/scholar/url_finder/translators/_individual/protein_data_bank.py +23 -0
  720. scitex/scholar/url_finder/translators/_individual/pubfactory_journals.py +25 -0
  721. scitex/scholar/url_finder/translators/_individual/public_record_office_victoria.py +23 -0
  722. scitex/scholar/url_finder/translators/_individual/publications_du_quebec.py +23 -0
  723. scitex/scholar/url_finder/translators/_individual/publications_office_of_the_european_union.py +23 -0
  724. scitex/scholar/url_finder/translators/_individual/pubmed.py +330 -0
  725. scitex/scholar/url_finder/translators/_individual/pubmed_central.py +71 -0
  726. scitex/scholar/url_finder/translators/_individual/pubmed_xml.py +23 -0
  727. scitex/scholar/url_finder/translators/_individual/pubpub.py +23 -0
  728. scitex/scholar/url_finder/translators/_individual/pypi.py +23 -0
  729. scitex/scholar/url_finder/translators/_individual/qatar_digital_library.py +23 -0
  730. scitex/scholar/url_finder/translators/_individual/queensland_state_archives.py +23 -0
  731. scitex/scholar/url_finder/translators/_individual/r_packages.py +23 -0
  732. scitex/scholar/url_finder/translators/_individual/radio_free_europe__radio_liberty.py +23 -0
  733. scitex/scholar/url_finder/translators/_individual/rand.py +23 -0
  734. scitex/scholar/url_finder/translators/_individual/rdf.py +23 -0
  735. scitex/scholar/url_finder/translators/_individual/rechtspraak_nl.py +25 -0
  736. scitex/scholar/url_finder/translators/_individual/redalyc.py +23 -0
  737. scitex/scholar/url_finder/translators/_individual/reddit.py +23 -0
  738. scitex/scholar/url_finder/translators/_individual/referbibix.py +23 -0
  739. scitex/scholar/url_finder/translators/_individual/refworks_tagged.py +23 -0
  740. scitex/scholar/url_finder/translators/_individual/regeringskansliet.py +23 -0
  741. scitex/scholar/url_finder/translators/_individual/repec___econpapers.py +23 -0
  742. scitex/scholar/url_finder/translators/_individual/repec___ideas.py +23 -0
  743. scitex/scholar/url_finder/translators/_individual/repec_ideas.py +23 -0
  744. scitex/scholar/url_finder/translators/_individual/research_square.py +23 -0
  745. scitex/scholar/url_finder/translators/_individual/researchgate.py +23 -0
  746. scitex/scholar/url_finder/translators/_individual/retsinformation.py +23 -0
  747. scitex/scholar/url_finder/translators/_individual/reuters.py +23 -0
  748. scitex/scholar/url_finder/translators/_individual/ris.py +23 -0
  749. scitex/scholar/url_finder/translators/_individual/rock__paper__shotgun.py +23 -0
  750. scitex/scholar/url_finder/translators/_individual/roll_call.py +23 -0
  751. scitex/scholar/url_finder/translators/_individual/rsc.py +23 -0
  752. scitex/scholar/url_finder/translators/_individual/rsc_publishing.py +23 -0
  753. scitex/scholar/url_finder/translators/_individual/russian_state_library.py +23 -0
  754. scitex/scholar/url_finder/translators/_individual/sacramento_bee.py +23 -0
  755. scitex/scholar/url_finder/translators/_individual/sae_papers.py +23 -0
  756. scitex/scholar/url_finder/translators/_individual/safari_books_online.py +23 -0
  757. scitex/scholar/url_finder/translators/_individual/sage.py +23 -0
  758. scitex/scholar/url_finder/translators/_individual/sage_journals.py +183 -0
  759. scitex/scholar/url_finder/translators/_individual/sage_knowledge.py +23 -0
  760. scitex/scholar/url_finder/translators/_individual/saildart.py +23 -0
  761. scitex/scholar/url_finder/translators/_individual/salt_research_archives.py +23 -0
  762. scitex/scholar/url_finder/translators/_individual/sbn_it.py +23 -0
  763. scitex/scholar/url_finder/translators/_individual/scholars_portal_journals.py +23 -0
  764. scitex/scholar/url_finder/translators/_individual/scholia.py +23 -0
  765. scitex/scholar/url_finder/translators/_individual/schweizer_radio_und_fernsehen_srf.py +23 -0
  766. scitex/scholar/url_finder/translators/_individual/scielo.py +23 -0
  767. scitex/scholar/url_finder/translators/_individual/sciencedirect.py +132 -0
  768. scitex/scholar/url_finder/translators/_individual/scopus.py +23 -0
  769. scitex/scholar/url_finder/translators/_individual/semantic_scholar.py +23 -0
  770. scitex/scholar/url_finder/translators/_individual/semantics_visual_library.py +25 -0
  771. scitex/scholar/url_finder/translators/_individual/sfu_ipinch.py +23 -0
  772. scitex/scholar/url_finder/translators/_individual/silverchair.py +301 -0
  773. scitex/scholar/url_finder/translators/_individual/sipri.py +23 -0
  774. scitex/scholar/url_finder/translators/_individual/sirs_knowledge_source.py +23 -0
  775. scitex/scholar/url_finder/translators/_individual/slate.py +23 -0
  776. scitex/scholar/url_finder/translators/_individual/slideshare.py +23 -0
  777. scitex/scholar/url_finder/translators/_individual/slub_dresden.py +23 -0
  778. scitex/scholar/url_finder/translators/_individual/sora.py +25 -0
  779. scitex/scholar/url_finder/translators/_individual/springer.py +121 -0
  780. scitex/scholar/url_finder/translators/_individual/springer_link.py +23 -0
  781. scitex/scholar/url_finder/translators/_individual/ssoar.py +23 -0
  782. scitex/scholar/url_finder/translators/_individual/ssrn.py +63 -0
  783. scitex/scholar/url_finder/translators/_individual/stack_exchange.py +23 -0
  784. scitex/scholar/url_finder/translators/_individual/standard_ebooks.py +23 -0
  785. scitex/scholar/url_finder/translators/_individual/stanford_encyclopedia_of_philosophy.py +25 -0
  786. scitex/scholar/url_finder/translators/_individual/stanford_university_press.py +23 -0
  787. scitex/scholar/url_finder/translators/_individual/state_records_office_of_western_australia.py +23 -0
  788. scitex/scholar/url_finder/translators/_individual/state_records_office_wa.py +23 -0
  789. scitex/scholar/url_finder/translators/_individual/stitcher.py +23 -0
  790. scitex/scholar/url_finder/translators/_individual/store_norske_leksikon.py +23 -0
  791. scitex/scholar/url_finder/translators/_individual/stuff_co_nz.py +23 -0
  792. scitex/scholar/url_finder/translators/_individual/substack.py +23 -0
  793. scitex/scholar/url_finder/translators/_individual/sud_ouest.py +23 -0
  794. scitex/scholar/url_finder/translators/_individual/sueddeutsche_de.py +23 -0
  795. scitex/scholar/url_finder/translators/_individual/summon_2.py +23 -0
  796. scitex/scholar/url_finder/translators/_individual/superlib.py +25 -0
  797. scitex/scholar/url_finder/translators/_individual/svenska_dagbladet.py +23 -0
  798. scitex/scholar/url_finder/translators/_individual/sveriges_radio.py +23 -0
  799. scitex/scholar/url_finder/translators/_individual/svt_nyheter.py +23 -0
  800. scitex/scholar/url_finder/translators/_individual/tagesspiegel.py +23 -0
  801. scitex/scholar/url_finder/translators/_individual/talis_aspire.py +23 -0
  802. scitex/scholar/url_finder/translators/_individual/talisprism.py +23 -0
  803. scitex/scholar/url_finder/translators/_individual/tatknigafund.py +23 -0
  804. scitex/scholar/url_finder/translators/_individual/tatpressa_ru.py +23 -0
  805. scitex/scholar/url_finder/translators/_individual/taylor___francis_ebooks.py +23 -0
  806. scitex/scholar/url_finder/translators/_individual/taylor_and_francis_nejm.py +23 -0
  807. scitex/scholar/url_finder/translators/_individual/taylor_francis.py +23 -0
  808. scitex/scholar/url_finder/translators/_individual/taylor_francis_nejm.py +23 -0
  809. scitex/scholar/url_finder/translators/_individual/taz_de.py +23 -0
  810. scitex/scholar/url_finder/translators/_individual/tei.py +23 -0
  811. scitex/scholar/url_finder/translators/_individual/tesis_doctorals_en_xarxa.py +23 -0
  812. scitex/scholar/url_finder/translators/_individual/the_art_newspaper.py +23 -0
  813. scitex/scholar/url_finder/translators/_individual/the_atlantic.py +23 -0
  814. scitex/scholar/url_finder/translators/_individual/the_boston_globe.py +23 -0
  815. scitex/scholar/url_finder/translators/_individual/the_chronicle_of_higher_education.py +23 -0
  816. scitex/scholar/url_finder/translators/_individual/the_daily_beast.py +23 -0
  817. scitex/scholar/url_finder/translators/_individual/the_economic_times___the_times_of_india.py +23 -0
  818. scitex/scholar/url_finder/translators/_individual/the_economist.py +23 -0
  819. scitex/scholar/url_finder/translators/_individual/the_free_dictionary.py +23 -0
  820. scitex/scholar/url_finder/translators/_individual/the_globe_and_mail.py +23 -0
  821. scitex/scholar/url_finder/translators/_individual/the_guardian.py +23 -0
  822. scitex/scholar/url_finder/translators/_individual/the_hamilton_spectator.py +23 -0
  823. scitex/scholar/url_finder/translators/_individual/the_hindu.py +23 -0
  824. scitex/scholar/url_finder/translators/_individual/the_independent.py +23 -0
  825. scitex/scholar/url_finder/translators/_individual/the_intercept.py +23 -0
  826. scitex/scholar/url_finder/translators/_individual/the_met.py +23 -0
  827. scitex/scholar/url_finder/translators/_individual/the_microfinance_gateway.py +23 -0
  828. scitex/scholar/url_finder/translators/_individual/the_nation.py +23 -0
  829. scitex/scholar/url_finder/translators/_individual/the_national_archives__uk_.py +23 -0
  830. scitex/scholar/url_finder/translators/_individual/the_new_republic.py +23 -0
  831. scitex/scholar/url_finder/translators/_individual/the_new_york_review_of_books.py +23 -0
  832. scitex/scholar/url_finder/translators/_individual/the_new_yorker.py +23 -0
  833. scitex/scholar/url_finder/translators/_individual/the_open_library.py +23 -0
  834. scitex/scholar/url_finder/translators/_individual/the_straits_times.py +23 -0
  835. scitex/scholar/url_finder/translators/_individual/the_telegraph.py +23 -0
  836. scitex/scholar/url_finder/translators/_individual/the_times_and_sunday_times.py +23 -0
  837. scitex/scholar/url_finder/translators/_individual/the_times_of_israel.py +23 -0
  838. scitex/scholar/url_finder/translators/_individual/themarker.py +23 -0
  839. scitex/scholar/url_finder/translators/_individual/theory_of_computing.py +23 -0
  840. scitex/scholar/url_finder/translators/_individual/thesesfr.py +23 -0
  841. scitex/scholar/url_finder/translators/_individual/thieme.py +23 -0
  842. scitex/scholar/url_finder/translators/_individual/time_com.py +23 -0
  843. scitex/scholar/url_finder/translators/_individual/timesmachine.py +23 -0
  844. scitex/scholar/url_finder/translators/_individual/tony_blair_institute.py +23 -0
  845. scitex/scholar/url_finder/translators/_individual/tony_blair_institute_for_global_change.py +23 -0
  846. scitex/scholar/url_finder/translators/_individual/toronto_star.py +23 -0
  847. scitex/scholar/url_finder/translators/_individual/transportation_research_board.py +23 -0
  848. scitex/scholar/url_finder/translators/_individual/treesearch.py +25 -0
  849. scitex/scholar/url_finder/translators/_individual/trove.py +23 -0
  850. scitex/scholar/url_finder/translators/_individual/tumblr.py +23 -0
  851. scitex/scholar/url_finder/translators/_individual/tv_by_the_numbers.py +23 -0
  852. scitex/scholar/url_finder/translators/_individual/tvnz.py +23 -0
  853. scitex/scholar/url_finder/translators/_individual/twitter.py +23 -0
  854. scitex/scholar/url_finder/translators/_individual/ubiquity_journals.py +23 -0
  855. scitex/scholar/url_finder/translators/_individual/uchicago_vufind.py +23 -0
  856. scitex/scholar/url_finder/translators/_individual/unapi.py +23 -0
  857. scitex/scholar/url_finder/translators/_individual/unesco.py +23 -0
  858. scitex/scholar/url_finder/translators/_individual/university_of_california_press_books.py +23 -0
  859. scitex/scholar/url_finder/translators/_individual/university_of_chicago_press_books.py +25 -0
  860. scitex/scholar/url_finder/translators/_individual/university_of_wisconsin_madison_libraries_catalog.py +23 -0
  861. scitex/scholar/url_finder/translators/_individual/university_press_scholarship.py +23 -0
  862. scitex/scholar/url_finder/translators/_individual/unqualified_dublin_core_rdf.py +23 -0
  863. scitex/scholar/url_finder/translators/_individual/unz_print_archive.py +23 -0
  864. scitex/scholar/url_finder/translators/_individual/upcommons.py +23 -0
  865. scitex/scholar/url_finder/translators/_individual/uptodate_references.py +23 -0
  866. scitex/scholar/url_finder/translators/_individual/us_national_archives_research_catalog.py +23 -0
  867. scitex/scholar/url_finder/translators/_individual/usenix.py +23 -0
  868. scitex/scholar/url_finder/translators/_individual/vanity_fair.py +23 -0
  869. scitex/scholar/url_finder/translators/_individual/verniana.py +23 -0
  870. scitex/scholar/url_finder/translators/_individual/verniana_jules_verne_studies.py +23 -0
  871. scitex/scholar/url_finder/translators/_individual/verso_books.py +23 -0
  872. scitex/scholar/url_finder/translators/_individual/vice.py +23 -0
  873. scitex/scholar/url_finder/translators/_individual/victoria___albert_museum.py +23 -0
  874. scitex/scholar/url_finder/translators/_individual/vimeo.py +23 -0
  875. scitex/scholar/url_finder/translators/_individual/vlex.py +25 -0
  876. scitex/scholar/url_finder/translators/_individual/voxeu.py +23 -0
  877. scitex/scholar/url_finder/translators/_individual/wall_street_journal.py +23 -0
  878. scitex/scholar/url_finder/translators/_individual/wanfang_data.py +23 -0
  879. scitex/scholar/url_finder/translators/_individual/washington_monthly.py +23 -0
  880. scitex/scholar/url_finder/translators/_individual/washington_post.py +23 -0
  881. scitex/scholar/url_finder/translators/_individual/web_of_science.py +25 -0
  882. scitex/scholar/url_finder/translators/_individual/web_of_science_nextgen.py +25 -0
  883. scitex/scholar/url_finder/translators/_individual/web_of_science_tagged.py +23 -0
  884. scitex/scholar/url_finder/translators/_individual/welt_online.py +23 -0
  885. scitex/scholar/url_finder/translators/_individual/westlaw_uk.py +23 -0
  886. scitex/scholar/url_finder/translators/_individual/who.py +23 -0
  887. scitex/scholar/url_finder/translators/_individual/wikidata.py +23 -0
  888. scitex/scholar/url_finder/translators/_individual/wikidata_quickstatements.py +23 -0
  889. scitex/scholar/url_finder/translators/_individual/wikileaks_plusd.py +23 -0
  890. scitex/scholar/url_finder/translators/_individual/wikimedia_commons.py +23 -0
  891. scitex/scholar/url_finder/translators/_individual/wikipedia.py +23 -0
  892. scitex/scholar/url_finder/translators/_individual/wikipedia_citation_templates.py +23 -0
  893. scitex/scholar/url_finder/translators/_individual/wikisource.py +23 -0
  894. scitex/scholar/url_finder/translators/_individual/wikiwand.py +23 -0
  895. scitex/scholar/url_finder/translators/_individual/wiktionary.py +23 -0
  896. scitex/scholar/url_finder/translators/_individual/wildlife_biology_in_practice.py +23 -0
  897. scitex/scholar/url_finder/translators/_individual/wiley.py +187 -0
  898. scitex/scholar/url_finder/translators/_individual/wiley_online_library.py +23 -0
  899. scitex/scholar/url_finder/translators/_individual/wilson_center_digital_archive.py +25 -0
  900. scitex/scholar/url_finder/translators/_individual/winnipeg_free_press.py +23 -0
  901. scitex/scholar/url_finder/translators/_individual/wipo.py +23 -0
  902. scitex/scholar/url_finder/translators/_individual/wired.py +23 -0
  903. scitex/scholar/url_finder/translators/_individual/wiso.py +23 -0
  904. scitex/scholar/url_finder/translators/_individual/womennews.py +23 -0
  905. scitex/scholar/url_finder/translators/_individual/world_bank.py +23 -0
  906. scitex/scholar/url_finder/translators/_individual/world_digital_library.py +23 -0
  907. scitex/scholar/url_finder/translators/_individual/world_history_connected.py +23 -0
  908. scitex/scholar/url_finder/translators/_individual/world_shakespeare_bibliography_online.py +23 -0
  909. scitex/scholar/url_finder/translators/_individual/worldcat_discovery_service.py +23 -0
  910. scitex/scholar/url_finder/translators/_individual/xml_contextobject.py +23 -0
  911. scitex/scholar/url_finder/translators/_individual/yandex_books.py +23 -0
  912. scitex/scholar/url_finder/translators/_individual/ynet.py +23 -0
  913. scitex/scholar/url_finder/translators/_individual/youtube.py +23 -0
  914. scitex/scholar/url_finder/translators/_individual/ypfs.py +23 -0
  915. scitex/scholar/url_finder/translators/_individual/ypsf.py +23 -0
  916. scitex/scholar/url_finder/translators/_individual/zenodo.py +23 -0
  917. scitex/scholar/url_finder/translators/_individual/ziponline.py +23 -0
  918. scitex/scholar/url_finder/translators/_individual/zobodat.py +23 -0
  919. scitex/scholar/url_finder/translators/_individual/zotero_org.py +23 -0
  920. scitex/scholar/url_finder/translators/_individual/zotero_rdf.py +23 -0
  921. scitex/scholar/url_finder/translators/_individual/zoterobib.py +23 -0
  922. scitex/security/README.md +3 -3
  923. scitex/session/README.md +1 -1
  924. scitex/session/__init__.py +26 -7
  925. scitex/session/_decorator.py +1 -1
  926. scitex/sh/README.md +1 -1
  927. scitex/sh/__init__.py +7 -4
  928. scitex/social/__init__.py +155 -0
  929. scitex/social/docs/EXTERNAL_PACKAGE_BRANDING.md +149 -0
  930. scitex/stats/__init__.py +15 -32
  931. scitex/stats/_mcp/_handlers/__init__.py +31 -0
  932. scitex/stats/_mcp/_handlers/_corrections.py +113 -0
  933. scitex/stats/_mcp/_handlers/_descriptive.py +78 -0
  934. scitex/stats/_mcp/_handlers/_effect_size.py +106 -0
  935. scitex/stats/_mcp/_handlers/_format.py +94 -0
  936. scitex/stats/_mcp/_handlers/_normality.py +110 -0
  937. scitex/stats/_mcp/_handlers/_posthoc.py +224 -0
  938. scitex/stats/_mcp/_handlers/_power.py +247 -0
  939. scitex/stats/_mcp/_handlers/_recommend.py +102 -0
  940. scitex/stats/_mcp/_handlers/_run_test.py +279 -0
  941. scitex/stats/_mcp/_handlers/_stars.py +48 -0
  942. scitex/stats/_mcp/handlers.py +19 -1171
  943. scitex/stats/_utils/__init__.py +52 -0
  944. scitex/stats/_utils/_effect_size.py +995 -0
  945. scitex/stats/_utils/_formatters.py +279 -0
  946. scitex/stats/_utils/_normalizers.py +924 -0
  947. scitex/stats/_utils/_power.py +436 -0
  948. scitex/stats/auto/__init__.py +49 -92
  949. scitex/stats/auto/_stat_style.py +175 -0
  950. scitex/stats/auto/_style_definitions.py +411 -0
  951. scitex/stats/auto/_styles.py +22 -620
  952. scitex/stats/correct/_correct_bonferroni.py +4 -2
  953. scitex/stats/correct/_correct_fdr.py +4 -8
  954. scitex/stats/correct/_correct_fdr_.py +4 -2
  955. scitex/stats/correct/_correct_holm.py +3 -1
  956. scitex/stats/correct/_correct_sidak.py +3 -1
  957. scitex/stats/descriptive/__init__.py +11 -8
  958. scitex/stats/descriptive/_ci.py +39 -0
  959. scitex/stats/mcp_server.py +16 -3
  960. scitex/stats/posthoc/_dunnett.py +14 -10
  961. scitex/stats/posthoc/_games_howell.py +8 -4
  962. scitex/stats/posthoc/_tukey_hsd.py +8 -4
  963. scitex/stats/power/_power.py +15 -4
  964. scitex/stats/tests/correlation/_test_pearson.py +2 -2
  965. scitex/str/__init__.py +3 -3
  966. scitex/str/_title_case.py +63 -0
  967. scitex/template/README.md +1 -1
  968. scitex/template/__init__.py +25 -10
  969. scitex/template/_code_templates.py +147 -0
  970. scitex/template/_mcp/handlers.py +81 -0
  971. scitex/template/_mcp/tool_schemas.py +55 -0
  972. scitex/template/_templates/__init__.py +51 -0
  973. scitex/template/_templates/audio.py +233 -0
  974. scitex/template/_templates/canvas.py +312 -0
  975. scitex/template/_templates/capture.py +268 -0
  976. scitex/template/_templates/config.py +43 -0
  977. scitex/template/_templates/diagram.py +294 -0
  978. scitex/template/_templates/io.py +107 -0
  979. scitex/template/_templates/module.py +53 -0
  980. scitex/template/_templates/plt.py +202 -0
  981. scitex/template/_templates/scholar.py +267 -0
  982. scitex/template/_templates/session.py +130 -0
  983. scitex/template/_templates/session_minimal.py +43 -0
  984. scitex/template/_templates/session_plot.py +67 -0
  985. scitex/template/_templates/session_stats.py +77 -0
  986. scitex/template/_templates/stats.py +323 -0
  987. scitex/template/_templates/writer.py +296 -0
  988. scitex/template/clone_writer_directory.py +5 -5
  989. scitex/template/mcp_server.py +16 -3
  990. scitex/ui/_backends/_email.py +10 -2
  991. scitex/ui/_backends/_webhook.py +5 -1
  992. scitex/ui/mcp_server.py +16 -3
  993. scitex/utils/__init__.py +19 -9
  994. scitex/web/__init__.py +25 -20
  995. scitex/web/_search_pubmed.py +10 -6
  996. scitex/writer/README.md +1 -1
  997. scitex/writer/__init__.py +43 -34
  998. scitex/writer/_mcp/handlers.py +11 -744
  999. scitex/writer/_mcp/tool_schemas.py +5 -335
  1000. scitex-2.16.0.dist-info/METADATA +712 -0
  1001. scitex-2.16.0.dist-info/RECORD +2630 -0
  1002. scitex/audio/engines/base.py +0 -275
  1003. scitex/audio/engines/elevenlabs_engine.py +0 -146
  1004. scitex/audio/engines/gtts_engine.py +0 -162
  1005. scitex/audio/engines/pyttsx3_engine.py +0 -131
  1006. scitex/canvas/editor/flask_editor/templates/_scripts.py +0 -4933
  1007. scitex/canvas/editor/flask_editor/templates/_styles.py +0 -1658
  1008. scitex/diagram/_compile.py +0 -312
  1009. scitex/diagram/_diagram.py +0 -355
  1010. scitex/diagram/_mcp/__init__.py +0 -4
  1011. scitex/diagram/_mcp/handlers.py +0 -400
  1012. scitex/diagram/_mcp/tool_schemas.py +0 -157
  1013. scitex/diagram/_presets.py +0 -173
  1014. scitex/diagram/_schema.py +0 -182
  1015. scitex/diagram/_split.py +0 -278
  1016. scitex/gen/_check_host.py +0 -34
  1017. scitex/gen/_ci.py +0 -12
  1018. scitex/gen/_inspect_module.py +0 -256
  1019. scitex/gen/_title_case.py +0 -89
  1020. scitex/plt/_mcp/__init__.py +0 -4
  1021. scitex/plt/_mcp/_handlers_annotation.py +0 -102
  1022. scitex/plt/_mcp/_handlers_figure.py +0 -195
  1023. scitex/plt/_mcp/_handlers_plot.py +0 -252
  1024. scitex/plt/_mcp/_handlers_style.py +0 -219
  1025. scitex/plt/_mcp/handlers.py +0 -74
  1026. scitex/plt/_mcp/tool_schemas.py +0 -497
  1027. scitex/plt/mcp_server.py +0 -231
  1028. scitex/scholar/examples/SUGGESTIONS.md +0 -865
  1029. scitex/scholar/examples/dev.py +0 -38
  1030. scitex/scholar/url_finder/translators/core/registry.py +0 -372
  1031. scitex/scholar/url_finder/translators/individual/CLASE.py +0 -23
  1032. scitex/scholar/url_finder/translators/individual/COBISS.py +0 -23
  1033. scitex/scholar/url_finder/translators/individual/COinS.py +0 -23
  1034. scitex/scholar/url_finder/translators/individual/CQ_Press.py +0 -23
  1035. scitex/scholar/url_finder/translators/individual/CROSBI.py +0 -23
  1036. scitex/scholar/url_finder/translators/individual/CSL_JSON.py +0 -23
  1037. scitex/scholar/url_finder/translators/individual/CSV.py +0 -23
  1038. scitex/scholar/url_finder/translators/individual/CalMatters.py +0 -23
  1039. scitex/scholar/url_finder/translators/individual/Calisphere.py +0 -23
  1040. scitex/scholar/url_finder/translators/individual/__init__.py +0 -25
  1041. scitex/scholar/url_finder/translators/individual/abc_news_australia.py +0 -23
  1042. scitex/scholar/url_finder/translators/individual/access_engineering.py +0 -23
  1043. scitex/scholar/url_finder/translators/individual/access_medicine.py +0 -255
  1044. scitex/scholar/url_finder/translators/individual/access_science.py +0 -23
  1045. scitex/scholar/url_finder/translators/individual/acls_humanities_ebook.py +0 -23
  1046. scitex/scholar/url_finder/translators/individual/aclweb.py +0 -23
  1047. scitex/scholar/url_finder/translators/individual/acm_digital_library.py +0 -355
  1048. scitex/scholar/url_finder/translators/individual/acs.py +0 -23
  1049. scitex/scholar/url_finder/translators/individual/acs_publications.py +0 -23
  1050. scitex/scholar/url_finder/translators/individual/adam_matthew_digital.py +0 -23
  1051. scitex/scholar/url_finder/translators/individual/ads_bibcode.py +0 -23
  1052. scitex/scholar/url_finder/translators/individual/aea_web.py +0 -23
  1053. scitex/scholar/url_finder/translators/individual/agencia_del_isbn.py +0 -23
  1054. scitex/scholar/url_finder/translators/individual/agris.py +0 -23
  1055. scitex/scholar/url_finder/translators/individual/ahval_news.py +0 -23
  1056. scitex/scholar/url_finder/translators/individual/aip.py +0 -23
  1057. scitex/scholar/url_finder/translators/individual/air_university_journals.py +0 -23
  1058. scitex/scholar/url_finder/translators/individual/airiti.py +0 -25
  1059. scitex/scholar/url_finder/translators/individual/alexander_street_press.py +0 -23
  1060. scitex/scholar/url_finder/translators/individual/all_africa.py +0 -23
  1061. scitex/scholar/url_finder/translators/individual/allafrica.py +0 -23
  1062. scitex/scholar/url_finder/translators/individual/alsharekh.py +0 -23
  1063. scitex/scholar/url_finder/translators/individual/alternet.py +0 -23
  1064. scitex/scholar/url_finder/translators/individual/aluka.py +0 -23
  1065. scitex/scholar/url_finder/translators/individual/amazon.py +0 -23
  1066. scitex/scholar/url_finder/translators/individual/american_archive_public_broadcasting.py +0 -23
  1067. scitex/scholar/url_finder/translators/individual/american_institute_aeronautics_astronautics.py +0 -23
  1068. scitex/scholar/url_finder/translators/individual/american_prospect.py +0 -23
  1069. scitex/scholar/url_finder/translators/individual/ams_journals.py +0 -23
  1070. scitex/scholar/url_finder/translators/individual/ams_mathscinet.py +0 -23
  1071. scitex/scholar/url_finder/translators/individual/ams_mathscinet_legacy.py +0 -23
  1072. scitex/scholar/url_finder/translators/individual/ancestry_com_us_federal_census.py +0 -23
  1073. scitex/scholar/url_finder/translators/individual/ancestry_us_federal_census.py +0 -23
  1074. scitex/scholar/url_finder/translators/individual/annual_reviews.py +0 -23
  1075. scitex/scholar/url_finder/translators/individual/antikvarium_hu.py +0 -23
  1076. scitex/scholar/url_finder/translators/individual/aosic.py +0 -25
  1077. scitex/scholar/url_finder/translators/individual/apa_psycnet.py +0 -23
  1078. scitex/scholar/url_finder/translators/individual/apn_ru.py +0 -23
  1079. scitex/scholar/url_finder/translators/individual/aps.py +0 -23
  1080. scitex/scholar/url_finder/translators/individual/aquadocs.py +0 -23
  1081. scitex/scholar/url_finder/translators/individual/archeion.py +0 -23
  1082. scitex/scholar/url_finder/translators/individual/archiv_fuer_sozialgeschichte.py +0 -23
  1083. scitex/scholar/url_finder/translators/individual/archive_ouverte_aosic.py +0 -25
  1084. scitex/scholar/url_finder/translators/individual/archive_ouverte_en_sciences_de_l_information_et_de_la_communication___aosic_.py +0 -27
  1085. scitex/scholar/url_finder/translators/individual/archives_canada.py +0 -23
  1086. scitex/scholar/url_finder/translators/individual/ariana_news.py +0 -23
  1087. scitex/scholar/url_finder/translators/individual/art_institute_of_chicago.py +0 -23
  1088. scitex/scholar/url_finder/translators/individual/artefacts_canada.py +0 -23
  1089. scitex/scholar/url_finder/translators/individual/artfl_encyclopedie.py +0 -23
  1090. scitex/scholar/url_finder/translators/individual/artnet.py +0 -23
  1091. scitex/scholar/url_finder/translators/individual/artnews.py +0 -23
  1092. scitex/scholar/url_finder/translators/individual/artstor.py +0 -23
  1093. scitex/scholar/url_finder/translators/individual/arxiv.py +0 -39
  1094. scitex/scholar/url_finder/translators/individual/arxiv_org.py +0 -122
  1095. scitex/scholar/url_finder/translators/individual/asce.py +0 -23
  1096. scitex/scholar/url_finder/translators/individual/asco_meeting_library.py +0 -23
  1097. scitex/scholar/url_finder/translators/individual/astis.py +0 -23
  1098. scitex/scholar/url_finder/translators/individual/ats_international_journal.py +0 -23
  1099. scitex/scholar/url_finder/translators/individual/atypon.py +0 -23
  1100. scitex/scholar/url_finder/translators/individual/atypon_journals.py +0 -253
  1101. scitex/scholar/url_finder/translators/individual/beck_online.py +0 -23
  1102. scitex/scholar/url_finder/translators/individual/bibliotheque_et_archives_nationale_du_quebec__pistard_.py +0 -23
  1103. scitex/scholar/url_finder/translators/individual/bibliotheque_et_archives_nationales_du_quebec.py +0 -23
  1104. scitex/scholar/url_finder/translators/individual/bibliotheque_nationale_de_france.py +0 -23
  1105. scitex/scholar/url_finder/translators/individual/biomed_central.py +0 -151
  1106. scitex/scholar/url_finder/translators/individual/bioone.py +0 -23
  1107. scitex/scholar/url_finder/translators/individual/biorxiv.py +0 -146
  1108. scitex/scholar/url_finder/translators/individual/blaetter.py +0 -23
  1109. scitex/scholar/url_finder/translators/individual/bnf_isbn.py +0 -118
  1110. scitex/scholar/url_finder/translators/individual/bookmarks.py +0 -23
  1111. scitex/scholar/url_finder/translators/individual/bookshop_org.py +0 -23
  1112. scitex/scholar/url_finder/translators/individual/boston_review.py +0 -23
  1113. scitex/scholar/url_finder/translators/individual/bosworth_toller_anglo_saxon_dictionary.py +0 -23
  1114. scitex/scholar/url_finder/translators/individual/bosworth_toller_s_anglo_saxon_dictionary_online.py +0 -23
  1115. scitex/scholar/url_finder/translators/individual/bracero_history_archive.py +0 -23
  1116. scitex/scholar/url_finder/translators/individual/brill.py +0 -25
  1117. scitex/scholar/url_finder/translators/individual/brukerhandboken.py +0 -23
  1118. scitex/scholar/url_finder/translators/individual/bryn_mawr_classical_review.py +0 -23
  1119. scitex/scholar/url_finder/translators/individual/bundesgesetzblatt.py +0 -23
  1120. scitex/scholar/url_finder/translators/individual/cabi___cab_abstracts.py +0 -23
  1121. scitex/scholar/url_finder/translators/individual/cairn.py +0 -23
  1122. scitex/scholar/url_finder/translators/individual/cairn_info.py +0 -23
  1123. scitex/scholar/url_finder/translators/individual/cambridge.py +0 -25
  1124. scitex/scholar/url_finder/translators/individual/cambridge_core.py +0 -178
  1125. scitex/scholar/url_finder/translators/individual/cambridge_engage_preprints.py +0 -23
  1126. scitex/scholar/url_finder/translators/individual/ccfr__bnf_.py +0 -23
  1127. scitex/scholar/url_finder/translators/individual/cell_press.py +0 -150
  1128. scitex/scholar/url_finder/translators/individual/cern_document_server.py +0 -23
  1129. scitex/scholar/url_finder/translators/individual/ceur_workshop_proceedings.py +0 -23
  1130. scitex/scholar/url_finder/translators/individual/cff.py +0 -23
  1131. scitex/scholar/url_finder/translators/individual/cff_references.py +0 -23
  1132. scitex/scholar/url_finder/translators/individual/champlain_society___collection.py +0 -23
  1133. scitex/scholar/url_finder/translators/individual/chronicling_america.py +0 -23
  1134. scitex/scholar/url_finder/translators/individual/cinii_research.py +0 -23
  1135. scitex/scholar/url_finder/translators/individual/citavi_5_xml.py +0 -23
  1136. scitex/scholar/url_finder/translators/individual/citeseer.py +0 -23
  1137. scitex/scholar/url_finder/translators/individual/citizen_lab.py +0 -23
  1138. scitex/scholar/url_finder/translators/individual/civilization_ca.py +0 -23
  1139. scitex/scholar/url_finder/translators/individual/clacso.py +0 -23
  1140. scitex/scholar/url_finder/translators/individual/climate_change_and_human_health_literature_portal.py +0 -23
  1141. scitex/scholar/url_finder/translators/individual/climate_change_human_health.py +0 -23
  1142. scitex/scholar/url_finder/translators/individual/clinical_key.py +0 -23
  1143. scitex/scholar/url_finder/translators/individual/clinicaltrials_gov.py +0 -23
  1144. scitex/scholar/url_finder/translators/individual/cnki.py +0 -23
  1145. scitex/scholar/url_finder/translators/individual/code4lib_journal.py +0 -23
  1146. scitex/scholar/url_finder/translators/individual/colorado_state_legislature.py +0 -23
  1147. scitex/scholar/url_finder/translators/individual/computer_history_museum_archive.py +0 -23
  1148. scitex/scholar/url_finder/translators/individual/copernicus.py +0 -23
  1149. scitex/scholar/url_finder/translators/individual/crossref_rest.py +0 -618
  1150. scitex/scholar/url_finder/translators/individual/crossref_unixref_xml.py +0 -23
  1151. scitex/scholar/url_finder/translators/individual/csiro_publishing.py +0 -23
  1152. scitex/scholar/url_finder/translators/individual/csiro_publishing_dup.py +0 -23
  1153. scitex/scholar/url_finder/translators/individual/dagens_nyheter.py +0 -25
  1154. scitex/scholar/url_finder/translators/individual/dagstuhl_research_online_publication_server.py +0 -23
  1155. scitex/scholar/url_finder/translators/individual/de_gruyter_brill.py +0 -23
  1156. scitex/scholar/url_finder/translators/individual/dejure_org.py +0 -23
  1157. scitex/scholar/url_finder/translators/individual/desiring_god.py +0 -23
  1158. scitex/scholar/url_finder/translators/individual/deutsche_fotothek.py +0 -23
  1159. scitex/scholar/url_finder/translators/individual/deutsche_nationalbibliothek.py +0 -23
  1160. scitex/scholar/url_finder/translators/individual/dhistory.py +0 -23
  1161. scitex/scholar/url_finder/translators/individual/dialnet.py +0 -23
  1162. scitex/scholar/url_finder/translators/individual/die_zeit.py +0 -23
  1163. scitex/scholar/url_finder/translators/individual/digibib_net.py +0 -25
  1164. scitex/scholar/url_finder/translators/individual/digital_humanities_quarterly.py +0 -23
  1165. scitex/scholar/url_finder/translators/individual/digital_spy.py +0 -23
  1166. scitex/scholar/url_finder/translators/individual/digizeitschriften.py +0 -25
  1167. scitex/scholar/url_finder/translators/individual/dimensions.py +0 -23
  1168. scitex/scholar/url_finder/translators/individual/dlibra.py +0 -23
  1169. scitex/scholar/url_finder/translators/individual/doaj.py +0 -23
  1170. scitex/scholar/url_finder/translators/individual/doi.py +0 -23
  1171. scitex/scholar/url_finder/translators/individual/doi_content_negotiation.py +0 -23
  1172. scitex/scholar/url_finder/translators/individual/douban.py +0 -23
  1173. scitex/scholar/url_finder/translators/individual/dreier_neuerscheinungsdienst.py +0 -23
  1174. scitex/scholar/url_finder/translators/individual/drugbank_ca.py +0 -23
  1175. scitex/scholar/url_finder/translators/individual/dryad.py +0 -23
  1176. scitex/scholar/url_finder/translators/individual/dryad_digital_repository.py +0 -23
  1177. scitex/scholar/url_finder/translators/individual/dspace_intermediate_metadata.py +0 -23
  1178. scitex/scholar/url_finder/translators/individual/duke_university_press_books.py +0 -23
  1179. scitex/scholar/url_finder/translators/individual/e_periodica_switzerland.py +0 -23
  1180. scitex/scholar/url_finder/translators/individual/eastview.py +0 -23
  1181. scitex/scholar/url_finder/translators/individual/ebrary.py +0 -25
  1182. scitex/scholar/url_finder/translators/individual/ebsco_discovery_layer.py +0 -23
  1183. scitex/scholar/url_finder/translators/individual/ebscohost.py +0 -25
  1184. scitex/scholar/url_finder/translators/individual/edinburgh_university_press_journals.py +0 -23
  1185. scitex/scholar/url_finder/translators/individual/education_week.py +0 -23
  1186. scitex/scholar/url_finder/translators/individual/eidr.py +0 -23
  1187. scitex/scholar/url_finder/translators/individual/el_comercio__peru_.py +0 -23
  1188. scitex/scholar/url_finder/translators/individual/el_pais.py +0 -23
  1189. scitex/scholar/url_finder/translators/individual/electronic_colloquium_on_computational_complexity.py +0 -25
  1190. scitex/scholar/url_finder/translators/individual/elibrary_ru.py +0 -23
  1191. scitex/scholar/url_finder/translators/individual/elicit.py +0 -23
  1192. scitex/scholar/url_finder/translators/individual/elife.py +0 -25
  1193. scitex/scholar/url_finder/translators/individual/elsevier_health.py +0 -23
  1194. scitex/scholar/url_finder/translators/individual/elsevier_health_journals.py +0 -25
  1195. scitex/scholar/url_finder/translators/individual/elsevier_pure.py +0 -23
  1196. scitex/scholar/url_finder/translators/individual/embedded_metadata.py +0 -23
  1197. scitex/scholar/url_finder/translators/individual/emedicine.py +0 -23
  1198. scitex/scholar/url_finder/translators/individual/emerald.py +0 -25
  1199. scitex/scholar/url_finder/translators/individual/emerald_insight.py +0 -25
  1200. scitex/scholar/url_finder/translators/individual/emja.py +0 -23
  1201. scitex/scholar/url_finder/translators/individual/encyclopedia_of_chicago.py +0 -23
  1202. scitex/scholar/url_finder/translators/individual/encyclopedia_of_korean_culture.py +0 -23
  1203. scitex/scholar/url_finder/translators/individual/endnote_xml.py +0 -23
  1204. scitex/scholar/url_finder/translators/individual/engineering_village.py +0 -23
  1205. scitex/scholar/url_finder/translators/individual/envidat.py +0 -23
  1206. scitex/scholar/url_finder/translators/individual/epa_national_library_catalog.py +0 -23
  1207. scitex/scholar/url_finder/translators/individual/epicurious.py +0 -25
  1208. scitex/scholar/url_finder/translators/individual/eprint_iacr.py +0 -23
  1209. scitex/scholar/url_finder/translators/individual/eric.py +0 -23
  1210. scitex/scholar/url_finder/translators/individual/erudit.py +0 -23
  1211. scitex/scholar/url_finder/translators/individual/espacenet.py +0 -23
  1212. scitex/scholar/url_finder/translators/individual/etatar_ru.py +0 -23
  1213. scitex/scholar/url_finder/translators/individual/euclid.py +0 -23
  1214. scitex/scholar/url_finder/translators/individual/eur_lex.py +0 -23
  1215. scitex/scholar/url_finder/translators/individual/eurasianet.py +0 -23
  1216. scitex/scholar/url_finder/translators/individual/eurogamerusgamer.py +0 -25
  1217. scitex/scholar/url_finder/translators/individual/europe_pmc.py +0 -23
  1218. scitex/scholar/url_finder/translators/individual/evernote.py +0 -23
  1219. scitex/scholar/url_finder/translators/individual/f1000_research.py +0 -23
  1220. scitex/scholar/url_finder/translators/individual/fachportal_padagogik.py +0 -25
  1221. scitex/scholar/url_finder/translators/individual/factiva.py +0 -23
  1222. scitex/scholar/url_finder/translators/individual/failed_architecture.py +0 -23
  1223. scitex/scholar/url_finder/translators/individual/fairfax_australia.py +0 -23
  1224. scitex/scholar/url_finder/translators/individual/fao_publications.py +0 -23
  1225. scitex/scholar/url_finder/translators/individual/fatcat.py +0 -23
  1226. scitex/scholar/url_finder/translators/individual/faz_net.py +0 -23
  1227. scitex/scholar/url_finder/translators/individual/feb_web_ru.py +0 -23
  1228. scitex/scholar/url_finder/translators/individual/figshare.py +0 -23
  1229. scitex/scholar/url_finder/translators/individual/financial_times.py +0 -23
  1230. scitex/scholar/url_finder/translators/individual/finna.py +0 -23
  1231. scitex/scholar/url_finder/translators/individual/fishpond_co_nz.py +0 -23
  1232. scitex/scholar/url_finder/translators/individual/flickr.py +0 -23
  1233. scitex/scholar/url_finder/translators/individual/foreign_affairs.py +0 -23
  1234. scitex/scholar/url_finder/translators/individual/foreign_policy.py +0 -23
  1235. scitex/scholar/url_finder/translators/individual/fr_online_de.py +0 -23
  1236. scitex/scholar/url_finder/translators/individual/freecite.py +0 -23
  1237. scitex/scholar/url_finder/translators/individual/freepatentsonline.py +0 -23
  1238. scitex/scholar/url_finder/translators/individual/frieze.py +0 -23
  1239. scitex/scholar/url_finder/translators/individual/frontiers.py +0 -84
  1240. scitex/scholar/url_finder/translators/individual/gale_databases.py +0 -25
  1241. scitex/scholar/url_finder/translators/individual/galegdc.py +0 -23
  1242. scitex/scholar/url_finder/translators/individual/galegroup.py +0 -23
  1243. scitex/scholar/url_finder/translators/individual/gallica.py +0 -23
  1244. scitex/scholar/url_finder/translators/individual/game_studies.py +0 -23
  1245. scitex/scholar/url_finder/translators/individual/gamespot.py +0 -23
  1246. scitex/scholar/url_finder/translators/individual/gamestar_gamepro.py +0 -23
  1247. scitex/scholar/url_finder/translators/individual/gasyrlar_awazy.py +0 -23
  1248. scitex/scholar/url_finder/translators/individual/gemeinsamer_bibliotheksverbund_isbn.py +0 -23
  1249. scitex/scholar/url_finder/translators/individual/gene_ontology.py +0 -23
  1250. scitex/scholar/url_finder/translators/individual/github.py +0 -23
  1251. scitex/scholar/url_finder/translators/individual/globes.py +0 -23
  1252. scitex/scholar/url_finder/translators/individual/gmail.py +0 -23
  1253. scitex/scholar/url_finder/translators/individual/goodreads.py +0 -23
  1254. scitex/scholar/url_finder/translators/individual/google_books.py +0 -23
  1255. scitex/scholar/url_finder/translators/individual/google_patents.py +0 -23
  1256. scitex/scholar/url_finder/translators/individual/google_play.py +0 -23
  1257. scitex/scholar/url_finder/translators/individual/google_presentation.py +0 -23
  1258. scitex/scholar/url_finder/translators/individual/google_research.py +0 -23
  1259. scitex/scholar/url_finder/translators/individual/google_scholar.py +0 -23
  1260. scitex/scholar/url_finder/translators/individual/govinfo.py +0 -23
  1261. scitex/scholar/url_finder/translators/individual/gpo_access_e_cfr.py +0 -23
  1262. scitex/scholar/url_finder/translators/individual/gulag_many_days__many_lives.py +0 -23
  1263. scitex/scholar/url_finder/translators/individual/haaretz.py +0 -23
  1264. scitex/scholar/url_finder/translators/individual/habr.py +0 -23
  1265. scitex/scholar/url_finder/translators/individual/hal.py +0 -23
  1266. scitex/scholar/url_finder/translators/individual/hal_archives_ouvertes.py +0 -23
  1267. scitex/scholar/url_finder/translators/individual/handelszeitung.py +0 -23
  1268. scitex/scholar/url_finder/translators/individual/hanrei_watch.py +0 -23
  1269. scitex/scholar/url_finder/translators/individual/harper_s_magazine.py +0 -23
  1270. scitex/scholar/url_finder/translators/individual/harvard_business_review.py +0 -23
  1271. scitex/scholar/url_finder/translators/individual/harvard_caselaw_access_project.py +0 -23
  1272. scitex/scholar/url_finder/translators/individual/harvard_university_press_books.py +0 -23
  1273. scitex/scholar/url_finder/translators/individual/hathitrust.py +0 -23
  1274. scitex/scholar/url_finder/translators/individual/hcsp.py +0 -23
  1275. scitex/scholar/url_finder/translators/individual/heinonline.py +0 -23
  1276. scitex/scholar/url_finder/translators/individual/heise.py +0 -23
  1277. scitex/scholar/url_finder/translators/individual/herder.py +0 -23
  1278. scitex/scholar/url_finder/translators/individual/highbeam.py +0 -23
  1279. scitex/scholar/url_finder/translators/individual/highwire.py +0 -23
  1280. scitex/scholar/url_finder/translators/individual/highwire2.py +0 -23
  1281. scitex/scholar/url_finder/translators/individual/highwire_2_0.py +0 -23
  1282. scitex/scholar/url_finder/translators/individual/hindawi.py +0 -23
  1283. scitex/scholar/url_finder/translators/individual/hindawi_publishers.py +0 -23
  1284. scitex/scholar/url_finder/translators/individual/hispanic_american_periodical_index.py +0 -23
  1285. scitex/scholar/url_finder/translators/individual/homeland_security_digital_library.py +0 -23
  1286. scitex/scholar/url_finder/translators/individual/hudoc.py +0 -23
  1287. scitex/scholar/url_finder/translators/individual/huff_post.py +0 -23
  1288. scitex/scholar/url_finder/translators/individual/human_rights_watch.py +0 -23
  1289. scitex/scholar/url_finder/translators/individual/ibisworld.py +0 -23
  1290. scitex/scholar/url_finder/translators/individual/idea_alm.py +0 -23
  1291. scitex/scholar/url_finder/translators/individual/idref.py +0 -23
  1292. scitex/scholar/url_finder/translators/individual/ieee_xplore.py +0 -265
  1293. scitex/scholar/url_finder/translators/individual/ietf.py +0 -23
  1294. scitex/scholar/url_finder/translators/individual/ign.py +0 -23
  1295. scitex/scholar/url_finder/translators/individual/imdb.py +0 -23
  1296. scitex/scholar/url_finder/translators/individual/imf.py +0 -23
  1297. scitex/scholar/url_finder/translators/individual/in_these_times.py +0 -23
  1298. scitex/scholar/url_finder/translators/individual/informationssystem_medienpaedagogik.py +0 -23
  1299. scitex/scholar/url_finder/translators/individual/informit_database.py +0 -23
  1300. scitex/scholar/url_finder/translators/individual/infotrac.py +0 -23
  1301. scitex/scholar/url_finder/translators/individual/ingenta_connect.py +0 -23
  1302. scitex/scholar/url_finder/translators/individual/ingentaconnect.py +0 -23
  1303. scitex/scholar/url_finder/translators/individual/inside_higher_ed.py +0 -23
  1304. scitex/scholar/url_finder/translators/individual/insignia_opac.py +0 -23
  1305. scitex/scholar/url_finder/translators/individual/inspire.py +0 -23
  1306. scitex/scholar/url_finder/translators/individual/institute_of_contemporary_art.py +0 -23
  1307. scitex/scholar/url_finder/translators/individual/institute_of_physics.py +0 -23
  1308. scitex/scholar/url_finder/translators/individual/integrum.py +0 -23
  1309. scitex/scholar/url_finder/translators/individual/intellixir.py +0 -23
  1310. scitex/scholar/url_finder/translators/individual/international_nuclear_information_system.py +0 -23
  1311. scitex/scholar/url_finder/translators/individual/internet_archive.py +0 -23
  1312. scitex/scholar/url_finder/translators/individual/internet_archive_scholar.py +0 -23
  1313. scitex/scholar/url_finder/translators/individual/internet_archive_wayback.py +0 -23
  1314. scitex/scholar/url_finder/translators/individual/internet_archive_wayback_machine.py +0 -23
  1315. scitex/scholar/url_finder/translators/individual/invenio_rdm.py +0 -23
  1316. scitex/scholar/url_finder/translators/individual/inveniordm.py +0 -23
  1317. scitex/scholar/url_finder/translators/individual/io_port.py +0 -23
  1318. scitex/scholar/url_finder/translators/individual/iop.py +0 -23
  1319. scitex/scholar/url_finder/translators/individual/ipcc.py +0 -23
  1320. scitex/scholar/url_finder/translators/individual/isidore.py +0 -23
  1321. scitex/scholar/url_finder/translators/individual/istc.py +0 -23
  1322. scitex/scholar/url_finder/translators/individual/j_stage.py +0 -23
  1323. scitex/scholar/url_finder/translators/individual/jahrbuch.py +0 -23
  1324. scitex/scholar/url_finder/translators/individual/japan_times_online.py +0 -23
  1325. scitex/scholar/url_finder/translators/individual/jets.py +0 -23
  1326. scitex/scholar/url_finder/translators/individual/jisc_historical_texts.py +0 -25
  1327. scitex/scholar/url_finder/translators/individual/journal_of_electronic_publishing.py +0 -23
  1328. scitex/scholar/url_finder/translators/individual/journal_of_extension.py +0 -23
  1329. scitex/scholar/url_finder/translators/individual/journal_of_machine_learning_research.py +0 -23
  1330. scitex/scholar/url_finder/translators/individual/journal_of_religion_and_society.py +0 -23
  1331. scitex/scholar/url_finder/translators/individual/jrc_publications_repository.py +0 -23
  1332. scitex/scholar/url_finder/translators/individual/jstage.py +0 -23
  1333. scitex/scholar/url_finder/translators/individual/jstor.py +0 -211
  1334. scitex/scholar/url_finder/translators/individual/juricaf.py +0 -23
  1335. scitex/scholar/url_finder/translators/individual/jurion.py +0 -23
  1336. scitex/scholar/url_finder/translators/individual/juris.py +0 -23
  1337. scitex/scholar/url_finder/translators/individual/jurpc.py +0 -23
  1338. scitex/scholar/url_finder/translators/individual/k10plus_isbn.py +0 -23
  1339. scitex/scholar/url_finder/translators/individual/kanopy.py +0 -23
  1340. scitex/scholar/url_finder/translators/individual/karger.py +0 -23
  1341. scitex/scholar/url_finder/translators/individual/khaama_press.py +0 -23
  1342. scitex/scholar/url_finder/translators/individual/kitapyurdu_com.py +0 -23
  1343. scitex/scholar/url_finder/translators/individual/kommersant.py +0 -23
  1344. scitex/scholar/url_finder/translators/individual/korean_national_library.py +0 -25
  1345. scitex/scholar/url_finder/translators/individual/kstudy.py +0 -23
  1346. scitex/scholar/url_finder/translators/individual/l_annee_philologique.py +0 -23
  1347. scitex/scholar/url_finder/translators/individual/la_croix.py +0 -23
  1348. scitex/scholar/url_finder/translators/individual/la_nacion__argentina_.py +0 -23
  1349. scitex/scholar/url_finder/translators/individual/la_presse.py +0 -23
  1350. scitex/scholar/url_finder/translators/individual/la_republica__peru_.py +0 -23
  1351. scitex/scholar/url_finder/translators/individual/la_times.py +0 -25
  1352. scitex/scholar/url_finder/translators/individual/lagen_nu.py +0 -23
  1353. scitex/scholar/url_finder/translators/individual/landesbibliographie_baden_wurttemberg.py +0 -25
  1354. scitex/scholar/url_finder/translators/individual/lapham_s_quarterly.py +0 -23
  1355. scitex/scholar/url_finder/translators/individual/le_devoir.py +0 -23
  1356. scitex/scholar/url_finder/translators/individual/le_figaro.py +0 -23
  1357. scitex/scholar/url_finder/translators/individual/le_maitron.py +0 -23
  1358. scitex/scholar/url_finder/translators/individual/le_monde.py +0 -23
  1359. scitex/scholar/url_finder/translators/individual/le_monde_diplomatique.py +0 -23
  1360. scitex/scholar/url_finder/translators/individual/legifrance.py +0 -23
  1361. scitex/scholar/url_finder/translators/individual/legislative_insight.py +0 -25
  1362. scitex/scholar/url_finder/translators/individual/lexis_.py +0 -23
  1363. scitex/scholar/url_finder/translators/individual/lexisnexis.py +0 -23
  1364. scitex/scholar/url_finder/translators/individual/libraries_tasmania.py +0 -25
  1365. scitex/scholar/url_finder/translators/individual/library_catalog__aleph_.py +0 -23
  1366. scitex/scholar/url_finder/translators/individual/library_catalog__amicus_.py +0 -23
  1367. scitex/scholar/url_finder/translators/individual/library_catalog__aquabrowser_.py +0 -23
  1368. scitex/scholar/url_finder/translators/individual/library_catalog__bibliocommons_.py +0 -23
  1369. scitex/scholar/url_finder/translators/individual/library_catalog__blacklight_.py +0 -23
  1370. scitex/scholar/url_finder/translators/individual/library_catalog__capita_prism_.py +0 -23
  1371. scitex/scholar/url_finder/translators/individual/library_catalog__dra_.py +0 -23
  1372. scitex/scholar/url_finder/translators/individual/library_catalog__dynix_.py +0 -23
  1373. scitex/scholar/url_finder/translators/individual/library_catalog__encore_.py +0 -23
  1374. scitex/scholar/url_finder/translators/individual/library_catalog__innopac_.py +0 -23
  1375. scitex/scholar/url_finder/translators/individual/library_catalog__koha_.py +0 -25
  1376. scitex/scholar/url_finder/translators/individual/library_catalog__mango_.py +0 -23
  1377. scitex/scholar/url_finder/translators/individual/library_catalog__opals_.py +0 -23
  1378. scitex/scholar/url_finder/translators/individual/library_catalog__pica2_.py +0 -23
  1379. scitex/scholar/url_finder/translators/individual/library_catalog__pica_.py +0 -23
  1380. scitex/scholar/url_finder/translators/individual/library_catalog__pika_.py +0 -23
  1381. scitex/scholar/url_finder/translators/individual/library_catalog__polaris_.py +0 -23
  1382. scitex/scholar/url_finder/translators/individual/library_catalog__quolto_.py +0 -23
  1383. scitex/scholar/url_finder/translators/individual/library_catalog__rero_ils_.py +0 -23
  1384. scitex/scholar/url_finder/translators/individual/library_catalog__sirsi_.py +0 -23
  1385. scitex/scholar/url_finder/translators/individual/library_catalog__sirsi_elibrary_.py +0 -23
  1386. scitex/scholar/url_finder/translators/individual/library_catalog__slims_.py +0 -23
  1387. scitex/scholar/url_finder/translators/individual/library_catalog__tind_ils_.py +0 -23
  1388. scitex/scholar/url_finder/translators/individual/library_catalog__tinread_.py +0 -23
  1389. scitex/scholar/url_finder/translators/individual/library_catalog__tlcyouseemore_.py +0 -23
  1390. scitex/scholar/url_finder/translators/individual/library_catalog__visual_library_2021_.py +0 -23
  1391. scitex/scholar/url_finder/translators/individual/library_catalog__voyager_.py +0 -23
  1392. scitex/scholar/url_finder/translators/individual/library_catalog__voyager_7_.py +0 -23
  1393. scitex/scholar/url_finder/translators/individual/library_catalog__vtls_.py +0 -23
  1394. scitex/scholar/url_finder/translators/individual/library_genesis.py +0 -23
  1395. scitex/scholar/url_finder/translators/individual/library_hub_discover.py +0 -23
  1396. scitex/scholar/url_finder/translators/individual/library_of_congress_digital_collections.py +0 -23
  1397. scitex/scholar/url_finder/translators/individual/library_of_congress_isbn.py +0 -23
  1398. scitex/scholar/url_finder/translators/individual/libris_isbn.py +0 -23
  1399. scitex/scholar/url_finder/translators/individual/lippincott_williams_and_wilkins.py +0 -23
  1400. scitex/scholar/url_finder/translators/individual/literary_hub.py +0 -23
  1401. scitex/scholar/url_finder/translators/individual/litres.py +0 -23
  1402. scitex/scholar/url_finder/translators/individual/livejournal.py +0 -23
  1403. scitex/scholar/url_finder/translators/individual/livivo.py +0 -23
  1404. scitex/scholar/url_finder/translators/individual/london_review_of_books.py +0 -23
  1405. scitex/scholar/url_finder/translators/individual/lookus.py +0 -23
  1406. scitex/scholar/url_finder/translators/individual/lulu.py +0 -23
  1407. scitex/scholar/url_finder/translators/individual/lwn_net.py +0 -23
  1408. scitex/scholar/url_finder/translators/individual/lww.py +0 -23
  1409. scitex/scholar/url_finder/translators/individual/mab2.py +0 -23
  1410. scitex/scholar/url_finder/translators/individual/magazines_russ_ru.py +0 -23
  1411. scitex/scholar/url_finder/translators/individual/mailman.py +0 -23
  1412. scitex/scholar/url_finder/translators/individual/mainichi_daily_news.py +0 -23
  1413. scitex/scholar/url_finder/translators/individual/marc.py +0 -23
  1414. scitex/scholar/url_finder/translators/individual/marcxml.py +0 -23
  1415. scitex/scholar/url_finder/translators/individual/mastodon.py +0 -23
  1416. scitex/scholar/url_finder/translators/individual/matbugat_ru.py +0 -23
  1417. scitex/scholar/url_finder/translators/individual/max_planck_institute_for_the_history_of_science_virtual_laboratory_library.py +0 -25
  1418. scitex/scholar/url_finder/translators/individual/mcv.py +0 -23
  1419. scitex/scholar/url_finder/translators/individual/mdpi.py +0 -76
  1420. scitex/scholar/url_finder/translators/individual/mdpi_journals.py +0 -23
  1421. scitex/scholar/url_finder/translators/individual/medes.py +0 -23
  1422. scitex/scholar/url_finder/translators/individual/medium.py +0 -23
  1423. scitex/scholar/url_finder/translators/individual/medline_nbib.py +0 -23
  1424. scitex/scholar/url_finder/translators/individual/medlinenbib.py +0 -23
  1425. scitex/scholar/url_finder/translators/individual/medra.py +0 -23
  1426. scitex/scholar/url_finder/translators/individual/metalib.py +0 -23
  1427. scitex/scholar/url_finder/translators/individual/mets.py +0 -23
  1428. scitex/scholar/url_finder/translators/individual/microbiology_society_journals.py +0 -25
  1429. scitex/scholar/url_finder/translators/individual/microsoft_academic.py +0 -23
  1430. scitex/scholar/url_finder/translators/individual/midas_journals.py +0 -25
  1431. scitex/scholar/url_finder/translators/individual/mikromarc.py +0 -23
  1432. scitex/scholar/url_finder/translators/individual/milli_kutuphane.py +0 -23
  1433. scitex/scholar/url_finder/translators/individual/mit_press_books.py +0 -23
  1434. scitex/scholar/url_finder/translators/individual/mods.py +0 -23
  1435. scitex/scholar/url_finder/translators/individual/mpg_pure.py +0 -23
  1436. scitex/scholar/url_finder/translators/individual/musee_du_louvre.py +0 -23
  1437. scitex/scholar/url_finder/translators/individual/nagoya_university_opac.py +0 -25
  1438. scitex/scholar/url_finder/translators/individual/nasa_ads.py +0 -23
  1439. scitex/scholar/url_finder/translators/individual/nasa_ntrs.py +0 -23
  1440. scitex/scholar/url_finder/translators/individual/national_academies_press.py +0 -23
  1441. scitex/scholar/url_finder/translators/individual/national_agriculture_library.py +0 -23
  1442. scitex/scholar/url_finder/translators/individual/national_archives_of_australia.py +0 -23
  1443. scitex/scholar/url_finder/translators/individual/national_archives_of_south_africa.py +0 -23
  1444. scitex/scholar/url_finder/translators/individual/national_bureau_of_economic_research.py +0 -23
  1445. scitex/scholar/url_finder/translators/individual/national_diet_library_catalogue.py +0 -23
  1446. scitex/scholar/url_finder/translators/individual/national_gallery_of_art___usa.py +0 -23
  1447. scitex/scholar/url_finder/translators/individual/national_gallery_of_australia.py +0 -23
  1448. scitex/scholar/url_finder/translators/individual/national_library_of_australia__new_catalog_.py +0 -23
  1449. scitex/scholar/url_finder/translators/individual/national_library_of_belarus.py +0 -23
  1450. scitex/scholar/url_finder/translators/individual/national_library_of_norway.py +0 -23
  1451. scitex/scholar/url_finder/translators/individual/national_library_of_poland_isbn.py +0 -23
  1452. scitex/scholar/url_finder/translators/individual/national_post.py +0 -23
  1453. scitex/scholar/url_finder/translators/individual/national_technical_reports_library.py +0 -23
  1454. scitex/scholar/url_finder/translators/individual/national_transportation_library_rosa_p.py +0 -23
  1455. scitex/scholar/url_finder/translators/individual/nature.py +0 -23
  1456. scitex/scholar/url_finder/translators/individual/nature_publishing_group.py +0 -193
  1457. scitex/scholar/url_finder/translators/individual/nber.py +0 -23
  1458. scitex/scholar/url_finder/translators/individual/ncbi_nucleotide.py +0 -23
  1459. scitex/scholar/url_finder/translators/individual/neural_information_processing_systems.py +0 -23
  1460. scitex/scholar/url_finder/translators/individual/new_left_review.py +0 -23
  1461. scitex/scholar/url_finder/translators/individual/new_zealand_herald.py +0 -23
  1462. scitex/scholar/url_finder/translators/individual/newlines_magazine.py +0 -23
  1463. scitex/scholar/url_finder/translators/individual/news_corp_australia.py +0 -23
  1464. scitex/scholar/url_finder/translators/individual/newsbank.py +0 -23
  1465. scitex/scholar/url_finder/translators/individual/newshub_co_nz.py +0 -23
  1466. scitex/scholar/url_finder/translators/individual/newsnettamedia.py +0 -23
  1467. scitex/scholar/url_finder/translators/individual/newspapers_com.py +0 -23
  1468. scitex/scholar/url_finder/translators/individual/noor_digital_library.py +0 -23
  1469. scitex/scholar/url_finder/translators/individual/note_html.py +0 -23
  1470. scitex/scholar/url_finder/translators/individual/note_markdown.py +0 -23
  1471. scitex/scholar/url_finder/translators/individual/notre_dame_philosophical_reviews.py +0 -23
  1472. scitex/scholar/url_finder/translators/individual/npr.py +0 -23
  1473. scitex/scholar/url_finder/translators/individual/nrc_nl.py +0 -23
  1474. scitex/scholar/url_finder/translators/individual/nrc_research_press.py +0 -23
  1475. scitex/scholar/url_finder/translators/individual/ntsb_accident_reports.py +0 -25
  1476. scitex/scholar/url_finder/translators/individual/nypl_menus.py +0 -23
  1477. scitex/scholar/url_finder/translators/individual/nypl_research_catalog.py +0 -23
  1478. scitex/scholar/url_finder/translators/individual/nytimes_com.py +0 -23
  1479. scitex/scholar/url_finder/translators/individual/nzz_ch.py +0 -23
  1480. scitex/scholar/url_finder/translators/individual/oapen.py +0 -23
  1481. scitex/scholar/url_finder/translators/individual/oclc_worldcat_firstsearch.py +0 -23
  1482. scitex/scholar/url_finder/translators/individual/oecd.py +0 -23
  1483. scitex/scholar/url_finder/translators/individual/oecd_ilibrary.py +0 -23
  1484. scitex/scholar/url_finder/translators/individual/ohiolink.py +0 -23
  1485. scitex/scholar/url_finder/translators/individual/open_conf.py +0 -23
  1486. scitex/scholar/url_finder/translators/individual/open_knowledge_repository.py +0 -23
  1487. scitex/scholar/url_finder/translators/individual/open_worldcat.py +0 -23
  1488. scitex/scholar/url_finder/translators/individual/openalex.py +0 -23
  1489. scitex/scholar/url_finder/translators/individual/openalex_json.py +0 -23
  1490. scitex/scholar/url_finder/translators/individual/openedition_books.py +0 -23
  1491. scitex/scholar/url_finder/translators/individual/openjur.py +0 -23
  1492. scitex/scholar/url_finder/translators/individual/optical_society_of_america.py +0 -23
  1493. scitex/scholar/url_finder/translators/individual/optimization_online.py +0 -23
  1494. scitex/scholar/url_finder/translators/individual/osa.py +0 -23
  1495. scitex/scholar/url_finder/translators/individual/osf_preprints.py +0 -23
  1496. scitex/scholar/url_finder/translators/individual/osti_energy_citations.py +0 -23
  1497. scitex/scholar/url_finder/translators/individual/ovid.py +0 -23
  1498. scitex/scholar/url_finder/translators/individual/ovid_tagged.py +0 -23
  1499. scitex/scholar/url_finder/translators/individual/oxford.py +0 -148
  1500. scitex/scholar/url_finder/translators/individual/oxford_dictionaries_premium.py +0 -25
  1501. scitex/scholar/url_finder/translators/individual/oxford_english_dictionary.py +0 -23
  1502. scitex/scholar/url_finder/translators/individual/oxford_music_and_art_online.py +0 -23
  1503. scitex/scholar/url_finder/translators/individual/oxford_reference.py +0 -23
  1504. scitex/scholar/url_finder/translators/individual/oxford_university_press.py +0 -23
  1505. scitex/scholar/url_finder/translators/individual/ozon_ru.py +0 -25
  1506. scitex/scholar/url_finder/translators/individual/pajhwok_afghan_news.py +0 -23
  1507. scitex/scholar/url_finder/translators/individual/papers_past.py +0 -23
  1508. scitex/scholar/url_finder/translators/individual/paris_review.py +0 -23
  1509. scitex/scholar/url_finder/translators/individual/pastebin.py +0 -23
  1510. scitex/scholar/url_finder/translators/individual/patents___uspto.py +0 -23
  1511. scitex/scholar/url_finder/translators/individual/pc_gamer.py +0 -23
  1512. scitex/scholar/url_finder/translators/individual/pc_games.py +0 -23
  1513. scitex/scholar/url_finder/translators/individual/peeters.py +0 -23
  1514. scitex/scholar/url_finder/translators/individual/pei_archival_information_network.py +0 -23
  1515. scitex/scholar/url_finder/translators/individual/pep_web.py +0 -23
  1516. scitex/scholar/url_finder/translators/individual/perceiving_systems.py +0 -23
  1517. scitex/scholar/url_finder/translators/individual/perlego.py +0 -23
  1518. scitex/scholar/url_finder/translators/individual/philosopher_s_imprint.py +0 -23
  1519. scitex/scholar/url_finder/translators/individual/philpapers.py +0 -23
  1520. scitex/scholar/url_finder/translators/individual/pkp_catalog_systems.py +0 -23
  1521. scitex/scholar/url_finder/translators/individual/pleade.py +0 -23
  1522. scitex/scholar/url_finder/translators/individual/plos.py +0 -111
  1523. scitex/scholar/url_finder/translators/individual/plos_journals.py +0 -23
  1524. scitex/scholar/url_finder/translators/individual/pnas.py +0 -23
  1525. scitex/scholar/url_finder/translators/individual/polygon.py +0 -25
  1526. scitex/scholar/url_finder/translators/individual/potsdamer_neueste_nachrichten.py +0 -23
  1527. scitex/scholar/url_finder/translators/individual/prc_history_review.py +0 -23
  1528. scitex/scholar/url_finder/translators/individual/preprints_org.py +0 -23
  1529. scitex/scholar/url_finder/translators/individual/primo.py +0 -25
  1530. scitex/scholar/url_finder/translators/individual/primo_2018.py +0 -23
  1531. scitex/scholar/url_finder/translators/individual/primo_normalized_xml.py +0 -23
  1532. scitex/scholar/url_finder/translators/individual/probing_the_past.py +0 -23
  1533. scitex/scholar/url_finder/translators/individual/project_gutenberg.py +0 -23
  1534. scitex/scholar/url_finder/translators/individual/project_muse.py +0 -25
  1535. scitex/scholar/url_finder/translators/individual/promed.py +0 -23
  1536. scitex/scholar/url_finder/translators/individual/proquest.py +0 -23
  1537. scitex/scholar/url_finder/translators/individual/proquest_ebook_central.py +0 -23
  1538. scitex/scholar/url_finder/translators/individual/proquest_policyfile.py +0 -23
  1539. scitex/scholar/url_finder/translators/individual/protein_data_bank.py +0 -23
  1540. scitex/scholar/url_finder/translators/individual/pubfactory_journals.py +0 -25
  1541. scitex/scholar/url_finder/translators/individual/public_record_office_victoria.py +0 -23
  1542. scitex/scholar/url_finder/translators/individual/publications_du_quebec.py +0 -23
  1543. scitex/scholar/url_finder/translators/individual/publications_office_of_the_european_union.py +0 -23
  1544. scitex/scholar/url_finder/translators/individual/pubmed.py +0 -330
  1545. scitex/scholar/url_finder/translators/individual/pubmed_central.py +0 -71
  1546. scitex/scholar/url_finder/translators/individual/pubmed_xml.py +0 -23
  1547. scitex/scholar/url_finder/translators/individual/pubpub.py +0 -23
  1548. scitex/scholar/url_finder/translators/individual/pypi.py +0 -23
  1549. scitex/scholar/url_finder/translators/individual/qatar_digital_library.py +0 -23
  1550. scitex/scholar/url_finder/translators/individual/queensland_state_archives.py +0 -23
  1551. scitex/scholar/url_finder/translators/individual/r_packages.py +0 -23
  1552. scitex/scholar/url_finder/translators/individual/radio_free_europe__radio_liberty.py +0 -23
  1553. scitex/scholar/url_finder/translators/individual/rand.py +0 -23
  1554. scitex/scholar/url_finder/translators/individual/rdf.py +0 -23
  1555. scitex/scholar/url_finder/translators/individual/rechtspraak_nl.py +0 -25
  1556. scitex/scholar/url_finder/translators/individual/redalyc.py +0 -23
  1557. scitex/scholar/url_finder/translators/individual/reddit.py +0 -23
  1558. scitex/scholar/url_finder/translators/individual/referbibix.py +0 -23
  1559. scitex/scholar/url_finder/translators/individual/refworks_tagged.py +0 -23
  1560. scitex/scholar/url_finder/translators/individual/regeringskansliet.py +0 -23
  1561. scitex/scholar/url_finder/translators/individual/repec___econpapers.py +0 -23
  1562. scitex/scholar/url_finder/translators/individual/repec___ideas.py +0 -23
  1563. scitex/scholar/url_finder/translators/individual/repec_ideas.py +0 -23
  1564. scitex/scholar/url_finder/translators/individual/research_square.py +0 -23
  1565. scitex/scholar/url_finder/translators/individual/researchgate.py +0 -23
  1566. scitex/scholar/url_finder/translators/individual/retsinformation.py +0 -23
  1567. scitex/scholar/url_finder/translators/individual/reuters.py +0 -23
  1568. scitex/scholar/url_finder/translators/individual/ris.py +0 -23
  1569. scitex/scholar/url_finder/translators/individual/rock__paper__shotgun.py +0 -23
  1570. scitex/scholar/url_finder/translators/individual/roll_call.py +0 -23
  1571. scitex/scholar/url_finder/translators/individual/rsc.py +0 -23
  1572. scitex/scholar/url_finder/translators/individual/rsc_publishing.py +0 -23
  1573. scitex/scholar/url_finder/translators/individual/russian_state_library.py +0 -23
  1574. scitex/scholar/url_finder/translators/individual/sacramento_bee.py +0 -23
  1575. scitex/scholar/url_finder/translators/individual/sae_papers.py +0 -23
  1576. scitex/scholar/url_finder/translators/individual/safari_books_online.py +0 -23
  1577. scitex/scholar/url_finder/translators/individual/sage.py +0 -23
  1578. scitex/scholar/url_finder/translators/individual/sage_journals.py +0 -183
  1579. scitex/scholar/url_finder/translators/individual/sage_knowledge.py +0 -23
  1580. scitex/scholar/url_finder/translators/individual/saildart.py +0 -23
  1581. scitex/scholar/url_finder/translators/individual/salt_research_archives.py +0 -23
  1582. scitex/scholar/url_finder/translators/individual/sbn_it.py +0 -23
  1583. scitex/scholar/url_finder/translators/individual/scholars_portal_journals.py +0 -23
  1584. scitex/scholar/url_finder/translators/individual/scholia.py +0 -23
  1585. scitex/scholar/url_finder/translators/individual/schweizer_radio_und_fernsehen_srf.py +0 -23
  1586. scitex/scholar/url_finder/translators/individual/scielo.py +0 -23
  1587. scitex/scholar/url_finder/translators/individual/sciencedirect.py +0 -132
  1588. scitex/scholar/url_finder/translators/individual/scopus.py +0 -23
  1589. scitex/scholar/url_finder/translators/individual/semantic_scholar.py +0 -23
  1590. scitex/scholar/url_finder/translators/individual/semantics_visual_library.py +0 -25
  1591. scitex/scholar/url_finder/translators/individual/sfu_ipinch.py +0 -23
  1592. scitex/scholar/url_finder/translators/individual/silverchair.py +0 -301
  1593. scitex/scholar/url_finder/translators/individual/sipri.py +0 -23
  1594. scitex/scholar/url_finder/translators/individual/sirs_knowledge_source.py +0 -23
  1595. scitex/scholar/url_finder/translators/individual/slate.py +0 -23
  1596. scitex/scholar/url_finder/translators/individual/slideshare.py +0 -23
  1597. scitex/scholar/url_finder/translators/individual/slub_dresden.py +0 -23
  1598. scitex/scholar/url_finder/translators/individual/sora.py +0 -25
  1599. scitex/scholar/url_finder/translators/individual/springer.py +0 -121
  1600. scitex/scholar/url_finder/translators/individual/springer_link.py +0 -23
  1601. scitex/scholar/url_finder/translators/individual/ssoar.py +0 -23
  1602. scitex/scholar/url_finder/translators/individual/ssrn.py +0 -63
  1603. scitex/scholar/url_finder/translators/individual/stack_exchange.py +0 -23
  1604. scitex/scholar/url_finder/translators/individual/standard_ebooks.py +0 -23
  1605. scitex/scholar/url_finder/translators/individual/stanford_encyclopedia_of_philosophy.py +0 -25
  1606. scitex/scholar/url_finder/translators/individual/stanford_university_press.py +0 -23
  1607. scitex/scholar/url_finder/translators/individual/state_records_office_of_western_australia.py +0 -23
  1608. scitex/scholar/url_finder/translators/individual/state_records_office_wa.py +0 -23
  1609. scitex/scholar/url_finder/translators/individual/stitcher.py +0 -23
  1610. scitex/scholar/url_finder/translators/individual/store_norske_leksikon.py +0 -23
  1611. scitex/scholar/url_finder/translators/individual/stuff_co_nz.py +0 -23
  1612. scitex/scholar/url_finder/translators/individual/substack.py +0 -23
  1613. scitex/scholar/url_finder/translators/individual/sud_ouest.py +0 -23
  1614. scitex/scholar/url_finder/translators/individual/sueddeutsche_de.py +0 -23
  1615. scitex/scholar/url_finder/translators/individual/summon_2.py +0 -23
  1616. scitex/scholar/url_finder/translators/individual/superlib.py +0 -25
  1617. scitex/scholar/url_finder/translators/individual/svenska_dagbladet.py +0 -23
  1618. scitex/scholar/url_finder/translators/individual/sveriges_radio.py +0 -23
  1619. scitex/scholar/url_finder/translators/individual/svt_nyheter.py +0 -23
  1620. scitex/scholar/url_finder/translators/individual/tagesspiegel.py +0 -23
  1621. scitex/scholar/url_finder/translators/individual/talis_aspire.py +0 -23
  1622. scitex/scholar/url_finder/translators/individual/talisprism.py +0 -23
  1623. scitex/scholar/url_finder/translators/individual/tatknigafund.py +0 -23
  1624. scitex/scholar/url_finder/translators/individual/tatpressa_ru.py +0 -23
  1625. scitex/scholar/url_finder/translators/individual/taylor___francis_ebooks.py +0 -23
  1626. scitex/scholar/url_finder/translators/individual/taylor_and_francis_nejm.py +0 -23
  1627. scitex/scholar/url_finder/translators/individual/taylor_francis.py +0 -23
  1628. scitex/scholar/url_finder/translators/individual/taylor_francis_nejm.py +0 -23
  1629. scitex/scholar/url_finder/translators/individual/taz_de.py +0 -23
  1630. scitex/scholar/url_finder/translators/individual/tei.py +0 -23
  1631. scitex/scholar/url_finder/translators/individual/tesis_doctorals_en_xarxa.py +0 -23
  1632. scitex/scholar/url_finder/translators/individual/the_art_newspaper.py +0 -23
  1633. scitex/scholar/url_finder/translators/individual/the_atlantic.py +0 -23
  1634. scitex/scholar/url_finder/translators/individual/the_boston_globe.py +0 -23
  1635. scitex/scholar/url_finder/translators/individual/the_chronicle_of_higher_education.py +0 -23
  1636. scitex/scholar/url_finder/translators/individual/the_daily_beast.py +0 -23
  1637. scitex/scholar/url_finder/translators/individual/the_economic_times___the_times_of_india.py +0 -23
  1638. scitex/scholar/url_finder/translators/individual/the_economist.py +0 -23
  1639. scitex/scholar/url_finder/translators/individual/the_free_dictionary.py +0 -23
  1640. scitex/scholar/url_finder/translators/individual/the_globe_and_mail.py +0 -23
  1641. scitex/scholar/url_finder/translators/individual/the_guardian.py +0 -23
  1642. scitex/scholar/url_finder/translators/individual/the_hamilton_spectator.py +0 -23
  1643. scitex/scholar/url_finder/translators/individual/the_hindu.py +0 -23
  1644. scitex/scholar/url_finder/translators/individual/the_independent.py +0 -23
  1645. scitex/scholar/url_finder/translators/individual/the_intercept.py +0 -23
  1646. scitex/scholar/url_finder/translators/individual/the_met.py +0 -23
  1647. scitex/scholar/url_finder/translators/individual/the_microfinance_gateway.py +0 -23
  1648. scitex/scholar/url_finder/translators/individual/the_nation.py +0 -23
  1649. scitex/scholar/url_finder/translators/individual/the_national_archives__uk_.py +0 -23
  1650. scitex/scholar/url_finder/translators/individual/the_new_republic.py +0 -23
  1651. scitex/scholar/url_finder/translators/individual/the_new_york_review_of_books.py +0 -23
  1652. scitex/scholar/url_finder/translators/individual/the_new_yorker.py +0 -23
  1653. scitex/scholar/url_finder/translators/individual/the_open_library.py +0 -23
  1654. scitex/scholar/url_finder/translators/individual/the_straits_times.py +0 -23
  1655. scitex/scholar/url_finder/translators/individual/the_telegraph.py +0 -23
  1656. scitex/scholar/url_finder/translators/individual/the_times_and_sunday_times.py +0 -23
  1657. scitex/scholar/url_finder/translators/individual/the_times_of_israel.py +0 -23
  1658. scitex/scholar/url_finder/translators/individual/themarker.py +0 -23
  1659. scitex/scholar/url_finder/translators/individual/theory_of_computing.py +0 -23
  1660. scitex/scholar/url_finder/translators/individual/thesesfr.py +0 -23
  1661. scitex/scholar/url_finder/translators/individual/thieme.py +0 -23
  1662. scitex/scholar/url_finder/translators/individual/time_com.py +0 -23
  1663. scitex/scholar/url_finder/translators/individual/timesmachine.py +0 -23
  1664. scitex/scholar/url_finder/translators/individual/tony_blair_institute.py +0 -23
  1665. scitex/scholar/url_finder/translators/individual/tony_blair_institute_for_global_change.py +0 -23
  1666. scitex/scholar/url_finder/translators/individual/toronto_star.py +0 -23
  1667. scitex/scholar/url_finder/translators/individual/transportation_research_board.py +0 -23
  1668. scitex/scholar/url_finder/translators/individual/treesearch.py +0 -25
  1669. scitex/scholar/url_finder/translators/individual/trove.py +0 -23
  1670. scitex/scholar/url_finder/translators/individual/tumblr.py +0 -23
  1671. scitex/scholar/url_finder/translators/individual/tv_by_the_numbers.py +0 -23
  1672. scitex/scholar/url_finder/translators/individual/tvnz.py +0 -23
  1673. scitex/scholar/url_finder/translators/individual/twitter.py +0 -23
  1674. scitex/scholar/url_finder/translators/individual/ubiquity_journals.py +0 -23
  1675. scitex/scholar/url_finder/translators/individual/uchicago_vufind.py +0 -23
  1676. scitex/scholar/url_finder/translators/individual/unapi.py +0 -23
  1677. scitex/scholar/url_finder/translators/individual/unesco.py +0 -23
  1678. scitex/scholar/url_finder/translators/individual/university_of_california_press_books.py +0 -23
  1679. scitex/scholar/url_finder/translators/individual/university_of_chicago_press_books.py +0 -25
  1680. scitex/scholar/url_finder/translators/individual/university_of_wisconsin_madison_libraries_catalog.py +0 -23
  1681. scitex/scholar/url_finder/translators/individual/university_press_scholarship.py +0 -23
  1682. scitex/scholar/url_finder/translators/individual/unqualified_dublin_core_rdf.py +0 -23
  1683. scitex/scholar/url_finder/translators/individual/unz_print_archive.py +0 -23
  1684. scitex/scholar/url_finder/translators/individual/upcommons.py +0 -23
  1685. scitex/scholar/url_finder/translators/individual/uptodate_references.py +0 -23
  1686. scitex/scholar/url_finder/translators/individual/us_national_archives_research_catalog.py +0 -23
  1687. scitex/scholar/url_finder/translators/individual/usenix.py +0 -23
  1688. scitex/scholar/url_finder/translators/individual/vanity_fair.py +0 -23
  1689. scitex/scholar/url_finder/translators/individual/verniana.py +0 -23
  1690. scitex/scholar/url_finder/translators/individual/verniana_jules_verne_studies.py +0 -23
  1691. scitex/scholar/url_finder/translators/individual/verso_books.py +0 -23
  1692. scitex/scholar/url_finder/translators/individual/vice.py +0 -23
  1693. scitex/scholar/url_finder/translators/individual/victoria___albert_museum.py +0 -23
  1694. scitex/scholar/url_finder/translators/individual/vimeo.py +0 -23
  1695. scitex/scholar/url_finder/translators/individual/vlex.py +0 -25
  1696. scitex/scholar/url_finder/translators/individual/voxeu.py +0 -23
  1697. scitex/scholar/url_finder/translators/individual/wall_street_journal.py +0 -23
  1698. scitex/scholar/url_finder/translators/individual/wanfang_data.py +0 -23
  1699. scitex/scholar/url_finder/translators/individual/washington_monthly.py +0 -23
  1700. scitex/scholar/url_finder/translators/individual/washington_post.py +0 -23
  1701. scitex/scholar/url_finder/translators/individual/web_of_science.py +0 -25
  1702. scitex/scholar/url_finder/translators/individual/web_of_science_nextgen.py +0 -25
  1703. scitex/scholar/url_finder/translators/individual/web_of_science_tagged.py +0 -23
  1704. scitex/scholar/url_finder/translators/individual/welt_online.py +0 -23
  1705. scitex/scholar/url_finder/translators/individual/westlaw_uk.py +0 -23
  1706. scitex/scholar/url_finder/translators/individual/who.py +0 -23
  1707. scitex/scholar/url_finder/translators/individual/wikidata.py +0 -23
  1708. scitex/scholar/url_finder/translators/individual/wikidata_quickstatements.py +0 -23
  1709. scitex/scholar/url_finder/translators/individual/wikileaks_plusd.py +0 -23
  1710. scitex/scholar/url_finder/translators/individual/wikimedia_commons.py +0 -23
  1711. scitex/scholar/url_finder/translators/individual/wikipedia.py +0 -23
  1712. scitex/scholar/url_finder/translators/individual/wikipedia_citation_templates.py +0 -23
  1713. scitex/scholar/url_finder/translators/individual/wikisource.py +0 -23
  1714. scitex/scholar/url_finder/translators/individual/wikiwand.py +0 -23
  1715. scitex/scholar/url_finder/translators/individual/wiktionary.py +0 -23
  1716. scitex/scholar/url_finder/translators/individual/wildlife_biology_in_practice.py +0 -23
  1717. scitex/scholar/url_finder/translators/individual/wiley.py +0 -187
  1718. scitex/scholar/url_finder/translators/individual/wiley_online_library.py +0 -23
  1719. scitex/scholar/url_finder/translators/individual/wilson_center_digital_archive.py +0 -25
  1720. scitex/scholar/url_finder/translators/individual/winnipeg_free_press.py +0 -23
  1721. scitex/scholar/url_finder/translators/individual/wipo.py +0 -23
  1722. scitex/scholar/url_finder/translators/individual/wired.py +0 -23
  1723. scitex/scholar/url_finder/translators/individual/wiso.py +0 -23
  1724. scitex/scholar/url_finder/translators/individual/womennews.py +0 -23
  1725. scitex/scholar/url_finder/translators/individual/world_bank.py +0 -23
  1726. scitex/scholar/url_finder/translators/individual/world_digital_library.py +0 -23
  1727. scitex/scholar/url_finder/translators/individual/world_history_connected.py +0 -23
  1728. scitex/scholar/url_finder/translators/individual/world_shakespeare_bibliography_online.py +0 -23
  1729. scitex/scholar/url_finder/translators/individual/worldcat_discovery_service.py +0 -23
  1730. scitex/scholar/url_finder/translators/individual/xml_contextobject.py +0 -23
  1731. scitex/scholar/url_finder/translators/individual/yandex_books.py +0 -23
  1732. scitex/scholar/url_finder/translators/individual/ynet.py +0 -23
  1733. scitex/scholar/url_finder/translators/individual/youtube.py +0 -23
  1734. scitex/scholar/url_finder/translators/individual/ypfs.py +0 -23
  1735. scitex/scholar/url_finder/translators/individual/ypsf.py +0 -23
  1736. scitex/scholar/url_finder/translators/individual/zenodo.py +0 -23
  1737. scitex/scholar/url_finder/translators/individual/ziponline.py +0 -23
  1738. scitex/scholar/url_finder/translators/individual/zobodat.py +0 -23
  1739. scitex/scholar/url_finder/translators/individual/zotero_org.py +0 -23
  1740. scitex/scholar/url_finder/translators/individual/zotero_rdf.py +0 -23
  1741. scitex/scholar/url_finder/translators/individual/zoterobib.py +0 -23
  1742. scitex/stats/utils/__init__.py +0 -59
  1743. scitex/stats/utils/_effect_size.py +0 -992
  1744. scitex/stats/utils/_formatters.py +0 -276
  1745. scitex/stats/utils/_normalizers.py +0 -923
  1746. scitex/stats/utils/_power.py +0 -433
  1747. scitex-2.14.0.dist-info/METADATA +0 -1238
  1748. scitex-2.14.0.dist-info/RECORD +0 -2498
  1749. /scitex/{gen → context}/_detect_environment.py +0 -0
  1750. /scitex/{gen → context}/_get_notebook_path.py +0 -0
  1751. /scitex/io/{utils → _utils}/__init__.py +0 -0
  1752. /scitex/io/{utils → _utils}/h5_to_zarr.py +0 -0
  1753. /scitex/scholar/{utils → _utils}/__init__.py +0 -0
  1754. /scitex/scholar/{utils → _utils}/bibtex/__init__.py +0 -0
  1755. /scitex/scholar/{utils → _utils}/bibtex/_parse_bibtex.py +0 -0
  1756. /scitex/scholar/{utils → _utils}/cleanup/__init__.py +0 -0
  1757. /scitex/scholar/{utils → _utils}/cleanup/_cleanup_scholar_processes.py +0 -0
  1758. /scitex/scholar/{utils → _utils}/create_demo_movie.sh +0 -0
  1759. /scitex/scholar/{utils → _utils}/text/_TextNormalizer.py +0 -0
  1760. /scitex/scholar/{utils → _utils}/text/__init__.py +0 -0
  1761. /scitex/scholar/{utils → _utils}/validation/DOIValidator.py +0 -0
  1762. /scitex/scholar/{utils → _utils}/validation/README.md +0 -0
  1763. /scitex/scholar/{utils → _utils}/validation/__init__.py +0 -0
  1764. /scitex/scholar/{utils → _utils}/validation/validate_library_dois.py +0 -0
  1765. /scitex/scholar/url_finder/translators/{core → _core}/__init__.py +0 -0
  1766. /scitex/scholar/url_finder/translators/{core → _core}/base.py +0 -0
  1767. /scitex/scholar/url_finder/translators/{core → _core}/patterns.py +0 -0
  1768. /scitex/scholar/url_finder/translators/{individual → _individual}/BOFiP_Impots.py +0 -0
  1769. /scitex/scholar/url_finder/translators/{individual → _individual}/Baidu_Scholar.py +0 -0
  1770. /scitex/scholar/url_finder/translators/{individual → _individual}/Bangkok_Post.py +0 -0
  1771. /scitex/scholar/url_finder/translators/{individual → _individual}/Baruch_Foundation.py +0 -0
  1772. /scitex/scholar/url_finder/translators/{individual → _individual}/Beobachter.py +0 -0
  1773. /scitex/scholar/url_finder/translators/{individual → _individual}/Bezneng_Gajit.py +0 -0
  1774. /scitex/scholar/url_finder/translators/{individual → _individual}/BibLaTeX.py +0 -0
  1775. /scitex/scholar/url_finder/translators/{individual → _individual}/BibTeX.py +0 -0
  1776. /scitex/scholar/url_finder/translators/{individual → _individual}/Biblio_com.py +0 -0
  1777. /scitex/scholar/url_finder/translators/{individual → _individual}/Bibliontology_RDF.py +0 -0
  1778. /scitex/scholar/url_finder/translators/{individual → _individual}/Camara_Brasileira_do_Livro_ISBN.py +0 -0
  1779. /scitex/scholar/url_finder/translators/{individual → _individual}/CanLII.py +0 -0
  1780. /scitex/scholar/url_finder/translators/{individual → _individual}/Canada_com.py +0 -0
  1781. /scitex/scholar/url_finder/translators/{individual → _individual}/Canadian_Letters_and_Images.py +0 -0
  1782. /scitex/scholar/url_finder/translators/{individual → _individual}/Canadiana_ca.py +0 -0
  1783. /scitex/scholar/url_finder/translators/{individual → _individual}/Cascadilla_Proceedings_Project.py +0 -0
  1784. /scitex/scholar/url_finder/translators/{individual → _individual}/Central_and_Eastern_European_Online_Library_Journals.py +0 -0
  1785. /scitex/scholar/url_finder/translators/{individual → _individual}/Champlain_Society_Collection.py +0 -0
  1786. /scitex/scholar/url_finder/translators/{individual → _individual}/Chicago_Journal_of_Theoretical_Computer_Science.py +0 -0
  1787. /scitex/scholar/url_finder/translators/{individual → _individual}/Christian_Science_Monitor.py +0 -0
  1788. /scitex/scholar/url_finder/translators/{individual → _individual}/Columbia_University_Press.py +0 -0
  1789. /scitex/scholar/url_finder/translators/{individual → _individual}/Common_Place.py +0 -0
  1790. /scitex/scholar/url_finder/translators/{individual → _individual}/Cornell_LII.py +0 -0
  1791. /scitex/scholar/url_finder/translators/{individual → _individual}/Cornell_University_Press.py +0 -0
  1792. /scitex/scholar/url_finder/translators/{individual → _individual}/CourtListener.py +0 -0
  1793. /scitex/scholar/url_finder/translators/{individual → _individual}/DAI_Zenon.py +0 -0
  1794. /scitex/scholar/url_finder/translators/{individual → _individual}/FULL_DOWNLOAD_LOG.txt +0 -0
  1795. /scitex/scholar/url_finder/translators/{individual → _individual}/FULL_DOWNLOAD_LOG_colored.txt +0 -0
  1796. /scitex/scholar/url_finder/translators/{individual → _individual}/acm.py +0 -0
  1797. /scitex/scholar/url_finder/translators/{individual → _individual}/aps_physics.py +0 -0
  1798. /scitex/scholar/url_finder/translators/{individual → _individual}/artforum.py +0 -0
  1799. /scitex/scholar/url_finder/translators/{individual → _individual}/atlanta_journal_constitution.py +0 -0
  1800. /scitex/scholar/url_finder/translators/{individual → _individual}/austlii_and_nzlii.py +0 -0
  1801. /scitex/scholar/url_finder/translators/{individual → _individual}/australian_dictionary_of_biography.py +0 -0
  1802. /scitex/scholar/url_finder/translators/{individual → _individual}/bailii.py +0 -0
  1803. /scitex/scholar/url_finder/translators/{individual → _individual}/bbc.py +0 -0
  1804. /scitex/scholar/url_finder/translators/{individual → _individual}/bbc_genome.py +0 -0
  1805. /scitex/scholar/url_finder/translators/{individual → _individual}/biblioteca_nacional_de_maestros.py +0 -0
  1806. /scitex/scholar/url_finder/translators/{individual → _individual}/bibliotheque_archives_nationale_quebec_pistard.py +0 -0
  1807. /scitex/scholar/url_finder/translators/{individual → _individual}/bibliotheque_archives_nationales_quebec.py +0 -0
  1808. /scitex/scholar/url_finder/translators/{individual → _individual}/bibliotheque_nationale_france.py +0 -0
  1809. /scitex/scholar/url_finder/translators/{individual → _individual}/bibsys.py +0 -0
  1810. /scitex/scholar/url_finder/translators/{individual → _individual}/bioconductor.py +0 -0
  1811. /scitex/scholar/url_finder/translators/{individual → _individual}/blogger.py +0 -0
  1812. /scitex/scholar/url_finder/translators/{individual → _individual}/bloomberg.py +0 -0
  1813. /scitex/scholar/url_finder/translators/{individual → _individual}/bloomsbury_food_library.py +0 -0
  1814. /scitex/scholar/url_finder/translators/{individual → _individual}/bluesky.py +0 -0
  1815. /scitex/scholar/url_finder/translators/{individual → _individual}/bocc.py +0 -0
  1816. /scitex/scholar/url_finder/translators/{individual → _individual}/boe.py +0 -0
  1817. /scitex/scholar/url_finder/translators/{individual → _individual}/business_standard.py +0 -0
  1818. /scitex/scholar/url_finder/translators/{individual → _individual}/cabi_cab_abstracts.py +0 -0
  1819. /scitex/scholar/url_finder/translators/{individual → _individual}/caod.py +0 -0
  1820. /scitex/scholar/url_finder/translators/{individual → _individual}/cbc.py +0 -0
  1821. /scitex/scholar/url_finder/translators/{individual → _individual}/ccfr_bnf.py +0 -0
  1822. /scitex/scholar/url_finder/translators/{individual → _individual}/cia_world_factbook.py +0 -0
  1823. /scitex/scholar/url_finder/translators/{individual → _individual}/current_affairs.py +0 -0
  1824. /scitex/scholar/url_finder/translators/{individual → _individual}/dabi.py +0 -0
  1825. /scitex/scholar/url_finder/translators/{individual → _individual}/dagstuhl.py +0 -0
  1826. /scitex/scholar/url_finder/translators/{individual → _individual}/dar_almandumah.py +0 -0
  1827. /scitex/scholar/url_finder/translators/{individual → _individual}/dart_europe.py +0 -0
  1828. /scitex/scholar/url_finder/translators/{individual → _individual}/data_gov.py +0 -0
  1829. /scitex/scholar/url_finder/translators/{individual → _individual}/databrary.py +0 -0
  1830. /scitex/scholar/url_finder/translators/{individual → _individual}/datacite_json.py +0 -0
  1831. /scitex/scholar/url_finder/translators/{individual → _individual}/dataverse.py +0 -0
  1832. /scitex/scholar/url_finder/translators/{individual → _individual}/daum_news.py +0 -0
  1833. /scitex/scholar/url_finder/translators/{individual → _individual}/dblp.py +0 -0
  1834. /scitex/scholar/url_finder/translators/{individual → _individual}/dblp_computer_science_bibliography.py +0 -0
  1835. /scitex/scholar/url_finder/translators/{individual → _individual}/dbpia.py +0 -0
  1836. /scitex/scholar/url_finder/translators/{individual → _individual}/defense_technical_information_center.py +0 -0
  1837. /scitex/scholar/url_finder/translators/{individual → _individual}/delpher.py +0 -0
  1838. /scitex/scholar/url_finder/translators/{individual → _individual}/demographic_research.py +0 -0
  1839. /scitex/scholar/url_finder/translators/{individual → _individual}/denik_cz.py +0 -0
  1840. /scitex/scholar/url_finder/translators/{individual → _individual}/depatisnet.py +0 -0
  1841. /scitex/scholar/url_finder/translators/{individual → _individual}/der_freitag.py +0 -0
  1842. /scitex/scholar/url_finder/translators/{individual → _individual}/der_spiegel.py +0 -0
  1843. /scitex/scholar/url_finder/translators/{individual → _individual}/dpla.py +0 -0
  1844. /scitex/scholar/url_finder/translators/{individual → _individual}/dspace.py +0 -0
  1845. /scitex/scholar/url_finder/translators/{individual → _individual}/gms_german_medical_science.py +0 -0
  1846. /scitex/scholar/url_finder/translators/{individual → _individual}/ieee_computer_society.py +0 -0
  1847. /scitex/scholar/url_finder/translators/{individual → _individual}/inter_research_science_center.py +0 -0
  1848. /scitex/scholar/url_finder/translators/{individual → _individual}/lingbuzz.py +0 -0
  1849. /scitex/scholar/url_finder/translators/{individual → _individual}/openedition_journals.py +0 -0
  1850. /scitex/scholar/url_finder/translators/{individual → _individual}/orcid.py +0 -0
  1851. /scitex/scholar/url_finder/translators/{individual → _individual}/scinapse.py +0 -0
  1852. /scitex/scholar/url_finder/translators/{individual → _individual}/zbmath.py +0 -0
  1853. /scitex/{gen/_shell.py → sh/_shell_legacy.py} +0 -0
  1854. {scitex-2.14.0.dist-info → scitex-2.16.0.dist-info}/WHEEL +0 -0
  1855. {scitex-2.14.0.dist-info → scitex-2.16.0.dist-info}/entry_points.txt +0 -0
  1856. {scitex-2.14.0.dist-info → scitex-2.16.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,865 +0,0 @@
1
- <!-- ---
2
- !-- Timestamp: 2025-08-22 05:28:16
3
- !-- Author: ywatanabe
4
- !-- File: /home/ywatanabe/proj/SciTeX-Code/src/scitex/scholar/examples/SUGGESTIONS.md
5
- !-- --- -->
6
-
7
- You've hit another excellent and distinct debugging case. The error has changed, which tells us we are making progress and uncovering the complexities of running these translators outside their native environment.
8
-
9
- The new key error is:
10
- ERROR: Translator error: em.doWeb is not a function
11
-
12
- This is different and more informative than the previous one. It's not just a data format issue; it's a structural problem with how the translator code is being executed.
13
-
14
- ## What's Happening Here?
15
- Zotero translators have evolved, and not all of them follow the simple, global detectWeb() and doWeb() function pattern. The "Frontiers" translator uses a more modern, object-oriented approach.
16
-
17
- When the Frontiers.js code is executed, it doesn't just define global functions. Instead, it likely creates an instance of an object (let's call it em).
18
-
19
- The main logic, including the doWeb function, is a method of this em object.
20
-
21
- Your current JavaScript wrapper and executor (zotero_wrapper.js) are not aware of this. They blindly look for a global doWeb function, which doesn't exist. The function they need to call is em.doWeb().
22
-
23
- Because this first step fails, the script execution halts, and the subsequent SyntaxError: Unexpected token '<' is likely a red herring—a downstream consequence of the initial failure.
24
-
25
- ## The Solution: A More Intelligent Executor
26
- To solve this, your JavaScript executor needs to be smarter. It must first run the translator's code and then inspect the global scope to find out how that specific translator needs to be called. It needs to check for a global doWeb function, and if that doesn't exist, it should look for a common object pattern (like an object named em with a doWeb method).
27
-
28
- Here is an updated, more robust version of the execution logic for your _ZoteroTranslatorRunner.py. This change centralizes the execution logic within the page.evaluate call, making it more adaptable.
29
-
30
- Replace the page.evaluate block in the extract_urls_pdf_async method of _ZoteroTranslatorRunner.py with this:
31
-
32
- Python
33
-
34
- # In _ZoteroTranslatorRunner.py -> extract_urls_pdf_async method
35
-
36
- # ... after injecting the Zotero environment JS ...
37
-
38
- result = await page.evaluate(
39
- """
40
- async ([translatorCode, translatorLabel]) => {
41
- // This is the main execution function, now running entirely in the browser.
42
- // It's a combination of your wrapper and the execution logic.
43
- const urls = new Set();
44
- const items = [];
45
- let translatorError = null;
46
-
47
- // --- Start: Mock Zotero Environment (condensed from your zotero_wrapper.js) ---
48
- window.Zotero = {
49
- Item: function(type) {
50
- this.itemType = type;
51
- this.attachments = [];
52
- this.url = null;
53
- this.DOI = null;
54
- this.complete = function() {
55
- if (this.url) urls.add(this.url);
56
- if (this.DOI) urls.add('https://doi.org/' + this.DOI);
57
- this.attachments.forEach(att => {
58
- if (att.url && (att.mimeType === 'application/pdf' || att.url.includes('.pdf'))) {
59
- urls.add(att.url);
60
- }
61
- });
62
- items.push(this);
63
- };
64
- },
65
- loadTranslator: function() { return { setTranslator: function() {}, setString: function(s) {}, setHandler: function(e,h){}, translate: function() {} }; },
66
- Utilities: {
67
- xpath: (doc, xpath) => {
68
- const result = document.evaluate(xpath, doc, null, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null);
69
- const nodes = [];
70
- let node;
71
- while (node = result.iterateNext()) {
72
- nodes.push(node);
73
- }
74
- return nodes;
75
- },
76
- xpathText: (doc, xpath) => document.evaluate(xpath, doc, null, XPathResult.STRING_TYPE, null).stringValue,
77
- trimInternal: str => str ? str.trim().replace(/\\s+/g, ' ') : '',
78
- },
79
- debug: (msg) => console.log(`[Zotero Debug] ${msg}`),
80
- done: () => console.log("Zotero.done() called."),
81
- };
82
- window.Z = window.Zotero;
83
- window.ZU = window.Zotero.Utilities;
84
- window.requestDocument = async (url) => document; // Simplified for this context
85
- window.requestText = async (url, options) => {
86
- if (url.startsWith('/')) url = window.location.origin + url;
87
- try {
88
- const response = await fetch(url, { credentials: 'include', ...(options || {}) });
89
- const contentType = response.headers.get("content-type");
90
- const text = await response.text();
91
- if (contentType && contentType.includes("text/html")) {
92
- console.error("requestText received HTML instead of data for URL:", url);
93
- return null;
94
- }
95
- return text;
96
- } catch (e) {
97
- console.error("requestText failed for URL:", url, e);
98
- return null;
99
- }
100
- };
101
- // --- End: Mock Zotero Environment ---
102
-
103
- try {
104
- // Step 1: Execute the translator code to define its functions/objects
105
- eval(translatorCode);
106
-
107
- // Step 2: INTELLIGENTLY FIND AND CALL THE CORRECT doWeb function
108
- let detected = false;
109
- let doWebFunction = null;
110
- let contextObject = window; // Assume global context by default
111
-
112
- // Pattern 1: Standard global functions
113
- if (typeof detectWeb === 'function' && typeof doWeb === 'function') {
114
- if (detectWeb(document, window.location.href)) {
115
- detected = true;
116
- doWebFunction = doWeb;
117
- }
118
- }
119
- // Pattern 2: Object-oriented pattern (like 'em.doWeb')
120
- else if (typeof em === 'object' && typeof em.detectWeb === 'function' && typeof em.doWeb === 'function') {
121
- if (em.detectWeb(document, window.location.href)) {
122
- detected = true;
123
- doWebFunction = em.doWeb;
124
- contextObject = em; // The function must be called on the 'em' object
125
- }
126
- }
127
- // Add other patterns here if you discover them
128
-
129
- // Step 3: Execute if a valid pattern was found
130
- if (detected && doWebFunction) {
131
- console.log(`Executing translator with pattern on context: ${contextObject}`);
132
- await doWebFunction.call(contextObject, document, window.location.href);
133
- // Give async operations a moment to complete
134
- await new Promise(resolve => setTimeout(resolve, 500));
135
- } else {
136
- console.log("Translator pattern not recognized or detectWeb returned false.");
137
- }
138
-
139
- } catch (e) {
140
- translatorError = e.message;
141
- console.error('Translator execution error:', e);
142
- }
143
-
144
- return {
145
- success: !translatorError && urls.size > 0,
146
- translator: translatorLabel,
147
- urls: Array.from(urls),
148
- itemCount: items.length,
149
- error: translatorError
150
- };
151
- }
152
- """,
153
- [translator["code"], translator["label"]],
154
- )
155
-
156
- ## Why This Fix Works
157
- Self-Contained: It moves the entire mock environment and execution logic into the page.evaluate block. This is cleaner and ensures the environment is perfectly set up right before the translator runs.
158
-
159
- Pattern Detection: The core of the new logic is the "INTELLIGENTLY FIND AND CALL" section. It no longer assumes a single structure.
160
-
161
- It first checks for the "classic" global detectWeb/doWeb functions.
162
-
163
- If that fails, it checks for a common object-oriented pattern: an object named em that contains the detectWeb and doWeb methods.
164
-
165
- Correct this Context: When it finds the object-oriented pattern, it uses doWebFunction.call(contextObject, ...) to ensure that when doWeb is executed, the this keyword inside it correctly refers to the em object. This is what solves the em.doWeb is not a function error.
166
-
167
- Extensible: You can easily add more else if blocks to this logic if you encounter other translator patterns in the future.
168
-
169
- By making your runner smarter, you can handle the diversity of Zotero translators and significantly improve the reliability of your PDF extraction process.
170
-
171
-
172
-
173
-
174
-
175
-
176
-
177
- is you approach versatile for any publisher pages?
178
-
179
-
180
-
181
- Show thinking
182
- That's an excellent question. The short answer is yes, this approach is incredibly versatile and is likely the most robust and scalable method you can build for this purpose.
183
-
184
- However, it is not a "silver bullet" that will work flawlessly on every single publisher's website without occasional adjustments. Think of it as a powerful framework that handles 90% of the problem, but you'll still need to debug the tricky 10%.
185
-
186
- Here’s a breakdown of its versatility and its limitations.
187
-
188
- ## Why This Approach Is So Powerful 🚀
189
- Leverages Massive Community Effort: You are tapping into the Zotero open-source community, which has spent years writing and maintaining thousands of translators for individual publisher sites, journals, databases, and news outlets. You don't have to write a custom scraper for Elsevier, another for Springer, another for Nature, etc. The community has already done that hard work.
190
-
191
- Handles Complex Scraping Logic: Zotero translators are far more sophisticated than simple CSS selectors. They contain logic to:
192
-
193
- Try multiple methods to find metadata.
194
-
195
- Parse hidden JSON data embedded in the page.
196
-
197
- Automate clicking "Export" buttons and fetching citation files (like RIS or BibTeX) in the background.
198
-
199
- Clean up messy data (e.g., formatting author names).
200
-
201
- Standardized Interface: As we've discovered, the translators have a standardized structure (the JSON header with a target regex and the detectWeb/doWeb entry points). This allows your Python runner to treat them like plugins, dynamically loading and executing the correct one for any given URL.
202
-
203
- ## The Inevitable Limitations and Challenges 🛠️
204
- While versatile, it's not universally plug-and-play. The errors you've already encountered are perfect examples of the types of issues you will run into.
205
-
206
- Incomplete Mock Environment: Your zotero_wrapper.js is a mock of the real Zotero environment. We have implemented the common functions (Zotero.Item, requestText, etc.), but a translator for a niche website might call a less common utility function (e.g., ZU.cleanISBN()) that doesn't exist in your mock, causing an error.
207
-
208
- Solution: This is an iterative process. When a translator fails because of a missing function, you add a simple implementation of it to your wrapper.
209
-
210
- Aggressive Anti-Scraping Measures: Publishers actively try to block automated access. You may encounter:
211
-
212
- CAPTCHAs: If your script makes too many requests too quickly, a site like Google Scholar or Scopus will throw up a CAPTCHA, which will halt the process.
213
-
214
- Dynamic JavaScript Challenges: Some sites may use JavaScript techniques to detect and block automated browsers like Playwright.
215
-
216
- Complex Authentication: This is the most common failure point. Even if your main page is logged in, a translator's background fetch request might fail because:
217
-
218
- It's blocked by Cross-Origin Resource Sharing (CORS) policies.
219
-
220
- It doesn't carry the necessary authentication tokens or cookies that the main page uses.
221
-
222
- This is exactly what happened with your ScienceDirect attempt, which returned a login page (HTML) instead of data.
223
-
224
- Outdated or Buggy Translators: Sometimes, a publisher will update their website, and the corresponding Zotero translator will be temporarily broken until a community member fixes it. You might be the first to discover the issue.
225
-
226
- ## Conclusion
227
- Your approach of using a Python/Playwright runner to execute Zotero translators is the gold standard for this kind of task. It is far more versatile and maintainable than trying to write and manage hundreds of custom scrapers yourself.
228
-
229
- The key is to think of it not as a single script you write once, but as a robust framework that you will occasionally need to debug and enhance as you encounter new publisher websites and new translator patterns.
230
-
231
-
232
- #!/usr/bin/env python3
233
- # -*- coding: utf-8 -*-
234
- # File: test_zotero_runner.py
235
- # ----------------------------------------
236
- """
237
- Test Suite for ZoteroTranslatorRunner.
238
-
239
- This script uses pytest to validate that the ZoteroTranslatorRunner can
240
- correctly execute translators from various publishers with different internal
241
- architectures (e.g., global functions vs. object-oriented methods).
242
-
243
- Usage:
244
- 1. Make sure you have pytest and pytest-asyncio installed:
245
- pip install pytest pytest-asyncio playwright
246
- playwright install
247
- 2. Place this file in a 'tests' directory alongside your project source.
248
- 3. Make sure your _ZoteroTranslatorRunner.py is importable.
249
- 4. Run the tests from your project's root directory:
250
- pytest
251
- """
252
-
253
- import asyncio
254
- import pytest
255
- from playwright.async_api import Page, Browser, async_playwright
256
-
257
- # Note: ZoteroTranslatorRunner is now deprecated. Use the Python-based zotero_translators instead.
258
- # Old location (deprecated): from scitex.scholar.url.helpers.finders._ZoteroTranslatorRunner import ZoteroTranslatorRunner
259
- # New location: Use scitex.scholar.url.strategies.zotero_translators for Python-based implementation
260
-
261
- # --- Test Cases ---
262
- # A curated list of URLs that represent different publishers and translator patterns.
263
- # Each tuple contains: (test_id, url)
264
- TEST_CASES = [
265
- # Pattern: Object-oriented ('em.doWeb'). Test for the fix from the previous issue.
266
- ("frontiers", "https://www.frontiersin.org/journals/neuroscience/articles/10.3389/fnins.2019.00573/full"),
267
-
268
- # Pattern: Standard global functions. A very common and reliable open-access source.
269
- ("arxiv", "https://arxiv.org/abs/2103.14030"),
270
-
271
- # Pattern: Major publisher (Nature). Often has complex pages.
272
- ("nature", "https://www.nature.com/articles/s41586-021-03372-6"),
273
-
274
- # Pattern: Another major publisher (Elsevier). This is an open-access article.
275
- ("sciencedirect_openaccess", "https://www.sciencedirect.com/science/article/pii/S009286742030120X"),
276
-
277
- # Pattern: Major publisher (Wiley).
278
- ("wiley", "https://onlinelibrary.wiley.com/doi/full/10.1111/j.1365-2966.2006.10766.x"),
279
-
280
- # Case: A URL that should NOT match any translator. Tests the graceful failure case.
281
- ("no_match", "https://www.google.com"),
282
- ]
283
-
284
- # --- Pytest Fixtures ---
285
-
286
- @pytest.fixture(scope="session")
287
- def event_loop():
288
- """Create an instance of the default event loop for the session."""
289
- loop = asyncio.get_event_loop_policy().new_event_loop()
290
- yield loop
291
- loop.close()
292
-
293
- @pytest.fixture(scope="session")
294
- def runner() -> ZoteroTranslatorRunner:
295
- """Provides a single instance of the ZoteroTranslatorRunner for all tests."""
296
- print("\n--- Initializing ZoteroTranslatorRunner ---")
297
- return ZoteroTranslatorRunner()
298
-
299
- @pytest.fixture(scope="session")
300
- async def browser() -> Browser:
301
- """Launches a single browser instance for the entire test session."""
302
- async with async_playwright() as p:
303
- print("\n--- Launching Browser ---")
304
- browser_instance = await p.chromium.launch(headless=True)
305
- yield browser_instance
306
- print("\n--- Closing Browser ---")
307
- await browser_instance.close()
308
-
309
- @pytest.fixture
310
- async def page(browser: Browser) -> Page:
311
- """Creates a new page for each test case."""
312
- page = await browser.new_page()
313
- yield page
314
- await page.close()
315
-
316
-
317
- # --- Test Functions ---
318
-
319
- @pytest.mark.parametrize("test_id, url", TEST_CASES)
320
- async def test_translator_execution(runner: ZoteroTranslatorRunner, page: Page, test_id: str, url: str):
321
- """
322
- Tests the Zotero runner against a specific URL.
323
-
324
- Args:
325
- runner: The ZoteroTranslatorRunner instance.
326
- page: The Playwright page object for the test.
327
- test_id: A friendly name for the test case.
328
- url: The URL to test the translator against.
329
- """
330
- print(f"\n[Testing: {test_id}] Navigating to: {url}")
331
-
332
- try:
333
- await page.goto(url, wait_until="domcontentloaded", timeout=60000)
334
- # Add a small delay for dynamically loaded content to appear
335
- await page.wait_for_timeout(3000)
336
- except Exception as e:
337
- pytest.fail(f"Failed to navigate to {url}: {e}")
338
-
339
- # Execute the translator runner
340
- pdf_urls = await runner.extract_urls_pdf_async(page)
341
-
342
- # Assert the expected outcome
343
- if test_id == "no_match":
344
- assert pdf_urls is not None, "Runner should not crash on no match"
345
- assert len(pdf_urls) == 0, f"Expected no URLs for {test_id}, but found {len(pdf_urls)}"
346
- print(f"✅ [SUCCESS: {test_id}] Correctly found no matching translator.")
347
- else:
348
- assert pdf_urls is not None, "Runner should return a list, not None"
349
- assert len(pdf_urls) > 0, f"Expected at least one PDF URL for {test_id}, but found none."
350
-
351
- first_url = pdf_urls[0]
352
- assert isinstance(first_url, str), "Result should be a list of strings"
353
- assert "pdf" in first_url.lower(), f"Expected 'pdf' in the URL, but got: {first_url}"
354
-
355
- print(f"✅ [SUCCESS: {test_id}] Found {len(pdf_urls)} PDF URL(s). First URL: {first_url}")
356
-
357
- # To run this script directly for demonstration purposes
358
- if __name__ == "__main__":
359
- print("This is a pytest script. To run the tests, execute 'pytest' in your terminal.")
360
- print("Example Test Cases:")
361
- for test_id, url in TEST_CASES:
362
- print(f"- {test_id.capitalize()}: {url}")
363
-
364
-
365
- #!/usr/bin/env python3
366
- # -*- coding: utf-8 -*-
367
- # File: test_zotero_runner.py
368
- # ----------------------------------------
369
- """
370
- Test Suite for ZoteroTranslatorRunner.
371
-
372
- This script uses pytest to validate that the ZoteroTranslatorRunner can
373
- correctly execute translators from various publishers with different internal
374
- architectures (e.g., global functions vs. object-oriented methods).
375
-
376
- Usage:
377
- 1. Make sure you have pytest and pytest-asyncio installed:
378
- pip install pytest pytest-asyncio playwright
379
- playwright install
380
- 2. Place this file in a 'tests' directory alongside your project source.
381
- 3. Make sure your _ZoteroTranslatorRunner.py is importable.
382
- 4. Run the tests from your project's root directory:
383
- pytest
384
- """
385
-
386
- import asyncio
387
- import pytest
388
- from playwright.async_api import Page, Browser, async_playwright
389
-
390
- # Note: ZoteroTranslatorRunner is now deprecated. Use the Python-based zotero_translators instead.
391
- # Old location (deprecated): from scitex.scholar.url.helpers.finders._ZoteroTranslatorRunner import ZoteroTranslatorRunner
392
- # New location: Use scitex.scholar.url.strategies.zotero_translators for Python-based implementation
393
-
394
- # --- Test Cases ---
395
- # A curated list of URLs that represent different publishers and translator patterns.
396
- # Each tuple contains: (test_id, url)
397
- TEST_CASES = [
398
- # --- Tier 1: Core Academic Publishers & Platforms ---
399
- ("frontiers", "https://www.frontiersin.org/journals/neuroscience/articles/10.3389/fnins.2019.00573/full"),
400
- ("arxiv", "https://arxiv.org/abs/2103.14030"),
401
- ("nature", "https://www.nature.com/articles/s41586-021-03372-6"),
402
- ("sciencedirect_openaccess", "https://www.sciencedirect.com/science/article/pii/S009286742030120X"),
403
- ("wiley", "https://onlinelibrary.wiley.com/doi/full/10.1111/j.1365-2966.2006.10766.x"),
404
- ("taylor_and_francis", "https://www.tandfonline.com/doi/full/10.1080/09540261.2021.1897716"),
405
- ("sage", "https://journals.sagepub.com/doi/full/10.1177/0002716220987979"),
406
- ("springer", "https://link.springer.com/article/10.1007/s00221-021-06089-y"),
407
- ("pubmed", "https://pubmed.ncbi.nlm.nih.gov/33758224/"),
408
- ("jstor", "https://www.jstor.org/stable/10.5325/jafrireli.14.1.0001"),
409
- ("acm_digital_library", "https://dl.acm.org/doi/10.1145/3411764.3445623"),
410
- ("acs_publications", "https://pubs.acs.org/doi/10.1021/jacs.0c12533"),
411
- ("ieee_xplore", "https://ieeexplore.ieee.org/document/9349473"),
412
- ("biomed_central", "https://genomebiology.biomedcentral.com/articles/10.1186/s13059-021-02262-1"),
413
- ("plos", "https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0248220"),
414
- ("project_muse", "https://muse.jhu.edu/article/786236"),
415
- ("biorxiv_highwire", "https://www.biorxiv.org/content/10.1101/2021.03.11.434931v1"),
416
-
417
- # --- Tier 2: Expanded Academic & Research Sources ---
418
- ("oxford_university_press", "https://academic.oup.com/mnras/article/372/2/643/1067311"),
419
- ("cambridge_core", "https://www.cambridge.org/core/journals/international-organization/article/abs/power-and-plenty-in-the-first-millennium-ad/A55A51C6A531918118A51A25A39D6582"),
420
- ("google_scholar", "https://scholar.google.com/scholar?hl=en&as_sdt=0%2C5&q=deep+learning+for+natural+language+processing&btnG="),
421
- ("semantic_scholar", "https://www.semanticscholar.org/paper/Attention-Is-All-You-Need-Vaswani-Shazeer/204e3073870fae3d05bcbc2f6a8e263d9b72e776"),
422
- ("researchgate", "https://www.researchgate.net/publication/322459231_BERT_Pre-training_of_Deep_Bidirectional_Transformers_for_Language_Understanding"),
423
- ("nasa_ads", "https://ui.adsabs.harvard.edu/abs/2017Natur.549...80K/abstract"),
424
- ("elife", "https://elifesciences.org/articles/65774"),
425
- ("mdpi", "https://www.mdpi.com/1422-0067/22/6/2913"),
426
-
427
- # --- Tier 3: News, Media, and Archives ---
428
- ("guardian", "https://www.theguardian.com/science/2021/mar/11/new-light-shed-on-mystery-of-great-unconformity-in-grand-canyon"),
429
- ("nytimes", "https://www.nytimes.com/2021/03/10/science/ancient-dna-mammoths.html"),
430
- ("internet_archive", "https://archive.org/details/TheAdventuresOfTomSawyer_201303"),
431
- ("bbc_news", "https://www.bbc.com/news/science-environment-56328948"),
432
- ("reuters", "https://www.reuters.com/lifestyle/science/scientists-find-oldest-known-dna-ancient-mammoth-teeth-2021-02-17/"),
433
- ("wired", "https://www.wired.com/story/the-teeny-tiny-master-of-the-energy-universe/"),
434
- ("youtube", "https://www.youtube.com/watch?v=1t_Co0g_t4Y"), # Test for video metadata
435
-
436
- # --- Tier 4: Government, Institutional, and Niche Repositories ---
437
- ("world_bank_okr", "https://openknowledge.worldbank.org/handle/10986/35223"),
438
- ("github", "https://github.com/zotero/zotero"), # Test for software citation
439
- ("imdb", "https://www.imdb.com/title/tt0111161/"), # Test for film metadata
440
- ("wikipedia", "https://en.wikipedia.org/wiki/Zotero"), # Test for encyclopedia articles
441
- ("hathitrust", "https://babel.hathitrust.org/cgi/pt?id=uc1.b4000000&view=1up&seq=7"),
442
- ("dpla", "https://dp.la/item/05001541315c147233a0f6b8b98a39e3"), # Digital Public Library of America
443
-
444
- # --- Tier 5: International Sources ---
445
- ("cnki", "https://en.cnki.com.cn/Article_en/CJFDTotal-ZGNY202102001.htm"), # China National Knowledge Infrastructure
446
- ("ciNii", "https://ci.nii.ac.jp/naid/130007997939"), # Japanese Institutional Repositories
447
- ("scielo", "https://www.scielo.br/j/rbz/a/F9S3gY8YxGqXyQ5Z8zW3vXg/?lang=en"), # SciELO Brazil
448
-
449
- # --- Final Validation: No Match Case ---
450
- ("no_match", "https://www.google.com"),
451
- ]
452
-
453
- # --- Pytest Fixtures ---
454
-
455
- @pytest.fixture(scope="session")
456
- def event_loop():
457
- """Create an instance of the default event loop for the session."""
458
- loop = asyncio.get_event_loop_policy().new_event_loop()
459
- yield loop
460
- loop.close()
461
-
462
- @pytest.fixture(scope="session")
463
- def runner() -> ZoteroTranslatorRunner:
464
- """Provides a single instance of the ZoteroTranslatorRunner for all tests."""
465
- print("\n--- Initializing ZoteroTranslatorRunner ---")
466
- return ZoteroTranslatorRunner()
467
-
468
- @pytest.fixture(scope="session")
469
- async def browser() -> Browser:
470
- """Launches a single browser instance for the entire test session."""
471
- async with async_playwright() as p:
472
- print("\n--- Launching Browser ---")
473
- browser_instance = await p.chromium.launch(headless=True)
474
- yield browser_instance
475
- print("\n--- Closing Browser ---")
476
- await browser_instance.close()
477
-
478
- @pytest.fixture
479
- async def page(browser: Browser) -> Page:
480
- """Creates a new page for each test case."""
481
- page = await browser.new_page()
482
- yield page
483
- await page.close()
484
-
485
-
486
- # --- Test Functions ---
487
-
488
- @pytest.mark.parametrize("test_id, url", TEST_CASES)
489
- async def test_translator_execution(runner: ZoteroTranslatorRunner, page: Page, test_id: str, url: str):
490
- """
491
- Tests the Zotero runner against a specific URL.
492
-
493
- Args:
494
- runner: The ZoteroTranslatorRunner instance.
495
- page: The Playwright page object for the test.
496
- test_id: A friendly name for the test case.
497
- url: The URL to test the translator against.
498
- """
499
- print(f"\n[Testing: {test_id}] Navigating to: {url}")
500
-
501
- try:
502
- await page.goto(url, wait_until="domcontentloaded", timeout=90000)
503
- # Add a longer delay for complex sites or those with anti-bot measures
504
- await page.wait_for_timeout(5000)
505
- except Exception as e:
506
- pytest.fail(f"Failed to navigate to {url}: {e}")
507
-
508
- # Execute the translator runner
509
- extracted_urls = await runner.extract_urls_pdf_async(page)
510
-
511
- # Assert the expected outcome
512
- if test_id == "no_match":
513
- assert extracted_urls is not None, "Runner should not crash on no match"
514
- assert len(extracted_urls) == 0, f"Expected no URLs for {test_id}, but found {len(extracted_urls)}"
515
- print(f"✅ [SUCCESS: {test_id}] Correctly found no matching translator.")
516
- else:
517
- assert extracted_urls is not None, "Runner should return a list, not None"
518
- assert len(extracted_urls) > 0, f"Expected at least one URL for {test_id}, but found none."
519
-
520
- first_url = extracted_urls[0]
521
- assert isinstance(first_url, str), "Result should be a list of strings"
522
-
523
- # For non-academic or non-document sources, a PDF link might not exist.
524
- # We'll assert that a URL was found, but only check for 'pdf' in relevant academic sources.
525
- is_academic_document = test_id not in ["guardian", "nytimes", "internet_archive", "bbc_news", "reuters", "wired", "youtube", "github", "imdb", "wikipedia", "dpla"]
526
- if is_academic_document:
527
- # Some academic pages link to the abstract/full-text HTML first.
528
- # A successful run is finding *any* relevant link, not strictly a PDF.
529
- # We will check if the URL is at least a plausible document link.
530
- assert any(kw in first_url.lower() for kw in ["pdf", "doi", "abs", "full", "content"]), \
531
- f"Expected a document-like URL for {test_id}, but got: {first_url}"
532
-
533
- print(f"✅ [SUCCESS: {test_id}] Found {len(extracted_urls)} URL(s). First URL: {first_url}")
534
-
535
- # To run this script directly for demonstration purposes
536
- if __name__ == "__main__":
537
- print("This is a pytest script. To run the tests, execute 'pytest' in your terminal.")
538
- print("Example Test Cases:")
539
- for test_id, url in TEST_CASES:
540
- print(f"- {test_id.capitalize()}: {url}")
541
-
542
-
543
-
544
-
545
-
546
-
547
-
548
-
549
-
550
-
551
-
552
-
553
-
554
- could you check test cases in the javascript contents? I think we can make use of them to automate test in python as well
555
-
556
-
557
-
558
- Show thinking
559
- Of course. You've pointed out a fantastic feature of the Zotero translator files that we can absolutely leverage. Many of the .js files contain their own built-in test cases, which are a goldmine for creating a truly comprehensive and automated test suite.
560
-
561
- Your idea to use these is excellent because it allows us to:
562
-
563
- Automate Test Creation: We don't have to manually find URLs for every single translator.
564
-
565
- Verify Exact Outcomes: The embedded tests often specify the exact metadata that should be extracted, allowing for much more precise assertions than just checking if a PDF URL was found.
566
-
567
- Ensure Long-Term Stability: As you update your runner or the translators themselves, this automated suite will immediately catch any regressions.
568
-
569
- ## The Automated Approach
570
- Here is the strategy to integrate these embedded test cases into your Python test script:
571
-
572
- Discover Translators: The script will first scan your zotero_translators directory to find all .js files.
573
-
574
- Parse Embedded Tests: For each file, it will read the content and look for the /** BEGIN TEST CASES **/ block. It will then parse the JSON array found inside.
575
-
576
- Dynamically Generate Pytest Cases: The script will dynamically create parameterized test cases for pytest based on the URLs and expected outcomes from the parsed JSON.
577
-
578
- Execute and Assert: The existing pytest framework will then run these generated tests. The assertions will be modified to check not just for success, but for the correctness of the extracted data when available.
579
-
580
- This makes the entire process scalable and self-maintaining.
581
-
582
- ## The Enhanced pytest Script
583
- I've modified the test_zotero_runner.py script to automatically discover and use these embedded test cases. This new version is much more powerful.
584
-
585
-
586
- ``` python
587
- #!/usr/bin/env python3
588
- # -*- coding: utf-8 -*-
589
- # File: test_zotero_runner.py
590
- # ----------------------------------------
591
- """
592
- Comprehensive Test Suite for ZoteroTranslatorRunner.
593
-
594
- This script uses pytest to validate that the ZoteroTranslatorRunner can
595
- correctly execute translators. It dynamically discovers translators and their
596
- embedded test cases, creating a robust and automated testing framework.
597
-
598
- Usage:
599
- 1. Make sure you have pytest and pytest-asyncio installed:
600
- pip install pytest pytest-asyncio playwright
601
- playwright install
602
- 2. Place this file in a 'tests' directory.
603
- 3. Ensure your _ZoteroTranslatorRunner.py and the 'zotero_translators'
604
- directory are accessible from your project root.
605
- 4. Run the tests from your project's root directory:
606
- pytest
607
- """
608
-
609
- import asyncio
610
- import pytest
611
- import os
612
- import json
613
- import re
614
- from playwright.async_api import Page, Browser, async_playwright
615
-
616
- # Note: ZoteroTranslatorRunner is now deprecated. Use the Python-based zotero_translators instead.
617
- # Old location (deprecated): from scitex.scholar.url.helpers.finders._ZoteroTranslatorRunner import ZoteroTranslatorRunner
618
- # New location: Use scitex.scholar.url.strategies.zotero_translators for Python-based implementation
619
-
620
- # --- Constants ---
621
- TRANSLATORS_DIR = os.path.join(os.path.dirname(__file__), '..', 'src', 'scitex', 'scholar', 'url', 'strategies', 'zotero_translators')
622
-
623
- # --- Test Case Discovery ---
624
-
625
- def discover_translator_test_cases():
626
- """
627
- Scans the translators directory, parses embedded test cases from each .js file,
628
- and yields them for pytest parametrization.
629
- """
630
- if not os.path.isdir(TRANSLATORS_DIR):
631
- print(f"\nWarning: Translators directory not found at {TRANSLATORS_DIR}")
632
- return
633
-
634
- for filename in os.listdir(TRANSLATORS_DIR):
635
- if filename.endswith(".js"):
636
- filepath = os.path.join(TRANSLATORS_DIR, filename)
637
- with open(filepath, 'r', encoding='utf-8') as f:
638
- content = f.read()
639
- # Use a non-greedy match to find the test case block
640
- match = re.search(r'/\*\* BEGIN TEST CASES \*\*/\s*(.*?)\s*/\*\* END TEST CASES \*\*/', content, re.DOTALL)
641
- if match:
642
- test_case_json_str = match.group(1)
643
- try:
644
- # Some test cases are not valid JSON arrays, but a series of objects.
645
- # We'll wrap them in brackets to handle this.
646
- if not test_case_json_str.strip().startswith('['):
647
- test_case_json_str = f"[{test_case_json_str}]"
648
-
649
- test_cases = json.loads(test_case_json_str)
650
- for i, test_case in enumerate(test_cases):
651
- if test_case.get("type") == "web" and test_case.get("url"):
652
- test_id = f"{filename.replace('.js', '')}-{i}"
653
- yield pytest.param(test_id, test_case['url'], test_case['items'], id=test_id)
654
- except json.JSONDecodeError as e:
655
- print(f"\nWarning: Could not parse test cases in {filename}: {e}")
656
-
657
-
658
- # --- Pytest Fixtures ---
659
-
660
- @pytest.fixture(scope="session")
661
- def event_loop():
662
- loop = asyncio.get_event_loop_policy().new_event_loop()
663
- yield loop
664
- loop.close()
665
-
666
- @pytest.fixture(scope="session")
667
- def runner() -> ZoteroTranslatorRunner:
668
- print("\n--- Initializing ZoteroTranslatorRunner ---")
669
- return ZoteroTranslatorRunner()
670
-
671
- @pytest.fixture(scope="session")
672
- async def browser() -> Browser:
673
- async with async_playwright() as p:
674
- print("\n--- Launching Browser ---")
675
- browser_instance = await p.chromium.launch(headless=True)
676
- yield browser_instance
677
- print("\n--- Closing Browser ---")
678
- await browser_instance.close()
679
-
680
- @pytest.fixture
681
- async def page(browser: Browser) -> Page:
682
- page = await browser.new_page()
683
- yield page
684
- await page.close()
685
-
686
-
687
- # --- Test Functions ---
688
-
689
- @pytest.mark.parametrize("test_id, url, expected_items", discover_translator_test_cases())
690
- async def test_translator_execution(runner: ZoteroTranslatorRunner, page: Page, test_id: str, url: str, expected_items):
691
- """
692
- Tests the Zotero runner against a specific URL from an embedded test case.
693
- """
694
- print(f"\n[Testing: {test_id}] Navigating to: {url}")
695
-
696
- try:
697
- await page.goto(url, wait_until="domcontentloaded", timeout=60000)
698
- await page.wait_for_timeout(3000)
699
- except Exception as e:
700
- pytest.fail(f"Failed to navigate to {url}: {e}")
701
-
702
- # Execute the translator runner
703
- extracted_urls = await runner.extract_urls_pdf_async(page)
704
-
705
- # Assert the expected outcome based on the embedded test case
706
- if expected_items == "multiple":
707
- assert extracted_urls is not None, "Runner should not crash"
708
- assert len(extracted_urls) > 0, f"Expected multiple items for {test_id}, but found none."
709
- print(f"✅ [SUCCESS: {test_id}] Correctly identified as multiple.")
710
- elif isinstance(expected_items, list) and len(expected_items) == 0:
711
- assert len(extracted_urls) == 0, f"Expected no items for {test_id}, but found {len(extracted_urls)}."
712
- print(f"✅ [SUCCESS: {test_id}] Correctly found no items.")
713
- elif isinstance(expected_items, list) and len(expected_items) > 0:
714
- assert extracted_urls is not None, "Runner should return a list, not None"
715
- assert len(extracted_urls) > 0, f"Expected at least one URL for {test_id}, but found none."
716
-
717
- first_url = extracted_urls[0]
718
- assert isinstance(first_url, str), "Result should be a list of strings"
719
-
720
- # A simple check for now, can be expanded to compare metadata
721
- print(f"✅ [SUCCESS: {test_id}] Found {len(extracted_urls)} URL(s). First URL: {first_url}")
722
- else:
723
- # This covers cases where 'items' might be something else, like a boolean.
724
- # We can add more specific assertions here as needed.
725
- print(f"✅ [SKIPPED: {test_id}] Non-standard 'items' field in test case: {expected_items}")
726
-
727
-
728
- if __name__ == "__main__":
729
- print("This is a pytest script. To run the tests, execute 'pytest' in your terminal.")
730
-
731
-
732
- Yes, the translatorType in the header of each JavaScript file is a crucial piece of metadata that tells Zotero what kind of translator it is and how it should be used. It's a numeric code where different numbers (and their combinations) represent different functionalities.
733
-
734
- Based on your search results, here is a breakdown of the patterns and what they mean.
735
-
736
- Translator Type Categories
737
- The translatorType is a bitwise flag. This means that a single number can represent multiple capabilities by adding up the values of the types it includes.
738
-
739
- "translatorType": 4 (Web Scraper)
740
-
741
- Meaning: This is by far the most common type in your collection. It signifies a standard web translator designed to run on a live webpage.
742
-
743
- Function: It uses the detectWeb() and doWeb() entry points to scrape metadata directly from the HTML of a webpage.
744
-
745
- Your Use Case: These are the primary translators your Python runner is designed to execute.
746
-
747
- "translatorType": 1 (Import)
748
-
749
- Meaning: This is an import translator. It's not designed to read a live webpage.
750
-
751
- Function: Its purpose is to parse a file or a block of text that is already in a structured format (like BibTeX, RIS, or MARC) and convert it into Zotero items. For example, BibTeX.js would be an import translator.
752
-
753
- Your Use Case: Your runner would generally not use these, as you are starting from a URL, not a text file.
754
-
755
- "translatorType": 2 (Export)
756
-
757
- Meaning: This is an export translator.
758
-
759
- Function: It does the reverse of an import translator. It takes Zotero items and converts them into a specific text-based format (like a BibTeX file or a formatted bibliography). BibLaTeX.js is a perfect example.
760
-
761
- Your Use Case: These are not relevant to your scraping task.
762
-
763
- "translatorType": 8 (Search)
764
-
765
- Meaning: This is a search translator.
766
-
767
- Function: It's designed to work with library database search protocols like SRU or Z39.50. It doesn't scrape a webpage but rather sends a structured query to a database and parses the structured response. Your ADS Bibcode.js and various ISBN translators fall into this category.
768
-
769
- Your Use Case: Your current runner doesn't support this, as it would require implementing the specific search protocols.
770
-
771
- "translatorType": 12 (Web Scraper + Search)
772
-
773
- Meaning: This is a hybrid translator. The number 12 is the sum of 4 (Web) + 8 (Search).
774
-
775
- Function: This translator can both scrape a live webpage and perform a direct search query. PubMed.js and arXiv.org.js are great examples. They can scrape a single article page but can also be used by Zotero to search the entire PubMed or arXiv database.
776
-
777
- Your Use Case: Your runner can successfully use the web scraping (4) part of these translators.
778
-
779
- Summary of Patterns
780
- For your project, the most important distinction is that your runner is built to handle translators where the type is 4 or includes 4 (like 12). The other types (1, 2, 3, 8) are for different functions within Zotero (importing, exporting, and specialized searching) and won't be executed by your current web-based automation script.
781
-
782
-
783
-
784
-
785
-
786
-
787
-
788
- so, all we need is concatelate on 4 and 12;
789
-
790
-
791
-
792
- Then, another question is that do you think how many and which translators are vital for us?
793
-
794
-
795
-
796
-
797
- Show thinking
798
- You've asked two excellent strategic questions. Here’s a breakdown.
799
-
800
- Focusing on Translator Types 4 and 12
801
- Yes, your understanding is spot on. For your specific goal of building a web scraper that starts from a URL, you should focus exclusively on translators with translatorType 4 (Web) and 12 (Web + Search).
802
-
803
- Why? Your runner is designed to operate on live webpages. Only translators marked as "Web" (type 4) are built for this purpose. Type 12 is just a "Web" translator that also has a "Search" capability, so it's perfectly compatible with your system.
804
-
805
- Action: You can modify your Python script that loads the translators to simply skip any file where the translatorType is not 4 or 12. This will make your system more efficient and prevent potential errors from trying to run incompatible translator types.
806
-
807
- Which Translators are Vital for Academic Use?
808
- You have over 700 translators, but you don't need to ensure all of them work perfectly to have a highly effective system. The Pareto Principle (80/20 rule) applies here: a small number of key translators will cover the vast majority of academic sources you'll encounter.
809
-
810
- Here is a prioritized list of the most vital translators to focus on for academic purposes:
811
-
812
- Tier 1: The Core Giants (Must-Haves)
813
- These platforms host a massive percentage of all modern scientific literature. Ensuring these work flawlessly is your top priority.
814
-
815
- ScienceDirect.js: For Elsevier journals.
816
-
817
- Springer Link.js: For Springer content.
818
-
819
- Wiley Online Library.js: For Wiley journals.
820
-
821
- Taylor and Francis+NEJM.js: For Taylor & Francis and the New England Journal of Medicine.
822
-
823
- SAGE Journals.js: For SAGE publications.
824
-
825
- Tier 2: Major Aggregators & Databases
826
- These are the central hubs where researchers find papers from many different publishers.
827
-
828
- PubMed.js: The essential database for all biomedical research.
829
-
830
- Google Scholar.js: The most widely used academic search engine.
831
-
832
- JSTOR.js: A critical archive for humanities and social sciences.
833
-
834
- arXiv.org.js: The main preprint server for physics, computer science, and math.
835
-
836
- Project MUSE.js: Another key aggregator for humanities and social sciences.
837
-
838
- Tier 3: High-Impact Publishers & Societies
839
- These are individual publishers that are extremely influential and common.
840
-
841
- Nature Publishing Group.js: For Nature and its associated journals.
842
-
843
- ACS Publications.js: American Chemical Society.
844
-
845
- ACM Digital Library.js: Association for Computing Machinery.
846
-
847
- IEEE Xplore.js: Institute of Electrical and Electronics Engineers.
848
-
849
- Oxford University Press.js
850
-
851
- Cambridge Core.js
852
-
853
- Tier 4: Key Platforms & Open Access Hubs
854
- These translators cover platforms that host many journals or are crucial for finding open-access versions.
855
-
856
- HighWire 2.0.js: A platform used by many societies (and for preprint servers like bioRxiv).
857
-
858
- Atypon Journals.js: Another very large platform provider.
859
-
860
- BioMed Central.js and PLoS Journals.js: Major open-access publishers.
861
-
862
- By focusing your testing and development efforts on this "vital list" of about 20-25 translators, you will likely cover over 80% of the academic articles your system will need to process.
863
- ```
864
-
865
- <!-- EOF -->