diff options
| author | Michael Trier <mtrier@gmail.com> | 2009-03-31 22:31:08 +0000 |
|---|---|---|
| committer | Michael Trier <mtrier@gmail.com> | 2009-03-31 22:31:08 +0000 |
| commit | 6010afb28f95c7050ca48ddd2e6f65ca6cbae5a1 (patch) | |
| tree | 46259c03c209a89702c32c939c8ea035edee9425 /examples/polymorph | |
| parent | 832ea82fefa366f4717e889511f66ecfce3313de (diff) | |
| download | sqlalchemy-6010afb28f95c7050ca48ddd2e6f65ca6cbae5a1.tar.gz | |
Lots of fixes to the code examples to specify imports explicitly.
Explicit imports make it easier for users to understand the examples.
Additionally a lot of the examples were fixed to work with the changes in the
0.5.x code base. One small correction to the Case expression. Thanks a bunch
to Adam Lowry! Fixes #717.
Diffstat (limited to 'examples/polymorph')
| -rw-r--r-- | examples/polymorph/concrete.py | 12 | ||||
| -rw-r--r-- | examples/polymorph/polymorph.py | 22 | ||||
| -rw-r--r-- | examples/polymorph/single.py | 20 |
3 files changed, 27 insertions, 27 deletions
diff --git a/examples/polymorph/concrete.py b/examples/polymorph/concrete.py index 5f12e9a3d..c50513b55 100644 --- a/examples/polymorph/concrete.py +++ b/examples/polymorph/concrete.py @@ -1,5 +1,5 @@ -from sqlalchemy import * -from sqlalchemy.orm import * +from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String +from sqlalchemy.orm import mapper, create_session, polymorphic_union metadata = MetaData() @@ -56,11 +56,11 @@ m1 = Manager("pointy haired boss", "manager1") e1 = Engineer("wally", "engineer1") e2 = Engineer("dilbert", "engineer2") -session.save(m1) -session.save(e1) -session.save(e2) +session.add(m1) +session.add(e1) +session.add(e2) session.flush() -employees = session.query(Employee).select() +employees = session.query(Employee) print [e for e in employees] diff --git a/examples/polymorph/polymorph.py b/examples/polymorph/polymorph.py index 4f3aeb7d2..ea56ffed1 100644 --- a/examples/polymorph/polymorph.py +++ b/examples/polymorph/polymorph.py @@ -1,5 +1,5 @@ -from sqlalchemy import * -from sqlalchemy.orm import * +from sqlalchemy import MetaData, Table, Column, Integer, String, ForeignKey +from sqlalchemy.orm import mapper, relation, create_session import sets # this example illustrates a polymorphic load of two classes @@ -58,12 +58,12 @@ class Company(object): person_join = people.outerjoin(engineers).outerjoin(managers) -person_mapper = mapper(Person, people, select_table=person_join,polymorphic_on=people.c.type, polymorphic_identity='person') +person_mapper = mapper(Person, people, polymorphic_on=people.c.type, polymorphic_identity='person') mapper(Engineer, engineers, inherits=person_mapper, polymorphic_identity='engineer') mapper(Manager, managers, inherits=person_mapper, polymorphic_identity='manager') mapper(Company, companies, properties={ - 'employees': relation(Person, lazy=False, private=True, backref='company') + 'employees': relation(Person, lazy=False, backref='company', cascade="all, delete-orphan") }) session = create_session(echo_uow=False) @@ -73,30 +73,30 @@ c.employees.append(Engineer(name='dilbert', status='BBA', engineer_name='enginee c.employees.append(Person(name='joesmith', status='HHH')) c.employees.append(Engineer(name='wally', status='CGG', engineer_name='engineer2', primary_language='python')) c.employees.append(Manager(name='jsmith', status='ABA', manager_name='manager2')) -session.save(c) +session.add(c) print session.new session.flush() -session.clear() +session.expunge_all() c = session.query(Company).get(1) for e in c.employees: - print e, e._instance_key, e.company + print e, e._sa_instance_state.key, e.company assert sets.Set([e.name for e in c.employees]) == sets.Set(['pointy haired boss', 'dilbert', 'joesmith', 'wally', 'jsmith']) print "\n" -dilbert = session.query(Person).get_by(name='dilbert') -dilbert2 = session.query(Engineer).get_by(name='dilbert') +dilbert = session.query(Person).filter_by(name='dilbert').one() +dilbert2 = session.query(Engineer).filter_by(name='dilbert').one() assert dilbert is dilbert2 dilbert.engineer_name = 'hes dibert!' session.flush() -session.clear() +session.expunge_all() c = session.query(Company).get(1) for e in c.employees: - print e, e._instance_key + print e, e._sa_instance_state.key session.delete(c) session.flush() diff --git a/examples/polymorph/single.py b/examples/polymorph/single.py index dfc426416..5a4f5c841 100644 --- a/examples/polymorph/single.py +++ b/examples/polymorph/single.py @@ -1,5 +1,5 @@ -from sqlalchemy import * -from sqlalchemy.orm import * +from sqlalchemy import MetaData, Table, Column, Integer, String, ForeignKey +from sqlalchemy.orm import mapper, relation, create_session metadata = MetaData('sqlite://') metadata.bind.echo = 'debug' @@ -48,7 +48,7 @@ engineer_mapper = mapper(Engineer, inherits=person_mapper, polymorphic_identity= mapper(Company, companies, properties={ - 'employees': relation(Person, lazy=True, private=True, backref='company') + 'employees': relation(Person, lazy=True, backref='company') }) session = create_session() @@ -58,29 +58,29 @@ c.employees.append(Engineer(name='dilbert', status='BBA', engineer_name='enginee c.employees.append(Person(name='joesmith', status='HHH')) c.employees.append(Engineer(name='wally', status='CGG', engineer_name='engineer2', primary_language='python')) c.employees.append(Manager(name='jsmith', status='ABA', manager_name='manager2')) -session.save(c) +session.add(c) session.flush() -session.clear() +session.expunge_all() c = session.query(Company).get(1) for e in c.employees: - print e, e._instance_key, e.company + print e, e._sa_instance_state.key, e.company print "\n" -dilbert = session.query(Person).get_by(name='dilbert') -dilbert2 = session.query(Engineer).get_by(name='dilbert') +dilbert = session.query(Person).filter_by(name='dilbert').one() +dilbert2 = session.query(Engineer).filter_by(name='dilbert').one() assert dilbert is dilbert2 dilbert.engineer_name = 'hes dibert!' session.flush() -session.clear() +session.expunge_all() c = session.query(Company).get(1) for e in c.employees: - print e, e._instance_key + print e, e._sa_instance_state.key session.delete(c) session.flush() |
