Source code for fireant.slicer.base

[docs]class SlicerElement(object): """ The `SlicerElement` class represents an element of the slicer, either a metric or dimension, which contains information about such as how to query it from the database. """ def __init__(self, key, label=None, definition=None, display_definition=None): """ :param key: The unique identifier of the slicer element, used in the Slicer manager API to reference a defined element. :param label: A displayable representation of the column. Defaults to the key capitalized. :param definition: The definition of the element as a PyPika expression which defines how to query it from the database. :param display_definition: The definition of the display field for the element as a PyPika expression. Similar to the definition except used for querying labels. """ self.key = key self.label = label if label is not None else key self.definition = definition self.display_definition = display_definition self.display_key = '{}_display'.format(key) \ if display_definition is not None \ else None def __repr__(self): return self.key @property def has_display_field(self): return getattr(self, 'display_definition', None) is not None def __eq__(self, other): return isinstance(other, self.__class__) \ and self.key == other.key \ and str(self.definition) == str(other.definition) def __hash__(self): return hash('{}({})'.format(self.__class__.__name__, self.key))