8000 update types.SimpleNamespace · python/typeshed@a27ba0c · GitHub
[go: up one dir, main page]

Skip to content

Commit a27ba0c

Browse files
committed
update types.SimpleNamespace
1 parent 95176bd commit a27ba0c

File tree

2 files changed

+32
-1
lines changed

2 files changed

+32
-1
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import sys
2+
import types
3+
from collections import UserDict
4+
5+
# test `types.SimpleNamespace`
6+
7+
# Valid:
8+
types.SimpleNamespace()
9+
types.SimpleNamespace(x=1, y=2)
10+
11+
if sys.version_info >= (3, 13):
12+
types.SimpleNamespace(())
13+
types.SimpleNamespace([])
14+
types.SimpleNamespace([("x", "y"), ("z", 1)])
15+
types.SimpleNamespace({})
16+
types.SimpleNamespace(UserDict({"x": 1, "y": 2}))
17+
18+
19+
# Inavlid:
20+
types.SimpleNamespace(1) # type: ignore
21+
types.SimpleNamespace([1]) # type: ignore
22+
types.SimpleNamespace([["x"]]) # type: ignore
23+
types.SimpleNamespace(**{1: 2}) # type: ignore
24+
types.SimpleNamespace({1: 2}) # type: ignore
25+
types.SimpleNamespace([[1, 2]]) # type: ignore
26+
types.SimpleNamespace(UserDict({1: 2})) # type: ignore
27+
types.SimpleNamespace([[[], 2]]) # type: ignore

stdlib/types.pyi

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -312,7 +312,11 @@ class MappingProxyType(Mapping[_KT, _VT_co]):
312312

313313
class SimpleNamespace:
314314
__hash__: ClassVar[None] # type: ignore[assignment]
315-
def __init__(self, **kwargs: Any) -> None: ...
315+
if sys.version_info >= (3, 13):
316+
def __init__(self, mapping_or_iterable: Mapping[str, Any] | Iterable[tuple[str, Any]] = (), /, *kwargs: Any) -> None: ...
317+
else:
318+
def __init__(self, **kwargs: Any) -> None: ...
319+
316320
def __eq__(self, value: object, /) -> bool: ...
317321
def __getattribute__(self, name: str, /) -> Any: ...
318322
def __setattr__(self, name: str, value: Any, /) -> None: ...

0 commit comments

Comments
 (0)
0