def send_put(self, mri, attribute_name, value):
        """Abstract method to dispatch a Put to the server

        Args:
            mri (str): The mri of the Block
            attribute_name (str): The name of the Attribute within the Block
            value: The value to put
        """
        path = attribute_name + ".value"
        typ, value = convert_to_type_tuple_value(serialize_object(value))
        if isinstance(typ, tuple):
            # Structure, make into a Value
            _, typeid, fields = typ
            value = Value(Type(fields, typeid), value)
        try:
            self._ctxt.put(mri, {path: value}, path)
        except RemoteError:
            if attribute_name == "exports":
                # TODO: use a tag instead of a name
                # This will change the structure of the block
                # Wait for reconnect
                self._queues[mri].get(timeout=DEFAULT_TIMEOUT)
            else:
                # Not expected, raise
                raise
def send_put ( self , mri , attribute_name , value ) : path = attribute_name + ".value" typ , value = convert_to_type_tuple_value ( serialize_object ( value ) ) if isinstance ( typ , tuple ) : _ , typeid , fields = typ value = Value ( Type ( fields , typeid ) , value ) try : self . _ctxt . put ( mri , { path : value } , path ) except RemoteError : if attribute_name == "exports" : self . _queues [ mri ] . get ( timeout = DEFAULT_TIMEOUT ) else : raise
Abstract method to dispatch a Put to the server

        Args:
            mri (str): The mri of the Block
            attribute_name (str): The name of the Attribute within the Block
            value: The value to put