from db import * from sqlalchemy import or_ def retrieve_user(string, session): first = session.query(User).filter(or_(User.name==string, User.card==string)).first() if first: print "Found user "+first.name return first else: list = session.query(User).filter(or_(User.name.like('%'+string+'%'),User.card.like('%'+string+'%'))).all() if len(list) == 0: print "No users found matching your search" return None if len(list) == 1: print "Found one user: "+list[0].name if confirm(): return list[0] else: return None else: print "Found "+str(len(list))+" users:" return select_from_list(list) def confirm(): while True: input = raw_input("Confirm? (y/n)\n") if input in ["y","yes"]: return True elif input in ["n","no"]: return False else: print "Nonsense!" def select_from_list(list): while True: for i in range(len(list)): print i+1, " ) ", list[i].name choice = raw_input("Select user :\n") if choice in [str(x+1) for x in range(len(list))]: return list[int(choice)-1] else: return None