From a6f3933bb0389bff633eac2b8330719dffff9eae Mon Sep 17 00:00:00 2001 From: Ivo Donchev Date: Mon, 19 Aug 2019 13:46:36 +0300 Subject: [PATCH] Add typings: - add typing for `__or__` - add typing for `__and__` - update typing for `__getitem__` --- queryset_type.py | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/queryset_type.py b/queryset_type.py index 1f23463..89ad656 100644 --- a/queryset_type.py +++ b/queryset_type.py @@ -1,4 +1,13 @@ -from typing import Generic, Iterator, Any, TypeVar, Optional, Dict, Tuple +from typing import ( + Generic, + Iterator, + Any, + TypeVar, + Optional, + Dict, + Tuple, + Union +) from collections import Iterable @@ -44,6 +53,19 @@ class QuerySetType(Generic[DjangoModel], extra=Iterable): def values_list(self, *args: Any) -> 'QuerySetType[DjangoModel]': ... - def __getitem__(self, index: int) -> DjangoModel: ... + def __getitem__( + self, + index: int + ) -> Union[DjangoModel, "QuerySetType[DjangoModel]"]: ... def __len__(self) -> int: ... + + def __or__( + self, + qs: "QuerySetType[DjangoModel]" + ) -> 'QuerySetType[DjangoModel]': ... + + def __and__( + self, + qs: "QuerySetType[DjangoModel]" + ) -> 'QuerySetType[DjangoModel]': ...