class_docstr: A uname_result that's largely compatible with a
  simple namedtuple except that 'processor' is
  resolved late and cached to avoid calling "uname"
  except when needed.
class_docstr_tok: ["A","uname_result","that","'s","largely","compatible","with","a","simple","namedtuple","except","that","'processor","'","is","resolved","late","and","cached","to","avoid","calling","``","uname","''","except","when","needed","."]
code: def _make(cls, iterable):
      # override factory to affect length check
      num_fields = len(cls._fields) - 1
      result = cls.__new__(cls, *iterable)
      if len(result) != num_fields + 1:
          msg = f"Expected {num_fields} arguments, got {len(result)}"
          raise TypeError(msg)
      return result
  
imports: import collections
  import os
  import re
  import sys
  import functools
  import itertools
label_desc: Use image node_id 3 for calling the uname_result obj's underlying member method code with example usage: obj._make(cls, iterable) and returns: result