mirror of
https://github.com/nexus-stc/hyperboria
synced 2025-02-14 19:16:48 +01:00
- [nexus] Remove outdated protos - [nexus] Development - [nexus] Development - [nexus] Development - [nexus] Development - [nexus] Development - [nexus] Refactor views - [nexus] Update aiosumma - [nexus] Add tags - [nexus] Development - [nexus] Update repository - [nexus] Update repository - [nexus] Update dependencies - [nexus] Update dependencies - [nexus] Fixes for MetaAPI - [nexus] Support for new queries - [nexus] Adopt new versions of search - [nexus] Improving Nexus - [nexus] Various fixes - [nexus] Add profile - [nexus] Fixes for ingestion - [nexus] Refactorings and bugfixes - [idm] Add profile methods - [nexus] Fix stalled nexus-meta bugs - [nexus] Various bugfixes - [nexus] Restore IDM API functionality GitOrigin-RevId: a0842345a6dde5b321279ab5510a50c0def0e71a
33 lines
955 B
Python
33 lines
955 B
Python
from typing import (
|
|
AsyncIterable,
|
|
List,
|
|
Optional,
|
|
)
|
|
|
|
from nexus.pylon.prepared_request import PreparedRequest
|
|
from nexus.pylon.proxy_manager import ProxyManager
|
|
from nexus.pylon.resolvers.base import BaseResolver
|
|
|
|
|
|
class TemplateResolver(BaseResolver):
|
|
def __init__(
|
|
self,
|
|
format_string: str = 'https://doi.org/{doi}',
|
|
timeout: float = 10.0,
|
|
proxy_list: Optional[List] = None,
|
|
proxy_manager: Optional[ProxyManager] = None,
|
|
):
|
|
super().__init__(proxy_list=proxy_list, proxy_manager=proxy_manager)
|
|
self.format_string = format_string
|
|
self.timeout = timeout
|
|
|
|
def __str__(self):
|
|
return f'{self.__class__.__name__}({self.format_string})'
|
|
|
|
async def resolve(self, params) -> AsyncIterable[PreparedRequest]:
|
|
yield PreparedRequest(
|
|
method='GET',
|
|
url=self.format_string.format(**params),
|
|
timeout=self.timeout,
|
|
)
|