class Language(TableBase):
__tablename__ = 'languages'
id = Column(Integer, primary_key=True, nullable=False)
+ iso639 = Column(Unicode(2), nullable=False)
iso3166 = Column(Unicode(2), nullable=False)
name = Column(Unicode(16), nullable=False)
species = Column(Unicode(16), nullable=False)
color_id = Column(Integer, ForeignKey('pokemon_colors.id'), nullable=False)
pokemon_shape_id = Column(Integer, ForeignKey('pokemon_shapes.id'), nullable=False)
- habitat = Column(Unicode(16), nullable=False)
+ habitat_id = Column(Integer, ForeignKey('pokemon_habitats.id'), nullable=True)
gender_rate = Column(Integer, nullable=False)
capture_rate = Column(Integer, nullable=False)
base_experience = Column(Integer, nullable=False)
"""Returns the name of this Pokémon, including its Forme, if any."""
if self.forme_name:
- return "%s %s" % (self.forme_name.capitalize(), self.name)
+ return "%s %s" % (self.forme_name.title(), self.name)
return self.name
@property
class PokemonFormGroup(TableBase):
__tablename__ = 'pokemon_form_groups'
pokemon_id = Column(Integer, ForeignKey('pokemon.id'), primary_key=True, nullable=False, autoincrement=False)
+ is_battle_only = Column(Boolean, nullable=False)
description = Column(Unicode(512), nullable=False)
class PokemonFormSprite(TableBase):
pokemon_id = Column(Integer, ForeignKey('pokemon.id'), primary_key=True, nullable=False, autoincrement=False)
introduced_in_version_group_id = Column(Integer, ForeignKey('version_groups.id'), primary_key=True, nullable=False, autoincrement=False)
name = Column(Unicode(16), nullable=True)
+ is_default = Column(Boolean, nullable=True)
+
+class PokemonHabitat(TableBase):
+ __tablename__ = 'pokemon_habitats'
+ id = Column(Integer, primary_key=True, nullable=False, autoincrement=False)
+ name = Column(Unicode(16), nullable=False)
class PokemonItem(TableBase):
__tablename__ = 'pokemon_items'
Pokemon.pokemon_color = relation(PokemonColor, backref='pokemon')
Pokemon.color = association_proxy('pokemon_color', 'name')
Pokemon.dex_numbers = relation(PokemonDexNumber, backref='pokemon')
+Pokemon.default_form_sprite = relation(PokemonFormSprite,
+ primaryjoin=and_(
+ Pokemon.id==PokemonFormSprite.pokemon_id,
+ PokemonFormSprite.is_default==True,
+ ),
+ uselist=False)
Pokemon.egg_groups = relation(EggGroup, secondary=PokemonEggGroup.__table__,
order_by=PokemonEggGroup.egg_group_id,
backref='pokemon')
remote_side=[Pokemon.id]))
Pokemon.flavor_text = relation(PokemonFlavorText, order_by=PokemonFlavorText.pokemon_id, backref='pokemon')
Pokemon.foreign_names = relation(PokemonName, backref='pokemon')
+Pokemon.pokemon_habitat = relation(PokemonHabitat, backref='pokemon')
+Pokemon.habitat = association_proxy('pokemon_habitat', 'name')
Pokemon.items = relation(PokemonItem)
Pokemon.generation = relation(Generation, backref='pokemon')
Pokemon.shape = relation(PokemonShape, backref='pokemon')