def outDependencies(self, targetMetamodel=None, metamodelDependency=None): #type: (Optional[Metamodel]) -> List[ModelDependency] """ Returns the dependencies starting from this dependency filtered either by targetMetamodel, or by metamodelDependency. """ # select all out dependencies from self from modelscripts.megamodels import Megamodel all_deps=Megamodel.modelDependencies(source=self) if targetMetamodel is None: deps=all_deps else: deps=[ dep for dep in all_deps if ( dep.targetModel.metamodel == targetMetamodel) ] if metamodelDependency is None: return deps else: return [ dep for dep in deps # could raise ValueError, but should not if (dep.metamodelDependency == metamodelDependency) ]
def modelDependencies(self): # type: (MetamodelDependency) -> List(ModelDependency) """ Model dependencies based on this metamodel dependency. This could raise a ValueError. """ # could raise a ValueError from modelscripts.megamodels import Megamodel return Megamodel.modelDependencies( metamodelDependency=self)
def inDependencies(self, sourceMetamodel=None): #type: (Optional[Metamodel]) -> List[ModelDependency] """ Returns the dependencies towards from this dependency filtered either by targetMetamodel, or by metamodelDependency. """ from modelscripts.megamodels import Megamodel deps=Megamodel.modelDependencies(target=self) if sourceMetamodel is None: return deps return [ dep for dep in deps if (dep.sourceModel.metamodel == sourceMetamodel) ]