class ObjWithImage(Base): id = Column(Integer, primary_key=True) image_name = Column(VARBINARY(250)) image = ImageProperty(image_name, name_template='image/{random}', image_sizes=(200, 200)) thumb_name = Column(VARBINARY(250)) thumb = ImageProperty(thumb_name, name_template='thumb/{random}', image_sizes=(100, 100), enhancements=[(ImageEnhance.Brightness, 1.5)], fill_from='image') thumb_filter_name = Column(VARBINARY(250)) thumb_filter = ImageProperty(thumb_filter_name, name_template='thumb_filter/{random}', image_sizes=(100, 100), filter=ImageFilter.BLUR, enhancements=[(ImageEnhance.Brightness, 1.5)], fill_from='image') thumb_optimize_name = Column(VARBINARY(250)) thumb_optimize = ImageProperty(thumb_optimize_name, name_template='thumb_optimize/{random}', image_sizes=(100, 100), optimize=True, enhancements=[(ImageEnhance.Brightness, 1.5) ], fill_from='image') icon_name = Column(VARBINARY(250)) icon = ImageProperty(icon_name, name_template='icon/{random}')
class Test(Base): id = Column(Integer, primary_key=True) image_name = Column(VARBINARY(250)) image = ImageProperty(image_name, name_template='image/{random}') thumb_name = Column(VARBINARY(250)) thumb = ImageProperty(thumb_name, name_template='thumb/{random}', fill_from='image')
class ObjWithFile(Base): id = Column(Integer, primary_key=True) file_name = Column(VARBINARY(250)) file_size = Column(Integer) file = FileProperty(file_name, name_template='obj/{random}', cache_properties={'size': 'file_size'}) file_by_id_name = Column(VARBINARY(250)) file_by_id = FileProperty(file_by_id_name, name_template='obj/{item.id}') something = Column(Integer, default=0)
class Misc(Base): """This model contains all possible MySQL types""" __tablename__ = "misc" id = Column(Integer, primary_key=True) big_integer_field = Column(BigInteger, default=0) large_binary_field = Column(LargeBinary, nullable=True) boolean_field = Column(Boolean, default=False) char_field = Column(CHAR(255), nullable=True) date_field = Column(Date, nullable=True) date_time_field = Column(DateTime, nullable=True) decimal_field = Column(DECIMAL(10, 2), nullable=True) float_field = Column(Float(12, 4), default=0) integer_field = Column(Integer, default=0) json_field = Column(JSON, nullable=True) nchar_field = Column(NCHAR(255), nullable=True) numeric_field = Column(Numeric(12, 4), default=0) unicode_field = Column(Unicode(255), nullable=True) real_field = Column(REAL(12, 4), default=0) small_integer_field = Column(SmallInteger, default=0) string_field = Column(String(255), nullable=True) text_field = Column(Text, nullable=True) time_field = Column(Time, nullable=True) varbinary_field = Column(VARBINARY(255), nullable=True) varchar_field = Column(VARCHAR(255), nullable=True) timestamp_field = Column(TIMESTAMP, default=current_timestamp())
class DBUser(BaseModel): __tablename__ = 'user' login = Column(VARCHAR(20), unique=True, nullable=False) password = Column(VARBINARY(), nullable=False) first_name = Column(VARCHAR(50)) last_name = Column(VARCHAR(50))
class Misc(Base): """This model contains all possible MySQL types""" __tablename__ = "misc" id = Column(Integer, primary_key=True) big_integer_field = Column(BigInteger, default=0) big_integer_unsigned_field = Column(BIGINT(unsigned=True), default=0) large_binary_field = Column(LargeBinary, nullable=True) boolean_field = Column(Boolean, default=False) char_field = Column(CHAR(255), nullable=True) date_field = Column(Date, nullable=True) date_time_field = Column(DateTime, nullable=True) decimal_field = Column(DECIMAL(10, 2), nullable=True) float_field = Column(Float(12, 4), default=0) integer_field = Column(Integer, default=0) integer_unsigned_field = Column(INTEGER(unsigned=True), default=0) tinyint_field = Column(TINYINT, default=0) tinyint_unsigned_field = Column(TINYINT(unsigned=True), default=0) mediumint_field = Column(MEDIUMINT, default=0) mediumint_unsigned_field = Column(MEDIUMINT(unsigned=True), default=0) if environ.get("LEGACY_DB", "0") == "0": json_field = Column(JSON, nullable=True) nchar_field = Column(NCHAR(255), nullable=True) numeric_field = Column(Numeric(12, 4), default=0) unicode_field = Column(Unicode(255), nullable=True) real_field = Column(REAL(12, 4), default=0) small_integer_field = Column(SmallInteger, default=0) small_integer_unsigned_field = Column(SMALLINT(unsigned=True), default=0) string_field = Column(String(255), nullable=True) text_field = Column(Text, nullable=True) time_field = Column(Time, nullable=True) varbinary_field = Column(VARBINARY(255), nullable=True) varchar_field = Column(VARCHAR(255), nullable=True) timestamp_field = Column(TIMESTAMP, default=current_timestamp()) dupe = Column(Boolean, index=True, default=False)
class WEB_ANALYSIS_API_ACCESS_NORMAL(Base): __tablename__ = 'web_analysis_api_access_normal' access_api = Column(VARBINARY(256), primary_key=True, nullable=False, comment="访问api") count = Column(Integer, comment='个数')
class DBUser(BaseModel): __tablename__ = 'users' login = Column(VARCHAR(255), nullable=False, unique=True) password = Column(VARBINARY(), nullable=False) first_name = Column(VARCHAR(255)) last_name = Column(VARCHAR(255)) is_delete = Column(BOOLEAN(), nullable=False, default=False)
class DBEmployee(BaseModel): __tablename__ = 'employees' login = Column(VARCHAR(20), unique=True, nullable=False) password = Column(VARBINARY(), nullable=False) first_name = Column(VARCHAR(50)) last_name = Column(VARCHAR(50)) is_delete = Column(BOOLEAN(), nullable=False, default=False) position = Column(VARCHAR(50)) department = Column(VARCHAR(50))
class WEB_ANALYSIS_IP_ACCESS_UNNORMAL(Base): __tablename__ = 'web_analysis_ip_access_unnormal' access_ip = Column(VARBINARY(256), primary_key=True, nullable=False, comment="访问ip") count = Column(Integer, comment='个数') country = Column(String(64), comment="国家") city = Column(String(64), nullable=False, comment="城市")
class CmsPrefrenceArea(Base): __tablename__ = 'cms_prefrence_area' __table_args__ = {'comment': '优选专区'} id = Column(BigInteger, primary_key=True) name = Column(VARCHAR(255)) sub_title = Column(VARCHAR(255)) pic = Column(VARBINARY(500), comment='展示图片') sort = Column(Integer) show_status = Column(Integer)
class User(Base): ''' A table representing users (contributors) to files ''' __tablename__ = 'user' id = Column(Integer, primary_key=True, nullable=False, autoincrement=True) user = Column(VARBINARY(_VARBINARY_MAX), unique=True) defect_mods = relationship("DefectModification", backref=backref('user')) change_metrics = relationship("ChangeMetric", backref=backref('user'))
class CoreAmazonAccount(Base): __tablename__ = 'core_amazon_account' id = Column(Integer, primary_key=True) platform = Column(String(40), nullable=False) department = Column(String(20)) username = Column(String(40), nullable=False) password_encrypt = Column(VARBINARY(100), nullable=False) login_url = Column(String(255)) created_at = Column(DateTime) updated_at = Column(DateTime, nullable=False, server_default=text("'0000-00-00 00:00:00'"))
def get_col_type(col_value): val_type = type(col_value) if val_type == bytes: col_type = VARBINARY(20) elif val_type == float: col_type = Float elif val_type == int: col_type = Integer else: raise TypeError('unsupported type of %s' % val_type) return col_type
class Subsystem(Base): ''' subsystem, a container for a group of files and typically belongs to a maintainer ''' __tablename__ = 'subsystem' id = Column(Integer, primary_key=True, nullable=False, autoincrement=True) subsystem = Column(VARBINARY(_VARBINARY_MAX), unique=True) status = Column(String(255)) maintainer = Column(String(255)) files = relationship("File", backref=backref('subsystem'))
class Login(Base): __tablename__ = 'login' autoid = Column(Integer, primary_key=True, autoincrement=True) userid = Column(Integer, nullable=False) loginid = Column(String(250), nullable=False) logintype = Column(Integer, nullable=False) password = Column(VARBINARY(250), nullable=False) created_time = Column(DateTime(), nullable=False) modified_time = Column(DateTime(), nullable=False) enable = Column(BOOLEAN, nullable=False)
class DBEmp(BaseModel): __tablename__ = 'emp' first_name = Column(VARCHAR(20), nullable=False) pwd = Column(VARBINARY(), nullable=False) login = Column(VARCHAR(64),unique=True) last_name = Column(VARCHAR(64)) position = Column(VARCHAR(64)) department = Column(VARCHAR(64)) is_delete = Column(BOOLEAN,nullable=False, default=False)
class Version(Base): ''' A table representing a versions of a file, for instance a commit hash in git ''' __tablename__ = 'version' id = Column(Integer, primary_key=True, nullable=False, autoincrement=True) version = Column(VARBINARY(_VARBINARY_MAX), unique=True) defect_mods = relationship("DefectModification", backref=backref('version'), cascade_backrefs=True, cascade='all, delete-orphan', single_parent=True) change_metrics = relationship("ChangeMetric", backref=backref('version'), cascade_backrefs=True, cascade='all, delete-orphan', single_parent=True)
class Word(Base): __tablename__ = 'words' created = Column(DateTime, nullable=False, server_default=func.now()) last_modified = Column(DateTime, nullable=False, server_default=func.now(), server_onupdate=func.now()) # should have lenght of hash word = Column(VARBINARY(512), primary_key=True) encrypted_word = Column(LargeBinary, nullable=False) occurrences = Column(Integer, nullable=False)
class Users(Base): # 表的名字: __tablename__ = 'users' # 表的结构: #id = Column(String(20), primary_key=True) #name = Column(String(20)) #sqn = Column(BigInteger(20)) OPc = Column(VARBINARY(16)) imei = Column(VARCHAR(15)) imsi = Column(String(15), primary_key=True) mmeidentity_idmmeidentity = Column(VARCHAR(15)) msisdn = Column(VARCHAR(15))
class Url(Base): SALT_SIZE = 16 __tablename__ = 'urls' created = Column(DateTime, nullable=False, server_default=func.now()) salt = Column(BINARY(SALT_SIZE)) # should have lenght of hash hash_of_url = Column(VARBINARY(512), nullable=False, primary_key=True) url = Column(VARCHAR(512), nullable=False, primary_key=True) analysis = Column(Enum(Value), nullable=False) confidence = Column(Float, nullable=False)
class User(BaseModel): __tablename__ = 'user' login = Column( VARCHAR(50), unique=True, nullable=False, ) pwd = Column( VARBINARY(), nullable=False, )
class Eav(Base): ''' Used as a generic key-value store. I.e Entity-attribute-value: http://en.wikipedia.org/wiki/Entity%E2%80%93attribute%E2%80%93value_model Very low-performance and typically storing things like when the database was last updated. ''' __tablename__ = 'eav_store' key = Column(VARBINARY(_VARBINARY_MAX), primary_key=True, unique=True) value_ = Column(String(255)) type = Column(String(255)) @hybrid_property def value(self): ''' Getter for eav value, it tries to figure out type of value from db, and then cast it into the corresponding python type before returning. Could maybe be changed to dynamic typing using type() function type = type(value).__name__ and something corresponding for setter ''' value = self.value_ try: if self.type == 'datetime': value = datetime.strptime(value, '%Y-%m-%d %H:%M:%S') elif self.type == 'int': value = int(value) except: pass return value @value.setter def value(self, value): ''' Setter for eav value, it tries to figure out type of value, and then transform it into a str representation for the db. ''' type_ = 'str' if isinstance(value, datetime): type_ = 'datetime' value = value.strftime('%Y-%m-%d %H:%M:%S') elif isinstance(value, int): type_ = 'int' value = int(value) self.value_ = str(value) self.type = type_
class File(Base): ''' A table representing a file ''' __tablename__ = 'file' id = Column(Integer, primary_key=True, nullable=False, autoincrement=True) subsystem_id = Column(Integer, ForeignKey('subsystem.id'), nullable=True) file = Column(VARBINARY(_VARBINARY_MAX), unique=True) functions = relationship("Function", backref=backref('file'), cascade_backrefs=True, cascade='all, delete-orphan', single_parent=True) defect_mods = relationship("DefectModification", backref=backref('file'), cascade_backrefs=True, cascade='all, delete-orphan', single_parent=True) change_metrics = relationship("ChangeMetric", backref=backref('file'), cascade_backrefs=True, cascade='all, delete-orphan', single_parent=True)
class Function(Base): ''' A table representing a function, which typically belongs to a file ''' __tablename__ = 'function' id = Column(Integer, primary_key=True, nullable=False, autoincrement=True) file_id = Column(Integer, ForeignKey('file.id'), nullable=False) function = Column(VARBINARY(_VARBINARY_MAX)) __table_args__ = (UniqueConstraint('file_id', 'function'),) defect_mods = relationship("DefectModification", backref=backref('function'), cascade_backrefs=True, cascade='all, delete-orphan', single_parent=True) change_metrics = relationship("ChangeMetric", backref=backref('function'), cascade_backrefs=True, cascade='all, delete-orphan', single_parent=True)
class Entry(Base): __tablename__ = 'entry' id = Column('entry_id', Integer, primary_key=True) date_entered = Column('date_entered', Date(), default=datetime.today()) date_results = Column('date_results', Date(), default=datetime.today()) prize = Column('prize', String(255)) prize_value = Column('prize_value', Float(precision=2)) prize_image = Column('prize_image', VARBINARY(length=255)) entry_requirements_id = Column('requirement_id', Integer, ForeignKey('entry_requirement.requirement_id')) results_id = Column('result_id', Integer, ForeignKey('prize_result.result_id')) def __repr__(self): return f'<entry(entry_requirement={self.entry_requirement_id}, \
class Pkanswer(Base): __tablename__ = 'pkAnswer' AnswerID = Column(Integer, primary_key=True) ChallengeID = Column(ForeignKey('pkChallenge.ChallengeID'), nullable=False, index=True) AnswerTypeID = Column(ForeignKey('ckAnswerType.AnswerTypeID'), nullable=False, index=True, server_default=u"'1'") Answer = Column(VARBINARY(256), nullable=False) #answers Salt = Column(BINARY(32), nullable=False) ckAnswerType = relationship(u'Ckanswertype') pkChallenge = relationship(u'Pkchallenge') def __repr__(self): return self.Answer
class DataFrame(DatabaseBaseClass): # Value used to make DataFrame as an abstract class __metaclass__ = ABCMeta # The table name needed by SQL Alchemy __tablename__ = 'data_frames' # Mete data of the table and considered as data members for the DataFrame class id = Column(Integer, primary_key=True, autoincrement=True) time = Column(DateTime, default=datetime.datetime.utcnow()) frame_id = Column(Integer, nullable=False) frame_value = Column(VARBINARY(8), nullable=False) lap_id = Column(Integer, ForeignKey("laps.id"), nullable=False) type = Column(String(30)) # Meta Data for sqlalchemy for join inheritance __mapper_args__ = { 'polymorphic_identity': DatabaseTablesNames.DATA_FRAME_TABLE, 'polymorphic_on': type } # link the DataFrame to Lap Class lap = relationship("Lap", back_populates=DatabaseTablesNames.DATA_FRAME_TABLE) @abstractmethod def __init__(self, frame_id: int, frame_value: bytes): self.frame_id = frame_id self.frame_value = frame_value # responsible for the representation of the data when printing the object @abstractmethod def __repr__(self): return "<Data Frame(record id='%d', time='%s', frame ID='%d', frame value='%s', type = '%s')>" \ % (self.id, self.time, self.frame_id, self.frame_value, self.type) # Updates the gui values @abstractmethod def update_gui(self, gui_interface: GUIInterface) -> None: pass
class File(Base): __tablename__ = 'files' __table_args__ = (Index('index3', 'filename', 'path', 'host_id', 'mode', 'size', 'mtime', 'uid', 'gid', unique=True), ) id = Column(BigIntId, primary_key=True, nullable=False, unique=True, autoincrement=True) path = Column(String(1023), nullable=False) filename = Column(String(255), nullable=False) owner = Column(String(48)) grp = Column(String(48)) uid = Column(INTEGER, nullable=False) gid = Column(INTEGER, nullable=False) mode = Column(INTEGER, nullable=False) size = Column(BIGINT, nullable=False) ctime = Column(TIMESTAMP) mtime = Column(TIMESTAMP) type = Column(Enum(u'c', u'd', u'f', u'l', u's'), nullable=False) links = Column(INTEGER, nullable=False, server_default=text("1")) sparseness = Column(Float, nullable=False, server_default=text("1")) shasum = Column(VARBINARY(64)) first_backup = Column(TIMESTAMP, nullable=False, server_default=func.now()) last_backup = Column(TIMESTAMP) # host_id = Column(ForeignKey(u'hosts.id'), primary_key=True, # nullable=False, index=True) host_id = Column(ForeignKey(u'hosts.id'), nullable=False, index=True) host = relationship('Host')
class CoinbaseInfo(Base): __tablename__ = 'coinbase' block_id = Column('block', Integer, ForeignKey('block.id'), primary_key=True) transaction_id = Column('transaction', BigInteger, ForeignKey('transaction.id'), unique=True) newcoins = Column(Float(asdecimal=True)) raw = Column(VARBINARY(256)) signature = Column(String(32), index=True) mainoutput_id = Column('mainoutput', BigInteger, ForeignKey('txout.id'), index=True) block = relationship('Block', back_populates='coinbaseinfo', uselist=False) transaction = relationship('Transaction', back_populates='coinbaseinfo', uselist=False) mainoutput = relationship('TransactionOutput')