mirror of
https://github.com/davidhalter/typeshed.git
synced 2026-05-06 21:43:59 +08:00
Add SetProxy and support for set operations in multiprocessing.managers for Python 3.14 (#14077)
This commit is contained in:
@@ -58,7 +58,6 @@ multiprocessing.forkserver.main
|
||||
multiprocessing.managers.BaseListProxy.clear
|
||||
multiprocessing.managers.BaseListProxy.copy
|
||||
multiprocessing.managers.DictProxy.__ior__
|
||||
multiprocessing.managers.SyncManager.set
|
||||
multiprocessing.managers._BaseDictProxy.__ior__
|
||||
multiprocessing.managers._BaseDictProxy.__or__
|
||||
multiprocessing.managers._BaseDictProxy.__reversed__
|
||||
@@ -202,6 +201,12 @@ multiprocessing.managers._BaseDictProxy.keys
|
||||
multiprocessing.managers._BaseDictProxy.popitem
|
||||
multiprocessing.managers._BaseDictProxy.values
|
||||
|
||||
multiprocessing.managers._BaseSetProxy.__iter__
|
||||
multiprocessing.managers._BaseSetProxy.__len__
|
||||
multiprocessing.managers._BaseSetProxy.clear
|
||||
multiprocessing.managers._BaseSetProxy.copy
|
||||
multiprocessing.managers._BaseSetProxy.pop
|
||||
|
||||
# To match `dict`, we lie about the runtime, but use overloads to match the correct behavior
|
||||
types.MappingProxyType.get
|
||||
|
||||
|
||||
@@ -2,7 +2,17 @@ import queue
|
||||
import sys
|
||||
import threading
|
||||
from _typeshed import SupportsKeysAndGetItem, SupportsRichComparison, SupportsRichComparisonT
|
||||
from collections.abc import Callable, Iterable, Iterator, Mapping, MutableMapping, MutableSequence, Sequence
|
||||
from collections.abc import (
|
||||
Callable,
|
||||
Iterable,
|
||||
Iterator,
|
||||
Mapping,
|
||||
MutableMapping,
|
||||
MutableSequence,
|
||||
MutableSet,
|
||||
Sequence,
|
||||
Set as AbstractSet,
|
||||
)
|
||||
from types import GenericAlias, TracebackType
|
||||
from typing import Any, AnyStr, ClassVar, Generic, SupportsIndex, TypeVar, overload
|
||||
from typing_extensions import Self, TypeAlias
|
||||
@@ -18,6 +28,7 @@ __all__ = ["BaseManager", "SyncManager", "BaseProxy", "Token", "SharedMemoryMana
|
||||
_T = TypeVar("_T")
|
||||
_KT = TypeVar("_KT")
|
||||
_VT = TypeVar("_VT")
|
||||
_S = TypeVar("_S")
|
||||
|
||||
class Namespace:
|
||||
def __init__(self, **kwds: Any) -> None: ...
|
||||
@@ -111,6 +122,51 @@ else:
|
||||
def items(self) -> list[tuple[_KT, _VT]]: ... # type: ignore[override]
|
||||
def values(self) -> list[_VT]: ... # type: ignore[override]
|
||||
|
||||
if sys.version_info >= (3, 14):
|
||||
class _BaseSetProxy(BaseProxy, MutableSet[_T]):
|
||||
__builtins__: ClassVar[dict[str, Any]]
|
||||
# Copied from builtins.set
|
||||
def add(self, element: _T, /) -> None: ...
|
||||
def copy(self) -> set[_T]: ...
|
||||
def clear(self) -> None: ...
|
||||
def difference(self, *s: Iterable[Any]) -> set[_T]: ...
|
||||
def difference_update(self, *s: Iterable[Any]) -> None: ...
|
||||
def discard(self, element: _T, /) -> None: ...
|
||||
def intersection(self, *s: Iterable[Any]) -> set[_T]: ...
|
||||
def intersection_update(self, *s: Iterable[Any]) -> None: ...
|
||||
def isdisjoint(self, s: Iterable[Any], /) -> bool: ...
|
||||
def issubset(self, s: Iterable[Any], /) -> bool: ...
|
||||
def issuperset(self, s: Iterable[Any], /) -> bool: ...
|
||||
def pop(self) -> _T: ...
|
||||
def remove(self, element: _T, /) -> None: ...
|
||||
def symmetric_difference(self, s: Iterable[_T], /) -> set[_T]: ...
|
||||
def symmetric_difference_update(self, s: Iterable[_T], /) -> None: ...
|
||||
def union(self, *s: Iterable[_S]) -> set[_T | _S]: ...
|
||||
def update(self, *s: Iterable[_T]) -> None: ...
|
||||
def __len__(self) -> int: ...
|
||||
def __contains__(self, o: object, /) -> bool: ...
|
||||
def __iter__(self) -> Iterator[_T]: ...
|
||||
def __and__(self, value: AbstractSet[object], /) -> set[_T]: ...
|
||||
def __iand__(self, value: AbstractSet[object], /) -> Self: ...
|
||||
def __or__(self, value: AbstractSet[_S], /) -> set[_T | _S]: ...
|
||||
def __ior__(self, value: AbstractSet[_T], /) -> Self: ... # type: ignore[override,misc]
|
||||
def __sub__(self, value: AbstractSet[_T | None], /) -> set[_T]: ...
|
||||
def __isub__(self, value: AbstractSet[object], /) -> Self: ...
|
||||
def __xor__(self, value: AbstractSet[_S], /) -> set[_T | _S]: ...
|
||||
def __ixor__(self, value: AbstractSet[_T], /) -> Self: ... # type: ignore[override,misc]
|
||||
def __le__(self, value: AbstractSet[object], /) -> bool: ...
|
||||
def __lt__(self, value: AbstractSet[object], /) -> bool: ...
|
||||
def __ge__(self, value: AbstractSet[object], /) -> bool: ...
|
||||
def __gt__(self, value: AbstractSet[object], /) -> bool: ...
|
||||
def __eq__(self, value: object, /) -> bool: ...
|
||||
def __rand__(self, value: AbstractSet[object], /) -> set[_T]: ...
|
||||
def __ror__(self, value: AbstractSet[_S], /) -> set[_T | _S]: ... # type: ignore[misc]
|
||||
def __rsub__(self, value: AbstractSet[_T], /) -> set[_T]: ...
|
||||
def __rxor__(self, value: AbstractSet[_S], /) -> set[_T | _S]: ... # type: ignore[misc]
|
||||
def __class_getitem__(cls, item: Any, /) -> GenericAlias: ...
|
||||
|
||||
class SetProxy(_BaseSetProxy[_T]): ...
|
||||
|
||||
class BaseListProxy(BaseProxy, MutableSequence[_T]):
|
||||
__builtins__: ClassVar[dict[str, Any]]
|
||||
def __len__(self) -> int: ...
|
||||
@@ -273,6 +329,11 @@ class SyncManager(BaseManager):
|
||||
def list(self, sequence: Sequence[_T], /) -> ListProxy[_T]: ...
|
||||
@overload
|
||||
def list(self) -> ListProxy[Any]: ...
|
||||
if sys.version_info >= (3, 14):
|
||||
@overload
|
||||
def set(self, iterable: Iterable[_T], /) -> SetProxy[_T]: ...
|
||||
@overload
|
||||
def set(self) -> SetProxy[Any]: ...
|
||||
|
||||
class RemoteError(Exception): ...
|
||||
|
||||
|
||||
Reference in New Issue
Block a user