From f7b6a7beb402ed44080e50e79250b492e25b1a16 Mon Sep 17 00:00:00 2001 From: Marti Raudsepp Date: Fri, 29 Apr 2022 09:02:19 +0300 Subject: [PATCH] Fix URLPattern, URLResolver pattern type (#941) --- django-stubs/urls/resolvers.pyi | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/django-stubs/urls/resolvers.pyi b/django-stubs/urls/resolvers.pyi index 8c02eda..9c5cf10 100644 --- a/django-stubs/urls/resolvers.pyi +++ b/django-stubs/urls/resolvers.pyi @@ -36,13 +36,15 @@ class ResolverMatch: def get_resolver(urlconf: Optional[str] = ...) -> URLResolver: ... def get_ns_resolver(ns_pattern: str, resolver: URLResolver, converters: Tuple) -> URLResolver: ... +_Pattern = Union[RegexPattern, RoutePattern, LocalePrefixPattern] + class LocaleRegexDescriptor: attr: str = ... def __init__(self, attr: Any) -> None: ... @overload - def __get__(self, instance: None, cls: Type[RegexPattern] = ...) -> LocaleRegexDescriptor: ... + def __get__(self, instance: None, cls: Type[_Pattern] = ...) -> LocaleRegexDescriptor: ... @overload - def __get__(self, instance: RegexPattern, cls: Type[RegexPattern] = ...) -> Pattern[str]: ... + def __get__(self, instance: _Pattern, cls: Type[_Pattern] = ...) -> Pattern[str]: ... class CheckURLMixin: def describe(self) -> str: ... @@ -76,13 +78,13 @@ class LocalePrefixPattern: def describe(self) -> str: ... class URLPattern: - pattern: LocalePrefixPattern = ... + pattern: _Pattern = ... callback: Callable = ... default_args: Optional[Dict[str, str]] = ... name: Optional[str] = ... def __init__( self, - pattern: LocalePrefixPattern, + pattern: _Pattern, callback: Callable, default_args: Optional[Dict[str, str]] = ..., name: Optional[str] = ..., @@ -93,7 +95,7 @@ class URLPattern: def lookup_str(self) -> str: ... class URLResolver: - pattern: LocalePrefixPattern = ... + pattern: _Pattern = ... urlconf_name: Union[str, None, Sequence[Union[URLPattern, URLResolver]]] = ... callback: None = ... default_kwargs: Dict[str, Any] = ... @@ -103,7 +105,7 @@ class URLResolver: _reverse_dict: MultiValueDict def __init__( self, - pattern: LocalePrefixPattern, + pattern: _Pattern, urlconf_name: Union[str, None, Sequence[Union[URLPattern, URLResolver]]], default_kwargs: Optional[Dict[str, Any]] = ..., app_name: Optional[str] = ...,