Skip to content

Commit 683c6e9

Browse files
rhysparryJelleZijlstra
authored andcommitted
Support named attributes in os.uname() result (#1445)
`os.uname` changed in version 3.3: Return type changed from a tuple to a tuple-like object with named attributes.
1 parent bc9b2f0 commit 683c6e9

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

stdlib/3/os/__init__.pyi

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,11 @@ def setsid() -> None: ... # Unix only
254254
def setuid(uid: int) -> None: ... # Unix only
255255
def strerror(code: int) -> str: ...
256256
def umask(mask: int) -> int: ...
257-
def uname() -> Tuple[str, str, str, str, str]: ... # Unix only
257+
if sys.version_info >= (3, 3):
258+
from posix import uname_result
259+
def uname() -> uname_result: ... # Unix only
260+
else:
261+
def uname() -> Tuple[str, str, str, str, str]: ... # Unix only
258262

259263
@overload
260264
def getenv(key: Text) -> Optional[str]: ...

stdlib/3/posix.pyi

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,11 @@
22

33
# NOTE: These are incomplete!
44

5+
import sys
56
import typing
67
from os import stat_result
8+
from typing import NamedTuple
9+
10+
if sys.version_info >= (3, 3):
11+
uname_result = NamedTuple('uname_result', [('sysname', str), ('nodename', str),
12+
('release', str), ('version', str), ('machine', str)])

0 commit comments

Comments
 (0)