Skip to content

Commit c50cb06

Browse files
authored
Improve two classes which are namedtuples at runtime, but cannot be namedtuples in typeshed (#7429)
1 parent 342e384 commit c50cb06

File tree

2 files changed

+8
-4
lines changed

2 files changed

+8
-4
lines changed

stdlib/concurrent/futures/_base.pyi

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,10 @@ def as_completed(fs: Iterable[Future[_T]], timeout: float | None = ...) -> Itera
7979

8080
# Ideally this would be a namedtuple, but mypy doesn't support generic tuple types. See #1976
8181
class DoneAndNotDoneFutures(Sequence[set[Future[_T]]]):
82-
done: set[Future[_T]]
83-
not_done: set[Future[_T]]
82+
@property
83+
def done(self) -> set[Future[_T]]: ...
84+
@property
85+
def not_done(self) -> set[Future[_T]]: ...
8486
def __new__(_cls, done: set[Future[_T]], not_done: set[Future[_T]]) -> DoneAndNotDoneFutures[_T]: ...
8587
def __len__(self) -> int: ...
8688
@overload

stdlib/urllib/parse.pyi

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,10 @@ class _NetlocResultMixinStr(_NetlocResultMixinBase[str], _ResultMixinStr): ...
6464
class _NetlocResultMixinBytes(_NetlocResultMixinBase[bytes], _ResultMixinBytes): ...
6565

6666
class _DefragResultBase(tuple[Any, ...], Generic[AnyStr]):
67-
url: AnyStr
68-
fragment: AnyStr
67+
@property
68+
def url(self) -> AnyStr: ...
69+
@property
70+
def fragment(self) -> AnyStr: ...
6971

7072
class _SplitResultBase(NamedTuple):
7173
scheme: str

0 commit comments

Comments
 (0)