From: Mike Bayer Date: Mon, 10 Mar 2008 17:15:51 +0000 (+0000) Subject: removed the "__main__" code from below X-Git-Tag: rel_0_4_4~15 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=79004f1ede9f74b6b6f04424ee36d2f442f839c1;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git removed the "__main__" code from below --- diff --git a/lib/sqlalchemy/ext/declarative.py b/lib/sqlalchemy/ext/declarative.py index ac315e7550..77bffad7ac 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