scitex 2.15.2__py3-none-any.whl → 2.15.4__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 (77) hide show
  1. scitex/_mcp_resources/__init__.py +2 -0
  2. scitex/_mcp_resources/_scholar.py +148 -0
  3. scitex/_mcp_tools/scholar.py +50 -99
  4. scitex/_mcp_tools/social.py +15 -232
  5. scitex/_mcp_tools/writer.py +7 -17
  6. scitex/canvas/mcp_server.py +16 -3
  7. scitex/capture/mcp_server.py +16 -2
  8. scitex/cli/audio.py +90 -20
  9. scitex/cli/capture.py +120 -0
  10. scitex/cli/introspect.py +19 -12
  11. scitex/cli/plt.py +78 -21
  12. scitex/cli/scholar/__init__.py +160 -2
  13. scitex/cli/scholar/_crossref_scitex.py +25 -266
  14. scitex/cli/scholar/_openalex_scitex.py +55 -0
  15. scitex/cli/social.py +63 -22
  16. scitex/cli/stats.py +121 -3
  17. scitex/cli/writer.py +49 -423
  18. scitex/dev/plt/data/mpl/PLOTTING_FUNCTIONS.yaml +90 -0
  19. scitex/dev/plt/data/mpl/PLOTTING_SIGNATURES.yaml +1571 -0
  20. scitex/dev/plt/data/mpl/PLOTTING_SIGNATURES_DETAILED.yaml +6262 -0
  21. scitex/dev/plt/data/mpl/SIGNATURES_FLATTENED.yaml +1274 -0
  22. scitex/dev/plt/data/mpl/dir_ax.txt +459 -0
  23. scitex/introspect/_list_api.py +5 -2
  24. scitex/plt/docs/EXTERNAL_PACKAGE_BRANDING.md +2 -2
  25. scitex/scholar/__init__.py +14 -9
  26. scitex/scholar/_mcp/crossref_tool_schemas.py +133 -0
  27. scitex/scholar/_mcp/openalex_handlers.py +212 -0
  28. scitex/scholar/_mcp/openalex_tool_schemas.py +96 -0
  29. scitex/scholar/_mcp/tool_schemas.py +16 -1
  30. scitex/scholar/data/.gitkeep +0 -0
  31. scitex/scholar/data/README.md +44 -0
  32. scitex/scholar/data/bib_files/bibliography.bib +1952 -0
  33. scitex/scholar/data/bib_files/neurovista.bib +277 -0
  34. scitex/scholar/data/bib_files/neurovista_enriched.bib +441 -0
  35. scitex/scholar/data/bib_files/neurovista_enriched_enriched.bib +441 -0
  36. scitex/scholar/data/bib_files/neurovista_processed.bib +338 -0
  37. scitex/scholar/data/bib_files/openaccess.bib +89 -0
  38. scitex/scholar/data/bib_files/pac-seizure_prediction_enriched.bib +2178 -0
  39. scitex/scholar/data/bib_files/pac.bib +698 -0
  40. scitex/scholar/data/bib_files/pac_enriched.bib +1061 -0
  41. scitex/scholar/data/bib_files/pac_processed.bib +0 -0
  42. scitex/scholar/data/bib_files/pac_titles.txt +75 -0
  43. scitex/scholar/data/bib_files/paywalled.bib +98 -0
  44. scitex/scholar/data/bib_files/related-papers-by-coauthors.bib +58 -0
  45. scitex/scholar/data/bib_files/related-papers-by-coauthors_enriched.bib +87 -0
  46. scitex/scholar/data/bib_files/seizure_prediction.bib +694 -0
  47. scitex/scholar/data/bib_files/seizure_prediction_processed.bib +0 -0
  48. scitex/scholar/data/bib_files/test_complete_enriched.bib +437 -0
  49. scitex/scholar/data/bib_files/test_final_enriched.bib +437 -0
  50. scitex/scholar/data/bib_files/test_seizure.bib +46 -0
  51. scitex/scholar/data/impact_factor/JCR_IF_2022.xlsx +0 -0
  52. scitex/scholar/data/impact_factor/JCR_IF_2024.db +0 -0
  53. scitex/scholar/data/impact_factor/JCR_IF_2024.xlsx +0 -0
  54. scitex/scholar/data/impact_factor/JCR_IF_2024_v01.db +0 -0
  55. scitex/scholar/data/impact_factor.db +0 -0
  56. scitex/scholar/docs/EXTERNAL_PACKAGE_BRANDING.md +2 -2
  57. scitex/scholar/local_dbs/__init__.py +31 -0
  58. scitex/scholar/local_dbs/crossref_scitex.py +30 -0
  59. scitex/scholar/local_dbs/openalex_scitex.py +30 -0
  60. scitex/scholar/mcp_server.py +59 -4
  61. scitex/social/docs/EXTERNAL_PACKAGE_BRANDING.md +2 -2
  62. scitex/stats/mcp_server.py +16 -3
  63. scitex/template/mcp_server.py +16 -3
  64. scitex/ui/mcp_server.py +16 -3
  65. scitex/writer/__init__.py +43 -34
  66. {scitex-2.15.2.dist-info → scitex-2.15.4.dist-info}/METADATA +22 -3
  67. {scitex-2.15.2.dist-info → scitex-2.15.4.dist-info}/RECORD +70 -38
  68. scitex/scholar/crossref_scitex.py +0 -367
  69. scitex/scholar/url_finder/.tmp/open_url/KNOWN_RESOLVERS.py +0 -462
  70. scitex/scholar/url_finder/.tmp/open_url/README.md +0 -223
  71. scitex/scholar/url_finder/.tmp/open_url/_DOIToURLResolver.py +0 -694
  72. scitex/scholar/url_finder/.tmp/open_url/_OpenURLResolver.py +0 -1160
  73. scitex/scholar/url_finder/.tmp/open_url/_ResolverLinkFinder.py +0 -344
  74. scitex/scholar/url_finder/.tmp/open_url/__init__.py +0 -24
  75. {scitex-2.15.2.dist-info → scitex-2.15.4.dist-info}/WHEEL +0 -0
  76. {scitex-2.15.2.dist-info → scitex-2.15.4.dist-info}/entry_points.txt +0 -0
  77. {scitex-2.15.2.dist-info → scitex-2.15.4.dist-info}/licenses/LICENSE +0 -0
@@ -8,11 +8,12 @@ scitex/_optional_deps.py,sha256=ouMy8bw7cxl-AONRNi8xQoxwacR8irKxbcTAI18Hkzw,1014
8
8
  scitex/errors.py,sha256=Pxk8TKpGRk_QBFVB46H7k1Uxetja0OEdYjJjV_lrxRM,2874
9
9
  scitex/mcp_server.py,sha256=VNjs3N21x3_yAzfR8HhuFJJOvYOBHgvJo4tKDQdQsLE,6081
10
10
  scitex/units.py,sha256=lm2SH4PGXz-22tjUoBQhvKJDKmPD01ykSFWoCaFC384,10356
11
- scitex/_mcp_resources/__init__.py,sha256=IJlMdffFQIn7V7UDHYPxXfPchQilNCM1QEFq9tL5ZOg,1283
11
+ scitex/_mcp_resources/__init__.py,sha256=RomYv2wi1PYC8Z3ymAv46q0HygVErrSlViigLTWEuLY,1368
12
12
  scitex/_mcp_resources/_cheatsheet.py,sha256=pdwzAB3IEr7UHkFv0D0-TJGeHF6ENtuq6NHeneLgKo8,3883
13
13
  scitex/_mcp_resources/_figrecipe.py,sha256=A8oK3FwDqSNYyYI4jwfNJ2yiH_8XVnfFjoGJtuvdDLU,3581
14
14
  scitex/_mcp_resources/_formats.py,sha256=EyNZKtmX6dg6vK1Gk0EmrSSKH5d9yc3RMqZtSP-Op0I,2923
15
15
  scitex/_mcp_resources/_modules.py,sha256=17LZpOPSmr9XwgGJg2vRgEK596S5FoSYb320vgm9x-k,8702
