Пример #1
0
class AddStruct(db.Model):
    __tablename__ = 'addstruct'

    date = db.Column(db.Integer, primary_key=True)
    year = db.Column(db.Integer)
    month = db.Column(db.Integer)
    day = db.Column(db.Integer)

    total = db.Column(db.Integer)
    discarded = db.Column(db.Integer)
    totalv6 = db.Column(db.Integer)
    discardedv6 = db.Column(db.Integer)


    filev4 = db.Column(db.String(80), unique=True)
    filev6 = db.Column(db.String(80), unique=True)
    spacev4 = db.Column(ARRAY(db.Integer))
    spacev6 = db.Column(ARRAY(db.Integer))


    def __init__(self, date, year, month, day):
        self.date = date
        self.year = year
        self.month = month
        self.day = day


    def __repr__(self):
        return self.date
Пример #2
0
def get_db():
  """Get modified db object."""
  database = SQLAlchemy()

  class String(database.String):
    """Simple subclass of sqlalchemy.orm.String which provides a default
    length for `String` types to satisfy MySQL
    """
    # pylint: disable=too-few-public-methods
    # this class is just to set the default string length and is not meant to
    # do anything else, so it does not need any other public methods.

    def __init__(self, length=None, *args, **kwargs):
      # TODO: Check for MySQL and only apply when needed
      if length is None:
        length = 250
      super(String, self).__init__(length, *args, **kwargs)
  database.String = String

  database.session.plain_commit = database.session.commit

  def hooked_commit(*args, **kwargs):
    """Commit override function.

    This function is meant for a single after commit hook that should only be
    used for ACL propagation.
    """
    database.session.plain_commit(*args, **kwargs)
    from ggrc.models.hooks import acl
    acl.after_commit()

  database.session.commit = hooked_commit
  return database
Пример #3
0
def get_db():
    """Get modified db object."""
    database = SQLAlchemy()

    class String(database.String):
        """Simple subclass of sqlalchemy.orm.String which provides a default
    length for `String` types to satisfy MySQL
    """

        # pylint: disable=too-few-public-methods
        # this class is just to set the default string length and is not meant to
        # do anything else, so it does not need any other public methods.

        def __init__(self, length=None, *args, **kwargs):
            # TODO: Check for MySQL and only apply when needed
            if length is None:
                length = 250
            super(String, self).__init__(length, *args, **kwargs)

    database.String = String

    database.session.plain_commit = database.session.commit

    database.session.commit_hooks_enable_flag = CommitHooksEnableFlag()

    def pre_commit_hooks():
        """All pre commit hooks handler."""
        with benchmark("pre commit hooks"):
            if not database.session.commit_hooks_enable_flag:
                return
            database.session.flush()
            if hasattr(database.session, "reindex_set"):
                database.session.reindex_set.push_ft_records()

    def post_commit_hooks():
        """All post commit hooks handler."""
        with benchmark("post commit hooks"):
            if not database.session.commit_hooks_enable_flag:
                return
            from ggrc.models.hooks import acl
            acl.after_commit()

    database.session.post_commit_hooks = post_commit_hooks
    database.session.pre_commit_hooks = pre_commit_hooks

    def hooked_commit(*args, **kwargs):
        """Commit override function.

    This function is meant for a single after commit hook that should only be
    used for ACL propagation.
    """
        database.session.pre_commit_hooks()
        with benchmark("plain commit"):
            database.session.plain_commit(*args, **kwargs)
        database.session.post_commit_hooks()

    database.session.commit = hooked_commit

    return database
Пример #4
0
def get_db():
    """Get modified db object."""
    db = SQLAlchemy()

    class String(db.String):
        """Simple subclass of sqlalchemy.orm.String which provides a default
    length for `String` types to satisfy MySQL
    """
        def __init__(self, length=None, *args, **kwargs):
            # TODO: Check for MySQL and only apply when needed
            if length is None:
                length = 250
            return super(String, self).__init__(length, *args, **kwargs)

    db.String = String
    return db
Пример #5
0
def get_db():
  """Get modified db object."""
  from flask.ext.sqlalchemy import SQLAlchemy
  db = SQLAlchemy()

  class String(db.String):
    """Simple subclass of sqlalchemy.orm.String which provides a default
    length for `String` types to satisfy MySQL
    """

    def __init__(self, length=None, *args, **kwargs):
      # TODO: Check for MySQL and only apply when needed
      if length is None:
        length = 250
      return super(String, self).__init__(length, *args, **kwargs)
  db.String = String
  return db
Пример #6
0
#-*- coding: UTF-8 -*-

from flask import current_app, request, json
from flask.ext.sqlalchemy import SQLAlchemy
from datetime import *
from flask.ext.security import current_user, login_required, RoleMixin, Security, SQLAlchemyUserDatastore, UserMixin, utils

