class Members(Base): __tablename__ = 'Members' memberIdIndex = Column(INTEGER(unsigned=True), primary_key=True, autoincrement=True, nullable=False) memberId = Column(VARCHAR(255), nullable=False, unique=True) password = Column(VARCHAR(1024), nullable=False) memberName = Column(VARCHAR(1024), nullable=False) contactNumber = Column(VARCHAR(20), nullable=True) emailAddress = Column(VARCHAR(1024), nullable=True) detailInformation = Column(VARCHAR(1024), nullable=True) authority = Column(SET(SETResources().const.ADMINISTRATOR, SETResources().const.USER), default=SETResources().const.USER, nullable=False) limitedUseDate = Column(DATETIME, default=None, nullable=True) signedInDate = Column(DATETIME, nullable=False) lastAccessDate = Column(DATETIME, nullable=True) comment = Column(TEXT, nullable=True) isDeleted = Column(ENUM(ENUMResources().const.TRUE, ENUMResources().const.FALSE), default=ENUMResources().const.FALSE, nullable=False)
class Tokens(db.Model): __tablename__ = 'tokens' id = db.Column(db.Integer, primary_key=True) token_hash = db.Column(db.String(63)) name = db.Column(db.String(127)) timestamp = db.Column(db.DateTime, default=datetime.datetime.now) scope = db.Column(SET('admin', 'read'), server_default=literal('read')) def __repr__(self): return '<Token %r>' % self.name
class DocumentModel(db.Model): __tablename__ = 'documents' __table_args__ = {'mysql_charset': 'utf8'} category_enum = ('Null', 'family', 'business', 'shopping', 'sports', 'food', 'entertain', 'hobby', 'tech', 'health') id = Column(INTEGER(20, unsigned=True), primary_key=True) username = Column(String(80), nullable=False) content = db.Column(LONGTEXT, nullable=False) category = db.Column(SET(*category_enum)) created_date = Column(TIMESTAMP, default=datetime.datetime.utcnow())
class Courses(Base): __tablename__ = 'Courses' # TODO: update schema and this Courses class to follow snake_case convention id = Column(Integer, primary_key=True) dept = Column(String(5)) courseNum = Column(Integer) termsOffered = Column(SET('F', 'W', 'SP', 'SU', 'TBD')) units = Column(String(5)) courseName = Column(String(255)) raw_concurrent_text = Column(Text) raw_recommended_text = Column(Text) raw_prerequisites_text = Column(Text) def __repr__(self): return "<Courses (dept={}, course_num={})>".format( self.dept, self.courseNum)
class Sections(Base): __tablename__ = "Sections" id_sections = Column(Integer, primary_key=True) section_name = Column(String(255)) instructor = Column(String(255)) alias = Column(String(255)) title = Column(String(255)) phone = Column(String(255)) office = Column(String(255)) type = Column(Enum(SectionType)) days = Column(SET('M', 'T', 'W', 'R', 'F')) start = Column(String(255)) end = Column(String(255)) location = Column(String(255)) department = Column(String(255)) def __repr__(self): D = self.__dict__ attributes = [ f"{k}={D.get(k)}" for k in self.__dir__() if not k.startswith("_") ] attributes_string = ", ".join(attributes) return f"{self.__class__.__name__}({attributes_string})"
def test_set_warning(self): SET("a", "b") with expect_deprecated_20( "The 'quoting' parameter to :class:`.mysql.SET` is deprecated.*" ): SET("a", quoting="foo")
class Champions(Base): __tablename__ = 'Champions' id = Column(Integer, primary_key=True, autoincrement=False) name = Column(String(50), nullable=False) champ_key = Column(String(50), nullable=False) rols = Column(SET("Fighter", "Assassin", "Mage", "Support", "Tank", "Marksman"), nullable=False) image_champion = Column(String(100), nullable=False) image_passive = Column(String(100), nullable=False) title = relationship("ChampionsTitles", lazy="dynamic") passive = relationship("PassivesTranslations", lazy="dynamic") spells = relationship("ChampionsSpells") skins = relationship("ChampionsSkins", lazy="dynamic") info = relationship("ChampionsInfo", uselist=False) ally_tips = relationship("ChampionAllyTips", lazy="dynamic") enemy_tips = relationship("ChampionEnemyTips", lazy="dynamic") def toJson(self, id_locale): version = Configuration.get_version("champion version") return { "id": self.id, "name": self.name, "image": riot_urls.CHAMPIONS_SQUARE_URL.format(version, self.image_champion), "rols": list(self.rols), "title": self.get_title(id_locale), "passive": self.get_passive(id_locale, version), "spells": self.get_spells(id_locale, version), "skins": self.get_skins(id_locale), "info": self.get_info(), "ally_tips": self.get_ally_tips(id_locale), "enemy_tips": self.get_enemy_tips(id_locale) } def get_ally_tips(self, id_locale): """ :param id_locale: id of the desired language :return: return a list of tips as strings """ return [ item.tip for item in self.ally_tips.filter_by(id_language=id_locale) ] def get_enemy_tips(self, id_locale): """ :param id_locale: id of the desired language :return: return a list of tips as strings """ return [ item.tip for item in self.enemy_tips.filter_by(id_language=id_locale) ] def get_spells(self, id_locale, version): """ :param id_locale: id of the desired language :return: return a list of spells as dictionaries """ spells = [] for spell in self.spells: item = spell.translations.filter_by(id_language=id_locale).one() data = { "image": riot_urls.ABILITIES_URL.format(version, spell.image), "name": item.name, "description": item.description } spells.append(data) return spells def get_skins(self, id_locale): """ :param id_locale: id of the desired language :return: a list of skins as dictionaries """ skins = [] for skin in self.skins: data = { "image": riot_urls.CHAMPIONS_SPLASH_URL.format(self.champ_key, skin.num), "name": skin.translations.filter_by(id_language=id_locale).one().name } skins.append(data) return skins def get_passive(self, id_locale, version): passive = self.passive.filter_by(id_language=id_locale).one() return { "name": passive.name, "description": passive.description, "image": riot_urls.PASSIVE_ABILITIES_URL.format(version, self.image_passive) } def get_title(self, id_locale): return self.title.filter_by(id_language=id_locale).one().title def get_info(self): return { "difficulty": self.info.difficulty, "attack": self.info.attack, "defense": self.info.defense, "magic": self.info.magic }