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.
- scitex/_mcp_resources/__init__.py +2 -0
- scitex/_mcp_resources/_scholar.py +148 -0
- scitex/_mcp_tools/scholar.py +50 -99
- scitex/_mcp_tools/social.py +15 -232
- scitex/_mcp_tools/writer.py +7 -17
- scitex/canvas/mcp_server.py +16 -3
- scitex/capture/mcp_server.py +16 -2
- scitex/cli/audio.py +90 -20
- scitex/cli/capture.py +120 -0
- scitex/cli/introspect.py +19 -12
- scitex/cli/plt.py +78 -21
- scitex/cli/scholar/__init__.py +160 -2
- scitex/cli/scholar/_crossref_scitex.py +25 -266
- scitex/cli/scholar/_openalex_scitex.py +55 -0
- scitex/cli/social.py +63 -22
- scitex/cli/stats.py +121 -3
- scitex/cli/writer.py +49 -423
- scitex/dev/plt/data/mpl/PLOTTING_FUNCTIONS.yaml +90 -0
- scitex/dev/plt/data/mpl/PLOTTING_SIGNATURES.yaml +1571 -0
- scitex/dev/plt/data/mpl/PLOTTING_SIGNATURES_DETAILED.yaml +6262 -0
- scitex/dev/plt/data/mpl/SIGNATURES_FLATTENED.yaml +1274 -0
- scitex/dev/plt/data/mpl/dir_ax.txt +459 -0
- scitex/introspect/_list_api.py +5 -2
- scitex/plt/docs/EXTERNAL_PACKAGE_BRANDING.md +2 -2
- scitex/scholar/__init__.py +14 -9
- scitex/scholar/_mcp/crossref_tool_schemas.py +133 -0
- scitex/scholar/_mcp/openalex_handlers.py +212 -0
- scitex/scholar/_mcp/openalex_tool_schemas.py +96 -0
- scitex/scholar/_mcp/tool_schemas.py +16 -1
- scitex/scholar/data/.gitkeep +0 -0
- scitex/scholar/data/README.md +44 -0
- scitex/scholar/data/bib_files/bibliography.bib +1952 -0
- scitex/scholar/data/bib_files/neurovista.bib +277 -0
- scitex/scholar/data/bib_files/neurovista_enriched.bib +441 -0
- scitex/scholar/data/bib_files/neurovista_enriched_enriched.bib +441 -0
- scitex/scholar/data/bib_files/neurovista_processed.bib +338 -0
- scitex/scholar/data/bib_files/openaccess.bib +89 -0
- scitex/scholar/data/bib_files/pac-seizure_prediction_enriched.bib +2178 -0
- scitex/scholar/data/bib_files/pac.bib +698 -0
- scitex/scholar/data/bib_files/pac_enriched.bib +1061 -0
- scitex/scholar/data/bib_files/pac_processed.bib +0 -0
- scitex/scholar/data/bib_files/pac_titles.txt +75 -0
- scitex/scholar/data/bib_files/paywalled.bib +98 -0
- scitex/scholar/data/bib_files/related-papers-by-coauthors.bib +58 -0
- scitex/scholar/data/bib_files/related-papers-by-coauthors_enriched.bib +87 -0
- scitex/scholar/data/bib_files/seizure_prediction.bib +694 -0
- scitex/scholar/data/bib_files/seizure_prediction_processed.bib +0 -0
- scitex/scholar/data/bib_files/test_complete_enriched.bib +437 -0
- scitex/scholar/data/bib_files/test_final_enriched.bib +437 -0
- scitex/scholar/data/bib_files/test_seizure.bib +46 -0
- scitex/scholar/data/impact_factor/JCR_IF_2022.xlsx +0 -0
- scitex/scholar/data/impact_factor/JCR_IF_2024.db +0 -0
- scitex/scholar/data/impact_factor/JCR_IF_2024.xlsx +0 -0
- scitex/scholar/data/impact_factor/JCR_IF_2024_v01.db +0 -0
- scitex/scholar/data/impact_factor.db +0 -0
- scitex/scholar/docs/EXTERNAL_PACKAGE_BRANDING.md +2 -2
- scitex/scholar/local_dbs/__init__.py +31 -0
- scitex/scholar/local_dbs/crossref_scitex.py +30 -0
- scitex/scholar/local_dbs/openalex_scitex.py +30 -0
- scitex/scholar/mcp_server.py +59 -4
- scitex/social/docs/EXTERNAL_PACKAGE_BRANDING.md +2 -2
- scitex/stats/mcp_server.py +16 -3
- scitex/template/mcp_server.py +16 -3
- scitex/ui/mcp_server.py +16 -3
- scitex/writer/__init__.py +43 -34
- {scitex-2.15.2.dist-info → scitex-2.15.4.dist-info}/METADATA +22 -3
- {scitex-2.15.2.dist-info → scitex-2.15.4.dist-info}/RECORD +70 -38
- scitex/scholar/crossref_scitex.py +0 -367
- scitex/scholar/url_finder/.tmp/open_url/KNOWN_RESOLVERS.py +0 -462
- scitex/scholar/url_finder/.tmp/open_url/README.md +0 -223
- scitex/scholar/url_finder/.tmp/open_url/_DOIToURLResolver.py +0 -694
- scitex/scholar/url_finder/.tmp/open_url/_OpenURLResolver.py +0 -1160
- scitex/scholar/url_finder/.tmp/open_url/_ResolverLinkFinder.py +0 -344
- scitex/scholar/url_finder/.tmp/open_url/__init__.py +0 -24
- {scitex-2.15.2.dist-info → scitex-2.15.4.dist-info}/WHEEL +0 -0
- {scitex-2.15.2.dist-info → scitex-2.15.4.dist-info}/entry_points.txt +0 -0
- {scitex-2.15.2.dist-info → scitex-2.15.4.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,459 @@
|
|
|
1
|
+
ArtistList
|
|
2
|
+
_AxesBase__clear
|
|
3
|
+
_PROPERTIES_EXCLUDED_FROM_SET
|
|
4
|
+
__annotations__
|
|
5
|
+
__class__
|
|
6
|
+
__delattr__
|
|
7
|
+
__dict__
|
|
8
|
+
__dir__
|
|
9
|
+
__doc__
|
|
10
|
+
__eq__
|
|
11
|
+
__format__
|
|
12
|
+
__ge__
|
|
13
|
+
__getattribute__
|
|
14
|
+
__getstate__
|
|
15
|
+
__gt__
|
|
16
|
+
__hash__
|
|
17
|
+
__init__
|
|
18
|
+
__init_subclass__
|
|
19
|
+
__le__
|
|
20
|
+
__lt__
|
|
21
|
+
__module__
|
|
22
|
+
__ne__
|
|
23
|
+
__new__
|
|
24
|
+
__reduce__
|
|
25
|
+
__reduce_ex__
|
|
26
|
+
__repr__
|
|
27
|
+
__setattr__
|
|
28
|
+
__setstate__
|
|
29
|
+
__sizeof__
|
|
30
|
+
__str__
|
|
31
|
+
__subclasshook__
|
|
32
|
+
__weakref__
|
|
33
|
+
_add_text
|
|
34
|
+
_adjustable
|
|
35
|
+
_agg_filter
|
|
36
|
+
_alias_map
|
|
37
|
+
_alpha
|
|
38
|
+
_anchor
|
|
39
|
+
_animated
|
|
40
|
+
_aspect
|
|
41
|
+
_autotitlepos
|
|
42
|
+
_axes
|
|
43
|
+
_axes_locator
|
|
44
|
+
_axis_map
|
|
45
|
+
_axis_names
|
|
46
|
+
_axisbelow
|
|
47
|
+
_box_aspect
|
|
48
|
+
_callbacks
|
|
49
|
+
_check_no_units
|
|
50
|
+
_children
|
|
51
|
+
_clipon
|
|
52
|
+
_clippath
|
|
53
|
+
_cm_set
|
|
54
|
+
_colorbars
|
|
55
|
+
_convert_dx
|
|
56
|
+
_current_image
|
|
57
|
+
_different_canvas
|
|
58
|
+
_errorevery_to_mask
|
|
59
|
+
_facecolor
|
|
60
|
+
_fill_between_process_units
|
|
61
|
+
_fill_between_x_or_y
|
|
62
|
+
_forward_navigation_events
|
|
63
|
+
_frameon
|
|
64
|
+
_fully_clipped_to_axes
|
|
65
|
+
_gci
|
|
66
|
+
_gen_axes_patch
|
|
67
|
+
_gen_axes_spines
|
|
68
|
+
_get_aspect_ratio
|
|
69
|
+
_get_lines
|
|
70
|
+
_get_pan_points
|
|
71
|
+
_get_patches_for_fill
|
|
72
|
+
_get_view
|
|
73
|
+
_gid
|
|
74
|
+
_gridOn
|
|
75
|
+
_in_layout
|
|
76
|
+
_init_axis
|
|
77
|
+
_internal_update
|
|
78
|
+
_label
|
|
79
|
+
_label_outer_xaxis
|
|
80
|
+
_label_outer_yaxis
|
|
81
|
+
_left_title
|
|
82
|
+
_make_twin_axes
|
|
83
|
+
_mouseover
|
|
84
|
+
_mouseover_set
|
|
85
|
+
_navigate
|
|
86
|
+
_navigate_mode
|
|
87
|
+
_originalPosition
|
|
88
|
+
_parent_figure
|
|
89
|
+
_parse_bar_color_args
|
|
90
|
+
_parse_scatter_color_args
|
|
91
|
+
_path_effects
|
|
92
|
+
_pcolorargs
|
|
93
|
+
_picker
|
|
94
|
+
_position
|
|
95
|
+
_prepare_view_from_bbox
|
|
96
|
+
_process_unit_info
|
|
97
|
+
_projection_init
|
|
98
|
+
_quiver_units
|
|
99
|
+
_rasterization_zorder
|
|
100
|
+
_rasterized
|
|
101
|
+
_remove_legend
|
|
102
|
+
_remove_method
|
|
103
|
+
_request_autoscale_view
|
|
104
|
+
_right_title
|
|
105
|
+
_sci
|
|
106
|
+
_set_alpha_for_array
|
|
107
|
+
_set_artist_props
|
|
108
|
+
_set_gc_clip
|
|
109
|
+
_set_lim_and_transforms
|
|
110
|
+
_set_position
|
|
111
|
+
_set_title_offset_trans
|
|
112
|
+
_set_view
|
|
113
|
+
_set_view_from_bbox
|
|
114
|
+
_shared_axes
|
|
115
|
+
_sharex
|
|
116
|
+
_sharey
|
|
117
|
+
_sketch
|
|
118
|
+
_snap
|
|
119
|
+
_stale
|
|
120
|
+
_stale_viewlims
|
|
121
|
+
_sticky_edges
|
|
122
|
+
_subclass_uses_cla
|
|
123
|
+
_subplotspec
|
|
124
|
+
_tight
|
|
125
|
+
_transform
|
|
126
|
+
_transformSet
|
|
127
|
+
_twinned_axes
|
|
128
|
+
_unit_change_handler
|
|
129
|
+
_unstale_viewLim
|
|
130
|
+
_update_image_limits
|
|
131
|
+
_update_line_limits
|
|
132
|
+
_update_patch_limits
|
|
133
|
+
_update_props
|
|
134
|
+
_update_set_signature_and_docstring
|
|
135
|
+
_update_title_position
|
|
136
|
+
_update_transScale
|
|
137
|
+
_url
|
|
138
|
+
_use_sticky_edges
|
|
139
|
+
_validate_converted_limits
|
|
140
|
+
_viewLim
|
|
141
|
+
_visible
|
|
142
|
+
_xaxis_transform
|
|
143
|
+
_xmargin
|
|
144
|
+
_yaxis_transform
|
|
145
|
+
_ymargin
|
|
146
|
+
acorr
|
|
147
|
+
add_artist
|
|
148
|
+
add_callback
|
|
149
|
+
add_child_axes
|
|
150
|
+
add_collection
|
|
151
|
+
add_container
|
|
152
|
+
add_image
|
|
153
|
+
add_line
|
|
154
|
+
add_patch
|
|
155
|
+
add_table
|
|
156
|
+
angle_spectrum
|
|
157
|
+
annotate
|
|
158
|
+
apply_aspect
|
|
159
|
+
arrow
|
|
160
|
+
artists
|
|
161
|
+
autoscale
|
|
162
|
+
autoscale_view
|
|
163
|
+
axes
|
|
164
|
+
axhline
|
|
165
|
+
axhspan
|
|
166
|
+
axis
|
|
167
|
+
axison
|
|
168
|
+
axline
|
|
169
|
+
axvline
|
|
170
|
+
axvspan
|
|
171
|
+
bar
|
|
172
|
+
bar_label
|
|
173
|
+
barbs
|
|
174
|
+
barh
|
|
175
|
+
bbox
|
|
176
|
+
boxplot
|
|
177
|
+
broken_barh
|
|
178
|
+
bxp
|
|
179
|
+
callbacks
|
|
180
|
+
can_pan
|
|
181
|
+
can_zoom
|
|
182
|
+
child_axes
|
|
183
|
+
cla
|
|
184
|
+
clabel
|
|
185
|
+
clear
|
|
186
|
+
clipbox
|
|
187
|
+
cohere
|
|
188
|
+
collections
|
|
189
|
+
containers
|
|
190
|
+
contains
|
|
191
|
+
contains_point
|
|
192
|
+
contour
|
|
193
|
+
contourf
|
|
194
|
+
convert_xunits
|
|
195
|
+
convert_yunits
|
|
196
|
+
csd
|
|
197
|
+
dataLim
|
|
198
|
+
drag_pan
|
|
199
|
+
draw
|
|
200
|
+
draw_artist
|
|
201
|
+
ecdf
|
|
202
|
+
end_pan
|
|
203
|
+
errorbar
|
|
204
|
+
eventplot
|
|
205
|
+
figure
|
|
206
|
+
fill
|
|
207
|
+
fill_between
|
|
208
|
+
fill_betweenx
|
|
209
|
+
findobj
|
|
210
|
+
fmt_xdata
|
|
211
|
+
fmt_ydata
|
|
212
|
+
format_coord
|
|
213
|
+
format_cursor_data
|
|
214
|
+
format_xdata
|
|
215
|
+
format_ydata
|
|
216
|
+
get_adjustable
|
|
217
|
+
get_agg_filter
|
|
218
|
+
get_alpha
|
|
219
|
+
get_anchor
|
|
220
|
+
get_animated
|
|
221
|
+
get_aspect
|
|
222
|
+
get_autoscale_on
|
|
223
|
+
get_autoscalex_on
|
|
224
|
+
get_autoscaley_on
|
|
225
|
+
get_axes_locator
|
|
226
|
+
get_axisbelow
|
|
227
|
+
get_box_aspect
|
|
228
|
+
get_children
|
|
229
|
+
get_clip_box
|
|
230
|
+
get_clip_on
|
|
231
|
+
get_clip_path
|
|
232
|
+
get_cursor_data
|
|
233
|
+
get_data_ratio
|
|
234
|
+
get_default_bbox_extra_artists
|
|
235
|
+
get_facecolor
|
|
236
|
+
get_fc
|
|
237
|
+
get_figure
|
|
238
|
+
get_forward_navigation_events
|
|
239
|
+
get_frame_on
|
|
240
|
+
get_gid
|
|
241
|
+
get_gridspec
|
|
242
|
+
get_images
|
|
243
|
+
get_in_layout
|
|
244
|
+
get_label
|
|
245
|
+
get_legend
|
|
246
|
+
get_legend_handles_labels
|
|
247
|
+
get_lines
|
|
248
|
+
get_mouseover
|
|
249
|
+
get_navigate
|
|
250
|
+
get_navigate_mode
|
|
251
|
+
get_path_effects
|
|
252
|
+
get_picker
|
|
253
|
+
get_position
|
|
254
|
+
get_rasterization_zorder
|
|
255
|
+
get_rasterized
|
|
256
|
+
get_shared_x_axes
|
|
257
|
+
get_shared_y_axes
|
|
258
|
+
get_sketch_params
|
|
259
|
+
get_snap
|
|
260
|
+
get_subplotspec
|
|
261
|
+
get_tightbbox
|
|
262
|
+
get_title
|
|
263
|
+
get_transform
|
|
264
|
+
get_transformed_clip_path_and_affine
|
|
265
|
+
get_url
|
|
266
|
+
get_visible
|
|
267
|
+
get_window_extent
|
|
268
|
+
get_xaxis
|
|
269
|
+
get_xaxis_text1_transform
|
|
270
|
+
get_xaxis_text2_transform
|
|
271
|
+
get_xaxis_transform
|
|
272
|
+
get_xbound
|
|
273
|
+
get_xgridlines
|
|
274
|
+
get_xlabel
|
|
275
|
+
get_xlim
|
|
276
|
+
get_xmajorticklabels
|
|
277
|
+
get_xmargin
|
|
278
|
+
get_xminorticklabels
|
|
279
|
+
get_xscale
|
|
280
|
+
get_xticklabels
|
|
281
|
+
get_xticklines
|
|
282
|
+
get_xticks
|
|
283
|
+
get_yaxis
|
|
284
|
+
get_yaxis_text1_transform
|
|
285
|
+
get_yaxis_text2_transform
|
|
286
|
+
get_yaxis_transform
|
|
287
|
+
get_ybound
|
|
288
|
+
get_ygridlines
|
|
289
|
+
get_ylabel
|
|
290
|
+
get_ylim
|
|
291
|
+
get_ymajorticklabels
|
|
292
|
+
get_ymargin
|
|
293
|
+
get_yminorticklabels
|
|
294
|
+
get_yscale
|
|
295
|
+
get_yticklabels
|
|
296
|
+
get_yticklines
|
|
297
|
+
get_yticks
|
|
298
|
+
get_zorder
|
|
299
|
+
grid
|
|
300
|
+
has_data
|
|
301
|
+
have_units
|
|
302
|
+
hexbin
|
|
303
|
+
hist
|
|
304
|
+
hist2d
|
|
305
|
+
hlines
|
|
306
|
+
ignore_existing_data_limits
|
|
307
|
+
images
|
|
308
|
+
imshow
|
|
309
|
+
in_axes
|
|
310
|
+
indicate_inset
|
|
311
|
+
indicate_inset_zoom
|
|
312
|
+
inset_axes
|
|
313
|
+
invert_xaxis
|
|
314
|
+
invert_yaxis
|
|
315
|
+
is_transform_set
|
|
316
|
+
label_outer
|
|
317
|
+
legend
|
|
318
|
+
legend_
|
|
319
|
+
lines
|
|
320
|
+
locator_params
|
|
321
|
+
loglog
|
|
322
|
+
magnitude_spectrum
|
|
323
|
+
margins
|
|
324
|
+
matshow
|
|
325
|
+
minorticks_off
|
|
326
|
+
minorticks_on
|
|
327
|
+
mouseover
|
|
328
|
+
name
|
|
329
|
+
patch
|
|
330
|
+
patches
|
|
331
|
+
pchanged
|
|
332
|
+
pcolor
|
|
333
|
+
pcolorfast
|
|
334
|
+
pcolormesh
|
|
335
|
+
phase_spectrum
|
|
336
|
+
pick
|
|
337
|
+
pickable
|
|
338
|
+
pie
|
|
339
|
+
plot
|
|
340
|
+
plot_date
|
|
341
|
+
properties
|
|
342
|
+
psd
|
|
343
|
+
quiver
|
|
344
|
+
quiverkey
|
|
345
|
+
redraw_in_frame
|
|
346
|
+
relim
|
|
347
|
+
remove
|
|
348
|
+
remove_callback
|
|
349
|
+
reset_position
|
|
350
|
+
scatter
|
|
351
|
+
secondary_xaxis
|
|
352
|
+
secondary_yaxis
|
|
353
|
+
semilogx
|
|
354
|
+
semilogy
|
|
355
|
+
set
|
|
356
|
+
set_adjustable
|
|
357
|
+
set_agg_filter
|
|
358
|
+
set_alpha
|
|
359
|
+
set_anchor
|
|
360
|
+
set_animated
|
|
361
|
+
set_aspect
|
|
362
|
+
set_autoscale_on
|
|
363
|
+
set_autoscalex_on
|
|
364
|
+
set_autoscaley_on
|
|
365
|
+
set_axes_locator
|
|
366
|
+
set_axis_off
|
|
367
|
+
set_axis_on
|
|
368
|
+
set_axisbelow
|
|
369
|
+
set_box_aspect
|
|
370
|
+
set_clip_box
|
|
371
|
+
set_clip_on
|
|
372
|
+
set_clip_path
|
|
373
|
+
set_facecolor
|
|
374
|
+
set_fc
|
|
375
|
+
set_figure
|
|
376
|
+
set_forward_navigation_events
|
|
377
|
+
set_frame_on
|
|
378
|
+
set_gid
|
|
379
|
+
set_in_layout
|
|
380
|
+
set_label
|
|
381
|
+
set_mouseover
|
|
382
|
+
set_navigate
|
|
383
|
+
set_navigate_mode
|
|
384
|
+
set_path_effects
|
|
385
|
+
set_picker
|
|
386
|
+
set_position
|
|
387
|
+
set_prop_cycle
|
|
388
|
+
set_rasterization_zorder
|
|
389
|
+
set_rasterized
|
|
390
|
+
set_sketch_params
|
|
391
|
+
set_snap
|
|
392
|
+
set_subplotspec
|
|
393
|
+
set_title
|
|
394
|
+
set_transform
|
|
395
|
+
set_url
|
|
396
|
+
set_visible
|
|
397
|
+
set_xbound
|
|
398
|
+
set_xlabel
|
|
399
|
+
set_xlim
|
|
400
|
+
set_xmargin
|
|
401
|
+
set_xscale
|
|
402
|
+
set_xticklabels
|
|
403
|
+
set_xticks
|
|
404
|
+
set_ybound
|
|
405
|
+
set_ylabel
|
|
406
|
+
set_ylim
|
|
407
|
+
set_ymargin
|
|
408
|
+
set_yscale
|
|
409
|
+
set_yticklabels
|
|
410
|
+
set_yticks
|
|
411
|
+
set_zorder
|
|
412
|
+
sharex
|
|
413
|
+
sharey
|
|
414
|
+
specgram
|
|
415
|
+
spines
|
|
416
|
+
spy
|
|
417
|
+
stackplot
|
|
418
|
+
stairs
|
|
419
|
+
stale
|
|
420
|
+
stale_callback
|
|
421
|
+
start_pan
|
|
422
|
+
stem
|
|
423
|
+
step
|
|
424
|
+
sticky_edges
|
|
425
|
+
streamplot
|
|
426
|
+
table
|
|
427
|
+
tables
|
|
428
|
+
text
|
|
429
|
+
texts
|
|
430
|
+
tick_params
|
|
431
|
+
ticklabel_format
|
|
432
|
+
title
|
|
433
|
+
titleOffsetTrans
|
|
434
|
+
transAxes
|
|
435
|
+
transData
|
|
436
|
+
transLimits
|
|
437
|
+
transScale
|
|
438
|
+
tricontour
|
|
439
|
+
tricontourf
|
|
440
|
+
tripcolor
|
|
441
|
+
triplot
|
|
442
|
+
twinx
|
|
443
|
+
twiny
|
|
444
|
+
update
|
|
445
|
+
update_datalim
|
|
446
|
+
update_from
|
|
447
|
+
use_sticky_edges
|
|
448
|
+
viewLim
|
|
449
|
+
violin
|
|
450
|
+
violinplot
|
|
451
|
+
vlines
|
|
452
|
+
xaxis
|
|
453
|
+
xaxis_date
|
|
454
|
+
xaxis_inverted
|
|
455
|
+
xcorr
|
|
456
|
+
yaxis
|
|
457
|
+
yaxis_date
|
|
458
|
+
yaxis_inverted
|
|
459
|
+
zorder
|
scitex/introspect/_list_api.py
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
"""Module API listing utilities."""
|
|
6
6
|
|
|
7
|
+
import importlib
|
|
7
8
|
import inspect
|
|
8
9
|
import sys
|
|
9
10
|
import warnings
|
|
@@ -108,10 +109,12 @@ def _list_api_impl(
|
|
|
108
109
|
warnings.filterwarnings("ignore", category=UserWarning)
|
|
109
110
|
|
|
110
111
|
if isinstance(module, str):
|
|
112
|
+
# Normalize hyphens to underscores for Python module names
|
|
113
|
+
module_name = module.replace("-", "_")
|
|
111
114
|
try:
|
|
112
|
-
module =
|
|
115
|
+
module = importlib.import_module(module_name)
|
|
113
116
|
except ImportError as err:
|
|
114
|
-
print(f"Error importing module {
|
|
117
|
+
print(f"Error importing module {module_name}: {err}")
|
|
115
118
|
return pd.DataFrame(columns=columns)
|
|
116
119
|
|
|
117
120
|
if visited is None:
|
|
@@ -115,7 +115,7 @@ from figrecipe import *
|
|
|
115
115
|
|
|
116
116
|
## Port Scheme
|
|
117
117
|
|
|
118
|
-
SciTeX uses port scheme 3129X (
|
|
118
|
+
SciTeX uses port scheme 3129X (TEX → te-ku-su → 2-9-3 in Japanese):
|
|
119
119
|
|
|
120
120
|
| Port | Service |
|
|
121
121
|
|-------|------------------|
|
|
@@ -130,7 +130,7 @@ External packages should use `{ENV_PREFIX}_{SETTING}`:
|
|
|
130
130
|
|
|
131
131
|
```
|
|
132
132
|
SCITEX_PLT_MODE=local
|
|
133
|
-
CROSSREF_LOCAL_API_URL=http://localhost:
|
|
133
|
+
CROSSREF_LOCAL_API_URL=http://localhost:8333
|
|
134
134
|
SCITEX_AUDIO_RELAY_URL=http://localhost:31293
|
|
135
135
|
```
|
|
136
136
|
|
scitex/scholar/__init__.py
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
"""
|
|
2
|
-
SciTeX Scholar - Scientific Literature Management Made Simple
|
|
1
|
+
"""SciTeX Scholar - Scientific Literature Management Made Simple.
|
|
3
2
|
|
|
4
3
|
This module provides a unified interface for:
|
|
5
4
|
- Searching scientific literature across multiple sources
|
|
@@ -27,17 +26,17 @@ _missing = warn_module_deps("scholar")
|
|
|
27
26
|
try:
|
|
28
27
|
from scitex.scholar.auth import ScholarAuthManager
|
|
29
28
|
except ImportError:
|
|
30
|
-
ScholarAuthManager = None
|
|
29
|
+
ScholarAuthManager = None # type: ignore[misc,assignment]
|
|
31
30
|
|
|
32
31
|
try:
|
|
33
32
|
from scitex.scholar.browser import ScholarBrowserManager
|
|
34
33
|
except ImportError:
|
|
35
|
-
ScholarBrowserManager = None
|
|
34
|
+
ScholarBrowserManager = None # type: ignore[misc,assignment]
|
|
36
35
|
|
|
37
36
|
try:
|
|
38
37
|
from scitex.scholar.config import ScholarConfig
|
|
39
38
|
except ImportError:
|
|
40
|
-
ScholarConfig = None
|
|
39
|
+
ScholarConfig = None # type: ignore[misc,assignment]
|
|
41
40
|
|
|
42
41
|
try:
|
|
43
42
|
from scitex.scholar.core import Paper, Papers, Scholar
|
|
@@ -71,12 +70,17 @@ try:
|
|
|
71
70
|
except ImportError:
|
|
72
71
|
utils = None
|
|
73
72
|
|
|
74
|
-
#
|
|
73
|
+
# Local database integrations (crossref-local, openalex-local)
|
|
75
74
|
try:
|
|
76
|
-
from . import crossref_scitex
|
|
75
|
+
from .local_dbs import crossref_scitex
|
|
77
76
|
except ImportError:
|
|
78
77
|
crossref_scitex = None
|
|
79
78
|
|
|
79
|
+
try:
|
|
80
|
+
from .local_dbs import openalex_scitex
|
|
81
|
+
except ImportError:
|
|
82
|
+
openalex_scitex = None
|
|
83
|
+
|
|
80
84
|
__all__ = [
|
|
81
85
|
"ScholarConfig",
|
|
82
86
|
"ScholarEngine",
|
|
@@ -87,8 +91,9 @@ __all__ = [
|
|
|
87
91
|
"Papers",
|
|
88
92
|
"Scholar",
|
|
89
93
|
"utils",
|
|
90
|
-
#
|
|
91
|
-
"crossref_scitex",
|
|
94
|
+
# Local database integrations
|
|
95
|
+
"crossref_scitex", # CrossRef (167M+ papers via crossref-local)
|
|
96
|
+
"openalex_scitex", # OpenAlex (284M+ works via openalex-local)
|
|
92
97
|
]
|
|
93
98
|
|
|
94
99
|
# # Import core classes for advanced users
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
# Timestamp: 2026-01-29
|
|
3
|
+
# File: src/scitex/scholar/_mcp/crossref_tool_schemas.py
|
|
4
|
+
"""CrossRef-Local tool schemas for MCP server.
|
|
5
|
+
|
|
6
|
+
Provides access to 167M+ papers via crossref-local database.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from __future__ import annotations
|
|
10
|
+
|
|
11
|
+
import mcp.types as types
|
|
12
|
+
|
|
13
|
+
__all__ = ["get_crossref_tool_schemas"]
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def get_crossref_tool_schemas() -> list[types.Tool]:
|
|
17
|
+
"""Return CrossRef-Local tool schemas."""
|
|
18
|
+
return [
|
|
19
|
+
types.Tool(
|
|
20
|
+
name="crossref_search",
|
|
21
|
+
description=(
|
|
22
|
+
"Search CrossRef database (167M+ papers) via crossref-local. "
|
|
23
|
+
"Fast full-text search with year filtering and citation enrichment."
|
|
24
|
+
),
|
|
25
|
+
inputSchema={
|
|
26
|
+
"type": "object",
|
|
27
|
+
"properties": {
|
|
28
|
+
"query": {
|
|
29
|
+
"type": "string",
|
|
30
|
+
"description": "Search query string (full-text search)",
|
|
31
|
+
},
|
|
32
|
+
"limit": {
|
|
33
|
+
"type": "integer",
|
|
34
|
+
"description": "Maximum number of results",
|
|
35
|
+
"default": 20,
|
|
36
|
+
},
|
|
37
|
+
"offset": {
|
|
38
|
+
"type": "integer",
|
|
39
|
+
"description": "Number of results to skip for pagination",
|
|
40
|
+
"default": 0,
|
|
41
|
+
},
|
|
42
|
+
"year_min": {
|
|
43
|
+
"type": "integer",
|
|
44
|
+
"description": "Minimum publication year filter",
|
|
45
|
+
},
|
|
46
|
+
"year_max": {
|
|
47
|
+
"type": "integer",
|
|
48
|
+
"description": "Maximum publication year filter",
|
|
49
|
+
},
|
|
50
|
+
"enrich": {
|
|
51
|
+
"type": "boolean",
|
|
52
|
+
"description": "Add citation counts and references",
|
|
53
|
+
"default": False,
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
"required": ["query"],
|
|
57
|
+
},
|
|
58
|
+
),
|
|
59
|
+
types.Tool(
|
|
60
|
+
name="crossref_get",
|
|
61
|
+
description="Get a paper by DOI from CrossRef database with optional citation data.",
|
|
62
|
+
inputSchema={
|
|
63
|
+
"type": "object",
|
|
64
|
+
"properties": {
|
|
65
|
+
"doi": {
|
|
66
|
+
"type": "string",
|
|
67
|
+
"description": "DOI of the paper (e.g., '10.1038/nature12373')",
|
|
68
|
+
},
|
|
69
|
+
"include_citations": {
|
|
70
|
+
"type": "boolean",
|
|
71
|
+
"description": "Include list of DOIs that cite this paper",
|
|
72
|
+
"default": False,
|
|
73
|
+
},
|
|
74
|
+
"include_references": {
|
|
75
|
+
"type": "boolean",
|
|
76
|
+
"description": "Include list of DOIs this paper references",
|
|
77
|
+
"default": False,
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
"required": ["doi"],
|
|
81
|
+
},
|
|
82
|
+
),
|
|
83
|
+
types.Tool(
|
|
84
|
+
name="crossref_count",
|
|
85
|
+
description="Count papers matching a search query in CrossRef database.",
|
|
86
|
+
inputSchema={
|
|
87
|
+
"type": "object",
|
|
88
|
+
"properties": {
|
|
89
|
+
"query": {
|
|
90
|
+
"type": "string",
|
|
91
|
+
"description": "Search query string",
|
|
92
|
+
},
|
|
93
|
+
},
|
|
94
|
+
"required": ["query"],
|
|
95
|
+
},
|
|
96
|
+
),
|
|
97
|
+
types.Tool(
|
|
98
|
+
name="crossref_citations",
|
|
99
|
+
description="Get citation relationships for a paper (citing papers and/or references).",
|
|
100
|
+
inputSchema={
|
|
101
|
+
"type": "object",
|
|
102
|
+
"properties": {
|
|
103
|
+
"doi": {
|
|
104
|
+
"type": "string",
|
|
105
|
+
"description": "DOI of the paper",
|
|
106
|
+
},
|
|
107
|
+
"direction": {
|
|
108
|
+
"type": "string",
|
|
109
|
+
"description": "Citation direction: 'citing', 'cited', or 'both'",
|
|
110
|
+
"enum": ["citing", "cited", "both"],
|
|
111
|
+
"default": "citing",
|
|
112
|
+
},
|
|
113
|
+
"limit": {
|
|
114
|
+
"type": "integer",
|
|
115
|
+
"description": "Maximum results per direction",
|
|
116
|
+
"default": 100,
|
|
117
|
+
},
|
|
118
|
+
},
|
|
119
|
+
"required": ["doi"],
|
|
120
|
+
},
|
|
121
|
+
),
|
|
122
|
+
types.Tool(
|
|
123
|
+
name="crossref_info",
|
|
124
|
+
description="Get CrossRef database configuration and status.",
|
|
125
|
+
inputSchema={
|
|
126
|
+
"type": "object",
|
|
127
|
+
"properties": {},
|
|
128
|
+
},
|
|
129
|
+
),
|
|
130
|
+
]
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
# EOF
|