From 197cb4058ecf4576c1639a391758611a10033115 Mon Sep 17 00:00:00 2001 From: Kacper Date: Wed, 3 Jun 2020 11:58:03 +0200 Subject: [PATCH] Issue 382 (#384) * WIP fix, pushed for testing * added _ prefix for internal types Co-authored-by: Kacper Szmigiel --- django-stubs/contrib/sitemaps/__init__.pyi | 13 +++++++++++-- django-stubs/core/paginator.pyi | 8 ++++---- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/django-stubs/contrib/sitemaps/__init__.pyi b/django-stubs/contrib/sitemaps/__init__.pyi index 31897e2..3ffc953 100644 --- a/django-stubs/contrib/sitemaps/__init__.pyi +++ b/django-stubs/contrib/sitemaps/__init__.pyi @@ -1,5 +1,5 @@ from datetime import datetime -from typing import Any, Dict, List, Optional, Union +from typing import Any, Dict, List, Optional, Union, Protocol from django.contrib.sites.models import Site from django.contrib.sites.requests import RequestSite @@ -13,10 +13,19 @@ class SitemapNotFound(Exception): ... def ping_google(sitemap_url: Optional[str] = ..., ping_url: str = ...) -> None: ... +class _SupportsLen(Protocol): + def __len__(self) -> int: ... + +class _SupportsCount(Protocol): + def count(self) -> int: ... + +class _SupportsOrdered(Protocol): + ordered: bool = ... + class Sitemap: limit: int = ... protocol: Optional[str] = ... - def items(self) -> List[Any]: ... + def items(self) -> Union[_SupportsLen, _SupportsCount, _SupportsOrdered]: ... def location(self, obj: Model) -> str: ... @property def paginator(self) -> Paginator: ... diff --git a/django-stubs/core/paginator.pyi b/django-stubs/core/paginator.pyi index 1bb8d5f..d838cb4 100644 --- a/django-stubs/core/paginator.pyi +++ b/django-stubs/core/paginator.pyi @@ -8,13 +8,13 @@ class InvalidPage(Exception): ... class PageNotAnInteger(InvalidPage): ... class EmptyPage(InvalidPage): ... -class SupportsLen(Protocol): +class _SupportsLen(Protocol): def __len__(self) -> int: ... -class SupportsCount(Protocol): +class _SupportsCount(Protocol): def count(self) -> int: ... -class SupportsOrdered(Protocol): +class _SupportsOrdered(Protocol): ordered: bool = ... class Paginator: @@ -24,7 +24,7 @@ class Paginator: allow_empty_first_page: bool = ... def __init__( self, - object_list: Union[SupportsLen, SupportsCount, SupportsOrdered], + object_list: Union[_SupportsLen, _SupportsCount, _SupportsOrdered], per_page: Union[int, str], orphans: int = ..., allow_empty_first_page: bool = ...,