def test_get_available_types(self): tups = get_available_types() types = set([x[0] for x in tups]) expected = set(['openmdao.lib.components.external_code.ExternalCode', 'openmdao.lib.components.mux.DeMux', 'openmdao.lib.drivers.doedriver.DOEdriver', 'openmdao.lib.drivers.genetic.Genetic', 'openmdao.lib.drivers.caseiterdriver.CaseIteratorDriver', 'openmdao.lib.components.metamodel.MetaModel', 'openmdao.lib.components.expected_improvement_multiobj.MultiObjExpectedImprovement', 'openmdao.lib.drivers.conmindriver.CONMINdriver', 'openmdao.lib.drivers.simplecid.SimpleCaseIterDriver', 'openmdao.lib.components.pareto_filter.ParetoFilter', 'openmdao.lib.drivers.newsumtdriver.NEWSUMTdriver', 'openmdao.lib.components.mux.Mux', 'openmdao.lib.components.expected_improvement.ExpectedImprovement', 'openmdao.test.execcomp.ExecComp', 'openmdao.main.assembly.Assembly', 'openmdao.lib.drivers.iterate.FixedPointIterator',]) missing = expected - types if missing: self.fail("the following expected types were missing: %s" % missing) for typ,meta in tups: if not isinstance(meta, dict): self.fail("%s did not return a metadata dict from get_available_types" % typ) if 'version' not in meta: self.fail("the metadata for %s did not contain 'version'" % typ) if 'ifaces' not in meta: self.fail("the metadata for %s did not contain 'ifaces'" % typ)
def get_types(self): ''' Get a dictionary of types available for creation. ''' # Don't want to get variable types showing up, so we exclude # 'openmdao.variable' from this list. keyset = set(plugin_groups.keys()) exclset = set(['openmdao.variable']) groups = list(keyset - exclset) return packagedict(get_available_types(groups))
def get_types(self): ''' Get a dictionary of types available for creation. ''' #Don't want to get variable types showing up, so we exclude #'openmdao.variable' from this list. keyset = set(plugin_groups.keys()) exclset = set(['openmdao.variable']) groups = list(keyset - exclset) return packagedict(get_available_types(groups))
def test_PythonSourceTreeAnalyser(self): try: import openmdao.main import openmdao.lib except ImportError: # don't perform this test if openmdao.main # and openmdao.lib aren't present raise SkipTest("this test requires openmdao.main and openmdao.lib") def exclude_tests(pname): parts = pname.split(os.sep) return 'test' in parts startdirs = [os.path.dirname(openmdao.main.__file__), os.path.dirname(openmdao.lib.__file__)] psta = PythonSourceTreeAnalyser(startdirs, exclude_tests) self.assertTrue('openmdao.main.component.Component' in psta.graph['openmdao.main.container.Container']) self.assertTrue('openmdao.main.assembly.Assembly' in psta.graph['openmdao.main.component.Component']) self.assertTrue('openmdao.main.datatypes.float.Float' in psta.graph['openmdao.main.variable.Variable']) comps = psta.find_inheritors('openmdao.main.component.Component') icomps = psta.find_inheritors('IComponent') self.assertTrue('openmdao.main.assembly.Assembly' in icomps) comps.extend(psta.find_inheritors('openmdao.main.variable.Variable')) comps.extend(psta.find_inheritors('enthought.traits.api.Array')) comps = [x.rsplit('.',1)[1] for x in comps if '.examples.' not in x and '.optproblems.' not in x] cset = set(comps) excludes = set([ 'Driver', 'DriverUsesDerivatives', 'DistributionCaseDriver', 'CaseIterDriverBase', 'PassthroughTrait', 'PassthroughProperty', 'OptProblem', 'TraitArray', 'Broadcast', # utility class for bliss2000 'SubSystemOpt', # utility class for bliss2000 'SubSystemObj' # utility class for bliss2000 ]) cset = cset - excludes from openmdao.main.api import get_available_types types = set([x[0] for x in get_available_types()]) types = [x.rsplit('.',1)[1] for x in types if x.startswith('openmdao.')] tset = set(types) noentrypts = cset-tset if noentrypts: self.fail("the following Components are not registered using entry points: %s" % noentrypts)
def test_PythonSourceTreeAnalyser(self): skipdirs = set( ['test', 'docs', 'examples', 'optproblems', 'build', 'dist']) psta = PythonSourceTreeAnalyser(self.startdirs, direxclude=lambda d: d in skipdirs) self.assertTrue('openmdao.main.component.Component' in psta.graph['openmdao.main.container.Container']) self.assertTrue('openmdao.main.assembly.Assembly' in psta.graph['openmdao.main.component.Component']) self.assertTrue('openmdao.main.datatypes.float.Float' in psta.graph['openmdao.main.variable.Variable']) comps = psta.find_inheritors('openmdao.main.component.Component') icomps = psta.find_inheritors('IComponent') self.assertTrue('openmdao.main.assembly.Assembly' in icomps) comps.extend(psta.find_inheritors('openmdao.main.variable.Variable')) comps.extend(psta.find_inheritors('traits.api.Array')) comps = [x.rsplit('.', 1)[1] for x in comps] cset = set(comps) excludes = set([ 'Driver', 'DriverUsesDerivatives', 'DistributionCaseDriver', 'CaseIterDriverBase', 'PassthroughTrait', 'PassthroughProperty', 'OptProblem', 'TraitArray', 'Broadcast', # utility class for bliss2000 'SubSystemOpt', # utility class for bliss2000 'SubSystemObj' # utility class for bliss2000 ]) cset = cset - excludes from openmdao.main.api import get_available_types types = set([x[0] for x in get_available_types()]) types = [ x.rsplit('.', 1)[1] for x in types if x.startswith('openmdao.') ] tset = set(types) noentrypts = cset - tset if noentrypts: self.fail( "the following Components are not registered using entry points: %s" % noentrypts)
def test_PythonSourceTreeAnalyser(self): def exclude(pname): keywords = set(["test", "docs", "examples", "optproblems"]) parts = set(pname.split(os.sep)) return keywords.intersection(parts) psta = PythonSourceTreeAnalyser(self.startdirs, exclude) self.assertTrue("openmdao.main.component.Component" in psta.graph["openmdao.main.container.Container"]) self.assertTrue("openmdao.main.assembly.Assembly" in psta.graph["openmdao.main.component.Component"]) self.assertTrue("openmdao.main.datatypes.float.Float" in psta.graph["openmdao.main.variable.Variable"]) comps = psta.find_inheritors("openmdao.main.component.Component") icomps = psta.find_inheritors("IComponent") self.assertTrue("openmdao.main.assembly.Assembly" in icomps) comps.extend(psta.find_inheritors("openmdao.main.variable.Variable")) comps.extend(psta.find_inheritors("enthought.traits.api.Array")) comps = [x.rsplit(".", 1)[1] for x in comps] # comps = [x.rsplit('.',1)[1] for x in comps if '.examples.' not in x and '.optproblems.' not in x] cset = set(comps) excludes = set( [ "Driver", "DriverUsesDerivatives", "DistributionCaseDriver", "CaseIterDriverBase", "PassthroughTrait", "PassthroughProperty", "OptProblem", "TraitArray", "Broadcast", # utility class for bliss2000 "SubSystemOpt", # utility class for bliss2000 "SubSystemObj", # utility class for bliss2000 ] ) cset = cset - excludes from openmdao.main.api import get_available_types types = set([x[0] for x in get_available_types()]) types = [x.rsplit(".", 1)[1] for x in types if x.startswith("openmdao.")] tset = set(types) noentrypts = cset - tset if noentrypts: self.fail("the following Components are not registered using entry points: %s" % noentrypts)
def test_PythonSourceTreeAnalyser(self): skipdirs = set(['test', 'docs', 'examples', 'optproblems', 'build', 'dist']) psta = PythonSourceTreeAnalyser(self.startdirs, direxclude=lambda d: d in skipdirs) self.assertTrue('openmdao.main.component.Component' in psta.graph['openmdao.main.container.Container']) self.assertTrue('openmdao.main.assembly.Assembly' in psta.graph['openmdao.main.component.Component']) self.assertTrue('openmdao.main.datatypes.float.Float' in psta.graph['openmdao.main.variable.Variable']) comps = psta.find_inheritors('openmdao.main.component.Component') icomps = psta.find_inheritors('IComponent') self.assertTrue('openmdao.main.assembly.Assembly' in icomps) comps.extend(psta.find_inheritors('openmdao.main.variable.Variable')) comps.extend(psta.find_inheritors('traits.api.Array')) comps = [x.rsplit('.',1)[1] for x in comps] cset = set(comps) excludes = set([ 'Driver', 'DriverUsesDerivatives', 'DistributionCaseDriver', 'CaseIterDriverBase', 'PassthroughTrait', 'PassthroughProperty', 'OptProblem', 'TraitArray', 'Broadcast', # utility class for bliss2000 'SubSystemOpt', # utility class for bliss2000 'SubSystemObj' # utility class for bliss2000 ]) cset = cset - excludes from openmdao.main.api import get_available_types types = set([x[0] for x in get_available_types()]) types = [x.rsplit('.',1)[1] for x in types if x.startswith('openmdao.')] tset = set(types) noentrypts = cset-tset if noentrypts: self.fail("the following Components are not registered using entry points: %s" % noentrypts)
def test_get_available_types(self): tups = get_available_types() types = set([x[0] for x in tups]) iface_dict = dict((key, value['ifaces']) for (key, value) in tups) expected = set([ 'openmdao.lib.components.external_code.ExternalCode', 'openmdao.lib.components.mux.DeMux', 'openmdao.lib.drivers.doedriver.DOEdriver', 'openmdao.lib.drivers.genetic.Genetic', 'openmdao.lib.drivers.caseiterdriver.CaseIteratorDriver', 'openmdao.lib.components.metamodel.MetaModel', 'openmdao.lib.components.expected_improvement_multiobj.MultiObjExpectedImprovement', 'openmdao.lib.drivers.conmindriver.CONMINdriver', 'openmdao.lib.drivers.simplecid.SimpleCaseIterDriver', 'openmdao.lib.components.pareto_filter.ParetoFilter', 'openmdao.lib.drivers.newsumtdriver.NEWSUMTdriver', 'openmdao.lib.components.mux.Mux', 'openmdao.lib.components.expected_improvement.ExpectedImprovement', 'openmdao.test.execcomp.ExecComp', 'openmdao.main.assembly.Assembly', 'openmdao.lib.drivers.iterate.FixedPointIterator', 'openmdao.lib.optproblems.sellar.SellarProblem', 'openmdao.lib.optproblems.branin.BraninProblem', 'openmdao.lib.optproblems.polyscale.PolyScalableProblem' ]) missing = expected - types if missing: self.fail("the following expected types were missing: %s" % missing) for typ, meta in tups: if not isinstance(meta, dict): self.fail( "%s did not return a metadata dict from get_available_types" % typ) if 'version' not in meta: self.fail("the metadata for %s did not contain 'version'" % typ) if 'ifaces' not in meta: self.fail("the metadata for %s did not contain 'ifaces'" % typ) self.assertEqual( iface_dict['openmdao.lib.drivers.conmindriver.CONMINdriver'], [ 'IHasObjective', 'IComponent', 'IHasParameters', 'IHasIneqConstraints', 'IContainer', 'IDriver', 'IOptimizer' ])
def test_PythonSourceTreeAnalyser(self): try: import openmdao.main import openmdao.lib except ImportError: # don't perform this test if openmdao.main # and openmdao.lib aren't present raise SkipTest("this test requires openmdao.main and openmdao.lib") startdirs = [os.path.dirname(openmdao.main.__file__), os.path.dirname(openmdao.lib.__file__)] psta = PythonSourceTreeAnalyser(startdirs, os.path.join('*','test','*')) self.assertTrue('openmdao.main.component.Component' in psta.graph['openmdao.main.container.Container']) self.assertTrue('openmdao.main.assembly.Assembly' in psta.graph['openmdao.main.component.Component']) self.assertTrue('openmdao.lib.datatypes.float.Float' in psta.graph['openmdao.main.variable.Variable']) comps = psta.find_inheritors('openmdao.main.component.Component') comps.extend(psta.find_inheritors('openmdao.main.variable.Variable')) comps.extend(psta.find_inheritors('enthought.traits.api.Array')) comps = [x.rsplit('.',1)[1] for x in comps] comps.remove('Driver') comps.remove('DriverUsesDerivatives') comps.remove('CaseIterDriverBase') comps.remove('PassthroughTrait') comps.remove('PassthroughProperty') from openmdao.main.api import get_available_types groups = [ 'openmdao.component', 'openmdao.driver', 'openmdao.variable'] types = set([x[0] for x in get_available_types(groups)]) types = [x.rsplit('.',1)[1] for x in types if x.startswith('openmdao.')] cset = set(comps) tset = set(types) noentrypts = cset-tset if noentrypts: self.fail("the following Components are not registered using entry points: %s" % noentrypts)
def test_get_available_types(self): types = set([x[0] for x in get_available_types()]) expected = set(['openmdao.lib.components.external_code.ExternalCode', 'openmdao.lib.components.mux.DeMux', 'openmdao.lib.drivers.doedriver.DOEdriver', 'openmdao.lib.drivers.genetic.Genetic', 'openmdao.lib.drivers.caseiterdriver.CaseIteratorDriver', 'openmdao.lib.components.metamodel.MetaModel', 'openmdao.lib.components.expected_improvement_multiobj.MultiObjExpectedImprovement', 'openmdao.lib.drivers.conmindriver.CONMINdriver', 'openmdao.lib.drivers.simplecid.SimpleCaseIterDriver', 'openmdao.lib.components.pareto_filter.ParetoFilter', 'openmdao.lib.drivers.newsumtdriver.NEWSUMTdriver', 'openmdao.lib.components.mux.Mux', 'openmdao.lib.components.expected_improvement.ExpectedImprovement', 'openmdao.test.execcomp.ExecComp', 'openmdao.main.assembly.Assembly', 'openmdao.lib.drivers.iterate.FixedPointIterator',]) missing = expected - types if missing: self.fail("the following expected types were missing: %s" % missing)
def test_get_available_types(self): tups = get_available_types() types = set([x[0] for x in tups]) iface_dict = dict((key, value['ifaces']) for (key, value) in tups) expected = set(['openmdao.lib.components.external_code.ExternalCode', 'openmdao.lib.components.mux.DeMux', 'openmdao.lib.drivers.doedriver.DOEdriver', 'openmdao.lib.drivers.genetic.Genetic', 'openmdao.lib.drivers.caseiterdriver.CaseIteratorDriver', 'openmdao.lib.components.metamodel.MetaModel', 'openmdao.lib.components.expected_improvement_multiobj.MultiObjExpectedImprovement', 'openmdao.lib.drivers.conmindriver.CONMINdriver', 'openmdao.lib.drivers.simplecid.SimpleCaseIterDriver', 'openmdao.lib.components.pareto_filter.ParetoFilter', 'openmdao.lib.drivers.newsumtdriver.NEWSUMTdriver', 'openmdao.lib.components.mux.Mux', 'openmdao.lib.components.expected_improvement.ExpectedImprovement', 'openmdao.test.execcomp.ExecComp', 'openmdao.main.assembly.Assembly', 'openmdao.lib.drivers.iterate.FixedPointIterator', 'openmdao.lib.optproblems.sellar.SellarProblem', 'openmdao.lib.optproblems.branin.BraninProblem', 'openmdao.lib.optproblems.polyscale.PolyScalableProblem']) missing = expected - types if missing: self.fail("the following expected types were missing: %s" % missing) for typ,meta in tups: if not isinstance(meta, dict): self.fail("%s did not return a metadata dict from get_available_types" % typ) if 'version' not in meta: self.fail("the metadata for %s did not contain 'version'" % typ) if 'ifaces' not in meta: self.fail("the metadata for %s did not contain 'ifaces'" % typ) self.assertEqual(iface_dict['openmdao.lib.drivers.conmindriver.CONMINdriver'], ['IHasObjective', 'IComponent', 'IHasParameters', 'IHasIneqConstraints', 'IContainer', 'IDriver', 'IOptimizer'])
def test_get_available_types(self): tups = get_available_types() types = set([x[0] for x in tups]) expected = set([ 'openmdao.lib.components.external_code.ExternalCode', 'openmdao.lib.components.mux.DeMux', 'openmdao.lib.drivers.doedriver.DOEdriver', 'openmdao.lib.drivers.genetic.Genetic', 'openmdao.lib.drivers.caseiterdriver.CaseIteratorDriver', 'openmdao.lib.components.metamodel.MetaModel', 'openmdao.lib.components.expected_improvement_multiobj.MultiObjExpectedImprovement', 'openmdao.lib.drivers.conmindriver.CONMINdriver', 'openmdao.lib.drivers.simplecid.SimpleCaseIterDriver', 'openmdao.lib.components.pareto_filter.ParetoFilter', 'openmdao.lib.drivers.newsumtdriver.NEWSUMTdriver', 'openmdao.lib.components.mux.Mux', 'openmdao.lib.components.expected_improvement.ExpectedImprovement', 'openmdao.test.execcomp.ExecComp', 'openmdao.main.assembly.Assembly', 'openmdao.lib.drivers.iterate.FixedPointIterator', ]) missing = expected - types if missing: self.fail("the following expected types were missing: %s" % missing) for typ, meta in tups: if not isinstance(meta, dict): self.fail( "%s did not return a metadata dict from get_available_types" % typ) if 'version' not in meta: self.fail("the metadata for %s did not contain 'version'" % typ) if 'ifaces' not in meta: self.fail("the metadata for %s did not contain 'ifaces'" % typ)
def test_get_available_types(self): types = set([x[0] for x in get_available_types()]) expected = set([ 'openmdao.lib.components.external_code.ExternalCode', 'openmdao.lib.components.mux.DeMux', 'openmdao.lib.drivers.doedriver.DOEdriver', 'openmdao.lib.drivers.genetic.Genetic', 'openmdao.lib.drivers.caseiterdriver.CaseIteratorDriver', 'openmdao.lib.components.metamodel.MetaModel', 'openmdao.lib.components.expected_improvement_multiobj.MultiObjExpectedImprovement', 'openmdao.lib.drivers.conmindriver.CONMINdriver', 'openmdao.lib.drivers.simplecid.SimpleCaseIterDriver', 'openmdao.lib.components.pareto_filter.ParetoFilter', 'openmdao.lib.drivers.newsumtdriver.NEWSUMTdriver', 'openmdao.lib.components.mux.Mux', 'openmdao.lib.components.expected_improvement.ExpectedImprovement', 'openmdao.test.execcomp.ExecComp', 'openmdao.main.assembly.Assembly', 'openmdao.lib.drivers.iterate.FixedPointIterator', ]) missing = expected - types if missing: self.fail("the following expected types were missing: %s" % missing)
def test_PythonSourceTreeAnalyser(self): try: import openmdao.main import openmdao.lib except ImportError: # don't perform this test if openmdao.main # and openmdao.lib aren't present raise SkipTest("this test requires openmdao.main and openmdao.lib") def exclude_tests(pname): parts = pname.split(os.sep) return 'test' in parts startdirs = [ os.path.dirname(openmdao.main.__file__), os.path.dirname(openmdao.lib.__file__) ] psta = PythonSourceTreeAnalyser(startdirs, exclude_tests) self.assertTrue('openmdao.main.component.Component' in psta.graph['openmdao.main.container.Container']) self.assertTrue('openmdao.main.assembly.Assembly' in psta.graph['openmdao.main.component.Component']) self.assertTrue('openmdao.main.datatypes.float.Float' in psta.graph['openmdao.main.variable.Variable']) comps = psta.find_inheritors('openmdao.main.component.Component') icomps = psta.find_inheritors('IComponent') self.assertTrue('openmdao.main.assembly.Assembly' in icomps) comps.extend(psta.find_inheritors('openmdao.main.variable.Variable')) comps.extend(psta.find_inheritors('enthought.traits.api.Array')) comps = [ x.rsplit('.', 1)[1] for x in comps if '.examples.' not in x and '.optproblems.' not in x ] cset = set(comps) excludes = set([ 'Driver', 'DriverUsesDerivatives', 'DistributionCaseDriver', 'CaseIterDriverBase', 'PassthroughTrait', 'PassthroughProperty', 'OptProblem', 'TraitArray', ]) cset = cset - excludes from openmdao.main.api import get_available_types types = set([x[0] for x in get_available_types()]) types = [ x.rsplit('.', 1)[1] for x in types if x.startswith('openmdao.') ] tset = set(types) noentrypts = cset - tset if noentrypts: self.fail( "the following Components are not registered using entry points: %s" % noentrypts)
def get_types(self): return packagedict(get_available_types())