Source code for intake_elasticsearch

from intake.source import base

from ._version import get_versions
__version__ = get_versions()['version']
del get_versions


[docs]class ESSeqPlugin(base.Plugin): """Plugin for ElasticSearch to sequence reader""" container = 'python' name = 'elasticsearch_seq' source = 'seq' def __init__(self): base.Plugin.__init__(self, name=self.name, version=__version__, container=self.container, partition_access=False)
[docs] def open(self, query, **kwargs): """ Create ElasticSearchSource instance Parameters: query : str Query string (lucene syntax or JSON text) qargs: dict Set of modifiers to apply to the query (https://elasticsearch-py.readthedocs.io/en/master/api.html#elasticsearch.Elasticsearch.search) kwargs (dict): Additional parameters to pass to ElasticSearch init. """ from .elasticsearch_table import ElasticSearchTableSource from .elasticsearch_seq import ElasticSearchSeqSource sources = {'seq': ElasticSearchSeqSource, 'table': ElasticSearchTableSource} source = sources[self.source] base_kwargs, source_kwargs = self.separate_base_kwargs(kwargs) qargs = source_kwargs.pop('qargs', {}) return source(query=query, qargs=qargs, es_kwargs=source_kwargs, metadata=base_kwargs['metadata'])
[docs]class ESTablePlugin(ESSeqPlugin): """Plugin for ElasticSearch to pandas reader""" container = 'dataframe' name = 'elasticsearch_table' source = 'table'