@abc.abstractmethod<EOL><INDENT>def set_genus_type(self, genus_type):<DEDENT>
pass<EOL>
Sets a genus.

        A genus cannot be cleared because all objects have at minimum a
        root genus.

        :param genus_type: the new genus
        :type genus_type: ``osid.type.Type``
        :raise: ``InvalidArgument`` -- ``genus_type`` is invalid
        :raise: ``NoAccess`` -- ``Metadata.isReadonly()`` is ``true``
        :raise: ``NullArgument`` -- ``genus_type`` is ``null``

        *compliance: mandatory -- This method must be implemented.*