16
+ scitex/_mcp_resources/_scholar.py,sha256=RSYt7j6bcbKtR-tOtvCtdE6J3IS8C925_c34t0Z1Es8,4689
16
17
  scitex/_mcp_resources/_session.py,sha256=lbe9W3cfPOyoq6bPOeN-jB8MwI4DnRWMpxHmpfn97SM,4590
17
18
  scitex/_mcp_tools/__init__.py,sha256=6krJPLr6ReVAkGoZR7vQHQrszr8AGW4dwWsY2EcmPkc,1229
18
19
  scitex/_mcp_tools/audio.py,sha256=LBX9YQZkNGAXfoIEFljnHRk39gTyJfdaVPCRrS6F8qE,6245
@@ -21,12 +22,12 @@ scitex/_mcp_tools/capture.py,sha256=k7pwuB1vdP-VCYjutajEZEsvVAKY-8_mEYrYGWXgOo8,
21
22
  scitex/_mcp_tools/diagram.py,sha256=pZNq0UTRlg7piq0YDD40qY5M2mqFYoRdFwmWeRCBieA,585
22
23
  scitex/_mcp_tools/introspect.py,sha256=GY9j9EUAs-CKegzfPHubPT3OGpOjcY5Rb09M3OHEIwA,6562
23
24
  scitex/_mcp_tools/plt.py,sha256=CuI6uOsyDGrLCWHWwnEKru-KCA532GVzt6rcRlxXHt8,9248
24
- scitex/_mcp_tools/scholar.py,sha256=oIo1QSyoF48pEHgaQ1PWt-N_KNf8rJCKdlmiG-8WVQ8,15243
25
- scitex/_mcp_tools/social.py,sha256=a1SueEOl8qyNMyNGQ3Z3qfYgj1Fqry2DvZqD7whMRJw,7753
25
+ scitex/_mcp_tools/scholar.py,sha256=Tp8PlcHraLvHMrQWgFgq2jdjAIM4Vsps92mVgZu9NcY,13374
26
+ scitex/_mcp_tools/social.py,sha256=wyyHCybx0tCUfIEGrGYhxj1thlH-dcIeq05TtUP9RFk,816
26
27
  scitex/_mcp_tools/stats.py,sha256=U2pGC0NTfzb0stKGafVNdgZhIYovYi6ti1EoG4f4dn4,6139
27
28
  scitex/_mcp_tools/template.py,sha256=NhfIaVYo7JvssZk_dUvzosvcc-qjnxFr69dV1DmAlgY,3102
28
29
  scitex/_mcp_tools/ui.py,sha256=MC9gA0UapD68S1uPJtWq5Zfua6IDQKV-QL3rkrzrArA,2320
29
- scitex/_mcp_tools/writer.py,sha256=-hvemUcT2rfgIx-_CUrqKpCQ3m1HRZCe_XtjOEBmAkA,1054
30
+ scitex/_mcp_tools/writer.py,sha256=uNbmenb5jMGKJnJ2hzm6JSQof2sYl1GmbCtuYcJL60k,863
30
31
  scitex/ai/README.md,sha256=EdRrmZRt2ARgVKQgKO2YqMktb9MIqZK35RHAu7NskmY,7060
31
32
  scitex/ai/__init__.py,sha256=hHNbcIXyMAjaLqCoLhyKKc6uWc5dz8jVxrfcy6bTS6A,1822
32
33
  scitex/ai/_gen_ai/_Anthropic.py,sha256=R3ZnYL5uwctrQ7jQ_bNuDbTihZu0KhPekCwl_Sl7EHo,5125
@@ -242,7 +243,7 @@ scitex/browser/stealth/__init__.py,sha256=KVbyLjm8KnM5YwyB84A3pwLdUGkANNgwpA7YL2
242
243
  scitex/canvas/README.md,sha256=jRwasTPNrmQsCyv67ul7qUIgv5xKIab1u2hi8tvlbAg,9142
243
244
  scitex/canvas/__init__.py,sha256=k_1mqbodRgy6phbhLDqRenEEnOLvueWwj0xNNYrCyd0,9380
244
245
  scitex/canvas/canvas.py,sha256=1aUjIqCzwKhGXukCQsHc-h-kqLNA9VqzIMazimqm2mA,12968
245
- scitex/canvas/mcp_server.py,sha256=Q-f8kzW-97wfrDmOo0LTYd8zXTBiiSOdJH3e4vjDDoo,4379
246
+ scitex/canvas/mcp_server.py,sha256=fBTmtXOhO60wG-e6j-Y-WE_aWykAMsajWkidZRQ6lcU,4754
246
247
  scitex/canvas/_mcp/__init__.py,sha256=FJRAr90vUCg4PJ8Sv-WzsKuM7aY93m6UR87fhk843MU,73
247
248
  scitex/canvas/_mcp/handlers.py,sha256=oVZcYfEyDBl6lEKJ7vTWnrueBO-CWOiAbGNrKVFQOww,8528
248
249
  scitex/canvas/_mcp/tool_schemas.py,sha256=Tl6CIpuW_J0QppShjZPo0DJ8wiNgLk6oHBoR74ASC7Y,8046
@@ -364,7 +365,7 @@ scitex/capture/capture.py,sha256=vDVaY2mTNxTsWbg8he78jh0NPhVULLzanREkE9EtQHE,287
364
365
  scitex/capture/cli.py,sha256=bNal0BXlAM34q9OLv1ydV9lHq95pckY0XaaxsiQTkts,7201
365
366
  scitex/capture/gif.py,sha256=Rbx-9u6zGAjImhFWp5yLm3MXCW1oaUq8OusWdPnzJAY,11278
366
367
  scitex/capture/grid.py,sha256=LQKNyP5I1UN50rCnxi0tCf7vurLLp3mwRzCoYDa10ZQ,14189
367
- scitex/capture/mcp_server.py,sha256=my57OABAsS2A5sOcCUn1PkNS8SR0MFeqP3SEHPvOzFg,37664
368
+ scitex/capture/mcp_server.py,sha256=jIRAHW48jEvhhk2NYVZifkI42s-XzkGmt7UKwmJ0xDw,38059
368
369
  scitex/capture/session.py,sha256=N-8mY6A6QmJHRCJYW4dQhrK7iVmJhYBRDt8vYyeBNYE,1972
369
370
  scitex/capture/utils.py,sha256=WyMr8aGmWqOneT4BFTvWNY-PrMPxmKLHtUEgSk59URY,21881
370
371
  scitex/capture/_mcp/__init__.py,sha256=MhQoN-oXeeZ-P34rJDluwSi45hf3sC4pVi8MfTW6LBc,286
@@ -378,30 +379,31 @@ scitex/capture/powershell/capture_window_by_handle.ps1,sha256=gkHBlpkp5unLCS55m6
378
379
  scitex/capture/powershell/detect_monitors_and_desktops.ps1,sha256=baNVdM_mF2eJUAia0dsTDnBBYE7z1yQ6igbvsDGcfig,4705
379
380
  scitex/capture/powershell/enumerate_virtual_desktops.ps1,sha256=-KF39BUYjoZBL9mqHu2dxWJGIjI9awEX2pA6GVwuEV4,1676
380
381
  scitex/cli/__init__.py,sha256=CCZvDg-IsXxaK80ktgC78gZJwBjwb4Hyzp0bIMnSwdI,2110
381
- scitex/cli/audio.py,sha256=LRi9ZVf4GdUS9dEEkIpfTdgXOR3qari1shCobRhVrJQ,10840
382
+ scitex/cli/audio.py,sha256=95YXbRrBnenIMLUg7SJggyK63lPfoEDqgI0cN_QbZ2o,12703
382
383
  scitex/cli/browser.py,sha256=UEumP-TyjenPQet5uo9sWcoNeVqI8-etbWiNR01I9oo,10260
