ccpnmodel.ccpncore.memops.metamodel package¶
Submodules¶
ccpnmodel.ccpncore.memops.metamodel.Constants module¶
Module Documentation here
ccpnmodel.ccpncore.memops.metamodel.MetaModel module¶
Module Documentation here
- class ccpnmodel.ccpncore.memops.metamodel.MetaModel.AbstractDataType(**params)[source]¶
Bases:
ccpnmodel.ccpncore.memops.metamodel.MetaModel.ConstrainedElement
,ccpnmodel.ccpncore.memops.metamodel.MetaModel.HasSupertype
abstract class for abstract data types (classes, simple and complex dataypes)
- allowedTags = {}¶
- getConstraint(name)[source]¶
Get constraint called name Return None if nothing found
Recursively search supertypes till you find constraint
- parameterData = {'constraints': {'type': 'content'}, 'container': {'type': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaModelElement'>}, 'documentation': {'default': '', 'type': <class 'str'>}, 'guid': {'type': <class 'str'>}, 'isAbstract': {'default': False, 'type': 'Boolean'}, 'isImplicit': {'default': False, 'type': 'Boolean'}, 'isLeaf': {'default': False, 'isFixed': True, 'type': 'Boolean'}, 'isRoot': {'default': False, 'isFixed': True, 'type': 'Boolean'}, 'name': {'type': 'Token'}, 'subtypes': {'hicard': -1, 'setterFunc': 'unsettable'}, 'supertype': {'default': None, 'getterFunc': 'getSupertype', 'setterFunc': 'unsettable'}, 'supertypes': {'hicard': -1, 'setterFunc': 'setSupertypes'}, 'taggedValues': {'default': {}, 'type': 'StringDict'}, 'usename': {'default': None, 'getterFunc': 'getUsename', 'type': 'Token'}, 'visibility': {'default': 'public_vis', 'enumeration': ('public_vis', 'protected_vis', 'private_vis'), 'isFixed': True, 'type': 'Token'}}¶
- class ccpnmodel.ccpncore.memops.metamodel.MetaModel.AbstractValue(**params)[source]¶
Bases:
ccpnmodel.ccpncore.memops.metamodel.MetaModel.ConstrainedElement
abstract class for abstract values (parameters, attributes, and roles)
- allowedTags = {'originalGuid': None}¶
- parameterData = {'constraints': {'type': 'content'}, 'container': {'type': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaModelElement'>}, 'documentation': {'default': '', 'type': <class 'str'>}, 'guid': {'type': <class 'str'>}, 'hicard': {'default': 1, 'type': <class 'int'>}, 'isImplicit': {'default': False, 'type': 'Boolean'}, 'isOrdered': {'default': False, 'type': 'Boolean'}, 'isUnique': {'default': True, 'type': 'Boolean'}, 'locard': {'default': 0, 'type': <class 'int'>}, 'name': {'type': 'Token'}, 'taggedValues': {'default': {}, 'type': 'StringDict'}, 'usename': {'default': None, 'getterFunc': 'getUsename', 'type': 'Token'}}¶
- class ccpnmodel.ccpncore.memops.metamodel.MetaModel.ClassElement(**params)[source]¶
Bases:
ccpnmodel.ccpncore.memops.metamodel.MetaModel.AbstractValue
abstract class class elements (attributes and roles)
- allowedTags = {'originalGuid': None}¶
- parameterData = {'baseName': {'type': 'Token'}, 'changeability': {'default': 'changeable', 'enumeration': ('changeable', 'frozen', 'add_only'), 'type': 'Token'}, 'constraints': {'type': 'content'}, 'container': {'type': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaModelElement'>}, 'documentation': {'default': '', 'type': <class 'str'>}, 'guid': {'type': <class 'str'>}, 'hicard': {'default': 1, 'type': <class 'int'>}, 'isAbstract': {'default': False, 'type': 'Boolean'}, 'isAutomatic': {'default': False, 'type': 'Boolean'}, 'isDerived': {'default': False, 'type': 'Boolean'}, 'isImplementation': {'default': False, 'type': 'Boolean'}, 'isImplicit': {'default': False, 'type': 'Boolean'}, 'isOrdered': {'default': False, 'type': 'Boolean'}, 'isUnique': {'default': True, 'type': 'Boolean'}, 'locard': {'default': 0, 'type': <class 'int'>}, 'name': {'type': 'Token'}, 'taggedValues': {'default': {}, 'type': 'StringDict'}, 'usename': {'default': None, 'getterFunc': 'getUsename', 'type': 'Token'}, 'visibility': {'default': 'public_vis', 'enumeration': ('public_vis', 'protected_vis', 'private_vis'), 'isFixed': True, 'type': 'Token'}}¶
- class ccpnmodel.ccpncore.memops.metamodel.MetaModel.ComplexDataType(**params)[source]¶
Bases:
ccpnmodel.ccpncore.memops.metamodel.MetaModel.AbstractDataType
Abstract superclass of MetaClass and MetaDataObjType
- allowedTags = {'specificImplementation': ('db', 'file')}¶
- getAttribute(name)¶
Get contained element called name Return None if nothing found
Recursively search supertypes till you find element
- getElement(name)[source]¶
Get contained element called name Return None if nothing found
Recursively search supertypes till you find element
- getOperation(name)¶
Get contained element called name Return None if nothing found
Recursively search supertypes till you find element
- parameterData = {'attributes': {'namelist': '_ComplexDataType__attributeNames', 'type': 'content'}, 'constraints': {'type': 'content'}, 'constructorCodeStubs': {'default': {}, 'type': 'StringDict'}, 'container': {'type': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaModelElement'>}, 'documentation': {'default': '', 'type': <class 'str'>}, 'guid': {'type': <class 'str'>}, 'isAbstract': {'default': False, 'type': 'Boolean'}, 'isImplicit': {'default': False, 'type': 'Boolean'}, 'isLeaf': {'default': False, 'isFixed': True, 'type': 'Boolean'}, 'isRoot': {'default': False, 'isFixed': True, 'type': 'Boolean'}, 'name': {'type': 'Token'}, 'operations': {'namelist': '_ComplexDataType__operationNames', 'type': 'content'}, 'subtypes': {'hicard': -1, 'setterFunc': 'unsettable'}, 'supertype': {'default': None, 'getterFunc': 'getSupertype', 'setterFunc': 'unsettable'}, 'supertypes': {'hicard': -1, 'setterFunc': 'setSupertypes'}, 'taggedValues': {'default': {}, 'type': 'StringDict'}, 'usename': {'default': None, 'getterFunc': 'getUsename', 'type': 'Token'}, 'visibility': {'default': 'public_vis', 'enumeration': ('public_vis', 'protected_vis', 'private_vis'), 'isFixed': True, 'type': 'Token'}}¶
- class ccpnmodel.ccpncore.memops.metamodel.MetaModel.ConstrainedElement(**params)[source]¶
Bases:
ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaModelElement
abstract class for elements
- allowedTags = {}¶
- parameterData = {'constraints': {'type': 'content'}, 'container': {'type': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaModelElement'>}, 'documentation': {'default': '', 'type': <class 'str'>}, 'guid': {'type': <class 'str'>}, 'isImplicit': {'default': False, 'type': 'Boolean'}, 'name': {'type': 'Token'}, 'taggedValues': {'default': {}, 'type': 'StringDict'}, 'usename': {'default': None, 'getterFunc': 'getUsename', 'type': 'Token'}}¶
- class ccpnmodel.ccpncore.memops.metamodel.MetaModel.HasParameters(**params)[source]¶
Bases:
ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaModelElement
abstract class for elements that have parameters , i.e. MetaOperations and MetaExceptions
- allowedTags = {}¶
- parameterData = {'container': {'type': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaModelElement'>}, 'documentation': {'default': '', 'type': <class 'str'>}, 'guid': {'type': <class 'str'>}, 'isImplicit': {'default': False, 'type': 'Boolean'}, 'name': {'type': 'Token'}, 'parameters': {'namelist': '_HasParameters__parameterNames', 'type': 'content'}, 'taggedValues': {'default': {}, 'type': 'StringDict'}, 'usename': {'default': None, 'getterFunc': 'getUsename', 'type': 'Token'}, 'visibility': {'default': 'public_vis', 'enumeration': ('public_vis', 'protected_vis', 'private_vis'), 'isFixed': False, 'type': 'Token'}}¶
- class ccpnmodel.ccpncore.memops.metamodel.MetaModel.HasSupertype(**params)[source]¶
Bases:
object
Abstract class to provide supertype/subtype functionality
- getAllElements(clazz=None)[source]¶
utility function - to get all elements, possibly only of a given type
NB should be private in languages that support the concept.
- getAllSubtypes()[source]¶
recursively get list of self and all its subtypes self is the first element of the list
- class ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaAttribute(**params)[source]¶
Bases:
ccpnmodel.ccpncore.memops.metamodel.MetaModel.ClassElement
class for roles (link ends)
- allowedTags = {'forceUndoNotify': ('False',), 'originalGuid': None}¶
- parameterData = {'baseName': {'type': 'Token'}, 'changeability': {'default': 'changeable', 'enumeration': ('changeable', 'frozen', 'add_only'), 'type': 'Token'}, 'constraints': {'type': 'content'}, 'container': {'isLink': True, 'type': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.ComplexDataType'>}, 'defaultValue': {'default': [], 'hicard': -1}, 'documentation': {'default': '', 'type': <class 'str'>}, 'forceUndoNotify': {'default': True, 'type': 'Boolean'}, 'guid': {'type': <class 'str'>}, 'hicard': {'default': 1, 'type': <class 'int'>}, 'isAbstract': {'default': False, 'type': 'Boolean'}, 'isAutomatic': {'default': False, 'type': 'Boolean'}, 'isDerived': {'default': False, 'type': 'Boolean'}, 'isImplementation': {'default': False, 'type': 'Boolean'}, 'isImplicit': {'default': False, 'type': 'Boolean'}, 'isOrdered': {'default': False, 'type': 'Boolean'}, 'isUnique': {'default': True, 'type': 'Boolean'}, 'locard': {'default': 0, 'type': <class 'int'>}, 'name': {'type': 'Token'}, 'scope': {'default': 'instance_level', 'enumeration': ('instance_level', 'classifier_level'), 'type': 'Token'}, 'taggedValues': {'default': {}, 'type': 'StringDict'}, 'usename': {'default': None, 'getterFunc': 'getUsename', 'type': 'Token'}, 'valueType': {'isLink': True, 'type': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.AbstractDataType'>}, 'visibility': {'default': 'public_vis', 'enumeration': ('public_vis', 'protected_vis', 'private_vis'), 'isFixed': True, 'type': 'Token'}}¶
- class ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaClass(**params)[source]¶
Bases:
ccpnmodel.ccpncore.memops.metamodel.MetaModel.ComplexDataType
class for normal Classes
- allowedTags = {'specificImplementation': ('db', 'file')}¶
- delete()[source]¶
remove links to other MetaElements, check that delete is legal. Intended for elements specific to some implementation NB delete does not cascade.
- getAllMultipleClassElements()[source]¶
get all roles and attributes with hicard != 1, included inherited ones
- getAllSingleClassElements()[source]¶
get roles and attributes with hicard == 1, included inherited ones
- getRole(name)¶
Get contained element called name Return None if nothing found
Recursively search supertypes till you find element
- parameterData = {'attributes': {'namelist': '_ComplexDataType__attributeNames', 'type': 'content'}, 'constraints': {'type': 'content'}, 'constructorCodeStubs': {'default': {}, 'type': 'StringDict'}, 'container': {'isLink': True, 'type': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaPackage'>}, 'destructorCodeStubs': {'default': {}, 'type': 'StringDict'}, 'documentation': {'default': '', 'type': <class 'str'>}, 'guid': {'type': <class 'str'>}, 'isAbstract': {'default': False, 'type': 'Boolean'}, 'isDerived': {'default': False, 'type': 'Boolean'}, 'isImplicit': {'default': False, 'type': 'Boolean'}, 'isLeaf': {'default': False, 'isFixed': True, 'type': 'Boolean'}, 'isRoot': {'default': False, 'isFixed': True, 'type': 'Boolean'}, 'isSingleton': {'default': False, 'isFixed': True, 'type': 'Boolean'}, 'keyNames': {'default': [], 'getterFunc': 'getKeyNames', 'hicard': -1, 'type': <class 'str'>}, 'name': {'type': 'Token'}, 'operations': {'namelist': '_ComplexDataType__operationNames', 'type': 'content'}, 'parentRole': {'default': None, 'getterFunc': 'getParentRole', 'isLink': True, 'setterFunc': 'unsettable', 'type': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaRole'>}, 'partitionsChildren': {'default': False, 'type': 'Boolean'}, 'postConstructorCodeStubs': {'default': {}, 'type': 'StringDict'}, 'postDestructorCodeStubs': {'default': {}, 'type': 'StringDict'}, 'roles': {'namelist': '_MetaClass__roleNames', 'type': 'content'}, 'subtypes': {'hicard': -1, 'isLink': True, 'setterFunc': 'unsettable', 'type': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaClass'>}, 'supertype': {'default': None, 'getterFunc': 'getSupertype', 'isLink': True, 'setterFunc': 'unsettable', 'type': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaClass'>}, 'supertypes': {'hicard': -1, 'isLink': True, 'setterFunc': 'setSupertypes', 'type': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaClass'>}, 'taggedValues': {'default': {}, 'type': 'StringDict'}, 'usename': {'default': None, 'getterFunc': 'getUsename', 'type': 'Token'}, 'visibility': {'default': 'public_vis', 'enumeration': ('public_vis', 'protected_vis', 'private_vis'), 'isFixed': True, 'type': 'Token'}}¶
- class ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaConstant(**params)[source]¶
Bases:
ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaModelElement
class for static constants
- allowedTags = {}¶
- parameterData = {'container': {'isLink': True, 'type': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaPackage'>}, 'documentation': {'default': '', 'type': <class 'str'>}, 'guid': {'type': <class 'str'>}, 'isImplicit': {'default': False, 'type': 'Boolean'}, 'name': {'type': 'Token'}, 'taggedValues': {'default': {}, 'type': 'StringDict'}, 'usename': {'default': None, 'getterFunc': 'getUsename', 'type': 'Token'}, 'value': {}, 'valueType': {'isLink': True, 'type': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaDataType'>}}¶
- class ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaConstraint(**params)[source]¶
Bases:
ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaModelElement
abstract class for elements
- allowedTags = {}¶
- parameterData = {'codeStubs': {'default': {}, 'type': 'StringDict'}, 'container': {'isLink': True, 'type': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.ConstrainedElement'>}, 'documentation': {'default': '', 'type': <class 'str'>}, 'guid': {'type': <class 'str'>}, 'isImplicit': {'default': False, 'type': 'Boolean'}, 'name': {'type': 'Token'}, 'taggedValues': {'default': {}, 'type': 'StringDict'}, 'usename': {'default': None, 'getterFunc': 'getUsename', 'type': 'Token'}}¶
- class ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaDataObjType(**params)[source]¶
Bases:
ccpnmodel.ccpncore.memops.metamodel.MetaModel.ComplexDataType
class for complex data objects
- allowedTags = {'specificImplementation': ('db', 'file')}¶
- parameterData = {'attributes': {'namelist': '_ComplexDataType__attributeNames', 'type': 'content'}, 'constraints': {'type': 'content'}, 'constructorCodeStubs': {'default': {}, 'type': 'StringDict'}, 'container': {'isLink': True, 'type': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaPackage'>}, 'documentation': {'default': '', 'type': <class 'str'>}, 'guid': {'type': <class 'str'>}, 'isAbstract': {'default': False, 'type': 'Boolean'}, 'isChangeable': {'getterFunc': 'getIsChangeable', 'type': <class 'int'>}, 'isImplicit': {'default': False, 'type': 'Boolean'}, 'isLeaf': {'default': False, 'isFixed': True, 'type': 'Boolean'}, 'isRoot': {'default': False, 'isFixed': True, 'type': 'Boolean'}, 'name': {'type': 'Token'}, 'operations': {'namelist': '_ComplexDataType__operationNames', 'type': 'content'}, 'subtypes': {'hicard': -1, 'isLink': True, 'setterFunc': 'unsettable', 'type': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaDataObjType'>}, 'supertype': {'default': None, 'getterFunc': 'getSupertype', 'isLink': True, 'setterFunc': 'unsettable', 'type': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaDataObjType'>}, 'supertypes': {'hicard': -1, 'isLink': True, 'setterFunc': 'setSupertypes', 'type': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaDataObjType'>}, 'taggedValues': {'default': {}, 'type': 'StringDict'}, 'usename': {'default': None, 'getterFunc': 'getUsename', 'type': 'Token'}, 'visibility': {'default': 'public_vis', 'enumeration': ('public_vis', 'protected_vis', 'private_vis'), 'isFixed': True, 'type': 'Token'}}¶
- class ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaDataType(**params)[source]¶
Bases:
ccpnmodel.ccpncore.memops.metamodel.MetaModel.AbstractDataType
class for data types
- allowedTags = {}¶
- isValid(value)[source]¶
This function is needed because value constants must be checked for validity as part of the MetaModel. NB for enumerations values must be added to the enumeration before the check works.
- parameterData = {'constraints': {'type': 'content'}, 'container': {'isLink': True, 'type': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaPackage'>}, 'documentation': {'default': '', 'type': <class 'str'>}, 'enumeration': {'default': [], 'hicard': -1}, 'guid': {'type': <class 'str'>}, 'isAbstract': {'default': False, 'type': 'Boolean'}, 'isImplicit': {'default': False, 'type': 'Boolean'}, 'isLeaf': {'default': False, 'isFixed': True, 'type': 'Boolean'}, 'isOpen': {'default': True, 'type': 'Boolean'}, 'isRoot': {'default': False, 'isFixed': True, 'type': 'Boolean'}, 'length': {'default': None, 'type': <class 'int'>}, 'name': {'type': 'Token'}, 'subtypes': {'hicard': -1, 'isLink': True, 'setterFunc': 'unsettable', 'type': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaDataType'>}, 'supertype': {'default': None, 'getterFunc': 'getSupertype', 'isLink': True, 'setterFunc': 'unsettable', 'type': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaDataType'>}, 'supertypes': {'hicard': -1, 'isLink': True, 'setterFunc': 'setSupertypes', 'type': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaDataType'>}, 'taggedValues': {'default': {}, 'type': 'StringDict'}, 'typeCodes': {'default': {}, 'type': 'StringDict'}, 'usename': {'default': None, 'getterFunc': 'getUsename', 'type': 'Token'}, 'visibility': {'default': 'public_vis', 'enumeration': ('public_vis', 'protected_vis', 'private_vis'), 'isFixed': True, 'type': 'Token'}}¶
- class ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaException(**params)[source]¶
Bases:
ccpnmodel.ccpncore.memops.metamodel.MetaModel.HasParameters
,ccpnmodel.ccpncore.memops.metamodel.MetaModel.HasSupertype
class for exceptions
- allowedTags = {}¶
- getElement(name)¶
Get contained element called name Return None if nothing found
Recursively search supertypes till you find element
- getParameter(name)¶
Get contained element called name Return None if nothing found
Recursively search supertypes till you find element
- parameterData = {'container': {'isLink': True, 'type': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaPackage'>}, 'documentation': {'default': '', 'type': <class 'str'>}, 'guid': {'type': <class 'str'>}, 'isImplicit': {'default': False, 'type': 'Boolean'}, 'name': {'type': 'Token'}, 'parameters': {'namelist': '_HasParameters__parameterNames', 'type': 'content'}, 'scope': {'default': 'instance_level', 'enumeration': ('instance_level', 'classifier_level'), 'isFixed': True, 'type': 'Token'}, 'subtypes': {'hicard': -1, 'isLink': True, 'setterFunc': 'unsettable', 'type': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaException'>}, 'supertype': {'default': None, 'isLink': True, 'setterFunc': 'setSupertype', 'type': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaException'>}, 'supertypes': {'hicard': -1, 'isLink': True, 'type': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaException'>}, 'taggedValues': {'default': {}, 'type': 'StringDict'}, 'usename': {'default': None, 'getterFunc': 'getUsename', 'type': 'Token'}, 'visibility': {'default': 'public_vis', 'enumeration': ('public_vis', 'protected_vis', 'private_vis'), 'isFixed': False, 'type': 'Token'}}¶
- class ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaModelElement(**params)[source]¶
Bases:
object
Base class for all MetaModel elements
- allowedTags = {}¶
- checkValid(complete=False)[source]¶
Check that object is valid. Recursively checks contents Includes general attribute checks
- guidDict = None¶
- parameterData = {'container': {'type': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaModelElement'>}, 'documentation': {'default': '', 'type': <class 'str'>}, 'guid': {'type': <class 'str'>}, 'isImplicit': {'default': False, 'type': 'Boolean'}, 'name': {'type': 'Token'}, 'taggedValues': {'default': {}, 'type': 'StringDict'}, 'usename': {'default': None, 'getterFunc': 'getUsename', 'type': 'Token'}}¶
- class ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaOperation(**params)[source]¶
Bases:
ccpnmodel.ccpncore.memops.metamodel.MetaModel.HasParameters
class for operations
- allowedTags = {'originalGuid': None}¶
- getParameter(name)¶
Get contained element called name Return None if nothing found
- parameterData = {'codeStubs': {'default': {}, 'type': 'StringDict'}, 'container': {'isLink': True, 'type': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.ComplexDataType'>}, 'documentation': {'default': '', 'type': <class 'str'>}, 'exceptions': {'default': [], 'hicard': -1, 'isLink': True, 'type': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaException'>}, 'guid': {'type': <class 'str'>}, 'isAbstract': {'default': False, 'type': 'Boolean'}, 'isImplicit': {'default': False, 'type': 'Boolean'}, 'isQuery': {'type': 'Boolean'}, 'name': {'type': 'Token'}, 'opSubType': {'default': None, 'type': 'Token'}, 'opType': {'enumeration': ('get', 'findFirst', 'findAll', 'sorted', 'set', 'add', 'remove', 'new', 'init', 'clone', 'fullDelete', 'fullUnDelete', 'checkDelete', 'singleDelete', 'singleUnDelete', 'checkValid', 'checkAllValid', 'getAttr', 'setAttr', 'getByKey', 'getFullKey', 'getLocalKey', 'otherQuery', 'otherModify', 'otherCreate', 'otherDelete', 'other'), 'type': 'Token'}, 'parameters': {'namelist': '_HasParameters__parameterNames', 'type': 'content'}, 'scope': {'default': 'instance_level', 'enumeration': ('instance_level', 'classifier_level'), 'type': 'Token'}, 'taggedValues': {'default': {}, 'type': 'StringDict'}, 'target': {'isLink': True, 'type': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaModelElement'>}, 'usename': {'default': None, 'getterFunc': 'getUsename', 'type': 'Token'}, 'visibility': {'default': 'public_vis', 'enumeration': ('public_vis', 'protected_vis', 'private_vis'), 'isFixed': False, 'type': 'Token'}}¶
- class ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaPackage(**params)[source]¶
Bases:
ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaModelElement
abstract class for elements
- allowedTags = {'docDiagramNames': None, 'isDraft': ('True',), 'isReferenceData': ('True',), 'packageGroup': ('nmr', 'pp', 'core')}¶
- getClass(name)¶
Get contained element called name Return None if nothing found
- getConstant(name)¶
Get contained element called name Return None if nothing found
- getContainedPackage(name)¶
Get contained element called name Return None if nothing found
- getDataObjType(name)¶
Get contained element called name Return None if nothing found
- getDataType(name)¶
Get contained element called name Return None if nothing found
- getException(name)¶
Get contained element called name Return None if nothing found
- parameterData = {'accessedPackages': {'hicard': -1, 'isLink': True, 'setterFunc': 'unsettable', 'type': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaPackage'>}, 'classes': {'namelist': '_MetaPackage__classNames', 'type': 'content'}, 'constants': {'namelist': '_MetaPackage__constantNames', 'type': 'content'}, 'containedPackages': {'namelist': '_MetaPackage__containedPackageNames', 'type': 'content'}, 'container': {'default': None, 'isLink': True, 'type': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaPackage'>}, 'dataObjTypes': {'namelist': '_MetaPackage__dataObjTypeNames', 'type': 'content'}, 'dataTypes': {'namelist': '_MetaPackage__dataTypeNames', 'type': 'content'}, 'documentation': {'default': '', 'type': <class 'str'>}, 'exceptions': {'namelist': '_MetaPackage__exceptionNames', 'type': 'content'}, 'guid': {'type': <class 'str'>}, 'importedPackages': {'default': [], 'hicard': -1, 'isLink': True, 'setterFunc': 'setImportedPackages', 'type': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaPackage'>}, 'isAbstract': {'default': False, 'isFixed': True, 'type': 'Boolean'}, 'isImplicit': {'default': False, 'type': 'Boolean'}, 'isLeaf': {'default': False, 'isFixed': True, 'type': 'Boolean'}, 'isRoot': {'default': False, 'isFixed': True, 'type': 'Boolean'}, 'name': {'type': 'Token'}, 'shortName': {'default': None, 'type': 'Token'}, 'taggedValues': {'default': {}, 'type': 'StringDict'}, 'topObjectClass': {'default': None, 'isLink': True, 'setterFunc': 'unsettable', 'type': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaClass'>}, 'usename': {'default': None, 'getterFunc': 'getUsename', 'type': 'Token'}, 'visibility': {'default': 'public_vis', 'enumeration': ('public_vis', 'protected_vis', 'private_vis'), 'isFixed': True, 'type': 'Token'}}¶
- class ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaParameter(**params)[source]¶
Bases:
ccpnmodel.ccpncore.memops.metamodel.MetaModel.AbstractValue
class for roles (link ends)
- allowedTags = {'isSubdivided': ('True',), 'originalGuid': None}¶
- parameterData = {'constraints': {'type': 'content'}, 'container': {'isLink': True, 'type': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.HasParameters'>}, 'defaultValue': {'default': None}, 'direction': {'enumeration': ('in_dir', 'out_dir', 'inout_dir', 'return_dir'), 'type': 'Token'}, 'documentation': {'default': '', 'type': <class 'str'>}, 'guid': {'type': <class 'str'>}, 'hicard': {'default': 1, 'type': <class 'int'>}, 'isImplicit': {'default': False, 'type': 'Boolean'}, 'isOrdered': {'default': False, 'type': 'Boolean'}, 'isUnique': {'default': True, 'type': 'Boolean'}, 'locard': {'default': 1, 'type': <class 'int'>}, 'name': {'type': 'Token'}, 'taggedValues': {'default': {}, 'type': 'StringDict'}, 'usename': {'default': None, 'getterFunc': 'getUsename', 'type': 'Token'}, 'valueType': {'isLink': True, 'type': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.AbstractDataType'>}}¶
- class ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaRole(**params)[source]¶
Bases:
ccpnmodel.ccpncore.memops.metamodel.MetaModel.ClassElement
class for roles (link ends)
- allowedTags = {'forceUndoNotify': ('False',), 'originalGuid': None}¶
- parameterData = {'aggregation': {'default': None, 'enumeration': (None, 'composite'), 'type': 'Token'}, 'baseName': {'type': 'Token'}, 'changeability': {'default': 'changeable', 'enumeration': ('changeable', 'frozen', 'add_only'), 'type': 'Token'}, 'constraints': {'type': 'content'}, 'container': {'isLink': True, 'type': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaClass'>}, 'documentation': {'default': '', 'type': <class 'str'>}, 'forceUndoNotify': {'default': True, 'type': 'Boolean'}, 'guid': {'type': <class 'str'>}, 'hicard': {'default': 1, 'type': <class 'int'>}, 'hierarchy': {'default': None, 'enumeration': ('parent', 'child', None), 'type': 'Token'}, 'isAbstract': {'default': False, 'type': 'Boolean'}, 'isAutomatic': {'default': False, 'type': 'Boolean'}, 'isDerived': {'default': False, 'type': 'Boolean'}, 'isImplementation': {'default': False, 'type': 'Boolean'}, 'isImplicit': {'default': False, 'type': 'Boolean'}, 'isOrdered': {'default': False, 'type': 'Boolean'}, 'isUnique': {'default': True, 'type': 'Boolean'}, 'locard': {'default': 0, 'type': <class 'int'>}, 'name': {'type': 'Token'}, 'noDeleteIfSet': {'default': False, 'type': 'Boolean'}, 'otherRole': {'default': None, 'isLink': True, 'setterFunc': 'setOtherRole', 'type': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaRole'>}, 'partitionsChildren': {'default': False, 'type': 'Boolean'}, 'scope': {'default': 'instance_level', 'enumeration': ('instance_level', 'classifier_level'), 'isFixed': True, 'type': 'Token'}, 'taggedValues': {'default': {}, 'type': 'StringDict'}, 'usename': {'default': None, 'getterFunc': 'getUsename', 'type': 'Token'}, 'valueType': {'isLink': True, 'type': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaClass'>}, 'visibility': {'default': 'public_vis', 'enumeration': ('public_vis', 'protected_vis', 'private_vis'), 'isFixed': True, 'type': 'Token'}}¶
- ccpnmodel.ccpncore.memops.metamodel.MetaModel.cls¶
alias of
ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaConstraint
- ccpnmodel.ccpncore.memops.metamodel.MetaModel.compareElements(ee, ee2, ignoreImplicit=True, language='python')[source]¶
compare two MetaModelElements. Returns list of tags that differ. Language-specific values are only compared for language ‘language’
- ccpnmodel.ccpncore.memops.metamodel.MetaModel.compareModels(model1, model2, elementPairings=None, ignoreImplicit=True)[source]¶
Compare two models assuming same guid means same element
model1 and model2 may be either MetaModelElements or file names
elementPairings are pairs of guids (model1, model2) that are set to be identical even though the guids differ. Necessary e.g. when an element is divided among subclasses, or several elements are merged in a new superclass.
If ignoreImplicit implicit elements and the usename tag are ignored
NBNB TBD May need reworking to allow for inherited-down elements (using originalGuid)
Returns dictionary : { ‘dict1’: ‘guid:element’ dictionary for model 1 ‘dict2’: ‘guid:element’ dictionary for model 2 ‘unique1: set of elements found only in model1 ‘unique2: set of elements found only in model2 ‘differ’: dictionary of ‘guid:list-of-tag’ of
which tags differ for which guids
- ‘namematch’: dictionary of ‘qualifiedName:list-of-tag’ of
which tags differ for unique objects with identical names but different guids
- ccpnmodel.ccpncore.memops.metamodel.MetaModel.finaliseMetaClass(clazz)[source]¶
Enforces some of the design rules for MetaClasses and their parameters, and sets some derived parameter attributes
ccpnmodel.ccpncore.memops.metamodel.ModelPortal module¶
Module Documentation here
- class ccpnmodel.ccpncore.memops.metamodel.ModelPortal.ModelPortal(topPackage, dataModelVersion=None)[source]¶
Bases:
object
Access to In-memory model. Independent of language and storage. All functions (except for __init__) are queries on the model
- branchPackagesAlphabetic()¶
branch packages, alphabetically sorted by name
- dataObjTypesByInheritance(package)[source]¶
data types sorted by inheritance (supertype before subtype)
- dataTypesByInheritance(package)[source]¶
data types sorted by inheritance (supertype before subtype)
- exceptionsByInheritance(package)[source]¶
exceptions sorted by inheritance (supertype before subtype)
- requiredInputElements(complexDataType)[source]¶
Return elements that must be passed to the constructor Elements are sorted alpahabetically by name
- twigPackages()[source]¶
branch packages directly containing leafPackages, alphabetically sorted by name
- twigPackagesAlphabetic()¶
branch packages directly containing leafPackages, alphabetically sorted by name
ccpnmodel.ccpncore.memops.metamodel.ModelTraverse module¶
Module Documentation here
- class ccpnmodel.ccpncore.memops.metamodel.ModelTraverse.ModelTraverse[source]¶
Bases:
ccpnmodel.ccpncore.memops.metamodel.ModelTraverse_py_2_1.ModelTraverse_py_2_1
,object
ccpnmodel.ccpncore.memops.metamodel.ModelTraverse_py_2_1 module¶
Module Documentation here
- class ccpnmodel.ccpncore.memops.metamodel.ModelTraverse_py_2_1.ModelTraverse_py_2_1[source]¶
Bases:
object
Tools for traversing a model - loops and calls empty functions Also model query functions that may need overriding elsewhere.
- baseClassName = 'memops.Implementation.MemopsObject'¶
- baseDataTypeObjName = 'memops.Implementation.MemopsDataTypeObject'¶
- dataObjClassName = 'memops.Implementation.DataObject'¶
- dataRootName = 'memops.Implementation.MemopsRoot'¶
- getFuncname(op, inClass=None)[source]¶
get function calling name for operation
the name is the operation name of the corresponding operation with opSubType==None
- getPartitioningLinkages(inputRole)[source]¶
get chains of roles leading upwards from inputRole.container and inputRole.valueType to reach an object that must be shared from both sides. Return values are (uplinks, partitionRoles)
Examples: if <xyz> indicates a MetaRole names ‘xyz’, we have :
For ccp.molecule.Molecule.MolResLinkEnd.molResLink, the return is [[<molResidue>,<molecule>],[<molecule>]],[None,None]
while for ccp/nmr.NmrConstraint.AbstractConstraintList.experiments it is [[<nmrConstraintStore>],[<nmrProject>]],[<nmrProject>,<nmrConstraintStores>])
Note that the roles in uplinks[0], uplinks[1] and either partitionRoles[0] or partitionRoles[1] (if either is set) combine to make a chain of links that connect inputRole.container and inputRole.valueType
For MetaRoles contained in classes without a parentRole, the uplinks are [<topObject>,<memopsRoot>]
NB - as written this code checks that:
no partitioning links between parent and descendant
No two partitioning links (inherited or not) between same pair of classes
If two partitioning links span the same up-down path in the parent tree, one link cannot be lower in the tree in one branch and higher in the other Doing the checks in MetaModel would be better (and faster) but would require partially duplicating some quite complicated code. The code will be slow, considering that it is called for every writeModifier and some getValue for roles.
- implObjClassName = 'memops.Implementation.ImplementationObject'¶
- implPackageName = 'memops.Implementation'¶
- processLeafPackage(package)[source]¶
processing actions for body of leaf package
NB programmers note: Processing may rely on the model being valid and all subclasses being known at the time of processing the superclass. Any overriding that adds classes must maintain this.
Also note that DataTypes are needed in many other elements, and that exceptions are needed for operations. The processing order matters.
- processModel()[source]¶
top function that does all actions. Only function that should be called from outside the module.
- processParameter(parameter, inElement)[source]¶
processing actions for operation/exception parameter
- rootClassName = 'memops.Implementation.ComplexDataType'¶
- topObjClassName = 'memops.Implementation.TopObject'¶
ccpnmodel.ccpncore.memops.metamodel.OpTypes module¶
Module Documentation here
- ccpnmodel.ccpncore.memops.metamodel.OpTypes.getTarget(metaOp, opData=None)[source]¶
gets target for MetaOperation based on target class and operation name. opData overrides the standard operationData, for use e.g. in ModelAdapt. NB used within ObjectDomain to make targets for Operations entered in UML
The converse operation is ModelAdapt.getOperationName
for target ‘container’ assumes nothing
for target ‘masterOp’ assumes names of the form somename_somesubtypesuffix
for ClassElement and ChildClass targets assumes names of the form prefixElementname_somesubtypesuffix
ccpnmodel.ccpncore.memops.metamodel.TaggedValues module¶
Module Documentation here
ccpnmodel.ccpncore.memops.metamodel.TextWriter module¶
Module Documentation here
- class ccpnmodel.ccpncore.memops.metamodel.TextWriter.TextWriter[source]¶
Bases:
ccpnmodel.ccpncore.memops.metamodel.TextWriter_py_2_1.TextWriter_py_2_1
,object
ccpnmodel.ccpncore.memops.metamodel.TextWriter_py_2_1 module¶
Module Documentation here
- class ccpnmodel.ccpncore.memops.metamodel.TextWriter_py_2_1.TextWriter_py_2_1[source]¶
Bases:
object
- DEBUG_OUTPUT = False¶
- INDENT = 2¶
- clearOutDir(topDirName, forceClearOut=False)[source]¶
NB DANGEROUS! clears out contents of topDirName - as in ‘cd topDirName; m -rf *’
if forceClearOut directories are cleared even if they contain clearOutGuards The clearOutGuards are not deleted or entered into even so.
- clearOutGuards = ('CVS',)¶
- createDir(dirName)[source]¶
set up as recursive function (instead of using os.makedirs) as some implementations might want to do other things in each directory.
- getObjFileName(metaObj, absoluteName=True, addSuffix=False)[source]¶
Get filename for metaObj If absoluteName is True the file name is absolute otherwise it is relative to the relevant baseDir
- getVersionString(metaobj=None, scriptName=None, date=None)[source]¶
Function that returns the version header that should be inserted in each generated file. Parameters are the metaobj, the name and revision of the generating script, and the date. Name defaults to self.scriptName, if this is set. Date defaults to the current date - it is a parameter mainly to allow the suppression of date writing (for Model.py files).
ccpnmodel.ccpncore.memops.metamodel.Util module¶
Module Documentation here
- class ccpnmodel.ccpncore.memops.metamodel.Util.SimpleGuidGenerator(operator, organisation, initialSerial=1)[source]¶
Bases:
object
Generator for simple, low-quality GUIDs (operator_organisation_timeStamp_serial) Only appropriate for controlled environments.
- ccpnmodel.ccpncore.memops.metamodel.Util.breakString(text, separator=' ', joiner='\n', maxChars=72)[source]¶
Splits text on separator and then joins pieces back together using joiner so that each piece either single element or no longer than maxChars
Modified to speed up and add parameter defaults, Rasmus Fogh 28 Aug 2003 Modified to split into two functions and to add separator to end of each line Modified to separate string breaking from list modification Rasmus Fogh 29/6/06 Added special case for text empty or None Rasmus Fogh 07/07/06
- ccpnmodel.ccpncore.memops.metamodel.Util.checkLinkCircularity(myself, tag)[source]¶
check for circular relationships in -to-one links
- ccpnmodel.ccpncore.memops.metamodel.Util.compactStringList(stringList, separator='', maxChars=80)[source]¶
compact stringList into shorter list of longer strings, each either made from a single start string, or no longer than maxChars
From previous breakString function. Modified to speed up and add parameter defaults, Rasmus Fogh 28 Aug 2003 Modified to split into two functions and to add separator to end of each line, Rasmus Fogh 12 Sep 03 Modified to separate string breaking from list modification Rasmus Fogh 29/6/06 Modified to return single-element lists unchanged Rasmus Fogh 29/6/06
- ccpnmodel.ccpncore.memops.metamodel.Util.dataObjTypeDependencies(obj, tag)[source]¶
return dataObjypes that depend on this one. For use in topologicalSortSubgraph
- ccpnmodel.ccpncore.memops.metamodel.Util.getFuncname(op, inClass=None)[source]¶
get function calling name for operation
the name is the operation name of the corresponding operation with opSubType==None
- ccpnmodel.ccpncore.memops.metamodel.Util.getOperation(target, opType, inClass=None, opSubType=None)[source]¶
get existing operation. If none found return None
- ccpnmodel.ccpncore.memops.metamodel.Util.getReferenceName(oo, pp=None, subDirs=None)[source]¶
get name to refer to an object oo from package pp If pp is not None the routine will return a short form of the name whenever oo is contained within pp. Otherwise the routine returns the full import name. NB the function is used also to generate names for documentation. Unless oo is an object contained within a package, the result will not be valid for the purpose of importing oo.
- ccpnmodel.ccpncore.memops.metamodel.Util.getReturnPar(op)[source]¶
select and return MetaParameter with direction ‘return’, if any
- ccpnmodel.ccpncore.memops.metamodel.Util.parseCardinality(cardString)[source]¶
parse cardinality string expression and get locard and hicard
- ccpnmodel.ccpncore.memops.metamodel.Util.semideepcopy(dd, doneDict=None)[source]¶
does a semi-deep copy of a nested dictionary, for copying mappings. Dictionaries are copied recursively, . Lists are copied, but not recursively. In either case a single copy is made from a single object no matter how many times it appears. Keys and other values are passed unchanged
- ccpnmodel.ccpncore.memops.metamodel.Util.sortByAttribute(objList, tag)[source]¶
sorts list of objects on value of obj.tag. Returns new list
- ccpnmodel.ccpncore.memops.metamodel.Util.sortByDataObjTypeDependency(objList)[source]¶
partially sort objList so that dependent MetaDataObjTypes come after the ones they depend on.
- ccpnmodel.ccpncore.memops.metamodel.Util.sortByInheritance(objList)[source]¶
partially sort objList so that supertype comes before subtype
NB signature has changed. No ‘container’ parameter any longer - the routine always sorts the entire list presented to it.
- ccpnmodel.ccpncore.memops.metamodel.Util.sortByMethodCall(objList, tag)[source]¶
sorts list of objects on value of obj.tag(). Returns new list
- ccpnmodel.ccpncore.memops.metamodel.Util.topObjLinksByImport(root)[source]¶
get child link names of root in import order
- ccpnmodel.ccpncore.memops.metamodel.Util.topologicalSortSubgraph(objList, tag, func=<built-in function getattr>)[source]¶
Assumes that func(obj,tag) is a list of objects, of which some (but not all) may be in objList. This corresponds to a subset of the nodes of a graph in edge-list representation. The function returns a copy of objList sorted so that if ‘objA in func(objB,tag)’ then objB is before objA in the list. If the graph contains cycles an error is raised. The algorithm is linear in the number of objects and the number of edges.
See http://www.bitformation.com/art/python_toposort.html or http://www.brpreiss.com/books/opus7/html/page555.html for the sources for this algorithm
ccpnmodel.ccpncore.memops.metamodel.XmlModelIo module¶
Module Documentation here
- class ccpnmodel.ccpncore.memops.metamodel.XmlModelIo.TempHolder[source]¶
Bases:
object
class for temporary storage of parameter data
- class ccpnmodel.ccpncore.memops.metamodel.XmlModelIo.XmlModelGen(**kw)[source]¶
Bases:
ccpnmodel.ccpncore.memops.metamodel.TextWriter_py_2_1.TextWriter_py_2_1
,ccpnmodel.ccpncore.memops.metamodel.ModelTraverse_py_2_1.ModelTraverse_py_2_1
- codeDirName = None¶
- class ccpnmodel.ccpncore.memops.metamodel.XmlModelIo.XmlModelRead(**kw)[source]¶
Bases:
ccpnmodel.ccpncore.memops.metamodel.TextWriter_py_2_1.TextWriter_py_2_1
- classNameMapping = {'MetaAttribute': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaAttribute'>, 'MetaClass': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaClass'>, 'MetaConstant': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaConstant'>, 'MetaConstraint': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaConstraint'>, 'MetaDataObjType': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaDataObjType'>, 'MetaDataType': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaDataType'>, 'MetaException': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaException'>, 'MetaOperation': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaOperation'>, 'MetaPackage': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaPackage'>, 'MetaParameter': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaParameter'>, 'MetaRole': <class 'ccpnmodel.ccpncore.memops.metamodel.MetaModel.MetaRole'>}¶
- codeDirName = None¶
- getHref(elem, mandatory=True)[source]¶
get href attribute value. NB this is a hack to handle known bugs innamespace handling for xmllib, conf. elementtree.SimpleXMLTreeBuilder.
- loadDelayedData()[source]¶
create objects that have been postponed, because their container was not available
- ccpnmodel.ccpncore.memops.metamodel.XmlModelIo.readModel(versionTag=None, rootFileName=None, rootDirName=None, excludePackageNames=None, includePackageNames=None, checkValidity=True, **kw)[source]¶
XML model reader excludePackageNames is a tuple or list of package qualifiedNames that will be ignored together with their contents. includePackageNames is a tuple or list of package qualifiedNames that will be used together with their contents and containers, with all other packages being ignored. NB only leaf package names should be put in includePackageNames. The names of containing packages will be added automatically. Putting e.g. ‘ccp’ in includePackageNames will not cause packages contained in ccp to be included.