예제 #1
0
class UniqueRecordTwo(Base, DefaultMixin):
    __tablename__ = 'sabwp_unique_records_two'

    name = sa.Column(sa.Unicode(255), nullable=False, unique=True)
    email = sa.Column(sa.Unicode(255), nullable=False, unique=True)

    val.validates_constraints()
예제 #2
0
class CommodityType(db.Model, ValidationMixin):
    # auto keys
    id = db.Column(db.Integer, primary_key=True)
    utc_created = db.Column(db.DateTime, nullable=False, default=dt.utcnow())
    utc_updated = db.Column(db.DateTime,
                            nullable=False,
                            default=dt.utcnow(),
                            onupdate=dt.utcnow())

    # foreign keys
    group_id = db.Column(db.Integer,
                         db.ForeignKey('commodity_group.id',
                                       onupdate="CASCADE",
                                       ondelete="CASCADE"),
                         nullable=False)

    group = db.relationship('CommodityGroup',
                            backref=backref('types', cascade='all, delete'),
                            lazy='joined')

    # other keys
    name = db.Column(db.String(64), nullable=False, unique=True)

    # validation
    val.validates_constraints()

    def __repr__(self):
        return ('<CommodityType(%r)>' % self.name)
예제 #3
0
class Person(db.Model, ValidationMixin):
    # auto keys
    id = db.Column(db.Integer, primary_key=True)
    utc_created = db.Column(db.DateTime, nullable=False, default=dt.utcnow())
    utc_updated = db.Column(
        db.DateTime, nullable=False, default=dt.utcnow(), onupdate=dt.utcnow())

    # foreign keys
    currency_id = db.Column(
        db.Integer, db.ForeignKey(
            'commodity.id', onupdate="CASCADE", ondelete="CASCADE"),
        nullable=False)
    currency = db.relationship(
        'Commodity', lazy='joined',
        backref=backref('people', cascade='all, delete'))

    # other keys
    first_name = db.Column(db.Unicode(64), nullable=False)
    last_name = db.Column(db.Unicode(64), nullable=False)
    email = db.Column(db.String(64), unique=True, nullable=False)
    phone = db.Column(db.String(16))
    birth_date = db.Column(db.Date)
    monthly_income = db.Column(db.Float)
    monthly_expenses = db.Column(db.Float)
    marginal_tax_rate = db.Column(db.Float)

    # validation
    val.validates_email('email')
    val.validates_constraints()

    def __repr__(self):
        return ('<Exchange(%r, %r)>' % (self.name, self.email))

    def __str__(self):
        return ('%s: %s' % (self.name, self.email))
예제 #4
0
class Contribution(db.Model, ValidationMixin):
    # auto keys
    id = db.Column(db.Integer, primary_key=True)
    utc_created = db.Column(db.DateTime, nullable=False, default=dt.utcnow())
    utc_updated = db.Column(
        db.DateTime, nullable=False, default=dt.utcnow(), onupdate=dt.utcnow())

    # foreign keys
    account_id = db.Column(
        db.Integer, db.ForeignKey(
            'account.id', onupdate="CASCADE", ondelete="CASCADE"),
        nullable=False)

    account = db.relationship(
        'Account', lazy='joined',
        backref=backref('contributions', cascade='all, delete'))

    # other keys
    amount = db.Column(db.Float, nullable=False)
    date = db.Column(db.Date, nullable=False)

    # validation
    val.validates_constraints()

    def __repr__(self):
        return ('<Contribution(%r, %r)>' % (self.account, self.amount))

    def __str__(self):
        return ('%s: %s' % (self.account, self.amount))
예제 #5
0
class NumericType(Base, ValidationMixin):
    __tablename__ = 'NumericType'
    id = sa.Column(sa.Integer, primary_key=True)
    fld = sa.Column(sa.Numeric)
    fld2 = sa.Column(sa.Float)

    val.validates_constraints()
