From da1f46adaed10b4c023e1f424c64613e3d7a6875 Mon Sep 17 00:00:00 2001 From: Nikita Sobolev Date: Tue, 8 Feb 2022 18:06:59 +0300 Subject: [PATCH] Add precise types for underlying queue objects (#7157) --- stdlib/queue.pyi | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/stdlib/queue.pyi b/stdlib/queue.pyi index 9671155b7..ae5b9ede1 100644 --- a/stdlib/queue.pyi +++ b/stdlib/queue.pyi @@ -18,6 +18,8 @@ class Queue(Generic[_T]): not_full: Condition # undocumented all_tasks_done: Condition # undocumented unfinished_tasks: int # undocumented + # Despite the fact that `queue` has `deque` type, + # we treat it as `Any` to allow different implementations in subtypes. queue: Any # undocumented def __init__(self, maxsize: int = ...) -> None: ... def _init(self, maxsize: int) -> None: ... @@ -36,8 +38,11 @@ class Queue(Generic[_T]): if sys.version_info >= (3, 9): def __class_getitem__(cls, item: Any) -> GenericAlias: ... -class PriorityQueue(Queue[_T]): ... -class LifoQueue(Queue[_T]): ... +class PriorityQueue(Queue[_T]): + queue: list[_T] + +class LifoQueue(Queue[_T]): + queue: list[_T] if sys.version_info >= (3, 7): class SimpleQueue(Generic[_T]):