From acf4a85d47fd8e18c2f1a135a5cc19af605629ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9E=84=EC=84=A0=EC=98=A4?= <vhtmxj154@naver.com> Date: Fri, 13 Dec 2024 16:09:46 +0900 Subject: [PATCH] Fix: Add UniqueValidator, UniqueTogetherValidator, BaseUniqueForValidator to validators --- rest_framework-stubs/validators.pyi | 30 ++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/rest_framework-stubs/validators.pyi b/rest_framework-stubs/validators.pyi index 918f8813..e9e20860 100644 --- a/rest_framework-stubs/validators.pyi +++ b/rest_framework-stubs/validators.pyi @@ -14,7 +14,9 @@ class ContextValidator(Protocol[_V]): requires_context: bool def __call__(self, value: _V, context: Field, /) -> None: ... -Validator: TypeAlias = Callable[[_V], None] | ContextValidator[_V] +Validator: TypeAlias = ( + Callable[[_V], None] | ContextValidator[_V] | UniqueValidator | UniqueTogetherValidator | BaseUniqueForValidator +) def qs_exists(queryset: QuerySet) -> bool: ... def qs_filter(queryset: QuerySet[_T], **kwargs: Any) -> QuerySet[_T]: ... @@ -35,10 +37,18 @@ class UniqueTogetherValidator: requires_context: bool queryset: QuerySet fields: Iterable[str] - def __init__(self, queryset: QuerySet, fields: Iterable[str], message: StrOrPromise | None = ...) -> None: ... + def __init__( + self, + queryset: QuerySet, + fields: Iterable[str], + message: StrOrPromise | None = ..., + ) -> None: ... def enforce_required_fields(self, attrs: Container[str], serializer: BaseSerializer) -> None: ... def filter_queryset( - self, attrs: MutableMapping[str, Any], queryset: QuerySet[_T], serializer: BaseSerializer + self, + attrs: MutableMapping[str, Any], + queryset: QuerySet[_T], + serializer: BaseSerializer, ) -> QuerySet[_T]: ... def exclude_current_instance( self, attrs: MutableMapping[str, Any], queryset: QuerySet[_T], instance: _T @@ -57,10 +67,20 @@ class BaseUniqueForValidator: queryset: QuerySet field: str date_field: str - def __init__(self, queryset: QuerySet, field: str, date_field: str, message: StrOrPromise | None = ...) -> None: ... + def __init__( + self, + queryset: QuerySet, + field: str, + date_field: str, + message: StrOrPromise | None = ..., + ) -> None: ... def enforce_required_fields(self, attrs: Container[str]) -> None: ... def filter_queryset( - self, attrs: MutableMapping[str, Any], queryset: QuerySet[_T], field_name: str, date_field_name: str + self, + attrs: MutableMapping[str, Any], + queryset: QuerySet[_T], + field_name: str, + date_field_name: str, ) -> QuerySet[_T]: ... def exclude_current_instance( self, attrs: MutableMapping[str, Any], queryset: QuerySet[_T], instance: Model