@utilities.arguments_not_none<EOL><INDENT>def get_books_by_genus_type(self, book_genus_type):<DEDENT>
<EOL>if self._catalog_session is not None:<EOL><INDENT>return self._catalog_session.get_catalogs_by_genus_type(catalog_genus_type=book_genus_type)<EOL><DEDENT>collection = JSONClientValidated('<STR_LIT>',<EOL>collection='<STR_LIT>',<EOL>runtime=self._runtime)<EOL>result = collection.find({"<STR_LIT>": str(book_genus_type)}).sort('<STR_LIT>', DESCENDING)<EOL>return objects.BookList(result, runtime=self._runtime, proxy=self._proxy)<EOL>
Gets a ``BookList`` corresponding to the given book genus ``Type`` which does not include books of genus types derived from the specified ``Type``.

        In plenary mode, the returned list contains all known books or
        an error results. Otherwise, the returned list may contain only
        those books that are accessible through this session.

        arg:    book_genus_type (osid.type.Type): a book genus type
        return: (osid.commenting.BookList) - the returned ``Book`` list
        raise:  NullArgument - ``book_genus_type`` is ``null``
        raise:  OperationFailed - unable to complete request
        raise:  PermissionDenied - authorization failure
        *compliance: mandatory -- This method must be implemented.*