code: def pull_blob(self, digest, size=False, chunk_size=None):
          
          if chunk_size is None:
              chunk_size = 8192
          r = self._request('get', 'blobs/' + digest, stream=True)
          class Chunks(object):
              # pylint: disable=too-few-public-methods
              def __iter__(self):
                  sha256 = hashlib.sha256()
                  for chunk in r.iter_content(chunk_size):
                      sha256.update(chunk)
                      yield chunk
                  dgst = 'sha256:' + sha256.hexdigest()
                  if dgst != digest:
                      raise exceptions.DXFDigestMismatchError(dgst, digest)
          return (Chunks(), long(r.headers['content-length'])) if size else Chunks()
docs: Download a blob from the registry given the hash of its content.
  
          :param digest: Hash of the blob's content (prefixed by ``sha256:``).
          :type digest: str
  
          :param size: Whether to return the size of the blob too.
          :type size: bool
  
          :param chunk_size: Number of bytes to download at a time. Defaults to 8192.
          :type chunk_size: int
  
          :rtype: iterator
          :returns: If ``size`` is falsey, a byte string iterator over the blob's content. If ``size`` is truthy, a tuple containing the iterator and the blob's size.