383
- scitex/cli/capture.py,sha256=qXgABbHQXuMvehLAEI_G3QaUgKIN-GEp3_5fWVLnETs,9542
384
+ scitex/cli/capture.py,sha256=uwmuXtc-HdErSqoqMl-ZtgqVi-E_XO3XdBvhvJFc_IE,12930
384
385
  scitex/cli/cloud.py,sha256=ZghVxWaHHNz0zhTz3BnZPguGwuZjslaj-Xxerg6-_6E,21398
385
386
  scitex/cli/config.py,sha256=J-oJL9MJ8Ef0mKxlctlvRDbS7eHeOyb6BImZq_PTVbc,6216
386
387
  scitex/cli/convert.py,sha256=W6Z9gaVBTPD5BhRcHWb-v3AHYcDmqvMUetu5NusP8lE,12587
387
- scitex/cli/introspect.py,sha256=SKX6-in0_LQ30Zbla3LOoNhyUXOkJJBp7Qinx7m188E,16472
388
+ scitex/cli/introspect.py,sha256=pCXRRuQdNZMLghmSWtF9Bp_HuBspNDOq8cCeNKYdL3Q,16985
388
389
  scitex/cli/main.py,sha256=gZZgp8qHVEdUmaD3XnmIwpYp5PTsCcL_VErPc1v0z7Q,9135
389
390
  scitex/cli/mcp.py,sha256=PIIWAO3o7ixPQtXcwsnLLrh14ipHa9oPT0JhTjGFgSk,11663
390
- scitex/cli/plt.py,sha256=xbJ1tiLXk-L1Ne-6sncyXwcdZQrIBpTIqzyU40rxDz0,10086
391
+ scitex/cli/plt.py,sha256=Z1AJgPXHk9Llf4Hstlf9-Pujx2ac2nvCs_p6S_il6GI,10874
391
392
  scitex/cli/repro.py,sha256=kdqp01--8XXFPU_JBqmaCml5O7mqly76basQXQ8IGxs,7628
392
393
  scitex/cli/resource.py,sha256=eTcNybAn9NpeNxXG1oAoZWkVjzATxQ9t-Uw2pd806VE,8243
393
394
  scitex/cli/security.py,sha256=6f_3TO5E0jzWvDmIDcF1ZKWmLxsn6iTJCHVlYyPE6os,2785
394
- scitex/cli/social.py,sha256=i_s0yXj5YLiArodwSJiAdTEcSu0jvyJdt-AnjHPhT9g,9242
395
- scitex/cli/stats.py,sha256=M_poJbfCHorsgHOcplWoDZMTBPhiELnJ57ReXXDCUSU,10532
395
+ scitex/cli/social.py,sha256=fsLuU8MyAaLo8cArh0EuzHz19qo7av3N09sqD-sArho,9612
396
+ scitex/cli/stats.py,sha256=OKXE52PPYcwCY2me-vAmKD_WMaf5zftD9yRXrzGx7iI,13819
396
397
  scitex/cli/template.py,sha256=omoT2qzWtyqJYqrIqJ74uyDgoQTL667ONSbwSQU4sb8,12015
397
398
  scitex/cli/tex.py,sha256=d_Fh9PXObuyjMgQ_Ap60aXwAztJbY3Pd2SvfV92toBg,9222
398
399
  scitex/cli/web.py,sha256=_XwnlsOm2MD1eyJVycfsdki4IcDnglXTO5IkZ-eb3xA,13482
399
- scitex/cli/writer.py,sha256=TVVAJp6nmZQS3YlfHVpBBrDBuREs6fDKfRV_oaIQQZw,14249
400
- scitex/cli/scholar/__init__.py,sha256=cj65Q83IlMpWBKfw7872vAnDQWEcQRIoqhO2h-Z1FHw,3347
401
- scitex/cli/scholar/_crossref_scitex.py,sha256=gjJV7lS4H-u7F1dGZpEVsVrKC2cOHC4RcBXEKQEAhOg,9622
400
+ scitex/cli/writer.py,sha256=lApUnUQrclbufEMwD4m4MKMDg3ZkCBe0kTS9WuH4hsM,1953
401
+ scitex/cli/scholar/__init__.py,sha256=BQyPjd1jAgcHbjGPZx_amrlGOPM3UaKAdi9JyflQ9k8,8326
402
+ scitex/cli/scholar/_crossref_scitex.py,sha256=-ujYGB-KNtMCMoOBNsOl_qTEp6k6l75JeUqmUwjjG5o,1636
402
403
  scitex/cli/scholar/_fetch.py,sha256=tdRXlsTjhfdOddJwWpOZ5scGGXzhesxrXX9Ri9jm7AQ,11226
403
404
  scitex/cli/scholar/_jobs.py,sha256=hx1aoxdHaR800XC7acWE4x_pxJ7cYq6re7Zf8MxLr7E,9058
404
405
  scitex/cli/scholar/_library.py,sha256=GP3JAtfg3zwGD810BygJLN4B0-m-RqRfyt7_JHtOeT8,4468
406
+ scitex/cli/scholar/_openalex_scitex.py,sha256=-KjFYxnehgJtf4Xz35U_SJqC2zXvvkmdV0ZXThxGpQI,1559
405
407
  scitex/cli/scholar/_utils.py,sha256=SC-_wB0UFV89p-4PVdVeREbTOp6oV2ke4QRiiRzShig,770
406
408
  scitex/cloud/__init__.py,sha256=xyzKrQGDpoCMNTLNQmCZjvVQxuPlcj306Kjn3psZCNk,5064
407
409
  scitex/cloud/_matplotlib_hook.py,sha256=B5IEctAF1Rb7jvkZa5Xl8T1FuBcGiRjFxEtW_mmRz2I,3731
@@ -569,6 +571,11 @@ scitex/dev/plt/plot_stx_scatter.py,sha256=yJnZE0aL5Z0armnKyxCgdSIfmwSx0MO_BoDbzT
569
571
  scitex/dev/plt/plot_stx_shaded_line.py,sha256=Ss4RD0qxO_uH1h_NL_meSH1-_ZXfOKnV1MAT48tegnI,718
570
572
  scitex/dev/plt/plot_stx_violin.py,sha256=oEAWE4RwG7SQ3JlVuzfSbTFDF02VRb_vE4qBLU3tMu4,680
571
573
  scitex/dev/plt/plot_stx_violinplot.py,sha256=wafuzIKs9WJRfXcH4bxxuigqCh75nxcZDfFq-9P1zxA,687
574
+ scitex/dev/plt/data/mpl/PLOTTING_FUNCTIONS.yaml,sha256=1E1RfxT1QtA3M5hrqn0zynwMrhIEIpaZSAHItRBIHdI,2843
575
+ scitex/dev/plt/data/mpl/PLOTTING_SIGNATURES.yaml,sha256=ambH7kkBUivqVvo7thcMfs-ZvXAdaXtEEYuPTAvSOls,28660
576
+ scitex/dev/plt/data/mpl/PLOTTING_SIGNATURES_DETAILED.yaml,sha256=xzytlIhc9V3Aartc-HzzlDVvcOd7QGuzIkIe9X75sdk,181125
577
+ scitex/dev/plt/data/mpl/SIGNATURES_FLATTENED.yaml,sha256=kvV9iS2L3x3Et7LWK9Dyo_pQBnK2eTu13EXNS619ePM,27684
578
+ scitex/dev/plt/data/mpl/dir_ax.txt,sha256=HuMRJLF5pw58SaNrKkX8eeAj19k219bV7EVGzSPOCUU,5686
572
579
  scitex/dev/plt/demo_plotters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
573
580
  scitex/dev/plt/demo_plotters/plot_mpl_axhline.py,sha256=ECGTgIGgpU82llOHVqur0gzSl1NUHjvyaB85cZewKW8,707
574
581
  scitex/dev/plt/demo_plotters/plot_mpl_axhspan.py,sha256=WetEGSzRbppTvn5VprGNglKuzLMoM8tFXg_N0jMFgFM,704
@@ -740,7 +747,7 @@ scitex/introspect/_core.py,sha256=7k1qGSLyGnbIkQKQchkmL7eZrFDtvLgNkEnP2K6dJ4Y,12
740
747
  scitex/introspect/_docstring.py,sha256=LMrvVnUAcDnix0KB9ZTG3tu-gFvsnfWaxK2ehZyOiY8,3352
