docs: def new(cls, __name, __fields, **defaults):
      '''
      Creates a new class that can represent a record with the
      specified *fields*. This is equal to a mutable namedtuple.
      The returned class also supports keyword arguments in its
      constructor.
  
      :param __name: The name of the recordclass.
      :param __fields: A string or list of field names.
      :param defaults: Default values for fields. The defaults
        may list field names that haven't been listed in *fields*.
      '''
  
      name = __name
      fields = __fields
      fieldset = set(fields)
  
      if isinstance(fields, str):
        if ',' in fields:
          fields = fields.split(',')
        else:
          fields = fields.split()
      else:
        fields = list(fields)
  
      for key in defaults.keys():
        if key not in fields:
          fields.append(key)
  
      class _record(cls):
        __slots__ = fields
        __defaults__ = defaults
      _record.__name__ = name
      return _record