from typing import Any, Dict, List, Optional, Tuple, Union from django.core.handlers.wsgi import WSGIRequest from django.core.paginator import Page, Paginator from django.db.models.query import QuerySet from django.template.response import TemplateResponse from django.views.generic.base import ContextMixin, TemplateResponseMixin, View class MultipleObjectMixin(ContextMixin): allow_empty: bool = ... queryset: Any = ... model: Any = ... paginate_by: Any = ... paginate_orphans: int = ... context_object_name: Any = ... paginator_class: Any = ... page_kwarg: str = ... ordering: Any = ... def get_queryset(self) -> Union[List[Dict[str, str]], QuerySet]: ... def get_ordering(self) -> Optional[Union[Tuple[str, str], str]]: ... def paginate_queryset( self, queryset: Union[List[Dict[str, str]], QuerySet], page_size: int ) -> Tuple[Paginator, Page, Union[List[Dict[str, str]], QuerySet], bool]: ... def get_paginate_by(self, queryset: Optional[Union[List[Dict[str, str]], QuerySet]]) -> Optional[int]: ... def get_paginator( self, queryset: Union[List[Dict[str, str]], QuerySet], per_page: int, orphans: int = ..., allow_empty_first_page: bool = ..., **kwargs: Any ) -> Paginator: ... def get_paginate_orphans(self) -> int: ... def get_allow_empty(self) -> bool: ... def get_context_object_name( self, object_list: Optional[Union[List[Dict[str, str]], QuerySet]] ) -> Optional[str]: ... def get_context_data(self, *, object_list: Optional[Any] = ..., **kwargs: Any) -> Dict[str, Any]: ... class BaseListView(MultipleObjectMixin, View): object_list: Any = ... def get(self, request: WSGIRequest, *args: Any, **kwargs: Any) -> TemplateResponse: ... class MultipleObjectTemplateResponseMixin(TemplateResponseMixin): template_name_suffix: str = ... def get_template_names(self) -> List[str]: ... class ListView(MultipleObjectTemplateResponseMixin, BaseListView): ...