Every model required at runtime is loaded into a single ModelSet, the so-called ``default model set''. It is accessed this way:
>>> from Modeling.ModelSet import defaultModelSet >>> ms=defaultModelSet()
Suppose we already imported the two test packages AuthorBooks and StoreEmployees, then we have:
>>> ms.modelsNames() ['AuthorBooks', 'StoreEmployees']
The two corresponding models have been correctly imported, as expected.
Accessing a model in particular, or one of its entities is straightforward:
>>> model_AuthorBooks=ms.modelNamed('AuthorBooks')
>>> model_AuthorBooks.entitiesNames()
['Writer', 'Book']
>>> model_AuthorBooks.entities()
(<Entity instance at 8396b50>, <Entity instance at 8337cd0>)
>>> entity_Book=model_AuthorBooks.entityNamed('Book')
Note: you do not need to access a model to get one of its entities; since entities share a common namespace inside a ModelSet, this can be asked to the model set as well:
>>> ms.entitiesNames()
('Writer', 'Book', 'Store', 'Employee', 'Address', 'SalesClerk',
'Executive', 'Mark')
>>> ms.entityNamed('Book')
<Entity instance at 8337cd0>
Last, given an entity, you can access its attributes and relationships quite the same way, for example:
>>> # All attributes' names
... entity_Book.attributesNames()
('title', 'id', 'price', 'FK_Writer_Id')
>>> # All relationships' names
... entity_Book.relationshipsNames()
('author',)
>>> # Class properties only
... entity_Book.classProperties()
(<Attribute instance at 839bc38>, <Attribute instance at 83c5720>,
<Attribute instance at 83eaca8>, <SimpleRelationship instance at 840b280>)
>>> # and their names
... entity_Book.classPropertiesNames()
['title', 'id', 'price', 'author']
>>> # dealing with an attribute
... book_title=entity_Book.attributeNamed('title')
>>> book_title.type(), book_title.externalType(), book_title.width()
('string', 'VARCHAR', 40)
Each of the classes Model, Entity, Attribute and Relationship have more functionalities then that. We invite you to look at their respective API for further details.
Comments are welcome: Sebastien Bigaret / Modeling Home Page