docs: def decompress(obj, return_type="bytes"):
      """
      De-compress it to it's original.
  
      :param obj: Compressed object, could be bytes or str.
      :param return_type: if bytes, then return bytes; if str, then use
          base64.b64decode; if obj, then use pickle.loads return an object.
      """
      if isinstance(obj, binary_type):
          b = zlib.decompress(obj)
      elif isinstance(obj, string_types):
          b = zlib.decompress(base64.b64decode(obj.encode("utf-8")))
      else:
          raise TypeError("input cannot be anything other than str and bytes!")
  
      if return_type == "bytes":
          return b
      elif return_type == "str":
          return b.decode("utf-8")
      elif return_type == "obj":
          return pickle.loads(b)
      else:
          raise ValueError(
              "'return_type' has to be one of 'bytes', 'str' or 'obj'!")