docs: def get_published(self):
          """
          Return self is this object is published, otherwise return the
          published copy of a draft item. If this object is a draft with
          no published copy it will return ``None``.
          """
          if self.is_published:
              return self
          elif self.is_draft:
              return self.publishing_linked
          raise ValueError(  # pragma: no cover
              "Publishable object %r is neither draft nor published" % self)