diff --git a/common/__init__.py b/common/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/common/queries.py b/common/queries.py new file mode 100644 index 0000000000000000000000000000000000000000..92667abfe7ba531097b4dcc649d1655c52a0b2a7 --- /dev/null +++ b/common/queries.py @@ -0,0 +1,38 @@ +from dataclasses import dataclass, field +from typing import List + + +@dataclass +class Query: + _from: str + _select: str = "*" + _where: str = "" + _group_by: List[str] = field(default_factory=list) + + def __str__(self): + + ret = f'SELECT \"{self._select}\" ' + ret += f'FROM \"{self._from}\"' + if self._where: + ret += f' WHERE ({self._where}) AND $timeFilter' + else: + ret += ' WHERE $timeFilter' + if self._group_by: + group_by = ', '.join(f'"{tag}"' for tag in self._group_by) + ret += f' GROUP BY {group_by}' + return ret + + +@dataclass +class ShowTagQuery: + base = "SHOW TAG VALUES" + + _key_name: str + _from: str = "" + + def __str__(self): + from_part = "" + if self._from != "": + from_part = f'FROM "{self._from}" ' + + return f"{self.base} {from_part}WITH key = \"{self._key_name}\""