code: def fields(class_or_instance):
      
  
      # Might it be worth caching this, per class?
      try:
          fields = getattr(class_or_instance, _FIELDS)
      except AttributeError:
          raise TypeError('must be called with a dataclass type or instance')
  
      # Exclude pseudo-fields.  Note that fields is sorted by insertion
      # order, so the order of the tuple is as the fields were defined.
      return tuple(f for f in fields.values() if f._field_type is _FIELD)
docs: Return a tuple describing the fields of this dataclass.
  
      Accepts a dataclass or an instance of one. Tuple elements are of
      type Field.