From a50bd142779232e9d17d5a03ede882fd0b0d1e0b Mon Sep 17 00:00:00 2001 From: Your Name Date: Wed, 29 May 2024 10:48:45 -0400 Subject: [PATCH] migrate from django deprecation --- catalog/common/models.py | 6 ++--- common/utils.py | 4 ++-- journal/models/common.py | 6 ++--- journal/models/mark.py | 1 - legacy/views.py | 24 +++++++++---------- requirements-dev.txt | 4 ++-- takahe/management/commands/backfill_takahe.py | 5 ++-- users/account.py | 5 ++-- 8 files changed, 27 insertions(+), 28 deletions(-) diff --git a/catalog/common/models.py b/catalog/common/models.py index 67cc9466..d8efaf56 100644 --- a/catalog/common/models.py +++ b/catalog/common/models.py @@ -8,11 +8,11 @@ from auditlog.models import AuditlogHistoryField, LogEntry from django.conf import settings from django.contrib.contenttypes.models import ContentType from django.core.files.uploadedfile import SimpleUploadedFile +from django.core.signing import b62_decode, b62_encode from django.db import connection, models from django.db.models import QuerySet, Value from django.template.defaultfilters import default from django.utils import timezone -from django.utils.baseconv import base62 from django.utils.translation import gettext_lazy as _ from loguru import logger from ninja import Field, Schema @@ -475,7 +475,7 @@ class Item(PolymorphicModel): @property def uuid(self): - return base62.encode(self.uid.int).zfill(22) + return b62_encode(self.uid.int).zfill(22) @property def url(self): @@ -505,7 +505,7 @@ class Item(PolymorphicModel): if r: b62 = r[0] try: - item = cls.objects.get(uid=uuid.UUID(int=base62.decode(b62))) + item = cls.objects.get(uid=uuid.UUID(int=b62_decode(b62))) except Exception: item = None return item diff --git a/common/utils.py b/common/utils.py index 1b25963e..077afd75 100644 --- a/common/utils.py +++ b/common/utils.py @@ -5,9 +5,9 @@ from typing import TYPE_CHECKING from discord import SyncWebhook from django.conf import settings from django.core.exceptions import PermissionDenied +from django.core.signing import b62_decode, b62_encode from django.http import Http404, HttpRequest, HttpResponseRedirect, QueryDict from django.utils import timezone -from django.utils.baseconv import base62 from django.utils.translation import gettext_lazy as _ from .config import PAGE_LINK_NUMBER @@ -195,7 +195,7 @@ def GenerateDateUUIDMediaFilePath(filename, path_root): def get_uuid_or_404(uuid_b62): try: - i = base62.decode(uuid_b62) + i = b62_decode(uuid_b62) return uuid.UUID(int=i) except ValueError: raise Http404("Malformed Base62 UUID") diff --git a/journal/models/common.py b/journal/models/common.py index 8d5edf08..1c6921e1 100644 --- a/journal/models/common.py +++ b/journal/models/common.py @@ -4,10 +4,10 @@ from functools import cached_property from typing import TYPE_CHECKING from django.conf import settings +from django.core.signing import b62_decode, b62_encode from django.db import connection, models from django.db.models import Avg, CharField, Count, Q from django.utils import timezone -from django.utils.baseconv import base62 from django.utils.translation import gettext_lazy as _ from polymorphic.models import PolymorphicModel @@ -125,7 +125,7 @@ class Piece(PolymorphicModel, UserOwnedObjectMixin): @property def uuid(self): - return base62.encode(self.uid.int) + return b62_encode(self.uid.int) @property def url(self): @@ -177,7 +177,7 @@ class Piece(PolymorphicModel, UserOwnedObjectMixin): if r: b62 = r[0] try: - obj = cls.objects.get(uid=uuid.UUID(int=base62.decode(b62))) + obj = cls.objects.get(uid=uuid.UUID(int=b62_decode(b62))) except Exception: obj = None return obj diff --git a/journal/models/mark.py b/journal/models/mark.py index 2a8de5be..384ad1d5 100644 --- a/journal/models/mark.py +++ b/journal/models/mark.py @@ -10,7 +10,6 @@ from django.core.validators import MaxValueValidator, MinValueValidator, RegexVa from django.db import connection, models from django.db.models import Avg, Count, Q from django.utils import timezone -from django.utils.baseconv import base62 from django.utils.translation import gettext_lazy as _ from loguru import logger from markdownx.models import MarkdownxField diff --git a/legacy/views.py b/legacy/views.py index 918b5f64..987a2945 100644 --- a/legacy/views.py +++ b/legacy/views.py @@ -1,5 +1,5 @@ +from django.core.signing import b62_decode, b62_encode from django.shortcuts import get_object_or_404, redirect, render -from django.utils.baseconv import base62 from catalog.collection.models import Collection from catalog.models import Item @@ -9,54 +9,54 @@ from .models import * def book(request, id): link = get_object_or_404(BookLink, old_id=id) - return redirect(f"/book/{base62.encode(link.new_uid.int)}", permanent=True) + return redirect(f"/book/{b62_encode(link.new_uid.int)}", permanent=True) def movie(request, id): link = get_object_or_404(MovieLink, old_id=id) - return redirect(f"/movie/{base62.encode(link.new_uid.int)}", permanent=True) + return redirect(f"/movie/{b62_encode(link.new_uid.int)}", permanent=True) def album(request, id): link = get_object_or_404(AlbumLink, old_id=id) - return redirect(f"/album/{base62.encode(link.new_uid.int)}", permanent=True) + return redirect(f"/album/{b62_encode(link.new_uid.int)}", permanent=True) def song(request, id): link = get_object_or_404(SongLink, old_id=id) - return redirect(f"/album/{base62.encode(link.new_uid.int)}", permanent=True) + return redirect(f"/album/{b62_encode(link.new_uid.int)}", permanent=True) def game(request, id): link = get_object_or_404(GameLink, old_id=id) - return redirect(f"/game/{base62.encode(link.new_uid.int)}", permanent=True) + return redirect(f"/game/{b62_encode(link.new_uid.int)}", permanent=True) def collection(request, id): link = get_object_or_404(CollectionLink, old_id=id) - return redirect(f"/collection/{base62.encode(link.new_uid.int)}", permanent=True) + return redirect(f"/collection/{b62_encode(link.new_uid.int)}", permanent=True) def book_review(request, id): link = get_object_or_404(ReviewLink, module="book", old_id=id) - return redirect(f"/review/{base62.encode(link.new_uid.int)}", permanent=True) + return redirect(f"/review/{b62_encode(link.new_uid.int)}", permanent=True) def movie_review(request, id): link = get_object_or_404(ReviewLink, module="movie", old_id=id) - return redirect(f"/review/{base62.encode(link.new_uid.int)}", permanent=True) + return redirect(f"/review/{b62_encode(link.new_uid.int)}", permanent=True) def album_review(request, id): link = get_object_or_404(ReviewLink, module="album", old_id=id) - return redirect(f"/review/{base62.encode(link.new_uid.int)}", permanent=True) + return redirect(f"/review/{b62_encode(link.new_uid.int)}", permanent=True) def song_review(request, id): link = get_object_or_404(ReviewLink, module="song", old_id=id) - return redirect(f"/review/{base62.encode(link.new_uid.int)}", permanent=True) + return redirect(f"/review/{b62_encode(link.new_uid.int)}", permanent=True) def game_review(request, id): link = get_object_or_404(ReviewLink, module="game", old_id=id) - return redirect(f"/review/{base62.encode(link.new_uid.int)}", permanent=True) + return redirect(f"/review/{b62_encode(link.new_uid.int)}", permanent=True) diff --git a/requirements-dev.txt b/requirements-dev.txt index e457f41d..5f80990f 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,10 +1,10 @@ black~=22.12.0 coverage django-debug-toolbar -django-stubs~=4.2.7 +django-stubs djlint~=1.34.0 isort~=5.13.2 lxml-stubs pre-commit -pyright==1.1.350 +pyright==1.1.365 ruff diff --git a/takahe/management/commands/backfill_takahe.py b/takahe/management/commands/backfill_takahe.py index d100d0a8..71c50b4d 100644 --- a/takahe/management/commands/backfill_takahe.py +++ b/takahe/management/commands/backfill_takahe.py @@ -1,6 +1,7 @@ import time from contextlib import nullcontext -from datetime import datetime, timezone +from datetime import datetime +from datetime import timezone as dttz from django.conf import settings from django.contrib.contenttypes.models import ContentType @@ -23,7 +24,7 @@ from users.models import User as NeoUser BATCH_SIZE = 1000 -TIMELINE_START = datetime.datetime(2023, 7, 1, tzinfo=timezone.utc) +TIMELINE_START = datetime.datetime(2023, 7, 1, tzinfo=dttz.utc) def content_type_id(cls): diff --git a/users/account.py b/users/account.py index 790982c1..2668cc97 100644 --- a/users/account.py +++ b/users/account.py @@ -10,13 +10,12 @@ from django.contrib.auth.decorators import login_required from django.core.cache import cache from django.core.exceptions import BadRequest, ObjectDoesNotExist from django.core.mail import send_mail -from django.core.signing import TimestampSigner +from django.core.signing import TimestampSigner, b62_decode, b62_encode from django.core.validators import EmailValidator from django.db.models import Count, Q from django.shortcuts import get_object_or_404, redirect, render from django.urls import reverse from django.utils import timezone -from django.utils.baseconv import base62 from django.utils.translation import gettext_lazy as _ from django.views.decorators.http import require_http_methods from loguru import logger @@ -86,7 +85,7 @@ def connect(request): {"msg": _("Invalid email address")}, ) user = User.objects.filter(email__iexact=login_email).first() - code = base62.encode(random.randint(pow(62, 4), pow(62, 5) - 1)) + code = b62_encode(random.randint(pow(62, 4), pow(62, 5) - 1)) cache.set(f"login_{code}", login_email, timeout=60 * 15) request.session["login_email"] = login_email action = "login" if user else "register"