def get_ecosystem_solver(ecosystem_name, parser_kwargs=None, fetcher_kwargs=None):
    """Get Solver subclass instance for particular ecosystem.

    :param ecosystem_name: name of ecosystem for which solver should be get
    :param parser_kwargs: parser key-value arguments for constructor
    :param fetcher_kwargs: fetcher key-value arguments for constructor
    :return: Solver
    """
    from .python import PythonSolver

    if ecosystem_name.lower() == "pypi":
        source = Source(url="https://pypi.org/simple", warehouse_api_url="https://pypi.org/pypi", warehouse=True)
        return PythonSolver(parser_kwargs, fetcher_kwargs={"source": source})

    raise NotImplementedError("Unknown ecosystem: {}".format(ecosystem_name))