예제 #6
0
class Age(db.Model, ValidationMixin):
    # auto keys
    utc_created = db.Column(db.DateTime, nullable=False, default=dt.utcnow())
    utc_updated = db.Column(db.DateTime,
                            nullable=False,
                            default=dt.utcnow(),
                            onupdate=dt.utcnow())

    # other keys
    dataset_id = db.Column(db.String(128), primary_key=True)
    dataset_name = db.Column(db.String(128), nullable=False)
    last_updated = db.Column(db.DateTime, nullable=False)
    needs_update = db.Column(db.Boolean, nullable=False)
    status = db.Column(db.String(32), nullable=False)
    age = db.Column(db.Integer, nullable=False)
    frequency = db.Column(db.Integer, nullable=False)
    frequency_category = db.Column(db.String(32), nullable=False)
    dataset_title = db.Column(db.String(128), nullable=False)
    downloads = db.Column(db.Integer, nullable=False)

    # validation
    val.validates_constraints()

    def __repr__(self):
        return '<Age(%r)>' % self.dataset_name
예제 #7
0
class Company(db.Model, ValidationMixin):
    # auto keys
    id = db.Column(db.Integer, primary_key=True)
    utc_created = db.Column(db.DateTime, nullable=False, default=dt.utcnow())
    utc_updated = db.Column(
        db.DateTime, nullable=False, default=dt.utcnow(), onupdate=dt.utcnow())

    # other keys
    name = db.Column(db.String(64), unique=True, nullable=False)
    website = db.Column(db.String(64), unique=True, nullable=False)
    phone = db.Column(db.String(16))
    address = db.Column(db.String(64))
    city = db.Column(db.String(16))
    state = db.Column(db.String(2))
    zip = db.Column(db.String(10))

    # validation
    val.validates_url('website')
    val.validates_constraints()

    def __repr__(self):
        return ('<Exchange(%r, %r)>' % (self.name, self.email))

    def __str__(self):
        return ('%s: %s' % (self.name, self.email))
예제 #8
0
class IntegerType(Base, ValidationMixin):
    __tablename__ = 'IntegerType'
    id = sa.Column(sa.Integer, primary_key=True)
    fld = sa.Column(sa.Integer)
    fld2 = sa.Column(sa.SmallInteger)
    fld3 = sa.Column(sa.BigInteger)

    val.validates_constraints()
예제 #9
0
파일: orm.py 프로젝트: blazelibs/basebwa
class Widget(Base, DefaultMixin):
    __tablename__ = 'basebwa_ta_widgets'

    widget_type = sa.Column(sa.Unicode(255), nullable=False)
    color = sa.Column(sa.Unicode(255), nullable=False)
    quantity = sa.Column(sa.Integer, nullable=False)

    val.validates_constraints()
class Family(Base, ValidationMixin):
    __tablename__ = 'families'

    id = sa.Column(sa.Integer, primary_key=True)
    name = sa.Column(sa.Unicode(75), nullable=False, unique=True)
    reg_num = sa.Column(sa.Integer, nullable=False, unique=True)

    val.validates_required('name')
    val.validates_constraints()
예제 #11
0
class Order(Base, ValidationMixin):
    __tablename__ = 'orders'

    id = sa.Column(sa.Integer, primary_key=True)
    customer_id = sa.Column(sa.Integer, sa.ForeignKey(Customer.id), nullable=False)
    createdts = sa.Column(sa.DateTime, nullable=False, default=datetime.now,
                          server_default=sasql.text('CURRENT_TIMESTAMP'))
    note = sa.Column(sa.Text)

    val.validates_constraints()
예제 #12
0
class Order2(Base, ValidationMixin):
    __tablename__ = 'orders2'

    id = sa.Column(sa.Integer, primary_key=True)
    customer_id = sa.Column(sa.Integer, sa.ForeignKey(Customer.id))
    createdts = sa.Column(sa.DateTime, nullable=False,
                          server_default=sasql.text('CURRENT_TIMESTAMP'))

    val.validates_constraints()
    val.validates_required('customer_id', sav_event='before_exec')
