Source code for pylav.nodes.api.responses.filters.timescale

from __future__ import annotations

import dataclasses
from typing import Annotated

from pylav.nodes.api.responses.filters.misc import ValueRange


[docs] @dataclasses.dataclass(repr=True, frozen=True, kw_only=True, slots=True) class Timescale: speed: Annotated[float | None, ValueRange(min=0.0, max=float("inf"))] = None pitch: Annotated[float | None, ValueRange(min=0.0, max=float("inf"))] = None rate: Annotated[float | None, ValueRange(min=0.0, max=float("inf"))] = None
[docs] def to_dict(self) -> dict[str, float]: response = {} if self.speed is not None: response["speed"] = self.speed if self.pitch is not None: response["pitch"] = self.pitch if self.rate is not None: response["rate"] = self.rate return response