db = SQLAlchemy()

roles_users = db.Table(
    'roles_users',
    db.Column('user_id', db.String(128), db.ForeignKey('user.id')),
    db.Column('role_id', db.String(128), db.ForeignKey('role.id')))


class Serializer(object):
    __public__ = None
    "Must be implemented by implementors"

    def to_serializable_dict(self):
        dict = {}
        for public_key in self.__public__:
            value = getattr(self, public_key)
            if value:
                dict[public_key] = value
        return dict


class SWEncoder(json.JSONEncoder):
    def default(self, obj):
        if isinstance(obj, Serializer):
Пример #7
0
    content_type = Column(String(32))
    picture_date = Column(DateTime)
    picture_data = Column(LargeBinary)
    thumbnail = Column(LargeBinary)
    user = Column(String(50), nullable=False, default='')

    dataset_id = Column(
        'ext_dataset_id',
        ForeignKey('datasets.id'),
        primary_key=True,
    )


roles_users = db.Table(
    'roles_users',
    db.Column('registered_users_user', db.String(50),
              db.ForeignKey('registered_users.user')),
    db.Column('role_id', db.Integer(), db.ForeignKey('roles.id')),
)


class RegisteredUser(Base, UserMixin):
    __tablename__ = 'registered_users'

    id = Column('user', String(50), primary_key=True)
    name = Column(String(255))
    institution = Column(String(45))
    abbrev = Column(String(10))
    MS = Column(String(255))
    email = Column(String(255))
    qualification = Column(String(255))
Пример #8
0
    password = db.Column(db.String(255))
    # Establish contact with Post's ForeignKey: user_id  关联Post表外键
    posts = db.relationship('Post', backref='users', lazy='dynamic')

    def __init__(self, id, username, password):
        self.id = id
        self.username = username
        self.password = password

    def __repr__(self):
        """Define the string format for instance of User."""
        return "<Model User '{}'>".format(self.username)


posts_tags = db.Table(
    'posts_tags', db.Column('post_id', db.String(45),
                            db.ForeignKey('posts.id')),
    db.Column('tag_id', db.String(45), db.ForeignKey('tags.id')))


class Post(db.Model):
    """Represents Proected posts."""
    __tablename__ = 'posts'
    id = db.Column(db.String(45), primary_key=True)
    title = db.Column(db.String(255))
    text = db.Column(db.Text())
    publist_date = db.Column(db.DateTime)
    #Set the foreign key for Post
    user_id = db.Column(db.String(45), db.ForeignKey('users.id'))
    # Establish contact with Comment's ForeignKey: post_id  关联评论表外键
    comments = db.relationship('Comment', backref='posts', lazy='dynamic')
Пример #9
0
db = SQLAlchemy(app)

json_parser = reqparse.RequestParser()
json_parser.add_argument('hostname', type=unicode, required=True, location='json')
json_parser.add_argument('spec_result', type=unicode, required=True, location='json')
json_parser.add_argument('cookbook_name', type=unicode, required=True, location='json')

query_parser = reqparse.RequestParser()
query_parser.add_argument('hostname', type=unicode)
query_parser.add_argument('cookbook_name', type=unicode)
query_parser.add_argument('limit', type=int)

Base = declarative_base()
tests = Table('tests', Base.metadata,
              Column('id', db.Integer, primary_key=True),
              Column('hostname', db.String(100), index=True),
              Column('unix_timestamp', db.Integer, index=True),
              Column('spec_result', db.String(20000), index=True),
              Column('cookbook_name', db.String(100), index=True)
       )

Base.metadata.create_all(db.engine)


class Test(db.Model):
    __table__ = tests
    __mapper_args__ = {
        'primary_key': [tests.c.id]
    }

    def __init__(self, hostname, spec_result, cookbook_name):
Пример #10
0
from transporter.utils import store_route_info
from flask.ext.sqlalchemy import SQLAlchemy
from sqlalchemy.orm import relationship
from sqlalchemy.dialects.postgresql import JSON
from geopy.distance import vincenty
from geopy.point import Point
from datetime import datetime, timedelta
from logbook import Logger
from collections import deque
import click
import requests
import json
import time

db = SQLAlchemy()
JsonType = db.String().with_variant(JSON(), 'postgresql')

inf = float('inf')
log = Logger(__name__)

route_station_assoc = db.Table(
    'route_station_assoc',
    db.Column('route_id', db.Integer, db.ForeignKey('route.id')),
    db.Column('station_id', db.Integer, db.ForeignKey('station.id')),
    db.Column('sequence', db.Integer),
)