예제 #13
0
class Event(db.Model, ValidationMixin):
    # table constraints
    __table_args__ = (db.UniqueConstraint('commodity_id', 'date', 'type_id',
                                          'currency_id'), {})

    # auto keys
    id = db.Column(db.Integer, primary_key=True)
    utc_created = db.Column(db.DateTime, nullable=False, default=dt.utcnow())
    utc_updated = db.Column(db.DateTime,
                            nullable=False,
                            default=dt.utcnow(),
                            onupdate=dt.utcnow())

    # foreign keys
    commodity_id = db.Column(db.Integer,
                             db.ForeignKey('commodity.id'),
                             nullable=False)

    commodity = db.relationship('Commodity',
                                backref=backref('commodity_events',
                                                cascade='all, delete'),
                                lazy='joined',
                                primaryjoin='Commodity.id==Event.commodity_id')

    currency_id = db.Column(db.Integer,
                            db.ForeignKey('commodity.id'),
                            nullable=False)

    currency = db.relationship('Commodity',
                               backref=backref('currency_events',
                                               cascade='all, delete'),
                               lazy='joined',
                               primaryjoin='Commodity.id==Event.currency_id')

    type_id = db.Column(db.Integer,
                        db.ForeignKey('event_type.id'),
                        nullable=False)

    type = db.relationship('EventType',
                           backref=backref('events', cascade='all, delete'),
                           lazy='joined')

    # other keys
    value = db.Column(db.Float, nullable=False)
    date = db.Column(db.DateTime, nullable=False, default=d.today())

    # validation
    val.validates_constraints()

    def __repr__(self):
        return ('<Event(%r, %r, %r, %r)>' %
                (self.commodity_id, self.currency_id, self.value, self.date))
예제 #14
0
class Commodity(db.Model, ValidationMixin):
    # auto keys
    id = db.Column(db.Integer, primary_key=True)
    utc_created = db.Column(db.DateTime, nullable=False, default=dt.utcnow())
    utc_updated = db.Column(db.DateTime,
                            nullable=False,
                            default=dt.utcnow(),
                            onupdate=dt.utcnow())

    # foreign keys
    type_id = db.Column(db.Integer,
                        db.ForeignKey('commodity_type.id',
                                      onupdate="CASCADE",
                                      ondelete="CASCADE"),
                        nullable=False)

    type = db.relationship('CommodityType',
                           backref=backref('commodities',
                                           cascade='all, delete'),
                           lazy='joined')

    data_source_id = db.Column(db.Integer,
                               db.ForeignKey('data_source.id',
                                             onupdate="CASCADE",
                                             ondelete="CASCADE"),
                               nullable=False)

    data_source = db.relationship('DataSource',
                                  backref=backref('commodities',
                                                  cascade='all, delete'),
                                  lazy='joined')

    exchange_id = db.Column(db.Integer,
                            db.ForeignKey('exchange.id'),
                            nullable=False)

    exchange = db.relationship('Exchange',
                               backref=backref('commodities',
                                               cascade='all, delete'),
                               lazy='joined')

    # other keys
    # cusip = db.Column(db.String(16), unique=True)
    symbol = db.Column(db.String(12), unique=True, nullable=False)
    name = db.Column(db.String(64), nullable=False, unique=True)

    # validation
    val.validates_constraints()

    def __repr__(self):
        return ('<Commodity(%r, %r)>' % (self.symbol, self.name))
예제 #15
0
파일: orm.py 프로젝트: blazelibs/authbwc
class Permission(Base, DefaultMixin):
    __tablename__ = 'auth_permissions'

    name = Column(Unicode(250), nullable=False, index=True, unique=True)
    description = Column(Unicode(250))

    val.validates_constraints()
    validates_unique('name')

    def __repr__(self):
        return '<Permission: "%s">' % self.name

    @classmethod
    def testing_create(cls):
        return cls.add(name=randchars())
