From e58d8b621cbd87014825c82d16e17934203b3863 Mon Sep 17 00:00:00 2001 From: ti-oluwa <105179638+ti-oluwa@users.noreply.github.com> Date: Sun, 4 Feb 2024 15:51:01 +0100 Subject: [PATCH 1/5] New realease published to PYPI --- README.md | 7 ++++--- dist/django_utz-0.1.6-py3-none-any.whl | Bin 0 -> 26230 bytes dist/django_utz-0.1.6.tar.gz | Bin 0 -> 25996 bytes 3 files changed, 4 insertions(+), 3 deletions(-) create mode 100644 dist/django_utz-0.1.6-py3-none-any.whl create mode 100644 dist/django_utz-0.1.6.tar.gz diff --git a/README.md b/README.md index 9f7ab02..6b3a6ba 100644 --- a/README.md +++ b/README.md @@ -88,7 +88,7 @@ The possible configurations for each decorator will be discussed in the next sec ### The `usermodel` decorator -The `usermodel` decorator is used to decorate the project's User model. This decorator adds timezone support to the User model. It adds a property to the User model that returns the user's timezone info as a zoneinfo.ZoneInfo or pytz.tzinfo object. It also adds a method to the User model that converts a datetime object to the user's local timezone and returns a `utzdatetime` object. +The `usermodel` decorator is used to decorate the project's User model. This decorator basically adds django_utz support to the project. It adds a property to the User model that returns the user's timezone info as a zoneinfo.ZoneInfo or pytz.tzinfo object. It also adds a method to the User model that converts a datetime object to the user's local timezone and returns a `utzdatetime` object. Let's look at an example of how you would use the `usermodel` decorator: @@ -179,7 +179,7 @@ In the above example, we can see that the current time in the user's timezone is ### The `model` decorator -The `model` decorator is used to decorate regular django models. This decorator allows you to access datetime fields in the model in a user's local timezone. The user can be the request user or any specified user. By default, the request user is used. +The `model` decorator is used to decorate regular django models. This decorator allows you to access model datetime fields in a user's local timezone. The user can be the request user or any specified user. By default, the request user is used. Curious about how this works? To keep things simple, the decorator uses a kind of descriptor called the `FunctionAttribute` descriptor to add a new version of each datetime field to the model class. This new version of the datetime field is suffixed with "utz"(by default) and is a property that returns the datetime field in the user's local timezone. @@ -239,6 +239,7 @@ To define explicitly the user whose timezone will be used, you can set this comf Looks complicated? Let's look at two examples: **Example 1:** + Assume we want all datetime fields in the `Post` model to always be returned in the post author's timezone. We can do this: ```python @@ -264,7 +265,7 @@ class Post(models.Model): So no matter the user that makes the request, the datetime fields in the `Post` model will always be returned in the post author's timezone. -You could also decide to not specify the `related_user` configuration. django_utz will use the first user it finds in the related models of the model. Which is the `author` in this case.** +You could also decide to not specify the `related_user` configuration. django_utz will use the first user it finds in the related models of the model. Which is the `author` in this case. **Example 2:** diff --git a/dist/django_utz-0.1.6-py3-none-any.whl b/dist/django_utz-0.1.6-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..08c6982d6ed1930fa7881ea8d422bef482f13e72 GIT binary patch literal 26230 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 a35Aj@+c0SaU!=wW literal 0 HcmV?d00001 diff --git a/dist/django_utz-0.1.6.tar.gz b/dist/django_utz-0.1.6.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..8ec77dc51f5ec475866e5f93b0b7c521c9a9733e GIT binary patch literal 25996 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 literal 0 HcmV?d00001 From 5ac2057df068ef8511c926c93790f42efcf11670 Mon Sep 17 00:00:00 2001 From: ti-oluwa <105179638+ti-oluwa@users.noreply.github.com> Date: Sun, 4 Feb 2024 15:58:47 +0100 Subject: [PATCH 2/5] New realease with bug fix --- dist/django_utz-0.1.7-py3-none-any.whl | Bin 0 -> 26231 bytes dist/django_utz-0.1.7.tar.gz | Bin 0 -> 25981 bytes django_utz/__init__.py | 2 +- django_utz/decorators/models/decorators.py | 2 +- 4 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 dist/django_utz-0.1.7-py3-none-any.whl create mode 100644 dist/django_utz-0.1.7.tar.gz diff --git a/dist/django_utz-0.1.7-py3-none-any.whl b/dist/django_utz-0.1.7-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..16434bccf61651e7851a7df34d4c2c1b029897fc GIT binary patch literal 26231 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 literal 0 HcmV?d00001 diff --git a/django_utz/__init__.py b/django_utz/__init__.py index 2aa4b87..210b98f 100644 --- a/django_utz/__init__.py +++ b/django_utz/__init__.py @@ -7,7 +7,7 @@ @Author: Daniel T. Afolayan (ti-oluwa.github.io) """ -__version__ = "0.1.6" +__version__ = "0.1.7" __author__ = "Daniel T. Afolayan" alias = "django-user-timezone" diff --git a/django_utz/decorators/models/decorators.py b/django_utz/decorators/models/decorators.py index dc2725b..32de455 100644 --- a/django_utz/decorators/models/decorators.py +++ b/django_utz/decorators/models/decorators.py @@ -172,7 +172,7 @@ def make_func_for_field(self, datetime_field: str) -> Callable[[models.Model], u :param datetime_field: The name of the datetime field for which to make the function """ - func_name = f"get_{datetime_field}_{self.get_config("attribute_suffix")}" + func_name = f"get_{datetime_field}_{self.get_config('attribute_suffix')}" def func(model_instance: models.Model) -> utzdatetime: user: UserModel = get_user(model_instance) From 4e59eab1dab04c38b955871fad16bcf508d78647 Mon Sep 17 00:00:00 2001 From: ti-oluwa <105179638+ti-oluwa@users.noreply.github.com> Date: Sun, 4 Feb 2024 16:03:00 +0100 Subject: [PATCH 3/5] Update project dependencies --- pyproject.toml | 1 + requirements.txt | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 1404139..dce584a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -37,6 +37,7 @@ classifiers = [ dependencies = [ "django>=3.2.5", "pytz", + "djangorestframework", ] [project.urls] diff --git a/requirements.txt b/requirements.txt index 88624d1..9a1b2b0 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,3 @@ django -pytz \ No newline at end of file +pytz +djangorestframework From 2b0b5b7185d6a926588ef77725e65a88a84edc0b Mon Sep 17 00:00:00 2001 From: ti-oluwa <105179638+ti-oluwa@users.noreply.github.com> Date: Wed, 7 Feb 2024 11:50:18 +0100 Subject: [PATCH 4/5] New release with minor bug fix --- dist/django_utz-0.1.8-py3-none-any.whl | Bin 0 -> 26273 bytes dist/django_utz-0.1.8.tar.gz | Bin 0 -> 26066 bytes django_utz/__init__.py | 2 +- django_utz/templatetags/django_utz.py | 14 ++++++++------ 4 files changed, 9 insertions(+), 7 deletions(-) create mode 100644 dist/django_utz-0.1.8-py3-none-any.whl create mode 100644 dist/django_utz-0.1.8.tar.gz diff --git a/dist/django_utz-0.1.8-py3-none-any.whl b/dist/django_utz-0.1.8-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..fdee73ff811c55edaf2d0acaccc52c3b9e400a8f GIT binary patch literal 26273 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 MJfn1I|MBU+01g+ML;wH) literal 0 HcmV?d00001 diff --git a/dist/django_utz-0.1.8.tar.gz b/dist/django_utz-0.1.8.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..e206e86317d078c4ebb60cf15c5a915838300ed9 GIT binary patch literal 26066 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 M0%a8D4i@IW0bp=CasU7T literal 0 HcmV?d00001 diff --git a/django_utz/__init__.py b/django_utz/__init__.py index 210b98f..830b375 100644 --- a/django_utz/__init__.py +++ b/django_utz/__init__.py @@ -7,7 +7,7 @@ @Author: Daniel T. Afolayan (ti-oluwa.github.io) """ -__version__ = "0.1.7" +__version__ = "0.1.8" __author__ = "Daniel T. Afolayan" alias = "django-user-timezone" diff --git a/django_utz/templatetags/django_utz.py b/django_utz/templatetags/django_utz.py index 4768df8..30391cf 100644 --- a/django_utz/templatetags/django_utz.py +++ b/django_utz/templatetags/django_utz.py @@ -3,12 +3,15 @@ from typing import Dict, List from django.template.base import Parser, Token, Node, FilterExpression, kwarg_re from django.template import Library, TemplateSyntaxError, NodeList -from django.conf import settings from django.utils import timezone import datetime +from django.utils.safestring import SafeText + from ..middleware import get_request_user from ..decorators.models import UserModelUTZMixin +from ..datetime import utzdatetime + register = Library() _generic_name = "usertimezone" @@ -89,10 +92,9 @@ def get_user( return user - def render(self, context): + def render(self, context) -> SafeText: request_user = context.get("request").user - if self.user: - preferred_user = self.user.resolve(context) + preferred_user = self.user.resolve(context) if self.user else None user = preferred_user if preferred_user else request_user utz_meta = getattr(user, "UTZMeta", None) @@ -113,7 +115,7 @@ def render(self, context): @register.tag(name=_generic_name) -def utz_tag(parser: Parser, token: Token): +def utz_tag(parser: Parser, token: Token) -> UTZNode: """ Template tag to render datetimes in the template content in the preferred user's timezone. @@ -144,7 +146,7 @@ def utz_tag(parser: Parser, token: Token): @register.filter(name=_generic_name) -def utz_filter(value: datetime.datetime, user: UserModelUTZMixin = None): +def utz_filter(value: datetime.datetime, user: UserModelUTZMixin = None) -> datetime.datetime | utzdatetime: """ Filter to convert a datetime object to the request/provided user's timezone. From 28271a30ff5bd695ce998b5800277dec24f4b4f5 Mon Sep 17 00:00:00 2001 From: ti-oluwa <105179638+ti-oluwa@users.noreply.github.com> Date: Sat, 10 Feb 2024 21:03:56 +0100 Subject: [PATCH 5/5] Fixed bug where decorated models lose proper type hints --- dist/django_utz-0.1.9-py3-none-any.whl | Bin 0 -> 26371 bytes dist/django_utz-0.1.9.tar.gz | Bin 0 -> 26156 bytes django_utz/__init__.py | 2 +- django_utz/decorators/models/bases.py | 11 ++++----- django_utz/decorators/models/decorators.py | 21 +++++++++--------- .../decorators/serializers/decorators.py | 17 ++++++++------ django_utz/decorators/utils.py | 9 +++++--- 7 files changed, 34 insertions(+), 26 deletions(-) create mode 100644 dist/django_utz-0.1.9-py3-none-any.whl create mode 100644 dist/django_utz-0.1.9.tar.gz diff --git a/dist/django_utz-0.1.9-py3-none-any.whl b/dist/django_utz-0.1.9-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..867856db9bee44235b3ae77836a71994b5b9ff61 GIT binary patch literal 26371 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 J0{!vozW_sf0dD{R literal 0 HcmV?d00001 diff --git a/dist/django_utz-0.1.9.tar.gz b/dist/django_utz-0.1.9.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..cbe1b66dd07440950fdcdfe3459df9f5aca25d86 GIT binary patch literal 26156 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 literal 0 HcmV?d00001 diff --git a/django_utz/__init__.py b/django_utz/__init__.py index 830b375..bc14c51 100644 --- a/django_utz/__init__.py +++ b/django_utz/__init__.py @@ -7,7 +7,7 @@ @Author: Daniel T. Afolayan (ti-oluwa.github.io) """ -__version__ = "0.1.8" +__version__ = "0.1.9" __author__ = "Daniel T. Afolayan" alias = "django-user-timezone" diff --git a/django_utz/decorators/models/bases.py b/django_utz/decorators/models/bases.py index 0cbcc51..f6b783f 100644 --- a/django_utz/decorators/models/bases.py +++ b/django_utz/decorators/models/bases.py @@ -1,12 +1,13 @@ from abc import ABC, abstractmethod import inspect -from typing import Any +from typing import Any, TypeVar from django.db import models from django.db import models from ..bases import UTZDecorator from .exceptions import ModelConfigurationError +DjangoModel = TypeVar("DjangoModel", bound=models.Model) class ModelDecorator(UTZDecorator, ABC): @@ -17,19 +18,19 @@ class ModelDecorator(UTZDecorator, ABC): required_configs = () __slots__ = ("model",) - def __init__(self, model: type[models.Model]) -> None: + def __init__(self, model: DjangoModel) -> None: self.model = self.check_model(model) super().__init__() - def __call__(self) -> type[models.Model]: + def __call__(self) -> DjangoModel: prepared_model = self.prepare_model() if not issubclass(prepared_model, models.Model): raise TypeError("prepare_model method must return a model") return prepared_model - def check_model(self, model: type[models.Model]) -> type[models.Model]: + def check_model(self, model: DjangoModel) -> DjangoModel: """ Check if model and model configuration is valid. Returns the model if it is valid. @@ -54,7 +55,7 @@ def check_model(self, model: type[models.Model]) -> type[models.Model]: @abstractmethod - def prepare_model(self) -> type[models.Model]: + def prepare_model(self) -> DjangoModel: """ Prepare the model for use. This where you can customize the model. diff --git a/django_utz/decorators/models/decorators.py b/django_utz/decorators/models/decorators.py index 32de455..9d4e75e 100644 --- a/django_utz/decorators/models/decorators.py +++ b/django_utz/decorators/models/decorators.py @@ -8,7 +8,7 @@ import zoneinfo except: from backports import zoneinfo -from django.contrib.auth.models import AbstractUser, AbstractBaseUser, User +from django.contrib.auth.models import AbstractBaseUser from typing import TypeVar, List from django.core.exceptions import FieldDoesNotExist from typing import Callable @@ -17,7 +17,7 @@ from ..utils import is_datetime_field, is_timezone_valid, validate_timezone, transform_utz_decorator from ...datetime import utzdatetime from .exceptions import ModelError, ModelConfigurationError -from .bases import ModelDecorator +from .bases import ModelDecorator, DjangoModel from .utils import get_user, is_user_model, FunctionAttribute @@ -72,8 +72,9 @@ def to_local_timezone(self, _datetime: datetime.datetime) -> utzdatetime: return utz_dt -UserModel = TypeVar("UserModel", AbstractBaseUser, AbstractUser, User) -UTZUserModel = TypeVar("UTZUserModel", AbstractBaseUser, AbstractUser, User, UserModelUTZMixin) + +UserModel = TypeVar("UserModel", bound=AbstractBaseUser) +UTZUserModel = TypeVar("UTZUserModel", bound=type[AbstractBaseUser | UserModelUTZMixin]) class UserModelDecorator(ModelDecorator): @@ -89,7 +90,7 @@ def check_model(self, model: UserModel) -> UserModel: """Ensures that the model in which this mixin is used is the project's user model""" if not is_user_model(model): raise ModelError(f"Model '{model.__name__}' is not the project's user model") - return super().check_model(model) + return super().check_model(model) def validate_timezone_field(self, value: str) -> None: @@ -118,7 +119,7 @@ class RegularModelDecorator(ModelDecorator): all_configs = ("datetime_fields", "attribute_suffix", "use_related_user_timezone", "related_user") required_configs = ("datetime_fields",) - def check_model(self, model: models.Model) -> models.Model: + def check_model(self, model: DjangoModel) -> DjangoModel: model = super().check_model(model) related_user = getattr(model.UTZMeta, "related_user", None) @@ -127,7 +128,7 @@ def check_model(self, model: models.Model) -> models.Model: return model - def prepare_model(self) -> type[models.Model]: + def prepare_model(self) -> DjangoModel: if self.get_config("datetime_fields") == "__all__": self.set_config("datetime_fields", self.get_datetime_fields(self.model)) @@ -160,7 +161,7 @@ def validate_use_related_user_timezone(self, value: bool) -> None: return None - def get_datetime_fields(self, model: type[models.Model]) -> List[str]: + def get_datetime_fields(self, model: DjangoModel) -> List[str]: """Returns the datetime fields in the given model.""" return [field.name for field in model._meta.fields if isinstance(field, models.DateTimeField)] @@ -185,7 +186,7 @@ def func(model_instance: models.Model) -> utzdatetime: return func - def update_model_attrs(self, model: type[models.Model]) -> type[models.Model]: + def update_model_attrs(self, model: DjangoModel) -> DjangoModel: """ Updates the model with the read-only attributes for the datetime fields. @@ -208,7 +209,7 @@ def update_model_attrs(self, model: type[models.Model]) -> type[models.Model]: # Function-type decorator for django models -def model(model: type[models.Model]) -> type[models.Model]: +def model(model: DjangoModel) -> DjangoModel: """ #### `django_utz` decorator for django models. diff --git a/django_utz/decorators/serializers/decorators.py b/django_utz/decorators/serializers/decorators.py index ee3e4ef..6bd7094 100644 --- a/django_utz/decorators/serializers/decorators.py +++ b/django_utz/decorators/serializers/decorators.py @@ -1,6 +1,6 @@ from rest_framework import serializers from django.db import models -from typing import Any, Dict +from typing import Any, Dict, TypeVar import inspect import datetime @@ -9,7 +9,9 @@ from ..models.exceptions import ModelError from .exceptions import SerializerConfigurationError from ...serializer_fields import UTZDateTimeField +from ..models.bases import DjangoModel +DRFModelSerializer = TypeVar("DRFModelSerializer", bound=serializers.ModelSerializer) class ModelSerializerDecorator(UTZDecorator): @@ -18,27 +20,27 @@ class ModelSerializerDecorator(UTZDecorator): required_configs = ("auto_add_fields",) __slots__ = ("serializer",) - def __init__(self, serializer: type[serializers.ModelSerializer]) -> None: + def __init__(self, serializer: DRFModelSerializer) -> None: self.serializer = self.check_model_serializer(serializer) super().__init__() @property - def serializer_model(self) -> type[models.Model]: + def serializer_model(self) -> DjangoModel: """ Returns the serializer's model. """ return self.serializer.Meta.model - def __call__(self) -> type[models.Model]: + def __call__(self) -> DRFModelSerializer: prepared_serializer = self.prepare_serializer() if not issubclass(prepared_serializer, serializers.ModelSerializer): raise TypeError("prepare_serializer method must return a model serializer") return prepared_serializer - def check_model_serializer(self, serializer: type[serializers.ModelSerializer]) -> type[serializers.ModelSerializer]: + def check_model_serializer(self, serializer: DRFModelSerializer) -> DRFModelSerializer: """ Check if the model serializer is properly setup. @@ -85,7 +87,7 @@ def validate_datetime_format(self, value: Any) -> None: return None - def prepare_serializer(self) -> type[serializers.ModelSerializer]: + def prepare_serializer(self) -> DRFModelSerializer: """ Prepare the serializer for use. This where you can customize the serializer. @@ -171,9 +173,10 @@ def get_config(self, attr: str, default: Any = None) -> Any | None: return val + # Funtion-type decorator for `rest_framework.serializers.ModelSerializer` classes -def modelserializer(serializer: type[serializers.ModelSerializer]) -> type[serializers.ModelSerializer]: +def modelserializer(serializer: DRFModelSerializer) -> DRFModelSerializer: """ #### `django_utz` decorator for `reest_framework.serializers.ModelSerializer` classes. diff --git a/django_utz/decorators/utils.py b/django_utz/decorators/utils.py index fda9e6f..1e48d25 100644 --- a/django_utz/decorators/utils.py +++ b/django_utz/decorators/utils.py @@ -3,7 +3,7 @@ import zoneinfo except: from backports import zoneinfo -from typing import Any, Callable +from typing import Any, Callable, TypeVar import pytz import datetime from django.db import models @@ -125,7 +125,10 @@ def is_date_field(model: type[models.Model], field_name: str) -> bool: -def transform_utz_decorator(decorator: type[UTZDecorator]) -> Callable[[type[object]], type[object]]: +Class = TypeVar("Class", bound=type[object]) + + +def transform_utz_decorator(decorator: type[UTZDecorator]) -> Callable[[Class], Class]: """ Transforms class type utz decorator to a function type decorator. @@ -137,7 +140,7 @@ def transform_utz_decorator(decorator: type[UTZDecorator]) -> Callable[[type[obj and returns the modified class. """ @functools.wraps(decorator) - def decorator_wrapper(cls: type[object]) -> type[object]: + def decorator_wrapper(cls: Class) -> Class: """Wrapper function that applies the utz decorator to the decorated class.""" return decorator(cls)()