From 4a52a71956a8d46fcb7294ac71734504bb09bcc2 Mon Sep 17 00:00:00 2001 From: S. Solomon Darnell Date: Fri, 28 Mar 2025 21:52:21 -0500 Subject: two version of R2R are here --- .../site-packages/prometheus_client/samples.py | 53 ++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 .venv/lib/python3.12/site-packages/prometheus_client/samples.py (limited to '.venv/lib/python3.12/site-packages/prometheus_client/samples.py') diff --git a/.venv/lib/python3.12/site-packages/prometheus_client/samples.py b/.venv/lib/python3.12/site-packages/prometheus_client/samples.py new file mode 100644 index 00000000..53c47264 --- /dev/null +++ b/.venv/lib/python3.12/site-packages/prometheus_client/samples.py @@ -0,0 +1,53 @@ +from typing import Dict, NamedTuple, Optional, Union + + +class Timestamp: + """A nanosecond-resolution timestamp.""" + + def __init__(self, sec: float, nsec: float) -> None: + if nsec < 0 or nsec >= 1e9: + raise ValueError(f"Invalid value for nanoseconds in Timestamp: {nsec}") + if sec < 0: + nsec = -nsec + self.sec: int = int(sec) + self.nsec: int = int(nsec) + + def __str__(self) -> str: + return f"{self.sec}.{self.nsec:09d}" + + def __repr__(self) -> str: + return f"Timestamp({self.sec}, {self.nsec})" + + def __float__(self) -> float: + return float(self.sec) + float(self.nsec) / 1e9 + + def __eq__(self, other: object) -> bool: + return isinstance(other, Timestamp) and self.sec == other.sec and self.nsec == other.nsec + + def __ne__(self, other: object) -> bool: + return not self == other + + def __gt__(self, other: "Timestamp") -> bool: + return self.nsec > other.nsec if self.sec == other.sec else self.sec > other.sec + + def __lt__(self, other: "Timestamp") -> bool: + return self.nsec < other.nsec if self.sec == other.sec else self.sec < other.sec + + +# Timestamp and exemplar are optional. +# Value can be an int or a float. +# Timestamp can be a float containing a unixtime in seconds, +# a Timestamp object, or None. +# Exemplar can be an Exemplar object, or None. +class Exemplar(NamedTuple): + labels: Dict[str, str] + value: float + timestamp: Optional[Union[float, Timestamp]] = None + + +class Sample(NamedTuple): + name: str + labels: Dict[str, str] + value: float + timestamp: Optional[Union[float, Timestamp]] = None + exemplar: Optional[Exemplar] = None -- cgit v1.2.3