summaryrefslogtreecommitdiff
path: root/examples/polymorph
diff options
context:
space:
mode:
authorMichael Trier <mtrier@gmail.com>2009-03-31 22:31:08 +0000
committerMichael Trier <mtrier@gmail.com>2009-03-31 22:31:08 +0000
commit6010afb28f95c7050ca48ddd2e6f65ca6cbae5a1 (patch)
tree46259c03c209a89702c32c939c8ea035edee9425 /examples/polymorph
parent832ea82fefa366f4717e889511f66ecfce3313de (diff)
downloadsqlalchemy-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.py12
-rw-r--r--examples/polymorph/polymorph.py22
-rw-r--r--examples/polymorph/single.py20
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()