code: def print_nested(self, stream=None, level=0, indent="    ", prefix="", first_level_indent=True, trailer="", print_doc=True, first_line_suffix=""):
          
          import sys
          stream = stream or sys.stdout
  
          stream.write(
              ((prefix + level * indent) if first_level_indent else "")
              + "{}.{}(".format(self.__class__.__module__, self.__class__.__name__)
              + first_line_suffix
              + "\n"
          )
          for name, value in self._repr_items:
              val = getattr(self, name)
              if print_doc and not name.startswith("_"):
                  docstring = self._fields[name]._inline_doc_comment(val)
              else:
                  docstring = ""
              if not hasattr(getattr(val, 'print_nested', None), '__call__'):
                  stream.write(
                      (prefix + (level + 1) * indent) + "{} = {!r},{}\n".format(name, val, docstring)
                  )
              else:
                  stream.write(
                      (prefix + (level + 1) * indent) + "{} = ".format(name)
                  )
                  val.print_nested(stream=stream, level=level + 2, indent=indent, prefix=prefix, first_level_indent=False, trailer=",", print_doc=print_doc,
                                   first_line_suffix=docstring)
          stream.write((prefix + level * indent) + "){}\n".format(trailer))
docs: Structured nested print of the object to the given stream.
  
          The print-out is eval()able to reconstruct the object.