mirror of https://github.com/zulip/zulip.git
request: Replace type argument hack with a different workaround.
This works in mypy 0.770 and is needed for mypy 0.780. Signed-off-by: Anders Kaseorg <anders@zulip.com>
This commit is contained in:
parent
fb6047c4ae
commit
22178c169e
|
@ -11,7 +11,7 @@ from zerver.lib.types import Validator, ViewFuncT
|
|||
|
||||
from django.http import HttpRequest, HttpResponse
|
||||
|
||||
from typing import Any, Callable, Dict, Generic, List, Optional, Type, TypeVar, Union, cast, overload
|
||||
from typing import Any, Callable, Dict, Generic, List, Optional, TypeVar, Union, cast, overload
|
||||
from typing_extensions import Literal
|
||||
|
||||
class RequestConfusingParmsError(JsonableError):
|
||||
|
@ -64,7 +64,6 @@ class _REQ(Generic[ResultT]):
|
|||
self,
|
||||
whence: Optional[str] = None,
|
||||
*,
|
||||
type: Type[ResultT] = Type[None],
|
||||
converter: Optional[Callable[[str], ResultT]] = None,
|
||||
default: Union[_NotSpecified, ResultT, None] = NotSpecified,
|
||||
validator: Optional[Validator] = None,
|
||||
|
@ -95,10 +94,6 @@ class _REQ(Generic[ResultT]):
|
|||
argument_type: pass 'body' to extract the parsed JSON
|
||||
corresponding to the request body
|
||||
|
||||
type: a hint to typing (using mypy) what the type of this parameter is.
|
||||
Currently only typically necessary if default=None and the type cannot
|
||||
be inferred in another way (eg. via converter).
|
||||
|
||||
aliases: alternate names for the POST var
|
||||
|
||||
path_only: Used for parameters included in the URL that we still want
|
||||
|
@ -137,7 +132,6 @@ class _REQ(Generic[ResultT]):
|
|||
def REQ(
|
||||
whence: Optional[str] = ...,
|
||||
*,
|
||||
type: Type[ResultT] = ...,
|
||||
converter: Callable[[str], ResultT],
|
||||
default: ResultT = ...,
|
||||
intentionally_undocumented: bool = ...,
|
||||
|
@ -152,7 +146,6 @@ def REQ(
|
|||
def REQ(
|
||||
whence: Optional[str] = ...,
|
||||
*,
|
||||
type: Type[ResultT] = ...,
|
||||
default: ResultT = ...,
|
||||
validator: Validator,
|
||||
intentionally_undocumented: bool = ...,
|
||||
|
@ -167,7 +160,6 @@ def REQ(
|
|||
def REQ(
|
||||
whence: Optional[str] = ...,
|
||||
*,
|
||||
type: Type[str] = ...,
|
||||
default: str = ...,
|
||||
str_validator: Optional[Validator] = ...,
|
||||
intentionally_undocumented: bool = ...,
|
||||
|
@ -182,7 +174,6 @@ def REQ(
|
|||
def REQ(
|
||||
whence: Optional[str] = ...,
|
||||
*,
|
||||
type: Type[str] = ...,
|
||||
default: None,
|
||||
str_validator: Optional[Validator] = ...,
|
||||
intentionally_undocumented: bool = ...,
|
||||
|
@ -197,7 +188,6 @@ def REQ(
|
|||
def REQ(
|
||||
whence: Optional[str] = ...,
|
||||
*,
|
||||
type: Type[ResultT] = ...,
|
||||
default: ResultT = ...,
|
||||
str_validator: Optional[Validator] = ...,
|
||||
argument_type: Literal["body"],
|
||||
|
@ -212,7 +202,6 @@ def REQ(
|
|||
def REQ(
|
||||
whence: Optional[str] = None,
|
||||
*,
|
||||
type: Type[ResultT] = Type[None],
|
||||
converter: Optional[Callable[[str], ResultT]] = None,
|
||||
default: Union[_REQ._NotSpecified, ResultT] = _REQ.NotSpecified,
|
||||
validator: Optional[Validator] = None,
|
||||
|
@ -225,7 +214,6 @@ def REQ(
|
|||
) -> ResultT:
|
||||
return cast(ResultT, _REQ(
|
||||
whence,
|
||||
type=type,
|
||||
converter=converter,
|
||||
default=default,
|
||||
validator=validator,
|
||||
|
|
|
@ -7,12 +7,16 @@ from zerver.lib.actions import check_send_typing_notification, \
|
|||
from zerver.lib.response import json_success
|
||||
from zerver.models import UserProfile
|
||||
|
||||
EMPTY_STRS: List[str] = []
|
||||
EMPTY_STRS_OR_INTS: Union[List[str], List[int]] = EMPTY_STRS
|
||||
|
||||
@has_request_variables
|
||||
def send_notification_backend(
|
||||
request: HttpRequest, user_profile: UserProfile,
|
||||
operator: str=REQ('op'),
|
||||
notification_to: Union[List[str], List[int]]=REQ(
|
||||
'to', type=Union[List[str], List[int]],
|
||||
converter=extract_private_recipients, default=[])) -> HttpResponse:
|
||||
request: HttpRequest, user_profile: UserProfile,
|
||||
operator: str=REQ('op'),
|
||||
notification_to: Union[List[str], List[int]]=REQ(
|
||||
'to', converter=extract_private_recipients, default=EMPTY_STRS_OR_INTS,
|
||||
),
|
||||
) -> HttpResponse:
|
||||
check_send_typing_notification(user_profile, notification_to, operator)
|
||||
return json_success()
|
||||
|
|
Loading…
Reference in New Issue