Using some new python 3.10 features.

Signed-off-by: Cliff Hill <xlorep@darkhelm.org>
This commit is contained in:
2021-10-20 11:46:20 -04:00
parent 4b0fcb840c
commit bd5d9e23db
5 changed files with 5 additions and 7 deletions
+2 -3
View File
@@ -1,7 +1,6 @@
"""Contains the data models used throughout the application.""" """Contains the data models used throughout the application."""
import dataclasses import dataclasses
import datetime import datetime
import typing
import sqlalchemy.orm # type: ignore [import] import sqlalchemy.orm # type: ignore [import]
@@ -57,11 +56,11 @@ class Track(base.BaseData):
play_count: int = dataclasses.field( play_count: int = dataclasses.field(
metadata={"sa": sqlalchemy.Column(sqlalchemy.Integer, nullable=False)}, metadata={"sa": sqlalchemy.Column(sqlalchemy.Integer, nullable=False)},
) )
rating: typing.Optional[int] = dataclasses.field( rating: int | None = dataclasses.field(
default=None, default=None,
metadata={"sa": sqlalchemy.Column(sqlalchemy.Integer)}, metadata={"sa": sqlalchemy.Column(sqlalchemy.Integer)},
) )
played: typing.Optional[datetime.datetime] = dataclasses.field( played: datetime.datetime | None = dataclasses.field(
default=None, default=None,
metadata={"sa": sqlalchemy.Column(sqlalchemy.DateTime)}, metadata={"sa": sqlalchemy.Column(sqlalchemy.DateTime)},
) )
View File
View File
+1 -1
View File
@@ -56,7 +56,7 @@ def calc_duration(durations: list[int]) -> None:
async def gen_tracks( async def gen_tracks(
*, *,
batch_size: int = settings.get().download.batch_size, batch_size: int = settings.get().download.batch_size,
) -> typing.AsyncGenerator[models.Track, None]: ) -> collections.abc.AsyncGenerator[models.Track, None]:
"""Generate all Tracks from the Server, asynchronously. """Generate all Tracks from the Server, asynchronously.
Args: Args:
+2 -3
View File
@@ -4,11 +4,10 @@ from __future__ import annotations
import collections.abc import collections.abc
import contextlib import contextlib
import datetime import datetime
import typing
@contextlib.contextmanager @contextlib.contextmanager
def time_this() -> typing.Generator[None, None, None]: # pragma: no cover def time_this() -> collections.abc.Generator[None, None, None]: # pragma: no cover
"""Context manager to time the execution of a block of code.""" """Context manager to time the execution of a block of code."""
start = datetime.datetime.now() start = datetime.datetime.now()
try: try:
@@ -21,7 +20,7 @@ def time_this() -> typing.Generator[None, None, None]: # pragma: no cover
def harmonic_mean( def harmonic_mean(
data: collections.abc.Sequence[float], data: collections.abc.Sequence[float],
*, *,
weights: typing.Optional[collections.abc.Sequence[float]] = None, weights: collections.abc.Sequence[float] | None = None,
) -> float: ) -> float:
"""Calculate the [weighted] harmonic mean of the given data. """Calculate the [weighted] harmonic mean of the given data.