def _get_parsers(self, name):
        """Return the appropriate parser asked by the user.

        Todo:
            Change `Ontology._get_parsers` behaviour to look for parsers
            through a setuptools entrypoint instead of mere subclasses.
        """

        parserlist = BaseParser.__subclasses__()
        forced = name is None

        if isinstance(name, (six.text_type, six.binary_type)):
            parserlist = [p for p in parserlist if p.__name__ == name]
            if not parserlist:
                raise ValueError("could not find parser: {}".format(name))

        elif name is not None:
            raise TypeError("parser must be {types} or None, not {actual}".format(
                types=" or ".join([six.text_type.__name__, six.binary_type.__name__]),
                actual=type(parser).__name__,
            ))

        return not forced, parserlist
Return the appropriate parser asked by the user.

        Todo:
            Change `Ontology._get_parsers` behaviour to look for parsers
            through a setuptools entrypoint instead of mere subclasses.