예제 #16
0
class Todo(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    utc_created = db.Column(db.DateTime, nullable=False, default=dt.utcnow)
    utc_updated = db.Column(db.DateTime,
                            nullable=False,
                            default=dt.utcnow,
                            onupdate=dt.utcnow)

    completed = db.Column(db.Boolean, default=False, nullable=False)
    title = db.Column(db.String(), nullable=False, index=True)
    validates_constraints()

    def __repr__(self):
        completed = 'completed' if self.completed else 'not completed'
        return ('<Todo: "{}" ({})>'.format(self.title, completed))
예제 #17
0
class SomeObj(Base, ValidationMixin):
    __tablename__ = 'some_objs'

    id = sa.Column(sa.Integer, primary_key=True)
    minlen = sa.Column(sa.String(25))
    ipaddr = sa.Column(sa.String(15))
    url = sa.Column(sa.String(50))

    prec1 = sa.Column(sa.Numeric(10, 2))
    prec2 = sa.Column(sa.Numeric(5, 0))
    prec3 = sa.Column(sa.Numeric(5, 4))

    val.validates_constraints()
    val.validates_minlen('minlen', 20)
    val.validates_ipaddr('ipaddr')
    val.validates_url('url')
예제 #18
0
class CommodityGroup(db.Model, ValidationMixin):
    # auto keys
    id = db.Column(db.Integer, primary_key=True)
    utc_created = db.Column(db.DateTime, nullable=False, default=dt.utcnow())
    utc_updated = db.Column(db.DateTime,
                            nullable=False,
                            default=dt.utcnow(),
                            onupdate=dt.utcnow())

    # other keys
    name = db.Column(db.String(64), nullable=False, unique=True)

    # validation
    val.validates_constraints()

    def __repr__(self):
        return ('<CommodityGroup(%r)>' % self.name)
예제 #19
0
class Exchange(db.Model, ValidationMixin):
    # auto keys
    id = db.Column(db.Integer, primary_key=True)
    utc_created = db.Column(db.DateTime, nullable=False, default=dt.utcnow())
    utc_updated = db.Column(db.DateTime,
                            nullable=False,
                            default=dt.utcnow(),
                            onupdate=dt.utcnow())

    # other keys
    symbol = db.Column(db.String(12), unique=True, nullable=False)
    name = db.Column(db.String(64), nullable=False, unique=True)

    # validation
    val.validates_constraints()

    def __repr__(self):
        return ('<Exchange(%r, %r)>' % (self.symbol, self.name))
예제 #20
0
class AccountType(db.Model, ValidationMixin):
    # auto keys
    id = db.Column(db.Integer, primary_key=True)
    utc_created = db.Column(db.DateTime, nullable=False, default=dt.utcnow())
    utc_updated = db.Column(
        db.DateTime, nullable=False, default=dt.utcnow(), onupdate=dt.utcnow())

    # other keys
    name = db.Column(db.String(64), unique=True, nullable=False)
    contribution_limit = db.Column(db.Float)

    # validation
    val.validates_constraints()

    def __repr__(self):
        return ('<AccountType(%r)>' % self.name)

    def __str__(self):
        return ('%s' % self.name)
예제 #21
0
class Holding(db.Model, ValidationMixin):
    # constraints
    __table_args__ = (db.UniqueConstraint('account_id', 'commodity_id'), {})

    # auto keys
    id = db.Column(db.Integer, primary_key=True)
    utc_created = db.Column(db.DateTime, nullable=False, default=dt.utcnow())
    utc_updated = db.Column(
        db.DateTime, nullable=False, default=dt.utcnow(), onupdate=dt.utcnow())

    # foreign keys
    account_id = db.Column(
        db.Integer, db.ForeignKey(
            'account.id', onupdate="CASCADE", ondelete="CASCADE"),
        nullable=False)

    account = db.relationship(
        'Account', lazy='joined',
        backref=backref('holdings', cascade='all, delete'))

    commodity_id = db.Column(
        db.Integer, db.ForeignKey(
            'commodity.id', onupdate="CASCADE", ondelete="CASCADE"),
        nullable=False)

    commodity = db.relationship(
        'Commodity', lazy='joined',
        backref=backref('holdings', cascade='all, delete'))

    # other keys
    description = db.Column(db.String(256))

    # validation
    val.validates_constraints()

    def __repr__(self):
        return ('<Holding(%r, %r)>' % (self.account_id, self.commodity_id))

    def __str__(self):
        return ('%s: %s' % (self.account, self.commodity))
예제 #22
0
class Transaction(db.Model, ValidationMixin):
    # auto keys
    id = db.Column(db.Integer, primary_key=True)
    utc_created = db.Column(db.DateTime, nullable=False, default=dt.utcnow())
    utc_updated = db.Column(
        db.DateTime, nullable=False, default=dt.utcnow(), onupdate=dt.utcnow())

    # foreign keys
    type_id = db.Column(
        db.Integer, db.ForeignKey(
            'trxn_type.id', onupdate="CASCADE", ondelete="CASCADE"),
        nullable=False)

    type = db.relationship(
        'TrxnType', lazy='joined',
        backref=backref('transactions', cascade='all, delete'))

    holding_id = db.Column(
        db.Integer, db.ForeignKey(
            'holding.id', onupdate="CASCADE", ondelete="CASCADE"),
        nullable=False)

    holding = db.relationship(
        'Holding', lazy='joined',
        backref=backref('transactions', cascade='all, delete'))

    # other keys
    shares = db.Column(db.Float, nullable=False)
    price = db.Column(db.Float, nullable=False)
    date = db.Column(db.DateTime, nullable=False, default=d.today())
    commissionable = db.Column(db.Boolean, nullable=False, default=True)

    # validation
    val.validates_constraints()

    def __repr__(self):
        return ('<Holding(%r, %r)>' % (self.type_id, self.holding_id))

    def __str__(self):
        return ('%s: %s' % (self.type, self.holding))
예제 #23
0
class Person(Base, ValidationMixin):
    __tablename__ = 'people'

    id = sa.Column(sa.Integer, primary_key=True)
    createdts = sa.Column(sa.DateTime, nullable=False,
                          server_default=sasql.text('CURRENT_TIMESTAMP'))
    updatedts = sa.Column(sa.DateTime, onupdate=datetime.now)
    name_first = sa.Column(sa.Unicode(75), nullable=False)
    name_last = sa.Column(sa.Unicode(75), nullable=False)
    family_role = sa.Column(sa.Unicode(20), nullable=False)
    nullable_but_required = sa.Column(sa.Unicode(5))

    ROLE_CHOICES = (
        ('father', 'Father'),
        ('mother', 'Mother'),
        ('child', 'Child'),
    )
    val.validates_constraints(exclude='createdts')
    val.validates_presence_of('nullable_but_required')
    val.validates_choices('family_role', ROLE_CHOICES)

    @before_flush
    def alter_name(self):
        if self.name_first == u'randy':
            self.name_first = u'randall'

    @before_flush
    def enforce_president(self):
        try:
            self.enforce_president_call_count += 1
        except AttributeError:
            self.enforce_president_call_count = 1

        if self.name_last == u'Obama' and self.name_first != 'President':
            self.add_validation_error('name_first', 'must be "President"')

    @classmethod
    def get(cls, oid):
        return sess.query(cls).get(oid)
예제 #24
0
class Data(db.Model, ValidationMixin):
    # auto keys
    id = db.Column(db.Integer, primary_key=True)
    utc_created = db.Column(db.DateTime, nullable=False, default=dt.utcnow())
    utc_updated = db.Column(db.DateTime,
                            nullable=False,
                            default=dt.utcnow(),
                            onupdate=dt.utcnow())

    # other keys
    mp_month = db.Column(db.String(4), nullable=False)
    cm_name = db.Column(db.String(64), nullable=False)
    adm0_name = db.Column(db.String(64), nullable=False)
    adm1_name = db.Column(db.String(128), nullable=False)
    mkt_name = db.Column(db.String(32), nullable=False)
    cm_name = db.Column(db.String(32), nullable=False)
    mp_price = db.Column(db.Numeric, nullable=False)
    mp_year = db.Column(db.Integer, nullable=False)

    # validation
    val.validates_constraints()

    def __repr__(self):
        return '<Age(%r)>' % self.dataset_name
예제 #25
0
class Family(Base, ValidationMixin):
    __tablename__ = 'families'

    # SA COLUMNS
    id = sa.Column(sa.Integer, primary_key=True)
    createdts = sa.Column(sa.DateTime, nullable=False, default=datetime.now,
                          server_default=sasql.text('CURRENT_TIMESTAMP'))
    updatedts = sa.Column(sa.DateTime, onupdate=datetime.now)
    name = sa.Column(sa.Unicode(75), nullable=False, unique=True)
    reg_num = sa.Column(sa.Integer, nullable=False, unique=True)
    status = sa.Column(sa.Unicode(15), nullable=False, default=u'active', server_default=u'active')

    # VALIDATION
    STATUS_CHOICES = (
        ('active', 'Active'),
        ('inactive', 'Inactive'),
        ('moved', 'Moved'),
    )
    val.validates_constraints()
    val.validates_one_of('status', [k for k, v in STATUS_CHOICES])

    # OTHER
    def __str__(self):
        return '<Family id=%s, name=%s>' % (self.id, self.name)
예제 #26
0
파일: orm.py 프로젝트: blazelibs/authbwc
    class User(Base, UserMixin):
        __tablename__ = 'auth_users'

        val.validates_constraints()
        validates_unique('login_id', 'email_address')
예제 #27
0
파일: orm.py 프로젝트: blazelibs/authbwc
    class Group(Base, GroupMixin):
        __tablename__ = 'auth_groups'

        val.validates_constraints()
        validates_unique('name')
예제 #28
0
class Account(db.Model, ValidationMixin):
    # constraints
    __table_args__ = (
        db.UniqueConstraint(
            'name', 'type_id', 'company_id', 'currency_id', 'owner_id'), {})

    # auto keys
    id = db.Column(db.Integer, primary_key=True)
    utc_created = db.Column(db.DateTime, nullable=False, default=dt.utcnow())
    utc_updated = db.Column(
        db.DateTime, nullable=False, default=dt.utcnow(), onupdate=dt.utcnow())

    # foreign keys
    type_id = db.Column(
        db.Integer, db.ForeignKey(
            'account_type.id', onupdate="CASCADE", ondelete="CASCADE"),
        nullable=False)

    type = db.relationship(
        'AccountType', lazy='joined',
        backref=backref('accounts', cascade='all, delete'))

    company_id = db.Column(
        db.Integer, db.ForeignKey(
            'company.id', onupdate="CASCADE", ondelete="CASCADE"),
        nullable=False)

    company = db.relationship(
        'Company', lazy='joined',
        backref=backref('accounts', cascade='all, delete'))

    currency_id = db.Column(
        db.Integer, db.ForeignKey(
            'commodity.id', onupdate="CASCADE", ondelete="CASCADE"),
        nullable=False)

    currency = db.relationship(
        'Commodity', lazy='joined',
        backref=backref('accounts', cascade='all, delete'))

    owner_id = db.Column(
        db.Integer, db.ForeignKey(
            'person.id', onupdate="CASCADE", ondelete="CASCADE"),
        nullable=False)

    owner = db.relationship(
        'Person', lazy='joined',
        backref=backref('accounts', cascade='all, delete'))

    # other keys
    name = db.Column(db.String(64), unique=True, nullable=False)
    min_balance = db.Column(db.Float, default=0)
    trade_commission = db.Column(db.Float, default=0)
    annual_fee = db.Column(db.Float, default=0)

    # validation
    val.validates_constraints()

    def __repr__(self):
        return ('<Account(%r)>' % self.name)

    def __str__(self):
        return ('%s' % self.name)