Pushes an image repository to the registry.

        :param repository: Name of the repository (can include a tag).
        :type repository: unicode | str
        :param stream: Use the stream output format with additional status information.
        :type stream: bool
        :param raise_on_error: Raises errors in the status output as a DockerStatusException. Otherwise only logs
         errors.
        :type raise_on_error: bool
        :param kwargs: Additional kwargs for :meth:`docker.client.Client.push`.
        :return: ``True`` if the image has been pushed successfully.
        :rtype: bool

def push(self, repository, stream=False, raise_on_error=True, **kwargs):
        """
        Pushes an image repository to the registry.

        :param repository: Name of the repository (can include a tag).
        :type repository: unicode | str
        :param stream: Use the stream output format with additional status information.
        :type stream: bool
        :param raise_on_error: Raises errors in the status output as a DockerStatusException. Otherwise only logs
         errors.
        :type raise_on_error: bool
        :param kwargs: Additional kwargs for :meth:`docker.client.Client.push`.
        :return: ``True`` if the image has been pushed successfully.
        :rtype: bool
        """
        response = super(DockerClientWrapper, self).push(repository, stream=stream, **kwargs)
        if stream:
            result = self._docker_status_stream(response, raise_on_error)
        else:
            result = self._docker_status_stream(response.split('\r\n') if response else (), raise_on_error)
        return result and not result.get('error')