<s> import sqlalchemy as sa <EOL> from sqlalchemy . orm import relationship <EOL> from sqlalchemy . schema import UniqueConstraint <EOL> from sqlalchemy . ext . declarative import declarative_base <EOL> class ModelBase ( object ) : <EOL> @ classmethod <EOL> def get_by ( cls , * args , ** kwargs ) : <EOL> return cls . query . filter_by ( * args , ** kwargs ) . first ( ) <EOL> ModelBase = declarative_base ( cls = ModelBase ) <EOL> class Experiment ( ModelBase ) : <EOL> __tablename__ = '<STR_LIT>' <EOL> id = sa . Column ( sa . Integer , primary_key = True , autoincrement = True ) <EOL> name = sa . Column ( sa . Unicode ( <NUM_LIT:255> ) , unique = True ) <EOL> started_on = sa . Column ( sa . DateTime , index = True ) <EOL> variants = relationship ( <EOL> "<STR_LIT>" , <EOL> backref = "<STR_LIT>" , <EOL> order_by = '<STR_LIT>' <EOL> ) <EOL> participants = relationship ( <EOL> "<STR_LIT>" , <EOL> backref = "<STR_LIT>" <EOL> ) <EOL> events = relationship ( <EOL> "<STR_LIT>" , <EOL> backref = "<STR_LIT>" <EOL> ) <EOL> class Variant ( ModelBase ) : <EOL> __tablename__ = '<STR_LIT>' <EOL> id = sa . Column ( sa . Integer , primary_key = True , autoincrement = True ) <EOL> name = sa . Column ( sa . Unicode ( <NUM_LIT:255> ) , unique = True ) <EOL> order = sa . Column ( sa . Integer ) <EOL> experiment_id = sa . Column ( <EOL> sa . Integer , <EOL> sa . ForeignKey ( '<STR_LIT>' % Experiment . __tablename__ ) , <EOL> index = True <EOL> ) <EOL> events = relationship ( <EOL> "<STR_LIT>" , <EOL> backref = "<STR_LIT>" <EOL> ) <EOL> participants = relationship ( <EOL> "<STR_LIT>" , <EOL> backref = "<STR_LIT>" <EOL> ) <EOL> class Participant ( ModelBase ) : <EOL> __tablename__ = '<STR_LIT>' <EOL> __table_args__ = ( UniqueConstraint ( '<STR_LIT>' , '<STR_LIT>' ) , ) <EOL> id = sa . Column ( sa . Integer , primary_key = True , autoincrement = True ) <EOL> identity = sa . Column ( sa . Unicode ( <NUM_LIT:255> ) ) <EOL> experiment_id = sa . Column ( <EOL> sa . Integer , <EOL> sa . ForeignKey ( '<STR_LIT>' % Experiment . __tablename__ ) <EOL> ) <EOL> variant_id = sa . Column ( <EOL> sa . Integer , <EOL> sa . ForeignKey ( '<STR_LIT>' % Variant . __tablename__ ) , <EOL> index = True <EOL> ) <EOL> class TrackedEvent ( ModelBase ) : <EOL> __tablename__ = '<STR_LIT>' <EOL> __table_args__ = ( UniqueConstraint ( '<STR_LIT:type>' , '<STR_LIT>' , '<STR_LIT>' ) , ) <EOL> TYPES = ( <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' <EOL> ) <EOL> id = sa . Column ( sa . Integer , primary_key = True , autoincrement = True ) <EOL> type = sa . Column ( sa . Enum ( * TYPES ) ) <EOL> experiment_id = sa . Column ( <EOL> sa . Integer , <EOL> sa . ForeignKey ( '<STR_LIT>' % Experiment . __tablename__ ) , <EOL> ) <EOL> variant_id = sa . Column ( <EOL> sa . Integer , <EOL> sa . ForeignKey ( '<STR_LIT>' % Variant . __tablename__ ) , <EOL> ) <EOL> total = sa . Column ( sa . Integer , default = <NUM_LIT:0> ) <EOL> class VerifiedHuman ( ModelBase ) : <EOL> __tablename__ = '<STR_LIT>' <EOL> id = sa . Column ( sa . Integer , primary_key = True , autoincrement = True ) <EOL> identity = sa . Column ( sa . Unicode ( <NUM_LIT:255> ) , unique = True ) </s>