741
748
  scitex/introspect/_examples.py,sha256=VrvFLCF0H8kNii40imgQXoHfEu3_Skkq8n7OJUevYz8,3085
742
749
  scitex/introspect/_imports.py,sha256=uVBSeEREZ5eBzdPUw-uM241HuFlMLTOkW7zgJWDPwFA,6864
743
- scitex/introspect/_list_api.py,sha256=aUxs6Cayc1AJj3loGOdTZtClEHvpedoSt4jjhhgYZ2M,7657
750
+ scitex/introspect/_list_api.py,sha256=o6XbxY3w2mnFdxsH87Rwt7osFiNtJfZZKbqdp1QqpXA,7811
744
751
  scitex/introspect/_members.py,sha256=7lJ4QQY02w9l4PDMZROYingYPyM3fLa00FMknabzgBc,4100
745
752
  scitex/introspect/_resolve.py,sha256=mo3o8R8Eemxbm47UaAV3QBLRiM9hlBb1IPlp0IEvWew,2311
746
753
  scitex/introspect/_signature.py,sha256=1hUpryNn_rmAfbRtOhieURx07ZEu0isVwJ6RjxczBAo,3508
@@ -1157,7 +1164,7 @@ scitex/plt/color/_colors.py,sha256=ktPYTu4tuCm2t1W0kZPPRlAvbrtkIM3gDQslZQqWkus,4
1157
1164
  scitex/plt/color/_get_colors_from_conf_matap.py,sha256=xjk1zJIv1TR1CFY2Hg7CticWzLu0KSzXbEWn3IdZ9Ak,4071
1158
1165
  scitex/plt/color/_interpolate.py,sha256=jTprQ4hINxjYdFLlVutI2PMkjqAWjvev-jRyIA78rEQ,976
1159
1166
  scitex/plt/color/_vizualize_colors.py,sha256=e30Q6d9hqtBxGD7RCgYpZcq1n0nG66fAwnz03tqmC6I,1355
1160
- scitex/plt/docs/EXTERNAL_PACKAGE_BRANDING.md,sha256=PpuL2p009sc8UTZ_Dq0_iFWEr5I4nM-geJGFam-bzxM,4214
1167
+ scitex/plt/docs/EXTERNAL_PACKAGE_BRANDING.md,sha256=k61TlK7joYnKlKaprQ54c2qayTNBPG01NtAMDes3pX4,4214
1161
1168
  scitex/plt/docs/FIGURE_ARCHITECTURE.md,sha256=bIxyg6EHlXtPo7BQu_vzfpAPfwF6brpjgM89X-Y666U,8487
1162
1169
  scitex/plt/gallery/README.md,sha256=myOfWcrm22TOahgrWKsc0ZACjHH0r44cdWAILsaA2B0,3610
1163
1170
  scitex/plt/gallery/__init__.py,sha256=UrbUyi_Pv4-vHxuhZVhz82Zmnlezd3gjOV8NpmcWOqM,3503
@@ -1273,17 +1280,19 @@ scitex/schema/_theme.py,sha256=1AWmJy7vim2lmIJlbjv4BCLxKmNeqw0WGEGr2z_U9Kw,10192
1273
1280
  scitex/schema/_validation.py,sha256=8u4dVVfAhCzdRtcpqFxChumRMyHJQfBQgnyf1TpsQ_s,13747
1274
1281
  scitex/scholar/.gitignore,sha256=oYROO1p7Mia9ftRowaRu3BVNm7jdMY9O4Ro1RSgSC80,381
1275
1282
  scitex/scholar/README.md,sha256=AbE7t0qIKQY11ZSGkeQXNP_qA088q-2t-oQ3W5bDvxI,3799
1276
- scitex/scholar/__init__.py,sha256=DZm8kU5nETTv63M0IR2RHitPucO_3qTMSVrH48yqRGw,10120
1283
+ scitex/scholar/__init__.py,sha256=F7a-OTd8kqZK2vRQVhAGMTqkOGynMc7FRND_SROFTg8,10392
1277
1284
  scitex/scholar/__main__.py,sha256=U7QKol30Vsvw_Xg4tVS5F1iFU4UluKnm1Z0Bs18zgCs,9711
1278
- scitex/scholar/crossref_scitex.py,sha256=cM22iDel6N5QkTkUfx8sSyedHffqsYCYRGf4iePN2sw,8928
1279
- scitex/scholar/mcp_server.py,sha256=m-v1sjU0sJeaL0rHrihQz6alost__Koc7wyEAqP7bIY,12553
1285
+ scitex/scholar/mcp_server.py,sha256=z_b4pD2z1H2bG1B6ATt3B6e8uNBMl-MLz6a3KLnaCiw,14934
1280
1286
  scitex/scholar/_mcp/__init__.py,sha256=FJRAr90vUCg4PJ8Sv-WzsKuM7aY93m6UR87fhk843MU,73
1281
1287
  scitex/scholar/_mcp/all_handlers.py,sha256=yALfZdQhDXWPlqUB1rcncENXyVVFNDnpGqhz5iCc-5Q,1856
1282
1288
  scitex/scholar/_mcp/crossref_handlers.py,sha256=fBN9pVzQLiGT4FWoLGAOdsm-_-gwhMo1EEl0S9MlA0c,7770
1289
+ scitex/scholar/_mcp/crossref_tool_schemas.py,sha256=v1VI3I2r_LWqt4IuEJo_JvXxtdY04eZ3zk6Kvqumou4,4748
1283
1290
  scitex/scholar/_mcp/handlers.py,sha256=gMFBHPdqfWGRUDSu3wlllVBnJSzrkGm9ZUnUBhZXCY0,51088
1284
1291
  scitex/scholar/_mcp/job_handlers.py,sha256=8ZkFRG1TOq20168DIpic3VMAMzTzieg1jnaE7eXQLlU,4970
1285
1292
  scitex/scholar/_mcp/job_tool_schemas.py,sha256=xDTysuf3aLNxLO1O57sal5XcMeEstk0SB77wK9q6yVs,5777
1286
- scitex/scholar/_mcp/tool_schemas.py,sha256=AuedyrT9BOERnG_6zpLx1oVzfRs2JWaYE1RbBtDkW6g,19580
1293
+ scitex/scholar/_mcp/openalex_handlers.py,sha256=r9X1mwMqqwovrbx4pcgHQeISCbGqqW87neP6EW09Pnw,6503
1294
+ scitex/scholar/_mcp/openalex_tool_schemas.py,sha256=zu7--BZ7_aEnaJuEg-Sb1FiKNoeRthat70S9TZ70uL4,3194
1295
+ scitex/scholar/_mcp/tool_schemas.py,sha256=ng_lGqhwa_2BxByASZriDgnZSHTewvqpF6jOzqRxEZ0,19818
1287
1296
  scitex/scholar/auth/README.md,sha256=YYLVVHAgHFjoYXjWJ2SV_3toOJPSnWOs6-EMKbPIu9U,3373
1288
1297
  scitex/scholar/auth/ScholarAuthManager.py,sha256=u1t9FrTbBQyGvNmuuMprSpCLLxG0Fap-oCrm0x0iDSE,10570
1289
1298
  scitex/scholar/auth/__init__.py,sha256=kM_iLBm00U1sVBr1TuAT7dY46kZqcOCUztMykxBlxhQ,470
@@ -1377,6 +1386,32 @@ scitex/scholar/core/_mixins/_savers.py,sha256=DonIcpCaobrRTs_LAuwurYEhsUTQE9otzX
1377
1386
  scitex/scholar/core/_mixins/_search.py,sha256=8SyCtYtyyzTtMP85kFPrOZLK8PvL9dCCoOyI95N-SfI,3721
1378
1387
  scitex/scholar/core/_mixins/_services.py,sha256=rnNtDTBES6RwKJzC0Wpi0G9Xiju2pudrdrSfrftB9dM,3228
