code: def decode(mhash, encoding=None):
      r
      mhash = bytes(mhash)
      if encoding:
          mhash = CodecReg.get_decoder(encoding)(mhash)
      try:
          func = mhash[0]
          length = mhash[1]
          digest = mhash[2:]
      except IndexError as ie:
          raise ValueError("multihash is too short") from ie
      if length != len(digest):
          raise ValueError(
              "multihash length field does not match digest field length")
      return Multihash(func, digest)
docs: r"""Decode a multihash-encoded digest into a `Multihash`.
  
      If `encoding` is `None`, a binary digest is assumed.
  
      >>> mhash = b'\x11\x0a\x0b\xee\xc7\xb5\xea?\x0f\xdb\xc9]'
      >>> mh = decode(mhash)
      >>> mh == (Func.sha1, mhash[2:])
      True
  
      If the name of an `encoding` is specified, it is used to decode the digest
      before parsing it (see `CodecReg` for supported codecs).
  
      >>> import base64
      >>> emhash = base64.b64encode(mhash)
      >>> emh = decode(emhash, 'base64')
      >>> emh == mh
      True
  
      If the `encoding` is not available, a `KeyError` is raised.  If the digest
      has an invalid format or contains invalid data, a `ValueError` is raised.