agent_search_gateway.providers.academic.defaults
Built-in academic discovery and open-access resolver registrations.
1"""Built-in academic discovery and open-access resolver registrations.""" 2 3from .arxiv import ArxivProvider 4from .core import CoreProvider 5from .crossref import CrossrefProvider 6from .dblp import DblpProvider 7from .openalex import OpenAlexProvider 8from .registry import ( 9 AcademicProviderRegistration, 10 AcademicProviderRegistry, 11 OAResolverRegistration, 12 OAResolverRegistry, 13) 14from .semantic_scholar import SemanticScholarProvider 15from .unpaywall import UnpaywallResolver 16 17_ALLOWED_OPTIONS = frozenset({"api_url"}) 18 19 20def build_default_academic_registry() -> AcademicProviderRegistry: 21 registry = AcademicProviderRegistry() 22 registrations = ( 23 AcademicProviderRegistration("arxiv", ArxivProvider, _ALLOWED_OPTIONS, "none", "none"), 24 AcademicProviderRegistration( 25 "semantic_scholar", 26 SemanticScholarProvider, 27 _ALLOWED_OPTIONS, 28 "optional", 29 "none", 30 ), 31 AcademicProviderRegistration( 32 "openalex", OpenAlexProvider, _ALLOWED_OPTIONS, "none", "optional" 33 ), 34 AcademicProviderRegistration("dblp", DblpProvider, _ALLOWED_OPTIONS, "none", "none"), 35 AcademicProviderRegistration( 36 "crossref", CrossrefProvider, _ALLOWED_OPTIONS, "none", "optional" 37 ), 38 AcademicProviderRegistration("core", CoreProvider, _ALLOWED_OPTIONS, "required", "none"), 39 ) 40 for registration in registrations: 41 registry.register(registration) 42 return registry 43 44 45def build_default_oa_resolver_registry() -> OAResolverRegistry: 46 registry = OAResolverRegistry() 47 registry.register( 48 OAResolverRegistration( 49 "unpaywall", 50 UnpaywallResolver, 51 _ALLOWED_OPTIONS, 52 "none", 53 "required", 54 ) 55 ) 56 return registry
def
build_default_academic_registry() -> agent_search_gateway.providers.academic.registry.AcademicProviderRegistry:
21def build_default_academic_registry() -> AcademicProviderRegistry: 22 registry = AcademicProviderRegistry() 23 registrations = ( 24 AcademicProviderRegistration("arxiv", ArxivProvider, _ALLOWED_OPTIONS, "none", "none"), 25 AcademicProviderRegistration( 26 "semantic_scholar", 27 SemanticScholarProvider, 28 _ALLOWED_OPTIONS, 29 "optional", 30 "none", 31 ), 32 AcademicProviderRegistration( 33 "openalex", OpenAlexProvider, _ALLOWED_OPTIONS, "none", "optional" 34 ), 35 AcademicProviderRegistration("dblp", DblpProvider, _ALLOWED_OPTIONS, "none", "none"), 36 AcademicProviderRegistration( 37 "crossref", CrossrefProvider, _ALLOWED_OPTIONS, "none", "optional" 38 ), 39 AcademicProviderRegistration("core", CoreProvider, _ALLOWED_OPTIONS, "required", "none"), 40 ) 41 for registration in registrations: 42 registry.register(registration) 43 return registry
def
build_default_oa_resolver_registry() -> agent_search_gateway.providers.academic.registry.OAResolverRegistry: