Skip to content

Commit 289411d

Browse files
gh-97966: Restore prior expectation that uname_result._fields and ._asdict would include the processor. (gh-98343)
(cherry picked from commit dc063a2) Co-authored-by: Jason R. Coombs <[email protected]>
1 parent 610b779 commit 289411d

File tree

3 files changed

+14
-2
lines changed

3 files changed

+14
-2
lines changed

Lib/platform.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -776,6 +776,8 @@ class uname_result(
776776
except when needed.
777777
"""
778778

779+
_fields = ('system', 'node', 'release', 'version', 'machine', 'processor')
780+
779781
@functools.cached_property
780782
def processor(self):
781783
return _unknown_as_blank(_Processor.get())
@@ -789,7 +791,7 @@ def __iter__(self):
789791
@classmethod
790792
def _make(cls, iterable):
791793
# override factory to affect length check
792-
num_fields = len(cls._fields)
794+
num_fields = len(cls._fields) - 1
793795
result = cls.__new__(cls, *iterable)
794796
if len(result) != num_fields + 1:
795797
msg = f'Expected {num_fields} arguments, got {len(result)}'
@@ -803,7 +805,7 @@ def __len__(self):
803805
return len(tuple(iter(self)))
804806

805807
def __reduce__(self):
806-
return uname_result, tuple(self)[:len(self._fields)]
808+
return uname_result, tuple(self)[:len(self._fields) - 1]
807809

808810

809811
_uname_cache = None

Lib/test/test_platform.py

+8
Original file line numberDiff line numberDiff line change
@@ -268,6 +268,14 @@ def test_uname_slices(self):
268268
self.assertEqual(res[:], expected)
269269
self.assertEqual(res[:5], expected[:5])
270270

271+
def test_uname_fields(self):
272+
self.assertIn('processor', platform.uname()._fields)
273+
274+
def test_uname_asdict(self):
275+
res = platform.uname()._asdict()
276+
self.assertEqual(len(res), 6)
277+
self.assertIn('processor', res)
278+
271279
@unittest.skipIf(sys.platform in ['win32', 'OpenVMS'], "uname -p not used")
272280
def test_uname_processor(self):
273281
"""
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
On ``uname_result``, restored expectation that ``_fields`` and ``_asdict``
2+
would include all six properties including ``processor``.

0 commit comments

Comments
 (0)