requirements: Upgrade Python requirements.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
This commit is contained in:
Anders Kaseorg
2025-07-14 14:48:32 -04:00
committed by Tim Abbott
parent 996eb72e2a
commit 3be686fa86
6 changed files with 728 additions and 666 deletions

View File

@@ -7,7 +7,7 @@ requires-python = ">=3.10"
prod = [
# Django itself
"django[argon2]==5.2.*",
"asgiref", # https://github.com/django/asgiref/pull/494
"asgiref",
# needed for NotRequired, ParamSpec
"typing-extensions",
@@ -178,7 +178,7 @@ prod = [
"circuitbreaker",
# Runtime monkeypatching of django-stubs generics
"django-stubs-ext==5.2.0", # https://github.com/typeddjango/django-stubs/issues/2715
"django-stubs-ext",
# Structured data representation with parsing.
"pydantic",
@@ -265,7 +265,7 @@ dev = [
"zulint",
# For type checking
"mypy[faster-cache]~=1.15.0", # https://github.com/typeddjango/django-stubs/issues/2696
"mypy[faster-cache]",
"boto3-stubs[s3,ses,sns,sqs]",
"django-stubs",
@@ -314,8 +314,9 @@ dev = [
no-binary-package = ["lxml", "xmlsec"]
[tool.uv.sources]
# https://github.com/django/asgiref/pull/494
asgiref = { url = "https://github.com/andersk/asgiref/archive/8a2717c14bce1b8dd37371c675ee3728e66c3fe3.zip" }
# https://github.com/typeddjango/django-stubs/pull/2738
django-stubs = { url = "https://github.com/typeddjango/django-stubs/archive/9b2a9e83ee31dfd3de34a361e6098926014b599b.zip" }
django-stubs-ext = { url = "https://github.com/typeddjango/django-stubs/archive/9b2a9e83ee31dfd3de34a361e6098926014b599b.zip", subdirectory = "ext" }
# Forked to avoid pulling in scipy: https://github.com/mailgun/talon/pull/200
# and chardet, cchardet: https://github.com/mailgun/talon/pull/239

1366
uv.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -49,4 +49,4 @@ API_FEATURE_LEVEL = 406
# historical commits sharing the same major version, in which case a
# minor version bump suffices.
PROVISION_VERSION = (333, 8) # bumped 2025-07-14 to upgrade uv
PROVISION_VERSION = (334, 0) # bumped 2025-07-14 to upgrade Python requirements

View File

@@ -822,7 +822,7 @@ def do_change_realm_max_invites(realm: Realm, max_invites: int, acting_user: Use
new_max = get_default_max_invites_for_realm_plan_type(realm.plan_type)
else:
new_max = max_invites
realm.max_invites = new_max # type: ignore[assignment] # https://github.com/python/mypy/issues/3004
realm.max_invites = new_max
realm.save(update_fields=["_max_invites"])
RealmAuditLog.objects.create(
@@ -890,7 +890,7 @@ def do_change_realm_plan_type(
extra_data={"old_value": old_value, "new_value": plan_type},
)
realm.max_invites = get_default_max_invites_for_realm_plan_type(plan_type) # type: ignore[assignment] # https://github.com/python/mypy/issues/3004
realm.max_invites = get_default_max_invites_for_realm_plan_type(plan_type)
if plan_type == Realm.PLAN_TYPE_LIMITED:
realm.message_visibility_limit = Realm.MESSAGE_VISIBILITY_LIMITED
else:

View File

@@ -432,14 +432,12 @@ class CaptchaRealmCreationForm(RealmCreationForm):
# https://github.com/typeddjango/django-stubs/pull/2384#pullrequestreview-2813849209
if TYPE_CHECKING:
BaseSetPasswordForm: TypeAlias = SetPasswordForm[UserProfile] # type: ignore[type-var] # we don't subclass AbstractUser
BaseSetPasswordForm: TypeAlias = SetPasswordForm[UserProfile]
else:
BaseSetPasswordForm = SetPasswordForm
class LoggingSetPasswordForm(
BaseSetPasswordForm # type: ignore[type-var] # we don't subclass AbstractUser
):
class LoggingSetPasswordForm(BaseSetPasswordForm):
new_password1 = forms.CharField(
label=_("New password"),
widget=forms.PasswordInput(attrs={"autocomplete": "new-password"}),

View File

@@ -758,9 +758,10 @@ class EditMessageTest(ZulipTestCase):
(
'<div><p>Here is a link to <a href="http://www.zulipchat.com"'
">zulip "
'<span class="highlight_text_inserted"> Link: http://www.zulipchat.com .'
'<span class="highlight_text_inserted"> Link: http://www.zulipchat.com'
'</span> </a> <span class="highlight_text_inserted">.'
'</span> <span class="highlight_text_deleted"> Link: http://www.zulip.org .'
"</span> </a></p></div>"
"</span> </p></div>"
),
)