1379
1388
  scitex/scholar/core/_mixins/_url_finding.py,sha256=PawfItu2ienUW6Hj155fPT2KsKqm_sc7uukEYAXr-Rk,3241
1389
+ scitex/scholar/data/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1390
+ scitex/scholar/data/README.md,sha256=x38oaKofFr-9MdmYSX6etjt7c_37BtJ1HI2bVvGWxdc,1343
1391
+ scitex/scholar/data/impact_factor.db,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1392
+ scitex/scholar/data/bib_files/bibliography.bib,sha256=6cBOh0rNI9OpN4kOIOZMpE6jZuoEbfDJkFNgmcMDeVo,265769
1393
+ scitex/scholar/data/bib_files/neurovista.bib,sha256=NV7yU5UjkntfEJuLHSGdAzYR1GgddEQpngjQJWd5Pkc,12935
1394
+ scitex/scholar/data/bib_files/neurovista_enriched.bib,sha256=Bw7CiHo71OYVPRBO5l8bujzmy5xbExqO8Z7XYihqP98,62246
1395
+ scitex/scholar/data/bib_files/neurovista_enriched_enriched.bib,sha256=Bw7CiHo71OYVPRBO5l8bujzmy5xbExqO8Z7XYihqP98,62246
1396
+ scitex/scholar/data/bib_files/neurovista_processed.bib,sha256=CNL3LmRpLhp-qahyMEgfKRlQHuGYnDjUjitxVSiU3As,51469
1397
+ scitex/scholar/data/bib_files/openaccess.bib,sha256=73BIBSj5m0HbxeE-SrmI5hmDGCSbPhvbQioDXqb54Fc,3524
1398
+ scitex/scholar/data/bib_files/pac-seizure_prediction_enriched.bib,sha256=z5Rx7N_8wjQqYwPjwUbybeAp4fb1XyjbQ3X1LpuaqqU,272200
1399
+ scitex/scholar/data/bib_files/pac.bib,sha256=jxxGxT5CruEvKZfMcMQqt-48ZPcKSCuw-L4gJBUkvsc,27557
1400
+ scitex/scholar/data/bib_files/pac_enriched.bib,sha256=qYWT4aOp1694eEhdYUZZJ1e9uT5ZqjuSphZrmF1PwhU,142261
1401
+ scitex/scholar/data/bib_files/pac_processed.bib,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1402
+ scitex/scholar/data/bib_files/pac_titles.txt,sha256=KZI7uRGxSWCWitkI3E7dXxl3H46eeyBMJdJEavGb8Z4,7276
1403
+ scitex/scholar/data/bib_files/paywalled.bib,sha256=HeuYd4TxWBNFyn8BboC_SMrUe1PYhtVVZtdHM-A5UPI,3797
1404
+ scitex/scholar/data/bib_files/related-papers-by-coauthors.bib,sha256=sSXMtAA3zBYS2wG2yrDJSeF6li37tzO40nEXjZwgyRw,2917
1405
+ scitex/scholar/data/bib_files/related-papers-by-coauthors_enriched.bib,sha256=2ueaWK_0vl7seBYll5_t0BP-MjENYHDIedwod7jyZHI,12117
1406
+ scitex/scholar/data/bib_files/seizure_prediction.bib,sha256=SUbkEW6j10dRHNqPAtIUIKJUZIMuY6Q7eft-TJ0T0ec,27450
1407
+ scitex/scholar/data/bib_files/seizure_prediction_processed.bib,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1408
+ scitex/scholar/data/bib_files/test_complete_enriched.bib,sha256=Pmc3B9FkOXaFGdQZn3_G6kHDLGbTh5W-MLj6Rj-ejAo,60424
1409
+ scitex/scholar/data/bib_files/test_final_enriched.bib,sha256=Pmc3B9FkOXaFGdQZn3_G6kHDLGbTh5W-MLj6Rj-ejAo,60424
1410
+ scitex/scholar/data/bib_files/test_seizure.bib,sha256=vZcnnTVaDCPR1fpEBuYSv2RsrwmIbDx4ogIeObzJdis,1249
1411
+ scitex/scholar/data/impact_factor/JCR_IF_2022.xlsx,sha256=NJoAKC7RL3W_oBvv72j9mU5bZydEEAPDO8sza-R6JKE,929300
1412
+ scitex/scholar/data/impact_factor/JCR_IF_2024.db,sha256=hnpVDE8EY0OTXWtBy1NYietsglMxDcQTZs-IRsxHCjQ,2957312
1413
+ scitex/scholar/data/impact_factor/JCR_IF_2024.xlsx,sha256=2POoCl1Nf7WCG242KUjvU06J43RIoCpT4BEucCxIQBw,1756410
1414
+ scitex/scholar/data/impact_factor/JCR_IF_2024_v01.db,sha256=G5YuIOF0PJw0AeCxugL_cQvtFquH-MHoq1rXBrbnmSg,2875392
1380
1415
  scitex/scholar/docs/00_SUMMARY.md,sha256=quFBhRq5WJ06u5Po5oSzR28A-WihrApquXZYeyqwoS8,4011
1381
1416
  scitex/scholar/docs/01_STORAGE_ARCHITECTURE.md,sha256=sKQDAS3ejZVJ8W51GADV_BqfWnj8oI4dOpQ1XCiF4gc,3746
1382
1417
  scitex/scholar/docs/02_PIPELINE_ORGANIZATION.md,sha256=8BS_j6S89TiLqDRiODACZsbEMs6EyOiLDj8CgILz4WU,8288
@@ -1384,7 +1419,7 @@ scitex/scholar/docs/03_PIPELINE_IMPLEMENTATION_PLAN.md,sha256=hiY7B9tnuADPry-cke
1384
1419
  scitex/scholar/docs/04_PIPELINE_IMPLEMENTATION_COMPLETE.md,sha256=jG9MnwMjIbU8LFXrlaWhbTVeVudDpf7rrykivhMbsb8,9056
1385
1420
  scitex/scholar/docs/05_DETAILS_FOR_DEVELOPERS.md,sha256=E-Tv_xjaUlwzC8tGNEgQQCQTYxXhSCkccaCwMigxFAM,12878
1386
1421
  scitex/scholar/docs/06_IMPACT_FACTOR_CITATION_INTEGRATION.md,sha256=g2UPSSOzkt7V_kr3GqhFcrDWfBOFfTGHy22Slycziks,8986
1387
- scitex/scholar/docs/EXTERNAL_PACKAGE_BRANDING.md,sha256=PpuL2p009sc8UTZ_Dq0_iFWEr5I4nM-geJGFam-bzxM,4214
1422
+ scitex/scholar/docs/EXTERNAL_PACKAGE_BRANDING.md,sha256=k61TlK7joYnKlKaprQ54c2qayTNBPG01NtAMDes3pX4,4214
1388
1423
  scitex/scholar/docs/bibfile.bib,sha256=T2rdoLpV2kydNnjAhR0i071krPqFm0MoopzE0kNtfGU,11906
1389
1424
  scitex/scholar/docs/template.py,sha256=jit8BrKvmDeZlt4Nw-ikCmaT2zqqUHxEppjJaLUcqxU,2513
1390
1425
  scitex/scholar/docs/from_agents/OPENATHENS_SECURITY.md,sha256=4Z2ifgWYDCeqnT8MYSD7SAX5-0wG_dvnfGuLqK_qpBc,2787
@@ -1459,6 +1494,9 @@ scitex/scholar/jobs/_JobManager.py,sha256=F06vxOZoYouqgeNVmlwKpDPkWWh-PU2aLp3pqu
1459
1494
  scitex/scholar/jobs/__init__.py,sha256=dXdPmFUWf-Ypl41_Z6qsduYCofygfgq2UjiIZcYiGjQ,1779
1460
1495
  scitex/scholar/jobs/_errors.py,sha256=V7Xv4q0CDBJIQ6NSg-lRb_skFcqT-jIZ_aI5gavjDds,10211
1461
1496
  scitex/scholar/jobs/_executors.py,sha256=kWU9uuN_8cx6oPyGakjcypsiZoUwicrHL29_aF_iZUU,11807
