The following sample code shows how we would use a Relation
class (also available in relation.py
):
Chapter7/relation.py
from os import unlink db="/tmp/abcr.db" try: unlink(db) except: pass class Entity(AbstractEntity): database=db class Relation(AbstractRelation): database=db class A(Entity): pass class B(Entity): pass class AB(Relation): a=A b=B a1=A() a2=A() b1=B() b2=B() a1.add(b1) a1.add(b2) print(a1.get(B)) print(b1.get(A))
After defining a few entities, defining the relation between those entities follows the same pattern: we define a Relation
class that is a subclass of AbstractRelation
to establish a reference to a database that will be used.
Then we define an actual relation between two entities by subclassing Relation
and defining two class variables, a
and b
that refer to the Entity
classes that form each half of the relation.
If we instantiate a few entities...