def solve(specs, dump=(), models=0, timers=False, stats=False, tests=False):
    'Solve for a stable model of specs.\n\n    Arguments:\n        specs (list): list of Specs to solve.\n        dump (tuple): what to dump\n        models (int): number of models to search (default: 0)\n    '
    driver = PyclingoDriver()
    if ('asp' in dump):
        driver.out = sys.stdout
    for root in specs:
        for s in root.traverse():
            if s.virtual:
                continue
            spack.spec.Spec.ensure_valid_variants(s)
    setup = SpackSolverSetup()
    return driver.solve(setup, specs, dump, models, timers, stats, tests)
Solve for a stable model of specs.

Arguments:
    specs (list): list of Specs to solve.
    dump (tuple): what to dump
    models (int): number of models to search (default: 0)
def solve(specs, dump=(), models=0, timers=False, stats=False, tests=False):
    'Solve for a stable model of specs.\n\n    Arguments:\n        specs (list): list of Specs to solve.\n        dump (tuple): what to dump\n        models (int): number of models to search (default: 0)\n    '
    driver = PyclingoDriver()
    if ('asp' in dump):
        driver.out = sys.stdout
    for root in specs:
        for s in root.traverse():
            if s.virtual:
                continue
            spack.spec.Spec.ensure_valid_variants(s)
    setup = SpackSolverSetup()
    return driver.solve(setup, specs, dump, models, timers, stats, tests)