'Import an image. Similar to the ``docker import`` command.
If ``src`` is a string or unicode string, it will first be treated as a
path to a tarball on the local system. If there is an error reading
from that file, ``src`` will be treated as a URL instead to fetch the
image from. You can also pass an open file handle as ``src``, in which
case the data will be read from that file.
If ``src`` is unset but ``image`` is set, the ``image`` parameter will
be taken as the name of an existing image to import from.
Args:
src (str or file): Path to tarfile, URL, or file-like object
repository (str): The repository to create
tag (str): The tag to apply
image (str): Use another image like the ``FROM`` Dockerfile
parameter'

def import_image(self, src=None, repository=None, tag=None, image=None, changes=None, stream_src=False):

    if (not (src or image)):
        raise errors.DockerException('Must    specify    src    or    image    to    import    from')
    u = self._url('/images/create')
    params = _import_image_params(repository, tag, image, src=(src if isinstance(src, six.string_types) else None), changes=changes)
    headers = {'Content-Type': 'application/tar'}
    if (image or (params.get('fromSrc') != '-')):
        return self._result(self._post(u, data=None, params=params))
    elif isinstance(src, six.string_types):
        with open(src, 'rb') as f:
            return self._result(self._post(u, data=f, params=params, headers=headers, timeout=None))
    else:
        if stream_src:
            headers['Transfer-Encoding'] = 'chunked'
        return self._result(self._post(u, data=src, params=params, headers=headers))
