code: def dump(self, dump_file_name=None):  # pragma: no cover, never called
          # pylint: disable=unused-argument
          
          dump = {}
          for prop in self.properties:
              if not hasattr(self, prop):
                  continue
              attr = getattr(self, prop)
              if isinstance(attr, list) and attr and isinstance(attr[0], Item):
                  dump[prop] = [i.dump() for i in attr]
              elif isinstance(attr, Item):
                  dump[prop] = attr.dump()
              elif attr:
                  dump[prop] = getattr(self, prop)
          return dump
docs: Dump Item object properties
  
          :return: dictionary with properties
          :rtype: dict