mirror of
https://github.com/bookwyrm-social/bookwyrm.git
synced 2024-11-22 17:41:08 +00:00
Use typing_extensions.Self instead of TypeVar
This commit is contained in:
parent
6aaff28c13
commit
ff1f239a57
1 changed files with 4 additions and 5 deletions
|
@ -4,7 +4,8 @@ from __future__ import annotations
|
|||
|
||||
from datetime import datetime, timedelta
|
||||
import re
|
||||
from typing import Any, Optional, Type, TypeVar, cast
|
||||
from typing import Any, Optional, Type, cast
|
||||
from typing_extensions import Self
|
||||
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.db import models
|
||||
|
@ -23,8 +24,6 @@ __all__ = [
|
|||
_partial_re = re.compile(r"(\d{4})(?:-(\d\d?))?(?:-(\d\d?))?$")
|
||||
_westmost_tz = timezone.get_fixed_timezone(timedelta(hours=-12))
|
||||
|
||||
Partial = TypeVar("Partial", bound="PartialDate") # TODO: use Self in Python >= 3.11
|
||||
|
||||
# TODO: migrate PartialDate: `datetime` => `date`
|
||||
# TODO: migrate PartialDateModel: `DateTimeField` => `DateField`
|
||||
|
||||
|
@ -47,7 +46,7 @@ class PartialDate(datetime):
|
|||
return self.strftime("%Y-%m-%d")
|
||||
|
||||
@classmethod
|
||||
def from_datetime(cls: Type[Partial], dt: datetime) -> Partial:
|
||||
def from_datetime(cls, dt: datetime) -> Self:
|
||||
"""construct a PartialDate object from a timezone-aware datetime
|
||||
|
||||
Use subclasses to specify precision. If `dt` is naive, `ValueError`
|
||||
|
@ -59,7 +58,7 @@ class PartialDate(datetime):
|
|||
return cls.combine(dt.date(), dt.time(), tzinfo=dt.tzinfo)
|
||||
|
||||
@classmethod
|
||||
def from_date_parts(cls: Type[Partial], year: int, month: int, day: int) -> Partial:
|
||||
def from_date_parts(cls, year: int, month: int, day: int) -> Self:
|
||||
"""construct a PartialDate from year, month, day.
|
||||
|
||||
Use sublcasses to specify precision."""
|
||||
|
|
Loading…
Reference in a new issue