1497
+ scitex/scholar/local_dbs/__init__.py,sha256=sxCiEcOy5pC6VBpEExHgkAlu1st7EUcfw6PRFo67buQ,857
1498
+ scitex/scholar/local_dbs/crossref_scitex.py,sha256=Ib2JluhqyYjDPh0hZqENHNP7_eg21AQnkyWjl5pfXRs,748
1499
+ scitex/scholar/local_dbs/openalex_scitex.py,sha256=mnHHMnk2aJcSfXYWJh2wsbs818oU1fW63i_3VZG7wpI,748
1462
1500
  scitex/scholar/metadata_engines/README.md,sha256=wz1fTeru9sTgkGO5T8VdDBsd4FBaZu2t6-I8MTNGifw,919
1463
1501
  scitex/scholar/metadata_engines/ScholarEngine.py,sha256=WGOEvCiBiMm0aZNtN1AlBDCcN6XQUl76R6zedUhR7gs,20604
1464
1502
  scitex/scholar/metadata_engines/__init__.py,sha256=qjndZBrK2tXOMCRHFeEu2BJ9Ir8nbr7cHsV4xvXUwv4,749
@@ -1528,12 +1566,6 @@ scitex/scholar/storage/_mixins/_symlink_handlers.py,sha256=m63ATAfDmAUDk4shsVf0a
1528
1566
  scitex/scholar/url_finder/README.md,sha256=CGQpOktqpQF_5z_u-pIKMYBAeQZXT9Eh24XaPtfV6HM,2016
1529
1567
  scitex/scholar/url_finder/ScholarURLFinder.py,sha256=C9lpYefs-9YoGcYYYBDB8GrGQyp27LmLTIv_WelDJgI,11840
1530
1568
  scitex/scholar/url_finder/__init__.py,sha256=FV9ocQPE6520WUVVMV2u7hci_-2ha1KLJHzRUUlWGBw,93
1531
- scitex/scholar/url_finder/.tmp/open_url/KNOWN_RESOLVERS.py,sha256=n37aHjOq6YrtgR0DGN0iznKy8EWCjzgBODVm7pINc-w,12926
1532
- scitex/scholar/url_finder/.tmp/open_url/README.md,sha256=4CyiK7Zbdd23WjsYUU7J7FLPmhxwxA1PWc7enL9dGug,6836
1533
- scitex/scholar/url_finder/.tmp/open_url/_DOIToURLResolver.py,sha256=C0cURB6BO78udjjsucqwM_rTxDy5XTaqyuxLBCNbyeU,23632
1534
- scitex/scholar/url_finder/.tmp/open_url/_OpenURLResolver.py,sha256=yigbSuUZ2m6XmDFjhrIdn8Bva5ic7Y-DdwcMCUFlisA,43504
1535
- scitex/scholar/url_finder/.tmp/open_url/_ResolverLinkFinder.py,sha256=s-2HZzAwBp7DxFtpqzEivLbvJ20J1pcBHSDXYmjmJ9A,11869
1536
- scitex/scholar/url_finder/.tmp/open_url/__init__.py,sha256=d1umAnLQNFGYX7oui5Jl8JrjoDpwHkTmHwIiUbPbvBk,571
1537
1569
  scitex/scholar/url_finder/docs/CORE_URL_TYPES.md,sha256=bRd2AfoypJiO4xgJBqpbC0GR6BhO4dEBo8D4fg7oDo0,6651
1538
1570
  scitex/scholar/url_finder/docs/URL_SCHEMA.md,sha256=MDSUpqJzVwll9Mpspp2RhvYIv6bq_VCTktmTxk_DKk4,7696
1539
1571
  scitex/scholar/url_finder/strategies/__init__.py,sha256=UIfUjfZbFhDZzfEHl3uCuIBUgMEdUMYaC9NbMEDG2Hs,1439
@@ -2377,13 +2409,13 @@ scitex/sh/_types.py,sha256=ydWw3i82K3XmSow3ldAgG40Og-vZ75fPy7NzR2cwBx4,605
2377
2409
  scitex/sh/test_sh.py,sha256=qHJdUXvTSY5FXrgNXz1gzdhzDK6TH-oTbgjZRkW7D6w,1968
2378
2410
  scitex/sh/test_sh_simple.py,sha256=G-EukceD5gbxCY_K0x2LBJL8FT2Gkzd5XPrZrGoIyck,1661
2379
2411
  scitex/social/__init__.py,sha256=fUNoTJ2Q6YZ_9u7IBbFgXDgdxbOAW79M459n4WU2Eyk,4051
2380
- scitex/social/docs/EXTERNAL_PACKAGE_BRANDING.md,sha256=PpuL2p009sc8UTZ_Dq0_iFWEr5I4nM-geJGFam-bzxM,4214
2412
+ scitex/social/docs/EXTERNAL_PACKAGE_BRANDING.md,sha256=k61TlK7joYnKlKaprQ54c2qayTNBPG01NtAMDes3pX4,4214
2381
2413
  scitex/stats/README.md,sha256=v6PMJRE-NI9bnHXfEnzES4dYHLOyTWpSSDLAzsp161I,33416
2382
2414
  scitex/stats/__init__.py,sha256=ZD8j9RTrlwg_JNV3vcTzaovHM0eWKtsfJa5Uno4iWpE,10031
2383
2415
  scitex/stats/__main__.py,sha256=Jnupr0q90w0ZKbnHSsqXmFWukMGuXzG4bPXInj8Gqmo,7815
2384
2416
  scitex/stats/_figrecipe_integration.py,sha256=_nOD1rcITE3HGEc3-5Bu0Q2VRy3Tizil7H35GJyeOng,3076
2385
2417
  scitex/stats/_schema.py,sha256=d12piS129kDRnHAD3XJ96d3G8ZLeYm1tK4CAlBfdtbg,1105
2386
- scitex/stats/mcp_server.py,sha256=j3Bkf0GeLUBS8Ao2k_-GaiWuostObflkddDXJKwzKps,15136
2418
+ scitex/stats/mcp_server.py,sha256=_tjHu7Gubq8519Q_mfKzGGyPUINjoDpAmlszLVlKHZk,15511
2387
2419
  scitex/stats/run_all.sh,sha256=Q_fw3q_10mlQAUBRggSNrl0gILFvTFUlFztH2Aicfhs,1381
2388
2420
  scitex/stats/_mcp/__init__.py,sha256=FJRAr90vUCg4PJ8Sv-WzsKuM7aY93m6UR87fhk843MU,73
2389
2421
  scitex/stats/_mcp/handlers.py,sha256=zvSep5DdTMMRmFFhSDBy-PGeoGhq7e4QAW_7V2v3_dQ,874
@@ -2475,7 +2507,7 @@ scitex/template/clone_pip_project.py,sha256=cEQkbyD8x-0iVDrL3iCIH2z5e_7mKIXe-uPQ
2475
2507
  scitex/template/clone_research.py,sha256=cWwW6vQp03u19mDlit-P6yMHF30IW6DQf3xXVdd-D1M,3073
2476
2508
  scitex/template/clone_singularity.py,sha256=CYMjaUU1Bf58tKtU5tlTKgjd1EphaZvmMpqmhIyPtyw,3103
2477
2509
  scitex/template/clone_writer_directory.py,sha256=ibAlEkMRLTBYmxgg_LFMtFr3uLTMFhTyYyhoDkwv6xE,3058
2478
- scitex/template/mcp_server.py,sha256=yQBDQpIwcIBzdgHPRXVSVBHrHb3DWd0b5V4DmN6WvY4,5718
2510
+ scitex/template/mcp_server.py,sha256=aqCOdzFOeEBjA4RPlXrPXY9O9nix0fOItENQNwdYv5Y,6096
2479
2511
  scitex/template/_mcp/__init__.py,sha256=FJRAr90vUCg4PJ8Sv-WzsKuM7aY93m6UR87fhk843MU,73
