mirror of
https://github.com/veekun/pokedex.git
synced 2024-08-20 18:16:34 +00:00
Pokemon species split: DB metadata changes
This commit is contained in:
parent
280c90b966
commit
bc244aeb53
1 changed files with 46 additions and 70 deletions
|
@ -1073,45 +1073,13 @@ class Pokemon(TableBase):
|
||||||
order = Column(Integer, nullable=False, index=True,
|
order = Column(Integer, nullable=False, index=True,
|
||||||
info=dict(description=u"Order for sorting. Almost national order, except families are grouped together."))
|
info=dict(description=u"Order for sorting. Almost national order, except families are grouped together."))
|
||||||
|
|
||||||
### Stuff to handle alternate Pokémon forms
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def is_base_form(self):
|
def name(self):
|
||||||
u"""Returns True iff the Pokémon is the base form for its species,
|
u"""Returns True iff the Pokémon is the base form for its species,
|
||||||
e.g. Land Shaymin.
|
e.g. Land Shaymin.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
return self.unique_form is None or self.unique_form.is_default
|
return self.default_form.pokemon_name or self.species.name
|
||||||
|
|
||||||
@property
|
|
||||||
def form_name(self):
|
|
||||||
u"""Returns the Pokémon's form name if it represents a particular form
|
|
||||||
and that form has a name, or None otherwise.
|
|
||||||
"""
|
|
||||||
|
|
||||||
# If self.unique_form is None, the short-circuit "and" will go ahead
|
|
||||||
# and return that. Otherwise, it'll return the form's name, which may
|
|
||||||
# also be None.
|
|
||||||
return self.unique_form and self.unique_form.name
|
|
||||||
|
|
||||||
@property
|
|
||||||
def full_name(self):
|
|
||||||
u"""Returns the Pokémon's name, including its form if applicable."""
|
|
||||||
|
|
||||||
if self.form_name:
|
|
||||||
return u'%s %s' % (self.form_name, self.name)
|
|
||||||
else:
|
|
||||||
return self.name
|
|
||||||
|
|
||||||
@property
|
|
||||||
def normal_form(self):
|
|
||||||
u"""Returns the normal form for this Pokémon; i.e., this will return
|
|
||||||
regular Deoxys when called on any Deoxys form.
|
|
||||||
"""
|
|
||||||
|
|
||||||
if self.unique_form:
|
|
||||||
return self.unique_form.form_base_pokemon
|
|
||||||
return self
|
|
||||||
|
|
||||||
### Not forms!
|
### Not forms!
|
||||||
|
|
||||||
|
@ -1268,9 +1236,9 @@ class PokemonForm(TableBase):
|
||||||
|
|
||||||
create_translation_table('pokemon_form_names', PokemonForm, 'names',
|
create_translation_table('pokemon_form_names', PokemonForm, 'names',
|
||||||
relation_lazy='joined',
|
relation_lazy='joined',
|
||||||
form_name = Column(Unicode(32), nullable=False, index=True,
|
form_name = Column(Unicode(32), nullable=True, index=True,
|
||||||
info=dict(description=u"The full form name, e.g. 'Sky Forme', for pokémon with different forms", format='plaintext', official=True)),
|
info=dict(description=u"The full form name, e.g. 'Sky Forme', for pokémon with different forms", format='plaintext', official=True)),
|
||||||
pokemon_name = Column(Unicode(32), nullable=False, index=True,
|
pokemon_name = Column(Unicode(32), nullable=True, index=True,
|
||||||
info=dict(description=u"The full pokémon name, e.g. 'Sky Shaymin', for pokémon with different forms", format='plaintext', official=True)),
|
info=dict(description=u"The full pokémon name, e.g. 'Sky Shaymin', for pokémon with different forms", format='plaintext', official=True)),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -1700,9 +1668,6 @@ EncounterSlot.method = relationship(EncounterMethod,
|
||||||
EncounterSlot.version_group = relationship(VersionGroup, innerjoin=True)
|
EncounterSlot.version_group = relationship(VersionGroup, innerjoin=True)
|
||||||
|
|
||||||
|
|
||||||
EvolutionChain.growth_rate = relationship(GrowthRate,
|
|
||||||
innerjoin=True,
|
|
||||||
backref='evolution_chains')
|
|
||||||
EvolutionChain.baby_trigger_item = relationship(Item,
|
EvolutionChain.baby_trigger_item = relationship(Item,
|
||||||
backref='evolution_chains')
|
backref='evolution_chains')
|
||||||
|
|
||||||
|
@ -1945,22 +1910,6 @@ Pokemon.dream_ability = relationship(Ability,
|
||||||
order_by=Pokemon.order,
|
order_by=Pokemon.order,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
Pokemon.pokemon_color = relationship(PokemonColor,
|
|
||||||
innerjoin=True,
|
|
||||||
backref='pokemon')
|
|
||||||
Pokemon.color = association_proxy('pokemon_color', 'name')
|
|
||||||
Pokemon.dex_numbers = relationship(PokemonDexNumber,
|
|
||||||
innerjoin=True,
|
|
||||||
order_by=PokemonDexNumber.pokedex_id.asc(),
|
|
||||||
backref='pokemon')
|
|
||||||
Pokemon.egg_groups = relationship(EggGroup,
|
|
||||||
secondary=PokemonEggGroup.__table__,
|
|
||||||
innerjoin=True,
|
|
||||||
order_by=PokemonEggGroup.egg_group_id.asc(),
|
|
||||||
backref=backref('pokemon', order_by=Pokemon.order.asc()))
|
|
||||||
Pokemon.evolution_chain = relationship(EvolutionChain,
|
|
||||||
innerjoin=True,
|
|
||||||
backref=backref('pokemon', order_by=Pokemon.order.asc()))
|
|
||||||
Pokemon.forms = relationship(PokemonForm,
|
Pokemon.forms = relationship(PokemonForm,
|
||||||
primaryjoin=Pokemon.id==PokemonForm.pokemon_id,
|
primaryjoin=Pokemon.id==PokemonForm.pokemon_id,
|
||||||
order_by=(PokemonForm.order.asc(), PokemonForm.form_identifier.asc()))
|
order_by=(PokemonForm.order.asc(), PokemonForm.form_identifier.asc()))
|
||||||
|
@ -1969,24 +1918,18 @@ Pokemon.default_form = relationship(PokemonForm,
|
||||||
Pokemon.id==PokemonForm.pokemon_id,
|
Pokemon.id==PokemonForm.pokemon_id,
|
||||||
PokemonForm.is_default==True),
|
PokemonForm.is_default==True),
|
||||||
uselist=False)
|
uselist=False)
|
||||||
Pokemon.pokemon_habitat = relationship(PokemonHabitat,
|
|
||||||
backref='pokemon')
|
|
||||||
Pokemon.habitat = association_proxy('pokemon_habitat', 'name')
|
|
||||||
Pokemon.items = relationship(PokemonItem,
|
Pokemon.items = relationship(PokemonItem,
|
||||||
backref='pokemon')
|
backref='pokemon')
|
||||||
Pokemon.generation = relationship(Generation,
|
|
||||||
innerjoin=True,
|
|
||||||
backref='pokemon')
|
|
||||||
Pokemon.shape = relationship(PokemonShape,
|
|
||||||
innerjoin=True,
|
|
||||||
backref='pokemon')
|
|
||||||
Pokemon.stats = relationship(PokemonStat,
|
Pokemon.stats = relationship(PokemonStat,
|
||||||
innerjoin=True,
|
innerjoin=True,
|
||||||
order_by=PokemonStat.stat_id.asc(),
|
order_by=PokemonStat.stat_id.asc(),
|
||||||
backref='pokemon')
|
backref='pokemon')
|
||||||
|
Pokemon.species = relationship(PokemonSpecies,
|
||||||
|
innerjoin=True,
|
||||||
|
backref='pokemon')
|
||||||
Pokemon.types = relationship(Type,
|
Pokemon.types = relationship(Type,
|
||||||
secondary=PokemonType.__table__,
|
secondary=PokemonType.__table__,
|
||||||
innerjoin=True,
|
innerjoin=True, lazy='joined',
|
||||||
order_by=PokemonType.slot.asc(),
|
order_by=PokemonType.slot.asc(),
|
||||||
backref=backref('pokemon', order_by=Pokemon.order))
|
backref=backref('pokemon', order_by=Pokemon.order))
|
||||||
|
|
||||||
|
@ -2012,15 +1955,12 @@ PokemonEvolution.party_species = relationship(PokemonSpecies,
|
||||||
PokemonEvolution.trade_species = relationship(PokemonSpecies,
|
PokemonEvolution.trade_species = relationship(PokemonSpecies,
|
||||||
primaryjoin=PokemonEvolution.trade_species_id==PokemonSpecies.id)
|
primaryjoin=PokemonEvolution.trade_species_id==PokemonSpecies.id)
|
||||||
|
|
||||||
PokemonSpeciesFlavorText.version = relationship(Version, innerjoin=True, lazy='joined')
|
|
||||||
PokemonSpeciesFlavorText.language = relationship(Language, innerjoin=True, lazy='joined')
|
|
||||||
|
|
||||||
PokemonForm.pokemon = relationship(Pokemon,
|
PokemonForm.pokemon = relationship(Pokemon,
|
||||||
primaryjoin=PokemonForm.pokemon_id==Pokemon.id,
|
primaryjoin=PokemonForm.pokemon_id==Pokemon.id,
|
||||||
innerjoin=True)
|
innerjoin=True)
|
||||||
|
PokemonForm.species = association_proxy('pokemon', 'species')
|
||||||
PokemonForm.version_group = relationship(VersionGroup,
|
PokemonForm.version_group = relationship(VersionGroup,
|
||||||
innerjoin=True)
|
innerjoin=True)
|
||||||
PokemonForm.form_group = association_proxy('form_base_pokemon', 'form_group')
|
|
||||||
PokemonForm.pokeathlon_stats = relationship(PokemonFormPokeathlonStat,
|
PokemonForm.pokeathlon_stats = relationship(PokemonFormPokeathlonStat,
|
||||||
order_by=PokemonFormPokeathlonStat.pokeathlon_stat_id,
|
order_by=PokemonFormPokeathlonStat.pokeathlon_stat_id,
|
||||||
backref='pokemon_form')
|
backref='pokemon_form')
|
||||||
|
@ -2064,7 +2004,43 @@ PokemonSpecies.evolutions = relationship(PokemonEvolution,
|
||||||
backref=backref('evolved_species', innerjoin=True, lazy='joined'))
|
backref=backref('evolved_species', innerjoin=True, lazy='joined'))
|
||||||
PokemonSpecies.flavor_text = relationship(PokemonSpeciesFlavorText,
|
PokemonSpecies.flavor_text = relationship(PokemonSpeciesFlavorText,
|
||||||
order_by=PokemonSpeciesFlavorText.version_id.asc(),
|
order_by=PokemonSpeciesFlavorText.version_id.asc(),
|
||||||
backref='pokemon')
|
backref='species')
|
||||||
|
PokemonSpecies.growth_rate = relationship(GrowthRate,
|
||||||
|
innerjoin=True,
|
||||||
|
backref='evolution_chains')
|
||||||
|
PokemonSpecies.pokemon_habitat = relationship(PokemonHabitat,
|
||||||
|
backref='species')
|
||||||
|
PokemonSpecies.habitat = association_proxy('pokemon_habitat', 'name')
|
||||||
|
PokemonSpecies.pokemon_color = relationship(PokemonColor,
|
||||||
|
innerjoin=True,
|
||||||
|
backref='species')
|
||||||
|
PokemonSpecies.color = association_proxy('pokemon_color', 'name')
|
||||||
|
PokemonSpecies.egg_groups = relationship(EggGroup,
|
||||||
|
secondary=PokemonEggGroup.__table__,
|
||||||
|
innerjoin=True,
|
||||||
|
order_by=PokemonEggGroup.egg_group_id.asc(),
|
||||||
|
backref=backref('species', order_by=Pokemon.order.asc()))
|
||||||
|
PokemonSpecies.forms = relationship(PokemonForm,
|
||||||
|
secondary=Pokemon.__table__,
|
||||||
|
primaryjoin=PokemonSpecies.id==Pokemon.species_id,
|
||||||
|
secondaryjoin=Pokemon.id==PokemonForm.pokemon_id,
|
||||||
|
order_by=Pokemon.order.asc())
|
||||||
|
PokemonSpecies.evolution_chain = relationship(EvolutionChain,
|
||||||
|
innerjoin=True,
|
||||||
|
backref=backref('species', order_by=Pokemon.order.asc()))
|
||||||
|
PokemonSpecies.dex_numbers = relationship(PokemonDexNumber,
|
||||||
|
innerjoin=True,
|
||||||
|
order_by=PokemonDexNumber.pokedex_id.asc(),
|
||||||
|
backref='species')
|
||||||
|
PokemonSpecies.generation = relationship(Generation,
|
||||||
|
innerjoin=True,
|
||||||
|
backref='species')
|
||||||
|
PokemonSpecies.shape = relationship(PokemonShape,
|
||||||
|
innerjoin=True,
|
||||||
|
backref='species')
|
||||||
|
|
||||||
|
PokemonSpeciesFlavorText.version = relationship(Version, innerjoin=True, lazy='joined')
|
||||||
|
PokemonSpeciesFlavorText.language = relationship(Language, innerjoin=True, lazy='joined')
|
||||||
|
|
||||||
Region.generation = relationship(Generation, uselist=False)
|
Region.generation = relationship(Generation, uselist=False)
|
||||||
Region.version_group_regions = relationship(VersionGroupRegion,
|
Region.version_group_regions = relationship(VersionGroupRegion,
|
||||||
|
|
Loading…
Reference in a new issue