Decodes an object.

        Args:
            object_ (object): Encoded object.

        Returns:
            object: Object decoded.

def decode(self, encoded):
        """ Decodes an object.

        Args:
            object_ (object): Encoded object.

        Returns:
            object: Object decoded.
        """
        if self.enforce_reversible:
            self.enforce_reversible = False
            if self.encode(self.decode(encoded)) != encoded:
                raise ValueError('Decoding is not reversible for "%s"' % encoded)
            self.enforce_reversible = True

        return encoded