2480
2512
  scitex/template/_mcp/handlers.py,sha256=VqOt8Rjb2d6z0Fhlfui2KgX-coQS-eUZkBZ7z6caOjY,9073
2481
2513
  scitex/template/_mcp/tool_schemas.py,sha256=dAuqmTrdOA8DJOtzRvhvvlLNBLLivOJW-UXiTldzt7Y,6580
@@ -2508,7 +2540,7 @@ scitex/types/__init__.py,sha256=VdI0QzASeZMy_mUCtSfNO8Ngn9PYQ-oGeweo9NfRmrg,301
2508
2540
  scitex/types/_is_listed_X.py,sha256=4lSFyuqKaZytqDGuyGqUJOqkrFo0Ymql3kfWwIva5L0,1867
2509
2541
  scitex/ui/__init__.py,sha256=YTPRgC-eLHgB1Saxml_S5CIRFR0mVTld5f1ZIe8EemI,4882
2510
2542
  scitex/ui/_backends.py,sha256=qChJsy_2WUGfXbPd_-CyYf2kOusr4qsEFCT-rduyJ30,741
2511
- scitex/ui/mcp_server.py,sha256=d0dp3vKeF0-Xp3_DGF37ZrgIVjDhu8f9It-e4xclKeI,4795
2543
+ scitex/ui/mcp_server.py,sha256=HxTJIhsOLGM7ccuH4MvC94ueoZTVdVOv7Jw-HhRiNAs,5166
2512
2544
  scitex/ui/_backends/__init__.py,sha256=n3oNFT7NtXrPPORJ0bYk89d-SkZdBH4-1eMR0vZ-buI,1756
2513
2545
  scitex/ui/_backends/_audio.py,sha256=3Qq2amkGgmkqqTcEWX82aL3iLrOcY1n8zUYgRH7mzK8,2418
2514
2546
  scitex/ui/_backends/_config.py,sha256=Qqzw8U7Ej2kkI4wmVjmixNc7KuIym5klalGiv4TxJUs,8427
@@ -2538,7 +2570,7 @@ scitex/web/_summarize_url.py,sha256=PpWBk727pjC_yivI_RVNU_RMxjV_jrqlMNaD6kXQAPk,
2538
2570
  scitex/web/download_images.py,sha256=g4sxWzg0ip5Wig7ElPo6fDz5DdXKyJnAsBFwIYoQI6g,9473
2539
2571
  scitex/writer/README.md,sha256=1026ZBezSHDSy5fMri5KhOEc00co2ieCOnyIOq5lTmo,14293
2540
2572
  scitex/writer/Writer.py,sha256=NNxT3hubEv5Sj4yHQeFH3_J7NY772rL-Kvvtchmq1qU,15439
2541
- scitex/writer/__init__.py,sha256=9b2D7Y0DNXOZqbV_ZRMRfuFiFRhXrdgkK-vAKbEqnok,1052
2573
+ scitex/writer/__init__.py,sha256=5y17XvbSPfNlPxDRfyiN4QOJkMlupZj3_599rV15xMo,1135
2542
2574
  scitex/writer/_clone_writer_project.py,sha256=SdTtUkJLBx8-zTuBCO5YFP89GRzsrKFoTHSeElJDuBM,4480
2543
2575
  scitex/writer/_compile/__init__.py,sha256=Jsfxsnqvmv95-KprrdsTMX5K-kBiGFpSNxc-LYwhm2E,1157
2544
2576
  scitex/writer/_compile/_compile_async.py,sha256=T6Jisx-VgSl1hcPd8HlsGyMqyGPhl_BvtpXleHr9iJA,3926
@@ -2587,8 +2619,8 @@ scitex/writer/utils/_parse_latex_logs.py,sha256=K05kCJClG86-RovXG9I5e3wHP0mEGiZl
2587
2619
  scitex/writer/utils/_parse_script_args.py,sha256=Fkx1ze_jlKYIpviLuT7z0hpqE4cdtXXA_7sK3sKpVs4,4593
2588
2620
  scitex/writer/utils/_verify_tree_structure.py,sha256=Uk9NUSleR9aMHpAgUGsPZMk4a75l35EkZhQYKIfolVY,5724
2589
2621
  scitex/writer/utils/_watch.py,sha256=nYzPQ-iPAOzbwzAPBtSrrVBLLPMl08e0qxw0mtv0Y8I,2577
