All pastes #491195 Raw Edit

Unnamed

public python v1 · immutable
·published 2007-05-16 14:22 UTC
rendered paste body
from elixir import *from sqlalchemy import *from sqlalchemy.exceptions import FlushErrorimport sysclass Member(Entity):    has_field('gid', Integer)    has_field('sid', Integer)    using_table_options(PrimaryKeyConstraint('sid', 'gid')) class Times(Entity):    has_field('time', Integer, primary_key=True)class Schedule(Entity):    has_field('sid', Integer)    has_field('busy_hour', Integer)    #belongs_to('times', colname='busy_hour', of_kind='Times', required=True)    using_table_options(PrimaryKeyConstraint('sid', 'busy_hour'),                        ForeignKeyConstraint(['busy_hour'], [Times.table.c.time]))def run(stmt):    rs = stmt.execute()    for row in rs:        print row#print dir(Times.c)metadata.connect("sqlite:///schedules.sqlite")create_all()Times.table.delete().execute()Schedule.table.delete().execute()Member.table.delete().execute()for i in range(0, 24):    Times(time=i)objectstore.flush()#print Times.select()#Schedule(sid=1,busy_hour=5)#objectstore.flush()a= select([Schedule.table.c.sid, Schedule.table.c.busy_hour])print run(a)print Times.table.c.timewhile(True):    line = raw_input('> ')    parts = line.split(' ')    cmd = parts[0]    if(cmd == 'when'):        gid = parts[1]#        'select time from times left join schedule on '#        'times.time = schedule.busy_hour where busy_hour is null'#        students_in_group = select([Group.table.c.sid], Group.table.c.gid == gid).select()        grouptimes_j = join(Schedule.table, Member.table, and_(Schedule.table.c.sid == Member.table.c.sid, Member.table.c.gid == gid)).select()                joined = outerjoin(Times.table, grouptimes_j, Times.table.c.time == grouptimes_j.c.busy_hour)#        print joined.select()        result = select([Times.table.c.time], joined.c.busy_hour == None, from_obj=[joined] )        result.distinct = True#        print result        run(result)    elif(cmd == 'member'):        try:            gid = parts[1]            sid = parts[2]            Member(gid=gid, sid=sid)            objectstore.flush()        except FlushError:            print 'duplicate entry already exists in database'            objectstore.clear()    elif(cmd == 'busy'):        try:            sid = parts[1]            hour = parts[2]            Schedule(sid=sid, busy_hour=hour)            objectstore.flush()        except FlushError:            print 'duplicate entry already exists in database'            objectstore.clear()#        run(select([Schedule.table.c.sid, Schedule.table.c.busy_hour]))    elif(cmd in ['quit', 'bye']):        print 'bye'        sys.exit()