Source code for birding.search
"""Search. Get tweets."""
from abc import ABCMeta, abstractmethod
from .config import import_name
[docs]def search_manager_from_config(config, **default_init):
"""Get a `SearchManager` instance dynamically based on config.
`config` is a dictionary containing ``class`` and ``init`` keys as defined
in :mod:`birding.config`.
"""
manager_cls = import_name(config['class'], default_ns='birding.search')
init = {}
init.update(default_init)
init.update(config['init'])
manager = manager_cls(**init)
return manager
[docs]class SearchManager(object):
"""Abstract base class for service object to search for tweets."""
__metaclass__ = ABCMeta
@abstractmethod
[docs] def search(self, q=None, **kw):
"""Search for ``q``, return results directly from source."""
@abstractmethod
[docs] def lookup_search_result(self, result, **kw):
"""Perform :meth:`lookup` on return value of :meth:`search`."""
@abstractmethod
[docs] def lookup(self, id_list, **kw):
"""Lookup list of statuses, return results directly from source.
Input can be any sequence of numeric or string values representing
status IDs.
"""