add types to abx use api

This commit is contained in:
Nick Sweeting 2024-10-01 00:18:21 -07:00
parent 9255fce2a3
commit 71d215367b
No known key found for this signature in database

View file

@ -1,9 +1,19 @@
__package__ = 'abx.archivebox' __package__ = 'abx.archivebox'
from typing import Dict, Any
from benedict import benedict from benedict import benedict
from .. import pm from .. import pm
from .base_hook import BaseHook
from .base_configset import BaseConfigSet
from .base_binary import BaseBinary, BaseBinProvider
from .base_extractor import BaseExtractor
from .base_replayer import BaseReplayer
from .base_check import BaseCheck
from .base_queue import BaseQueue
from .base_admindataview import BaseAdminDataView
from .base_searchbackend import BaseSearchBackend
# API exposed to ArchiveBox code # API exposed to ArchiveBox code
@ -13,77 +23,77 @@ def get_PLUGINS():
for plugin in pm.get_plugins() for plugin in pm.get_plugins()
}) })
def get_HOOKS(PLUGINS): def get_HOOKS(PLUGINS) -> Dict[str, BaseHook]:
return benedict({ return benedict({
hook.id: hook hook.id: hook
for plugin in PLUGINS.values() for plugin in PLUGINS.values()
for hook in plugin.hooks for hook in plugin.hooks
}) })
def get_CONFIGS(): def get_CONFIGS() -> Dict[str, BaseConfigSet]:
return benedict({ return benedict({
config_id: config config_id: config
for plugin_configs in pm.hook.get_CONFIGS() for plugin_configs in pm.hook.get_CONFIGS()
for config_id, config in plugin_configs.items() for config_id, config in plugin_configs.items()
}) })
def get_FLAT_CONFIG(): def get_FLAT_CONFIG() -> Dict[str, Any]:
return benedict({ return benedict({
key: value key: value
for plugin_config_dict in pm.hook.get_FLAT_CONFIG() for plugin_config_dict in pm.hook.get_FLAT_CONFIG()
for key, value in plugin_config_dict.items() for key, value in plugin_config_dict.items()
}) })
def get_BINPROVIDERS(): def get_BINPROVIDERS() -> Dict[str, BaseBinProvider]:
return benedict({ return benedict({
binprovider.id: binprovider binprovider.id: binprovider
for plugin_binproviders in pm.hook.get_BINPROVIDERS() for plugin_binproviders in pm.hook.get_BINPROVIDERS()
for binprovider in plugin_binproviders for binprovider in plugin_binproviders
}) })
def get_BINARIES(): def get_BINARIES() -> Dict[str, BaseBinary]:
return benedict({ return benedict({
binary.id: binary binary.id: binary
for plugin_binaries in pm.hook.get_BINARIES() for plugin_binaries in pm.hook.get_BINARIES()
for binary in plugin_binaries for binary in plugin_binaries
}) })
def get_EXTRACTORS(): def get_EXTRACTORS() -> Dict[str, BaseExtractor]:
return benedict({ return benedict({
extractor.id: extractor extractor.id: extractor
for plugin_extractors in pm.hook.get_EXTRACTORS() for plugin_extractors in pm.hook.get_EXTRACTORS()
for extractor in plugin_extractors for extractor in plugin_extractors
}) })
def get_REPLAYERS(): def get_REPLAYERS() -> Dict[str, BaseReplayer]:
return benedict({ return benedict({
replayer.id: replayer replayer.id: replayer
for plugin_replayers in pm.hook.get_REPLAYERS() for plugin_replayers in pm.hook.get_REPLAYERS()
for replayer in plugin_replayers for replayer in plugin_replayers
}) })
def get_CHECKS(): def get_CHECKS() -> Dict[str, BaseCheck]:
return benedict({ return benedict({
check.id: check check.id: check
for plugin_checks in pm.hook.get_CHECKS() for plugin_checks in pm.hook.get_CHECKS()
for check in plugin_checks for check in plugin_checks
}) })
def get_ADMINDATAVIEWS(): def get_ADMINDATAVIEWS() -> Dict[str, BaseAdminDataView]:
return benedict({ return benedict({
admin_dataview.id: admin_dataview admin_dataview.id: admin_dataview
for plugin_admin_dataviews in pm.hook.get_ADMINDATAVIEWS() for plugin_admin_dataviews in pm.hook.get_ADMINDATAVIEWS()
for admin_dataview in plugin_admin_dataviews for admin_dataview in plugin_admin_dataviews
}) })
def get_QUEUES(): def get_QUEUES() -> Dict[str, BaseQueue]:
return benedict({ return benedict({
queue.id: queue queue.id: queue
for plugin_queues in pm.hook.get_QUEUES() for plugin_queues in pm.hook.get_QUEUES()
for queue in plugin_queues for queue in plugin_queues
}) })
def get_SEARCHBACKENDS(): def get_SEARCHBACKENDS() -> Dict[str, BaseSearchBackend]:
return benedict({ return benedict({
searchbackend.id: searchbackend searchbackend.id: searchbackend
for plugin_searchbackends in pm.hook.get_SEARCHBACKENDS() for plugin_searchbackends in pm.hook.get_SEARCHBACKENDS()