route_edge_assoc = db.Table(
    'route_edge_assoc',
    db.Column('route_id', db.Integer, db.ForeignKey('route.id')),
    db.Column('edge_id', db.Integer, db.ForeignKey('edge.id')),
Пример #11
0
from flask.ext.sqlalchemy import SQLAlchemy
from cloudtestenvironment import app

db = SQLAlchemy(app)

<<<<<<< HEAD
class User(db.Model):
=======
<<<<<<< Updated upstream
class Registration(db.Model):
>>>>>>> andrew
	id = db.Column(db.Integer, primary_key=True)
	username = db.Column(db.String(40))
	password_hash = db.Column(db.String(255))
	customer_id = db.Column(db.Integer, db.ForeignKey('customer.id'))

	def __init__(self, username, password_hash, customer_id):
		self.username = username
		self.password_hash = password_hash
		self.customer_id = customer_id

class Account(db.Model):
	id = db.Column(db.Integer, primary_key=True)
	balance = db.Column(db.Numeric(2))
	customer_id = db.Column(db.Integer, db.ForeignKey('customer.id'))

	def __init__(self, balance, customer_id):
		self.balance = balance
		self.customer_id = customer_id

class Message(db.Model):
Пример #12
0
import datetime
#pour test
from random import randint
app = Flask(__name__)
#app.config['SQLALCHEMY_DATABASE_URI'] = 'postgres://*****:*****@ec2-54-163-238-96.compute-1.amazonaws.com:5432/d6fisokcj01ulm'

app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///test.db'

db = SQLAlchemy(app)

########################################################################

comments_table = Table(
    'comments', db.Model.metadata,
    Column('pin_id', Integer, ForeignKey('pins.id')),
    Column('text', db.String(400)), Column('username', db.String(400)),
    Column('date', db.DateTime, default=datetime.datetime.utcnow))


class User(db.Model):

    __tablename__ = "users"
    id = db.Column(db.Integer, primary_key=True)
    pseudo = db.Column(db.String(50))
    passw = db.Column(db.String(50))

    def __init__(self, username, passw):
        self.pseudo = username
        self.passw = passw

    def serialize(self):
Пример #13
0
import datetime

from flask.ext.sqlalchemy import SQLAlchemy
from flask.ext.security import UserMixin, RoleMixin

from sqlalchemy.orm import backref

db = SQLAlchemy()

_EMAIL_TYPE = db.String(160)


class Mailbox(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    address = db.Column(_EMAIL_TYPE, unique=True, index=True)
    last_activity = db.Column(db.DateTime,
                              default=datetime.datetime.utcnow,
                              index=True)
    emails = db.relationship("Email",
                             backref=backref("mailbox"),
                             cascade="all, delete, delete-orphan")


class Email(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    mailbox_id = db.Column(db.Integer,
                           db.ForeignKey("mailbox.id", ondelete="CASCADE"),
                           index=True)
    #mailbox = db.relationship("Mailbox", backref=backref("emails"), cascade="all, delete, delete-orphan", single_parent=True)
    fromaddr = db.Column(_EMAIL_TYPE)
    message = db.Column(db.Text())
Пример #14
0
class User(db.Model):
    """
    Users who can access the log
    """

    __tablename__ = 'user'
    id = db.Column(db.Integer, primary_key=True)
    login = db.Column(db.String(20), index=True, unique=True)
    password = db.Column(db.String(176))


posts_categories = db.Table(
    'posts_categories', db.metadata,
    db.Column('post', db.Integer, db.ForeignKey('post.id')),
    db.Column('category', db.String(10), db.ForeignKey('category.name')))


class Post(db.Model):
    __tablename__ = 'post'
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(30), nullable=False)
    slug = db.Column(db.String(30))
    content = db.Column(db.Text, nullable=False)
    created_at = db.Column(db.DateTime, nullable=False, default=dt.utcnow())
    covered_period = db.Column(db.Date)
    covers_week = db.Column(db.Boolean)

    categories = db.relationship('Category',
                                 secondary=posts_categories,
                                 lazy='dynamic',
Пример #15
0
        except:
            return None
        user = User.query.get(data['id'])
        if user and user.can_login():
            return user

    def __repr__(self):
        return self.email

    def __hash__(self):
        return hash(self.email)


group_banned_user = db.Table(  # Secondary Table for many-to-many mapping
    'groups_banned_users',
    db.Column('group_id', db.String(32), db.ForeignKey('groups.id')),
    db.Column('user_id', db.String(32), db.ForeignKey('users.id')),
    db.PrimaryKeyConstraint('group_id', 'user_id'))


class GroupUserAssociation(db.Model
                           ):  # Association Object for many-to-many mapping
    __tablename__ = 'groups_users_association'
    group_id = db.Column(db.String(32),
                         db.ForeignKey('groups.id'),
                         primary_key=True)
    user_id = db.Column(db.String(32),
                        db.ForeignKey('users.id'),
                        primary_key=True)
    manager = db.Column(db.Boolean, default=False)
    owner = db.Column(db.Boolean, default=False)
Пример #16
0
# Load initial project settings
import settings

# FIXME: This should probably be done in `settings/app_engine.py`
if getattr(settings, 'APP_ENGINE', False):
  import sys
  import os
  sys.path.insert(0, os.path.join(settings.BASE_DIR, 'packages.zip'))
  del os
  del sys

# FIXME: This should be more complete
import logging
logger = logging.getLogger(__name__)

from flask.ext.sqlalchemy import SQLAlchemy
db = SQLAlchemy()

class String(db.String):
  """Simple subclass of sqlalchemy.orm.String which provides a default
  length for `String` types to satisfy MySQL
  """
  def __init__(self, length=None, *args, **kwargs):
    # TODO: Check for MySQL and only apply when needed
    if length is None:
      length = 250
    return super(String, self).__init__(length, *args, **kwargs)

db.String = String
Пример #17
0
    clothingHistoryEntry = db.relationship('ClothingHistoryEntry',
                                           backref='user',
                                           lazy='dynamic')
    autoCompleteGear = db.relationship('UserGear',
                                       backref='usergear',
                                       lazy='dynamic')

    def __init__(self):
        pass

    def __repr__(self):
        return '<User %d>' % self.id


usergear = db.Table(
    'usergear', db.Column('gear', db.String(100), primary_key=True),
    db.Column('user_id',
              db.Integer,
              db.ForeignKey('user.id'),
              primary_key=True), db.Column('frequency', db.Integer))


class ClothingHistoryEntry(db.Model):
    location = db.Column(db.String(80), primary_key=True)
    date = db.Column(db.Date, primary_key=True)
    tempHigh = db.Column(db.Integer)
    tempMin = db.Column(db.Integer)
    precipitation = db.Column(db.Integer)
    comfort = db.Column(db.String(80))
    windSpeed = db.Column(db.Integer)
    windGust = db.Column(db.Integer)
Пример #18
0
def get_db():  # noqa
  """Get modified db object."""
  database = SQLAlchemy()

  class String(database.String):
    """Simple subclass of sqlalchemy.orm.String which provides a default
    length for `String` types to satisfy MySQL
    """
    # pylint: disable=too-few-public-methods
    # this class is just to set the default string length and is not meant to
    # do anything else, so it does not need any other public methods.

    def __init__(self, length=None, *args, **kwargs):
      # TODO: Check for MySQL and only apply when needed
      if length is None:
        length = 250
      super(String, self).__init__(length, *args, **kwargs)

  database.String = String

  database.session.plain_commit = database.session.commit

  database.session.commit_hooks_enable_flag = CommitHooksEnableFlag()

  def pre_commit_hooks():
    """All pre commit hooks handler."""
    with benchmark("pre commit hooks"):
      if not database.session.commit_hooks_enable_flag:
        return
      database.session.flush()
      if hasattr(database.session, "reindex_set"):
        database.session.reindex_set.indexing_hook()

  def post_commit_hooks():
    """All post commit hooks handler."""
    with benchmark("post commit hooks"):
      if not database.session.commit_hooks_enable_flag:
        return
      # delete flask caches in order to avoid
      # using cached instances after commit
      if hasattr(flask.g, "user_cache"):
        del flask.g.user_cache
      if hasattr(flask.g, "user_creator_roles_cache"):
        del flask.g.user_creator_roles_cache
      from ggrc.models.hooks import acl
      acl.after_commit()

  database.session.post_commit_hooks = post_commit_hooks
  database.session.pre_commit_hooks = pre_commit_hooks

  def hooked_commit(*args, **kwargs):
    """Commit override function.

    This function is meant for a single after commit hook that should only be
    used for ACL propagation.
    """
    database.session.pre_commit_hooks()
    with benchmark("plain commit"):
      database.session.plain_commit(*args, **kwargs)
    database.session.post_commit_hooks()

  database.session.commit = hooked_commit

  return database
Пример #19
0
                         type=unicode,
                         required=True,
                         location='json')

query_parser = reqparse.RequestParser()
query_parser.add_argument('criticality', type=unicode)
query_parser.add_argument('hours_ago', type=float, required=True)
query_parser.add_argument('until', type=int)
query_parser.add_argument('category', type=unicode)
query_parser.add_argument('description', type=unicode)

Base = declarative_base()
events = Table('events', Base.metadata,
               Column('criticality', db.Integer, index=True),
               Column('unix_timestamp', db.Integer, index=True),
               Column('category', db.String(30), index=True),
               Column('description', db.String(1000), index=True))
Base.metadata.create_all(db.engine)


class Event(db.Model):
    __table__ = events
    __mapper_args__ = {
        'primary_key': [
            events.c.criticality, events.c.unix_timestamp, events.c.category,
            events.c.description
        ]
    }

    def __init__(self, criticality, unix_timestamp, category, description):
        self.criticality = criticality