diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2008-03-10 17:15:51 +0000 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2008-03-10 17:15:51 +0000 |
commit | 79004f1ede9f74b6b6f04424ee36d2f442f839c1 (patch) | |
tree | 1a64d53c0a8f0d9b1fa32de322b856c93538208b /lib/sqlalchemy/ext/declarative.py | |
parent | 88a8cc0c9e78c1ad83649f7f49bd05fc9dc25dd4 (diff) | |
download | sqlalchemy-79004f1ede9f74b6b6f04424ee36d2f442f839c1.tar.gz |
removed the "__main__" code from below
Diffstat (limited to 'lib/sqlalchemy/ext/declarative.py')
-rw-r--r-- | lib/sqlalchemy/ext/declarative.py | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/lib/sqlalchemy/ext/declarative.py b/lib/sqlalchemy/ext/declarative.py index ac315e755..77bffad7a 100644 --- a/lib/sqlalchemy/ext/declarative.py +++ b/lib/sqlalchemy/ext/declarative.py @@ -237,85 +237,3 @@ def declarative_base(engine=None, metadata=None): setattr(self, k, kwargs[k]) return Base -if __name__ == '__main__': - # sample usage: - - from sqlalchemy import * - from sqlalchemy.orm import * - - # Base is created per-app (or per desired scope) - # and houses a MetaData, and optionally an engine - Base = declarative_base(create_engine('sqlite://', echo=False)) - - class User(Base): - __tablename__ = 'users' - - id = Column('id', Integer, primary_key=True) - name = Column('name', String(50)) - addresses = relation("Address", backref="user") - type = Column('type', String(50)) - - __mapper_args__ = dict(polymorphic_on=type, polymorphic_identity='user') - - class AdminUser(User): - __tablename__ = 'admin_users' - __mapper_args__ = dict(polymorphic_identity='adminuser') - - id = Column('id', Integer, ForeignKey('users.id'), primary_key=True) - supername = Column('supername', String(50)) - - class Address(Base): - __tablename__ = 'addresses' - - id = Column('id', Integer, primary_key=True) - user_id = Column('user_id', Integer, ForeignKey('users.id')) - _email = Column('email', String(50)) - - # illustrate a synonym - def _set_email(self, email): - self._email = email - def _get_email(self): - return self._email - email = declared_synonym(property(_get_email, _set_email), '_email') - - class Keyword(Base): - __tablename__ = 'keywords' - - id = Column('id', Integer, primary_key=True) - name = Column('name', String(50)) - - # m2m tables are just created as Table objects - user_keywords = Table('user_keywords', Base.metadata, - Column('user_id', Integer, ForeignKey('users.id')), - Column('keyword_id', Integer, ForeignKey('keywords.id')) - ) - - # test adding relations after the fact - User.keywords = relation(Keyword, secondary=user_keywords, backref='users') - - Base.metadata.create_all() - - sess = create_session() - - u1 = User(name='ed', - addresses = [Address(email='eds email')], - keywords = [Keyword(name='one'), Keyword(name='two')] - ) - - sess.save(u1) - - a1 = AdminUser(name='some admin', supername='root', addresses=[ - Address(email='admin email') - ], keywords=[]) - sess.save(a1) - - sess.flush() - - sess.clear() - - print sess.query(User).filter(User.name=='ed').all() - print sess.query(User).filter(User.addresses.any(Address.email.like('%ed%'))).all() - - for user in sess.query(User).with_polymorphic('*').all(): - print user, user.addresses, user.keywords -
\ No newline at end of file |