code: def digest(self, hashname="sha1"):
          
  
          h = hashlib.new(hashname)
  
          for i in itertools.product(*[range(s) for s in self.cdata_shape]):
              h.update(self.chunk_store.get(self._chunk_key(i), b""))
  
          h.update(self.store.get(self._key_prefix + array_meta_key, b""))
  
          h.update(self.store.get(self.attrs.key, b""))
  
          checksum = h.digest()
  
          return checksum
docs: Compute a checksum for the data. Default uses sha1 for speed.
  
          Examples
          --------
          >>> import binascii
          >>> import zarr
          >>> z = zarr.empty(shape=(10000, 10000), chunks=(1000, 1000))
          >>> binascii.hexlify(z.digest())
          b'041f90bc7a571452af4f850a8ca2c6cddfa8a1ac'
          >>> z = zarr.zeros(shape=(10000, 10000), chunks=(1000, 1000))
          >>> binascii.hexlify(z.digest())
          b'7162d416d26a68063b66ed1f30e0a866e4abed60'
          >>> z = zarr.zeros(shape=(10000, 10000), dtype="u1", chunks=(1000, 1000))
          >>> binascii.hexlify(z.digest())
          b'cb387af37410ae5a3222e893cf3373e4e4f22816'