def listChoices(self, category, libtype=None, **kwargs):
<EOL>if category in kwargs:<EOL><INDENT>raise BadRequest('<STR_LIT>' % category)<EOL><DEDENT>args = {}<EOL>for subcategory, value in kwargs.items():<EOL><INDENT>args[category] = self._cleanSearchFilter(subcategory, value)<EOL><DEDENT>if libtype is not None:<EOL><INDENT>args['<STR_LIT:type>'] = utils.searchType(libtype)<EOL><DEDENT>key = '<STR_LIT>' % (self.key, category, utils.joinArgs(args))<EOL>return self.fetchItems(key, cls=FilterChoice)<EOL>
Returns a list of :class:`~plexapi.library.FilterChoice` objects for the
            specified category and libtype. kwargs can be any of the same kwargs in
            :func:`plexapi.library.LibraySection.search()` to help narrow down the choices
            to only those that matter in your current context.

            Parameters:
                category (str): Category to list choices for (genre, contentRating, etc).
                libtype (int): Library type of item filter.
                **kwargs (dict): Additional kwargs to narrow down the choices.

            Raises:
                :class:`plexapi.exceptions.BadRequest`: Cannot include kwarg equal to specified category.