Ticket #3863 (closed task: wontfix)

Opened 10 years ago

Last modified 5 years ago

Should we add namespaces to segregate commonly used plugin services?

Reported by: wehart Owned by: wehart
Priority: normal Milestone: Coopr 3.4
Component: pyomo.opt Version:
Keywords: Cc: jdsiiro jwatson

Description

I've included some output that dumps out the configuration of PyUtilib? plugins used in coopr.opt. Note that we have many plugins registered in the 'plugin' and 'coopr.opt' namespaces.

Does it make sense to add additional namespaces that more clearly segregate these plugins? For example, we could have

plugin.executables - Registrations of IExternalExecutable services
plugin.options - Registrations of IOption services
coopr.opt.converters - Registrations of IProblemConverter services
coopr.opt.solvers - Registrations of IOptSolver services

and so on. I don't think that this will change the mechanism in any substantive way. This is mostly a question of conceptual organization.


Registered Environments


<default>
coopr.opt
plugin


Environment Stack


Level=1 name=<default>
Level=2 name=plugin
Level=3 name=coopr.opt


Interfaces Declared


IConfiguration
IEnvironmentConfig
IExternalExecutable
IFileOption
IIgnorePluginWhenLoading
IOptSolver
IOption
IOptionDataProvider
IPluginLoadPath
IPluginLoader
IProblemConverter
IProblemWriter
IReaderRegistration
IResultsReader
ISolverRegistration
ITempfileManager
IUpdatedOptionsAction
IWriterRegistration


Interfaces Declared by Namespace


coopr.opt

IOptSolver
IProblemConverter
IProblemWriter
IReaderRegistration
IResultsReader
ISolverRegistration
IWriterRegistration

plugin

IConfiguration
IEnvironmentConfig
IExternalExecutable
IFileOption
IIgnorePluginWhenLoading
IOption
IOptionDataProvider
IPluginLoadPath
IPluginLoader
ITempfileManager
IUpdatedOptionsAction


Registered Plugins by Interface


IConfiguration

Configuration_ConfigParser

IEnvironmentConfig

EnvironmentConfig?

IExternalExecutable

ExternalExecutable?

IFileOption

FileOption?

IIgnorePluginWhenLoading

IgnorePluginPlugins?

IOptSolver

CBC
COLINSolver
CPLEX
GLPK
MockCBC
MockCPLEX
MockGLPK
MockPICO
OptSolver?
PICO
PatternSearch?
SystemCallSolver?

IOption

BoolOption?
DictOption?
FileOption?
FloatOption?
IntOption?
Option
OptionPlugin?

IOptionDataProvider

OptionData?

IPluginLoadPath

EnvironmentConfig?

IPluginLoader

EggLoader?
ImportLoader?

IProblemConverter

GlpsolMIPConverter
PicoMIPConverter
PyomoMIPConverter

IProblemWriter

AbstractProblemWriter?

IReaderRegistration

ReaderRegistration?

IResultsReader

AbstractResultsReader?
ResultsReader_osrl
ResultsReader_sol

ISolverRegistration

SolverRegistration?

ITempfileManager

TempfileManager?

IUpdatedOptionsAction

FileOption?
LoggingConfig?

IWriterRegistration

WriterRegistration?


Registered Plugins by Python Module


coopr.opt.base.problem

AbstractProblemWriter?
WriterRegistration?

coopr.opt.base.results

AbstractResultsReader?
ReaderRegistration?

coopr.opt.base.solver

OptSolver?
SolverRegistration?

coopr.opt.colin.ps

PatternSearch?

coopr.opt.colin.solver

COLINSolver

coopr.opt.converter.glpsol

GlpsolMIPConverter

coopr.opt.converter.pico

PicoMIPConverter

coopr.opt.mip.CBC

CBC
MockCBC

coopr.opt.mip.CPLEX

CPLEX
MockCPLEX

coopr.opt.mip.GLPK

GLPK
MockGLPK

coopr.opt.mip.PICO

MockPICO
PICO

coopr.opt.reader.OS

ResultsReader_osrl

coopr.opt.reader.sol

ResultsReader_sol

coopr.opt.solver.shellcmd

SystemCallSolver?

pyutilib.plugin

IgnorePluginPlugins?

pyutilib.plugin.config.configuration

Configuration

pyutilib.plugin.config.env_config

EnvironmentConfig?

pyutilib.plugin.config.logging_config

LoggingConfig?

pyutilib.plugin.config.options

BoolOption?
DictOption?
FileOption?
FloatOption?
IntOption?
Option
OptionData?
OptionPlugin?

pyutilib.plugin.config.plugin_ConfigParser

Configuration_ConfigParser

pyutilib.plugin.config.tempfiles

TempfileManager?

pyutilib.plugin.loader.plugin_eggLoader

EggLoader?

pyutilib.plugin.loader.plugin_importLoader

ImportLoader?

pyutilib.plugin.misc.executable

ExternalExecutable?


Services for Registered Environments


Services for Environment '<default>'

None

Services for Environment 'coopr.opt'

<Plugin GlpsolMIPConverter> (33*)
<Plugin PicoMIPConverter> (34*)
<Plugin PyomoMIPConverter> (35*)
<Plugin ReaderRegistration? 'osrl'> (36)
<Plugin ReaderRegistration? 'sol'> (37)
<Plugin SolverRegistration? '_mock_cbc'> (24)
<Plugin SolverRegistration? '_mock_cplex'> (32)
<Plugin SolverRegistration? '_mock_glpk'> (28)
<Plugin SolverRegistration? '_mock_pico'> (20)
<Plugin SolverRegistration? 'cbc'> (23)
<Plugin SolverRegistration? 'cplex'> (31)
<Plugin SolverRegistration? 'glpk'> (27)
<Plugin SolverRegistration? 'pico'> (19)

Services for Environment 'plugin'

<Option [executables] 'PICO'> (8)
<Option [executables] 'ampl'> (14)
<Option [executables] 'cbc'> (22)
<Option [executables] 'cplex'> (30)
<Option [executables] 'glpsol'> (12)
<Option [executables] 'pico'> (18)
<Option [executables] 'pico_convert'> (10)
<Option [executables] 'timer'> (16)
<Option [globals] 'tempdir'> (2)
<Plugin Configuration_ConfigParser> (4*)
<Plugin ExternalExecutable? 'PICO'> (7)
<Plugin ExternalExecutable? 'ampl'> (13)
<Plugin ExternalExecutable? 'cbc'> (21)
<Plugin ExternalExecutable? 'cplex'> (29)
<Plugin ExternalExecutable? 'glpsol'> (25)
<Plugin ExternalExecutable? 'pico'> (17)
<Plugin ExternalExecutable? 'pico_convert'> (9)
<Plugin ExternalExecutable? 'timer'> (15)
<Plugin IgnorePluginPlugins?> (6*)
<Plugin ImportLoader?> (5*)
<Plugin OptionData? 'Plugin.3'> (3)
<Plugin TempfileManager?> (1*)


Change History

comment:1 Changed 9 years ago by wehart

  • Milestone set to Coopr 2.x

I'm making this a Coopr 2.x issue since we should resolve this before doing detailed documentation of the Coopr plugin interfaces.

comment:2 Changed 8 years ago by wehart

  • Milestone changed from Coopr 2.x to Long Term

comment:3 Changed 5 years ago by wehart

  • Status changed from new to closed
  • Resolution set to wontfix

I'm closing this. We've let this go for 5 years, so this clearly isn't an issue for the developers.

comment:4 Changed 5 years ago by wehart

  • Milestone changed from Long Term to Coopr 3.4
Note: See TracTickets for help on using tickets.