Source code for GCR.query

"""
GCRQuery module (a subclass of easyquery.Query)
"""
import numpy as np
import easyquery
from .utils import is_string_like

__all__ = ['GCRQuery']


[docs]class GCRQuery(easyquery.Query): @staticmethod def _get_table_len(table): try: return len(next(iter(table.values()))) except StopIteration: return 0 @staticmethod def _mask_table(table, mask): return {k: v[mask] for k, v in table.items()} @staticmethod def _check_basic_query(basic_query): return (basic_query is None or is_string_like(basic_query) or ( isinstance(basic_query, tuple) and len(basic_query) > 1 and callable(basic_query[0]) )) def check_scalar(self, scalar_dict): """ check if `scalar_dict` satisfy query """ table = {k: np.array([v]) for k, v in scalar_dict.items()} return self.mask(table)[0]