Пример #1
0
class Tag(db.Model):
    __tablename__ = 'tags'
    uid = db.Column(db.Integer(), primary_key=True, autoincrement=True)
    name = db.Column(db.String(50), nullable=False)
    repos = db.relationship('Repo_Tag',
                            back_populates='tag',
                            passive_deletes=False,
                            cascade="save-update, merge")

    def __init__(self, name: str):
        self.name = name

    def __repr__(self):
        return "< {0} {1} {2}>".format(self.uid, self.name, 'tag')
Пример #2
0
class Modules(db.Model):
    __tablename__ = 'modules'
    uid = db.Column(db.Integer(), primary_key=True, autoincrement=True)
    sid = db.Column(db.Integer(),
                    db.ForeignKey('software.uid',
                                  onupdate="SET NULL",
                                  ondelete="SET NULL"),
                    nullable=True)
    security_issues = db.Column(db.Integer(), nullable=True)
    performance = db.Column(db.Integer(), nullable=True)
    inlining_performance = db.Column(db.Integer(), nullable=True)
    name = db.Column(db.String(50), nullable=False)
    cat = db.Column(db.String(50), nullable=False)
    language = db.Column(db.Text(), nullable=True)
    dep = db.relationship('Modules_Modules',
                          back_populates='modules',
                          passive_deletes=False,
                          cascade="save-update, merge",
                          foreign_keys='Modules_Modules.modules2_id')

    def __init__(self, sid: int, security_issues: int, name: str,
                 performance: int, inlining_performance: int, cat: str,
                 language: str):
        self.sid = sid
        self.security_issues = security_issues
        self.name = name
        self.performance = performance
        self.cat = cat
        self.language = language
        self.inlining_performance = inlining_performance

    def __repr__(self):
        return "< {0} {1} {2}>".format(self.uid, self.name, 'origrepos')
Пример #3
0
class Job(db.Model):
    __tablename__ = 'job'
    jid = db.Column(db.String(100), primary_key=True)
    result = db.Column(db.Text(), nullable=True)
    created = db.Column(db.DateTime())
    description = db.Column(db.Text(), nullable=False)

    def __init__(self, jid: str, result: str, description: str):
        self.jid = jid
        self.result = result
        self.description = description
        self.created = datetime.now()

    def __repr__(self):
        return "< {0} {1} {2}>".format(self.jid, self.description,
                                       self.created.strftime('%b %d, %Y'))
Пример #4
0
class Software(db.Model):
    __tablename__ = 'software'
    uid = db.Column(db.Integer(), primary_key=True, autoincrement=True)
    version = db.Column(db.Float(), nullable=True)
    pkgname = db.Column(db.String(50), nullable=False)
    repo_id = db.Column(db.Integer(),
                        db.ForeignKey('orig_repos.uid',
                                      onupdate="SET NULL",
                                      ondelete="SET NULL"),
                        nullable=True)

    def __init__(self, pkgname: str, repo_id=None):
        self.pkgname = pkgname
        self.repo_id = repo_id

    def __repr__(self):
        return "< {0} {1} {2}>".format(self.uid, self.pkgname, 'software')
Пример #5
0
class Repo_Tag(db.Model):
    __tablename__ = 'repo_tag'
    uid = db.Column(db.Integer(), primary_key=True, autoincrement=True)
    tag_id = db.Column(db.Integer(),
                       db.ForeignKey('tags.uid',
                                     onupdate="SET NULL",
                                     ondelete="SET NULL"),
                       nullable=False)
    repo_id = db.Column(db.Integer(),
                        db.ForeignKey('orig_repos.uid',
                                      onupdate="SET NULL",
                                      ondelete="SET NULL"),
                        nullable=False)
    tag = db.relationship("Tag", back_populates="repos")
    repo = db.relationship("OrigRepos", back_populates="tags")

    def __init__(self, tag_id: int, repo_id: int):
        self.tag_id = tag_id
        self.repo_id = repo_id

    def __repr__(self):
        return "< {0} {1} {2}>".format(self.uid, self.tag_id, self.repo_id)
Пример #6
0
class User(db.Model):
    __tablename__ = 'user'
    id = db.Column(db.Integer(), primary_key=True, autoincrement=True)
    # firstname = db.Column(db.String(50), nullable=False)
    # lastname = db.Column(db.String(50), nullable=False)
    username = db.Column(db.String(50), nullable=False, unique=True)
    email = db.Column(db.String(50), nullable=False, unique=True)
    password = db.Column(db.String(500), nullable=False)
    joined = db.Column(db.DateTime())
    roles = db.Column(db.String(50))
    is_active = db.Column(db.Boolean, default=True, server_default='true')

    def __init__(self, username: str, password: str, email: str, roles: str,
                 is_active: bool):
        # self.firstname = firstname.title()
        # self.lastname = lastname.title()
        self.username = username.lower()
        self.email = email.lower()
        self.joined = datetime.now()
        self.password = guard.hash_password(password)
        self.roles = roles
        self.joined = datetime.now()
        self.is_active = is_active

    def checkpassword(self, password):
        return guard.hash_password(password) == self.password

    def __repr__(self):
        return "< {0} {1} {2}>".format(self.id, self.username, 'user')

    @property
    def rolenames(self):
        try:
            return self.roles.split(',')
        except Exception:
            return []

    @classmethod
    def lookup(cls, username):
        return cls.query.filter_by(username=username).one_or_none()

    @classmethod
    def identify(cls, id):
        return cls.query.get(id)

    @property
    def identity(self):
        return self.id

    def is_valid(self):
        return self.is_active
Пример #7
0
class OrigRepos(db.Model):
    __tablename__ = 'orig_repos'
    uid = db.Column(db.Integer(), primary_key=True, autoincrement=True)
    gid = db.Column(db.Integer(), nullable=True)
    star = db.Column(db.Integer(), nullable=True)
    open_issue = db.Column(db.Integer(), nullable=True)
    name = db.Column(db.String(50), nullable=False)
    description = db.Column(db.Text(), nullable=True)
    comfork = db.Column(db.Boolean, default=False, server_default='false')
    fork = db.Column(db.Integer(), db.ForeignKey('orig_repos.uid',onupdate="SET NULL", ondelete="SET NULL"), nullable=True)
    tags = db.relationship('Repo_Tag', back_populates='repo', passive_deletes=False, cascade="save-update, merge")

    def __init__(self, gid: int, star: int, open_issue: int, name: str, description: str, comfork: bool,fork=None):
        self.gid = gid
        self.star = star
        self.open_issue = open_issue
        self.name = name
        self.description = description
        self.comfork = comfork
        self.fork = fork

    def __repr__(self):
        return "< {0} {1} {2}>".format(self.uid, self.name, 'origrepos')