mirror of https://github.com/zulip/zulip.git
ruff: Enable B008 function-call-in-default-argument.
https://docs.astral.sh/ruff/rules/function-call-in-default-argument/ Signed-off-by: Anders Kaseorg <anders@zulip.com>
This commit is contained in:
parent
b85dcd0175
commit
b3f18b805d
|
@ -20,7 +20,7 @@ from django.utils.timezone import now as timezone_now
|
||||||
from typing_extensions import override
|
from typing_extensions import override
|
||||||
|
|
||||||
from confirmation import settings as confirmation_settings
|
from confirmation import settings as confirmation_settings
|
||||||
from zerver.lib.types import UnspecifiedValue
|
from zerver.lib.types import UNSET, Unset
|
||||||
from zerver.models import (
|
from zerver.models import (
|
||||||
EmailChangeStatus,
|
EmailChangeStatus,
|
||||||
MultiuseInvite,
|
MultiuseInvite,
|
||||||
|
@ -129,7 +129,7 @@ def create_confirmation_object(
|
||||||
obj: ConfirmationObjT,
|
obj: ConfirmationObjT,
|
||||||
confirmation_type: int,
|
confirmation_type: int,
|
||||||
*,
|
*,
|
||||||
validity_in_minutes: int | None | UnspecifiedValue = UnspecifiedValue(),
|
validity_in_minutes: int | None | Unset = UNSET,
|
||||||
no_associated_realm_object: bool = False,
|
no_associated_realm_object: bool = False,
|
||||||
) -> "Confirmation":
|
) -> "Confirmation":
|
||||||
# validity_in_minutes is an override for the default values which are
|
# validity_in_minutes is an override for the default values which are
|
||||||
|
@ -149,7 +149,7 @@ def create_confirmation_object(
|
||||||
|
|
||||||
current_time = timezone_now()
|
current_time = timezone_now()
|
||||||
expiry_date = None
|
expiry_date = None
|
||||||
if not isinstance(validity_in_minutes, UnspecifiedValue):
|
if not isinstance(validity_in_minutes, Unset):
|
||||||
if validity_in_minutes is None:
|
if validity_in_minutes is None:
|
||||||
expiry_date = None
|
expiry_date = None
|
||||||
else:
|
else:
|
||||||
|
@ -172,7 +172,7 @@ def create_confirmation_link(
|
||||||
obj: ConfirmationObjT,
|
obj: ConfirmationObjT,
|
||||||
confirmation_type: int,
|
confirmation_type: int,
|
||||||
*,
|
*,
|
||||||
validity_in_minutes: int | None | UnspecifiedValue = UnspecifiedValue(),
|
validity_in_minutes: int | None | Unset = UNSET,
|
||||||
url_args: Mapping[str, str] = {},
|
url_args: Mapping[str, str] = {},
|
||||||
no_associated_realm_object: bool = False,
|
no_associated_realm_object: bool = False,
|
||||||
) -> str:
|
) -> str:
|
||||||
|
|
|
@ -145,7 +145,6 @@ ignore = [
|
||||||
"ANN102", # Missing type annotation for `cls` in classmethod
|
"ANN102", # Missing type annotation for `cls` in classmethod
|
||||||
"ANN401", # Dynamically typed expressions (typing.Any) are disallowed
|
"ANN401", # Dynamically typed expressions (typing.Any) are disallowed
|
||||||
"B007", # Loop control variable not used within the loop body
|
"B007", # Loop control variable not used within the loop body
|
||||||
"B008", # Do not perform function calls in argument defaults
|
|
||||||
"B904", # Within an except clause, raise exceptions with raise ... from err or raise ... from None to distinguish them from errors in exception handling
|
"B904", # Within an except clause, raise exceptions with raise ... from err or raise ... from None to distinguish them from errors in exception handling
|
||||||
"C408", # Unnecessary `dict` call (rewrite as a literal)
|
"C408", # Unnecessary `dict` call (rewrite as a literal)
|
||||||
"COM812", # Trailing comma missing
|
"COM812", # Trailing comma missing
|
||||||
|
|
|
@ -1746,6 +1746,9 @@ class ClientCapabilities(TypedDict):
|
||||||
archived_channels: NotRequired[bool]
|
archived_channels: NotRequired[bool]
|
||||||
|
|
||||||
|
|
||||||
|
DEFAULT_CLIENT_CAPABILITIES = ClientCapabilities(notification_settings_null=False)
|
||||||
|
|
||||||
|
|
||||||
def do_events_register(
|
def do_events_register(
|
||||||
user_profile: UserProfile | None,
|
user_profile: UserProfile | None,
|
||||||
realm: Realm,
|
realm: Realm,
|
||||||
|
@ -1760,7 +1763,7 @@ def do_events_register(
|
||||||
all_public_streams: bool = False,
|
all_public_streams: bool = False,
|
||||||
include_subscribers: bool = True,
|
include_subscribers: bool = True,
|
||||||
include_streams: bool = True,
|
include_streams: bool = True,
|
||||||
client_capabilities: ClientCapabilities = ClientCapabilities(notification_settings_null=False),
|
client_capabilities: ClientCapabilities = DEFAULT_CLIENT_CAPABILITIES,
|
||||||
narrow: Collection[NarrowTerm] = [],
|
narrow: Collection[NarrowTerm] = [],
|
||||||
fetch_event_types: Collection[str] | None = None,
|
fetch_event_types: Collection[str] | None = None,
|
||||||
spectator_requested_language: str | None = None,
|
spectator_requested_language: str | None = None,
|
||||||
|
|
|
@ -69,7 +69,7 @@ class LinkifierDict(TypedDict):
|
||||||
id: int
|
id: int
|
||||||
|
|
||||||
|
|
||||||
class UnspecifiedValue:
|
class Unset:
|
||||||
"""In most API endpoints, we use a default value of `None"` to encode
|
"""In most API endpoints, we use a default value of `None"` to encode
|
||||||
parameters that the client did not pass, which is nicely Pythonic.
|
parameters that the client did not pass, which is nicely Pythonic.
|
||||||
|
|
||||||
|
@ -84,6 +84,9 @@ class UnspecifiedValue:
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
UNSET = Unset()
|
||||||
|
|
||||||
|
|
||||||
class EditHistoryEvent(TypedDict, total=False):
|
class EditHistoryEvent(TypedDict, total=False):
|
||||||
"""
|
"""
|
||||||
Database format for edit history events.
|
Database format for edit history events.
|
||||||
|
|
|
@ -73,6 +73,8 @@ class TestEndpoint(ZulipTestCase):
|
||||||
|
|
||||||
__pydantic_config__ = ConfigDict(extra="forbid")
|
__pydantic_config__ = ConfigDict(extra="forbid")
|
||||||
|
|
||||||
|
default_foo = Foo(10, 10)
|
||||||
|
|
||||||
@typed_endpoint
|
@typed_endpoint
|
||||||
def view(
|
def view(
|
||||||
request: HttpRequest,
|
request: HttpRequest,
|
||||||
|
@ -81,7 +83,7 @@ class TestEndpoint(ZulipTestCase):
|
||||||
json_str: Json[str],
|
json_str: Json[str],
|
||||||
json_data: Json[Foo],
|
json_data: Json[Foo],
|
||||||
json_optional: Json[int | None] | None = None,
|
json_optional: Json[int | None] | None = None,
|
||||||
json_default: Json[Foo] = Foo(10, 10),
|
json_default: Json[Foo] = default_foo,
|
||||||
non_json: str = "ok",
|
non_json: str = "ok",
|
||||||
non_json_optional: str | None = None,
|
non_json_optional: str | None = None,
|
||||||
) -> HttpResponse:
|
) -> HttpResponse:
|
||||||
|
|
|
@ -9,7 +9,7 @@ from pydantic import Json
|
||||||
|
|
||||||
from zerver.context_processors import get_valid_realm_from_request
|
from zerver.context_processors import get_valid_realm_from_request
|
||||||
from zerver.lib.compatibility import is_pronouns_field_type_supported
|
from zerver.lib.compatibility import is_pronouns_field_type_supported
|
||||||
from zerver.lib.events import ClientCapabilities, do_events_register
|
from zerver.lib.events import DEFAULT_CLIENT_CAPABILITIES, ClientCapabilities, do_events_register
|
||||||
from zerver.lib.exceptions import JsonableError, MissingAuthenticationError
|
from zerver.lib.exceptions import JsonableError, MissingAuthenticationError
|
||||||
from zerver.lib.narrow_helpers import narrow_dataclasses_from_tuples
|
from zerver.lib.narrow_helpers import narrow_dataclasses_from_tuples
|
||||||
from zerver.lib.request import RequestNotes
|
from zerver.lib.request import RequestNotes
|
||||||
|
@ -46,7 +46,7 @@ def events_register_backend(
|
||||||
presence_history_limit_days: Json[int] | None = None,
|
presence_history_limit_days: Json[int] | None = None,
|
||||||
all_public_streams: Json[bool] | None = None,
|
all_public_streams: Json[bool] | None = None,
|
||||||
include_subscribers: Json[bool] = False,
|
include_subscribers: Json[bool] = False,
|
||||||
client_capabilities: Json[ClientCapabilities] | None = None,
|
client_capabilities: Json[ClientCapabilities] = DEFAULT_CLIENT_CAPABILITIES,
|
||||||
event_types: Json[list[str]] | None = None,
|
event_types: Json[list[str]] | None = None,
|
||||||
fetch_event_types: Json[list[str]] | None = None,
|
fetch_event_types: Json[list[str]] | None = None,
|
||||||
narrow: Json[NarrowT] | None = None,
|
narrow: Json[NarrowT] | None = None,
|
||||||
|
@ -99,9 +99,6 @@ def events_register_backend(
|
||||||
all_public_streams = False
|
all_public_streams = False
|
||||||
include_streams = False
|
include_streams = False
|
||||||
|
|
||||||
if client_capabilities is None:
|
|
||||||
client_capabilities = ClientCapabilities(notification_settings_null=False)
|
|
||||||
|
|
||||||
client = RequestNotes.get_notes(request).client
|
client = RequestNotes.get_notes(request).client
|
||||||
assert client is not None
|
assert client is not None
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue