SolverFactoryClass

(class from pyomo.contrib.solver.common.factory)

class pyomo.contrib.solver.common.factory.SolverFactoryClass(description=None)[source]

Bases: Factory

Factory class for generating instances of solver interfaces (API v2)

__init__(description=None)

Methods

__init__([description])

doc(name)

get_class(name)

register(name[, legacy_name, doc])

Register a new solver with this solver factory

unregister(name)

Member Documentation

register(name, legacy_name=None, doc=None)[source]

Register a new solver with this solver factory

This will register the solver both with this SolverFactory and with the original (legacy) LegacySolverFactory

Examples

This method can either be called as a decorator on a solver interface class definition, e.g.:

from pyomo.contrib.solver.common.base import SolverBase

@SolverFactory.register("test_solver_1")
class TestSolver1(SolverBase):
    pass

Or explicitly:

class TestSolver2(SolverBase):
    pass

SolverFactory.register("test_solver_2")(TestSolver2)

When called explicitly, you can pass a custom class to register with the LegacySolverFactory:

from pyomo.contrib.solver.common.base import LegacySolverWrapper

class LegacyTestSolver2(LegacySolverWrapper, TestSolver2):
    pass

SolverFactory.register("test_solver_2a")(TestSolver2, LegacyTestSolver2)
Parameters:
  • name (str) – The name used to register this solver interface class

  • legacy_name (str) – The name to use to register the legacy interface wrapper to this solver interface in the LegacySolverInterface. If None, then name will be used.

  • doc (str) – Extended description of this solver interface.