code: def print_info(self, buf=None, format_=FileFormat.yaml,
                     skip_attributes=None, include_release=False):
          
          data = self.validated_data().copy()
  
          # config is a special case. We only really want to show any config settings
          # that were in the package.py, not the entire Config contents that get
          # grafted onto the Package/Variant instance. However Variant has an empy
          # 'data' dict property, since it forwards data from its parent package.
          data.pop("config", None)
          if self.config:
              if isinstance(self, Package):
                  config_dict = self.data.get("config")
              else:
                  config_dict = self.parent.data.get("config")
              data["config"] = config_dict
  
          if not include_release:
              skip_attributes = list(skip_attributes or []) + list(package_release_keys)
  
          buf = buf or sys.stdout
          dump_package_data(data, buf=buf, format_=format_,
                            skip_attributes=skip_attributes)
docs: Print the contents of the package.
  
          Args:
              buf (file-like object): Stream to write to.
              format_ (`FileFormat`): Format to write in.
              skip_attributes (list of str): List of attributes to not print.
              include_release (bool): If True, include release-related attributes,
                  such as 'timestamp' and 'changelog'