mirror of
https://github.com/davidhalter/typeshed.git
synced 2025-12-06 12:14:27 +08:00
QueueHandler / QueueListener accept SimpleQueue too (#3098)
The implementation of `logging.adapters.QueueHandler` and `logging.adapters.QueueListener` works great with `queue.SimpleQueue` too, so update the stub to reflect this. The new queue.SimpleQueue class (introduced in 3.7) is faster but is not a Queue subclass as it doesn't implement task handling (`handle_task()` / `join()`) or queue bounds (raising `queue.Full` / `full()`). The logging handler / listener implementations do not make use of those features however. Related Python bug, asking for an explicit documentation mention: https://bugs.python.org/issue37469
This commit is contained in:
committed by
Jelle Zijlstra
parent
c66699800e
commit
e1e5c83795
@@ -6,7 +6,9 @@ from socket import SocketType
|
||||
import ssl
|
||||
import sys
|
||||
from typing import Any, Callable, Dict, List, Optional, Tuple, Union, overload
|
||||
if sys.version_info >= (3,):
|
||||
if sys.version_info >= (3, 7):
|
||||
from queue import SimpleQueue, Queue
|
||||
elif sys.version_info >= (3,):
|
||||
from queue import Queue
|
||||
else:
|
||||
from Queue import Queue
|
||||
@@ -195,12 +197,19 @@ class HTTPHandler(Handler):
|
||||
|
||||
if sys.version_info >= (3,):
|
||||
class QueueHandler(Handler):
|
||||
def __init__(self, queue: Queue) -> None: ...
|
||||
if sys.version_info >= (3, 7):
|
||||
def __init__(self, queue: Union[SimpleQueue, Queue]) -> None: ...
|
||||
else:
|
||||
def __init__(self, queue: Queue) -> None: ...
|
||||
def prepare(self, record: LogRecord) -> Any: ...
|
||||
def enqueue(self, record: LogRecord) -> None: ...
|
||||
|
||||
class QueueListener:
|
||||
if sys.version_info >= (3, 5):
|
||||
if sys.version_info >= (3, 7):
|
||||
def __init__(self, queue: Union[SimpleQueue, Queue],
|
||||
*handlers: Handler,
|
||||
respect_handler_level: bool = ...) -> None: ...
|
||||
elif sys.version_info >= (3, 5):
|
||||
def __init__(self, queue: Queue, *handlers: Handler,
|
||||
respect_handler_level: bool = ...) -> None: ...
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user