From 0e4c5ed4392b2e3349488d49d4348d0067db99df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adeodato=20Sim=C3=B3?= Date: Thu, 9 Nov 2023 13:19:18 -0300 Subject: [PATCH] SealedDate renames, pt. 1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit • SealedDateField -> PartialDateModel • SealedDateFormField -> PartialDateFormField • SealedDateDescriptor -> PartialDateDescriptor --- bookwyrm/models/fields.py | 4 ++-- bookwyrm/tests/test_sealed_date.py | 4 ++-- bookwyrm/utils/sealed_date.py | 17 +++++++++-------- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/bookwyrm/models/fields.py b/bookwyrm/models/fields.py index d51a9efe6..0857b6b64 100644 --- a/bookwyrm/models/fields.py +++ b/bookwyrm/models/fields.py @@ -22,7 +22,7 @@ from bookwyrm.connectors import get_image from bookwyrm.utils.sanitizer import clean from bookwyrm.utils.sealed_date import ( SealedDate, - SealedDateField, + PartialDateModel, from_partial_isoformat, ) from bookwyrm.settings import MEDIA_FULL_URL @@ -553,7 +553,7 @@ class DateTimeField(ActivitypubFieldMixin, models.DateTimeField): return None -class PartialDateField(ActivitypubFieldMixin, SealedDateField): +class PartialDateField(ActivitypubFieldMixin, PartialDateModel): """activitypub-aware partial date field""" def field_to_activity(self, value) -> str: diff --git a/bookwyrm/tests/test_sealed_date.py b/bookwyrm/tests/test_sealed_date.py index 7e4c06c39..7986c15fa 100644 --- a/bookwyrm/tests/test_sealed_date.py +++ b/bookwyrm/tests/test_sealed_date.py @@ -98,14 +98,14 @@ class SealedDateTest(unittest.TestCase): ) -class SealedDateFormFieldTest(unittest.TestCase): +class PartialDateFormFieldTest(unittest.TestCase): """test form support for SealedDate objects""" # pylint: disable=missing-function-docstring def setUp(self): self._dt = datetime.datetime(2022, 11, 21, 17, 1, 0, tzinfo=timezone.utc) - self.field = sealed_date.SealedDateFormField() + self.field = sealed_date.PartialDateFormField() def test_prepare_value(self): sealed = sealed_date.SealedDate.from_datetime(self._dt) diff --git a/bookwyrm/utils/sealed_date.py b/bookwyrm/utils/sealed_date.py index 62bab4ed4..a819f7c3b 100644 --- a/bookwyrm/utils/sealed_date.py +++ b/bookwyrm/utils/sealed_date.py @@ -16,6 +16,7 @@ from django.utils import timezone __all__ = [ "SealedDate", + "PartialDateModel", "from_partial_isoformat", ] @@ -25,7 +26,7 @@ _westmost_tz = timezone.get_fixed_timezone(timedelta(hours=-12)) Sealed = TypeVar("Sealed", bound="SealedDate") # TODO: use Self in Python >= 3.11 # TODO: migrate SealedDate: `datetime` => `date` -# TODO: migrate SealedDateField: `DateTimeField` => `DateField` +# TODO: migrate PartialDateModel: `DateTimeField` => `DateField` class SealedDate(datetime): @@ -111,7 +112,7 @@ def from_partial_isoformat(value: str) -> SealedDate: return SealedDate.from_date_parts(year, month, day) -class SealedDateFormField(DateField): +class PartialDateFormField(DateField): """date form field with support for SealedDate""" def prepare_value(self, value: Any) -> str: @@ -152,10 +153,10 @@ _SetType = datetime _GetType = Optional[SealedDate] -class SealedDateDescriptor: - """descriptor for SealedDateField. +class PartialDateDescriptor: + """descriptor for PartialDateModel. - Encapsulates the "two columns, one field" for SealedDateField. + Encapsulates the "two columns, one field" for PartialDateModel. """ _SEAL_TYPES: dict[Type[_SetType], str] = { @@ -214,13 +215,13 @@ class SealedDateDescriptor: return [("DAY", "Day seal"), ("MONTH", "Month seal"), ("YEAR", "Year seal")] -class SealedDateField(models.DateTimeField): # type: ignore +class PartialDateModel(models.DateTimeField): # type: ignore """a date field for Django models, using SealedDate as values""" - descriptor_class = SealedDateDescriptor + descriptor_class = PartialDateDescriptor def formfield(self, **kwargs): # type: ignore - kwargs.setdefault("form_class", SealedDateFormField) + kwargs.setdefault("form_class", PartialDateFormField) return super().formfield(**kwargs) # pylint: disable-next=arguments-renamed