code: def to_dict(self):
          '''Represents the setup section in form of key-value pairs.
  
          Returns
          -------
          dict
          '''
          mapping = dict()
          for attr in dir(self):
              if attr.startswith('_'):
                  continue
              if not isinstance(getattr(self.__class__, attr), property):
                  continue
              try:
                  value = getattr(self, attr)
              except AttributeError:
                  if attr in self._OPTIONAL_ATTRS:
                      continue
                  else:
                      raise AttributeError(
                          'Required attribute "{0}" does not exist on '
                          'instance of type "{1}.'.format(
                              attr, self.__class__.__name__
                          )
                      )
              mapping[attr] = value
          return mappinf to_dict(self):
          '''Represents the setup section in form of key-value pairs.
  
          Returns
          -------
          dict
          '''
          mapping = dict()
          for attr in dir(self):
              if attr.startswith('_'):
                  continue
              if not isinstance(getattr(self.__class__, attr), property):
                  continue
              try:
                  value = getattr(self, attr)
              except AttributeError:
                  if attr in self._OPTIONAL_ATTRS:
                      continue
                  else:
                      raise AttributeError(
                          'Required attribute "{0}" does not exist on '
                          'instance of type "{1}.'.format(
                              attr, self.__class__.__name__
                          )
                      )
              mapping[attr] = value
          return mapping
docs: Represents the setup section in form of key-value pairs.
  
          Returns
          -------
          dict