2590
- scitex-2.15.2.dist-info/METADATA,sha256=7bj67MsScxm-qpAND8JdUSQ66AIJjWoM4LSyfeoOGAI,24111
2591
- scitex-2.15.2.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
2592
- scitex-2.15.2.dist-info/entry_points.txt,sha256=ZtDrHnPNMnsSmAnQoCHNmk0xKotNyR2X_YFDDteupW8,497
2593
- scitex-2.15.2.dist-info/licenses/LICENSE,sha256=TfPDBt3ar0uv_f9cqCDMZ5rIzW3CY8anRRd4PkL6ejs,34522
2594
- scitex-2.15.2.dist-info/RECORD,,
2622
+ scitex-2.15.4.dist-info/METADATA,sha256=YhHg4lxfd6DXKl_tGIfOp6ZAXs6HkBzAo3K61emqz7U,25007
2623
+ scitex-2.15.4.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
2624
+ scitex-2.15.4.dist-info/entry_points.txt,sha256=ZtDrHnPNMnsSmAnQoCHNmk0xKotNyR2X_YFDDteupW8,497
2625
+ scitex-2.15.4.dist-info/licenses/LICENSE,sha256=TfPDBt3ar0uv_f9cqCDMZ5rIzW3CY8anRRd4PkL6ejs,34522
2626
+ scitex-2.15.4.dist-info/RECORD,,
@@ -1,367 +0,0 @@
1
- #!/usr/bin/env python3
2
- # Timestamp: 2026-01-24
3
- # File: src/scitex/scholar/crossref_scitex.py
4
- """CrossRef-SciTeX: Local CrossRef database integration for scitex.scholar.
5
-
6
- This module provides access to the local CrossRef database (167M+ papers)
7
- through the crossref-local package. Branded as "crossref-scitex" to distinguish
8
- from the official CrossRef API. Supports both direct database access and HTTP
9
- API mode for remote servers.
10
-
11
- Quick Start
12
- -----------
13
-
14
- Search for papers:
15
- >>> from scitex.scholar import crossref_scitex
16
- >>> results = crossref_scitex.search("hippocampal sharp wave ripples")
17
- >>> print(results.total, "papers found")
18
-
19
- Get paper by DOI:
20
- >>> work = crossref_scitex.get("10.1126/science.aax0758")
21
- >>> print(work.title)
22
-
23
- Configuration
24
- -------------
25
-
26
- The mode is automatically detected:
27
- - If CROSSREF_LOCAL_DB is set, uses direct database access
28
- - If CROSSREF_LOCAL_API_URL is set, uses HTTP API
29
- - Default: tries localhost:31291 (SciTeX port scheme)
30
-
31
- Environment variables (SCITEX_SCHOLAR_CROSSREF_* takes priority):
32
- SCITEX_SCHOLAR_CROSSREF_DB: Path to local database
33
- SCITEX_SCHOLAR_CROSSREF_MODE: 'db' or 'http'
34
- CROSSREF_LOCAL_DB: Path to local database (fallback)
35
- CROSSREF_LOCAL_API_URL: HTTP API URL (fallback)
36
-
37
- SSH tunnel for remote database:
38
- $ ssh -L 31291:127.0.0.1:31291 your-server
39
- """
40
-
41
- from __future__ import annotations
42
-
43
- from typing import TYPE_CHECKING, Any, Optional
44
-
45
- # Set environment variables for crossref-local configuration
46
- # SCITEX_SCHOLAR_CROSSREF_* vars take priority in crossref-local's config.py
47
-
48
- if TYPE_CHECKING:
49
- from crossref_local import SearchResult, Work
50
- from crossref_local.citations import CitationNetwork
51
-
52
- __all__ = [
53
- # Core search/retrieval
54
- "search",
55
- "count",
56
- "get",
57
- "get_many",
58
- "exists",
59
- # Enrichment
60
- "enrich",
61
- "enrich_dois",
62
- # Configuration
63
- "configure",
64
- "configure_http",
65
- "get_mode",
66
- "info",
67
- "is_available",
68
- # Citation functions
69
- "get_citing",
70
- "get_cited",
71
- "get_citation_count",
72
- # Classes (re-exported)
73
- "Work",
74
- "SearchResult",
75
- "CitationNetwork",
76
- # Async API
77
- "aio",
78
- # Cache module
79
- "cache",
80
- ]
81
-
82
-
83
- def _ensure_crossref_local():
84
- """Ensure crossref-local is available."""
85
- try:
86
- import crossref_local
87
-
88
- return crossref_local
89
- except ImportError as e:
90
- raise ImportError(
91
- "crossref-local not installed. Install with: pip install crossref-local"
92
- ) from e
93
-
94
-
95
- def is_available() -> bool:
96
- """Check if crossref-local is available and configured.
97
-
98
- Returns
99
- -------
100
- True if crossref-local can be used (either DB or HTTP mode)
101
- """
102
- try:
103
- crl = _ensure_crossref_local()
104
- info_result = crl.info()
105
- return info_result.get("status") == "ok"
106
- except Exception:
107
- return False
108
-
109
-
110
- # =============================================================================
111
- # Core Search/Retrieval Functions (delegated to crossref-local)
112
- # =============================================================================
113
-
114
-
115
- def search(
116
- query: str,
117
- limit: int = 20,
118
- offset: int = 0,
119
- **kwargs: Any,
120
- ) -> SearchResult:
121
- """Search for papers in the CrossRef database.
122
-
123
- Args:
124
- query: Search query string (full-text search)
125
- limit: Maximum number of results (default: 20)
126
- offset: Number of results to skip for pagination
127
- **kwargs: Additional arguments passed to crossref-local
128
-
129
- Returns
130
- -------
131
- SearchResult containing matching papers
132
-
133
- Examples
134
- --------
135
- >>> from scitex.scholar import crossref
136
- >>> results = crossref.search("deep learning")
137
- >>> for work in results:
138
- ... print(work.title)
139
- """
140
- crl = _ensure_crossref_local()
141
- return crl.search(query, limit=limit, offset=offset, **kwargs)
142
-
143
-
144
- def count(query: str) -> int:
145
- """Count papers matching a search query.
146
-
147
- Args:
148
- query: Search query string
149
-
150
- Returns
151
- -------
152
- Number of matching papers
153
- """
154
- crl = _ensure_crossref_local()
155
- return crl.count(query)
156
-
157
-
158
- def get(doi: str) -> Optional[Work]:
159
- """Get a paper by DOI.
160
-
161
- Args:
162
- doi: DOI of the paper (e.g., "10.1126/science.aax0758")
163
-
164
- Returns
165
- -------
166
- Work object if found, None otherwise
167
-
168
- Examples
169
- --------
170
- >>> work = crossref.get("10.1038/nature12373")
171
- >>> if work:
172
- ... print(work.title, work.year)
173
- """
174
- crl = _ensure_crossref_local()
175
- return crl.get(doi)
176
-
177
-
178
- def get_many(dois: list[str]) -> list[Work]:
179
- """Get multiple papers by DOI.
180
-
181
- Args:
182
- dois: List of DOIs
183
-
184
- Returns
185
- -------
186
- List of Work objects (None for DOIs not found)
187
- """
188
- crl = _ensure_crossref_local()
189
- return crl.get_many(dois)
190
-
191
-
192
- def exists(doi: str) -> bool:
193
- """Check if a DOI exists in the database.
194
-
195
- Args:
196
- doi: DOI to check
197
-
198
- Returns
199
- -------
200
- True if DOI exists
201
- """
202
- crl = _ensure_crossref_local()
203
- return crl.exists(doi)
204
-
205
-
206
- # =============================================================================
207
- # Enrichment Functions
208
- # =============================================================================
209
-
210
-
211
- def enrich(results: SearchResult) -> SearchResult:
212
- """Enrich search results with citation data.
213
-
214
- Args:
215
- results: SearchResult to enrich
216
-
217
- Returns
218
- -------
219
- Enriched SearchResult with citation counts and references
220
- """
221
- crl = _ensure_crossref_local()
222
- return crl.enrich(results)
223
-
224
-
225
- def enrich_dois(dois: list[str]) -> list[Work]:
226
- """Get and enrich papers by DOI with citation data.
227
-
228
- Args:
229
- dois: List of DOIs to enrich
230
-
231
- Returns
232
- -------
233
- List of enriched Work objects
234
- """
235
- crl = _ensure_crossref_local()
236
- return crl.enrich_dois(dois)
237
-
238
-
239
- # =============================================================================
240
- # Citation Functions
241
- # =============================================================================
242
-
243
-
244
- def get_citing(doi: str) -> list[str]:
245
- """Get DOIs of papers that cite this paper.
246
-
247
- Args:
248
- doi: DOI of the paper
249
-
250
- Returns
251
- -------
252
- List of DOIs that cite this paper
253
- """
254
- crl = _ensure_crossref_local()
255
- return crl.get_citing(doi)
256
-
257
-
258
- def get_cited(doi: str) -> list[str]:
259
- """Get DOIs of papers cited by this paper.
260
-
261
- Args:
262
- doi: DOI of the paper
263
-
264
- Returns
265
- -------
266
- List of DOIs cited by this paper (references)
267
- """
268
- crl = _ensure_crossref_local()
269
- return crl.get_cited(doi)
270
-
271
-
272
- def get_citation_count(doi: str) -> int:
273
- """Get the citation count for a paper.
274
-
275
- Args:
276
- doi: DOI of the paper
277
-
278
- Returns
279
- -------
280
- Number of citations
281
- """
282
- crl = _ensure_crossref_local()
283
- return crl.get_citation_count(doi)
284
-
285
-
286
- # =============================================================================
287
- # Configuration Functions
288
- # =============================================================================
289
-
290
-
291
- def configure(db_path: str) -> None:
292
- """Configure direct database access mode.
293
-
294
- Args:
295
- db_path: Path to the crossref.db file
296
- """
297
- crl = _ensure_crossref_local()
298
- crl.configure(db_path)
299
-
300
-
301
- def configure_http(api_url: Optional[str] = None) -> None:
302
- """Configure HTTP API mode.
303
-
304
- Args:
305
- api_url: API URL (default: http://localhost:31291)
306
-
307
- Example:
308
- >>> # After setting up SSH tunnel: ssh -L 31291:127.0.0.1:31291 server
309
- >>> crossref.configure_http()
310
- """
311
- crl = _ensure_crossref_local()
312
- crl.configure_http(api_url)
313
-
314
-
315
- def get_mode() -> str:
316
- """Get the current operating mode.
317
-
318
- Returns
319
- -------
320
- "db" for direct database access, "http" for API mode
321
- """
322
- crl = _ensure_crossref_local()
323
- return crl.get_mode()
324
-
325
-
326
- def info() -> dict:
327
- """Get information about the crossref-local configuration.
328
-
329
- Returns
330
- -------
331
- Dict with status, mode, version, database stats, etc.
332
- """
333
- crl = _ensure_crossref_local()
334
- return crl.info()
335
-
336
-
337
- # =============================================================================
338
- # Re-exported Classes and Modules
339
- # =============================================================================
340
-
341
-
342
- def __getattr__(name: str):
343
- """Lazy import for classes and modules."""
344
- if name == "Work":
345
- from crossref_local import Work
346
-
347
- return Work
348
- elif name == "SearchResult":
349
- from crossref_local import SearchResult
350
-
351
- return SearchResult
352
- elif name == "CitationNetwork":
353
- from crossref_local.citations import CitationNetwork
354
-
355
- return CitationNetwork
356
- elif name == "aio":
357
- from crossref_local import aio
358
-
359
- return aio
360
- elif name == "cache":
361
- from crossref_local import cache
362
-
363
- return cache
364
- raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
365
-
366
-
367
- # EOF