mirror of
https://github.com/clearml/clearml-server
synced 2025-01-31 10:56:48 +00:00
37 lines
1007 B
Python
37 lines
1007 B
Python
from typing import Optional, Sequence, Iterable, Union
|
|
|
|
from apiserver.config_repo import config
|
|
|
|
log = config.logger(__file__)
|
|
|
|
RANGE_IGNORE_VALUE = -1
|
|
|
|
|
|
class Builder:
|
|
@staticmethod
|
|
def dates_range(from_date: Union[int, float], to_date: Union[int, float]) -> dict:
|
|
return {
|
|
"range": {
|
|
"timestamp": {
|
|
"gte": int(from_date),
|
|
"lte": int(to_date),
|
|
"format": "epoch_second",
|
|
}
|
|
}
|
|
}
|
|
|
|
@staticmethod
|
|
def terms(field: str, values: Iterable[str]) -> dict:
|
|
return {"terms": {field: list(values)}}
|
|
|
|
@staticmethod
|
|
def normalize_range(
|
|
range_: Sequence[Union[int, float]],
|
|
ignore_value: Union[int, float] = RANGE_IGNORE_VALUE,
|
|
) -> Optional[Sequence[Union[int, float]]]:
|
|
if not range_ or set(range_) == {ignore_value}:
|
|
return None
|
|
if len(range_) < 2:
|
|
return [range_[0]] * 2
|
|
return range_
|