mirror of
https://github.com/veekun/pokedex.git
synced 2024-08-20 18:16:34 +00:00
Reorder the classes in tables.py alphabetically. Also, test the order.
This commit is contained in:
parent
3bfb7f0bb9
commit
7b93c11f7e
2 changed files with 156 additions and 150 deletions
|
@ -359,22 +359,6 @@ class EncounterConditionValueMap(TableBase):
|
||||||
encounter_condition_value_id = Column(Integer, ForeignKey('encounter_condition_values.id'), primary_key=True, nullable=False, autoincrement=False,
|
encounter_condition_value_id = Column(Integer, ForeignKey('encounter_condition_values.id'), primary_key=True, nullable=False, autoincrement=False,
|
||||||
info=dict(description="The ID of the encounter condition value"))
|
info=dict(description="The ID of the encounter condition value"))
|
||||||
|
|
||||||
class EncounterTerrain(TableBase):
|
|
||||||
u"""A way the player can enter a wild encounter, e.g., surfing, fishing, or walking through tall grass.
|
|
||||||
"""
|
|
||||||
|
|
||||||
__tablename__ = 'encounter_terrain'
|
|
||||||
__singlename__ = __tablename__
|
|
||||||
id = Column(Integer, primary_key=True, nullable=False,
|
|
||||||
info=dict(description="A unique ID for the terrain"))
|
|
||||||
identifier = Column(Unicode(64), nullable=False,
|
|
||||||
info=dict(description="An identifier", format='identifier'))
|
|
||||||
|
|
||||||
create_translation_table('encounter_terrain_prose', EncounterTerrain, 'prose',
|
|
||||||
name = Column(Unicode(64), nullable=False, index=True,
|
|
||||||
info=dict(description="The name", format='plaintext', official=False)),
|
|
||||||
)
|
|
||||||
|
|
||||||
class EncounterSlot(TableBase):
|
class EncounterSlot(TableBase):
|
||||||
u"""An abstract "slot" within a terrain, associated with both some set of conditions and a rarity.
|
u"""An abstract "slot" within a terrain, associated with both some set of conditions and a rarity.
|
||||||
|
|
||||||
|
@ -394,6 +378,22 @@ class EncounterSlot(TableBase):
|
||||||
rarity = Column(Integer, nullable=False,
|
rarity = Column(Integer, nullable=False,
|
||||||
info=dict(description="The chance of the encounter as a percentage"))
|
info=dict(description="The chance of the encounter as a percentage"))
|
||||||
|
|
||||||
|
class EncounterTerrain(TableBase):
|
||||||
|
u"""A way the player can enter a wild encounter, e.g., surfing, fishing, or walking through tall grass.
|
||||||
|
"""
|
||||||
|
|
||||||
|
__tablename__ = 'encounter_terrain'
|
||||||
|
__singlename__ = __tablename__
|
||||||
|
id = Column(Integer, primary_key=True, nullable=False,
|
||||||
|
info=dict(description="A unique ID for the terrain"))
|
||||||
|
identifier = Column(Unicode(64), nullable=False,
|
||||||
|
info=dict(description="An identifier", format='identifier'))
|
||||||
|
|
||||||
|
create_translation_table('encounter_terrain_prose', EncounterTerrain, 'prose',
|
||||||
|
name = Column(Unicode(64), nullable=False, index=True,
|
||||||
|
info=dict(description="The name", format='plaintext', official=False)),
|
||||||
|
)
|
||||||
|
|
||||||
class EvolutionChain(TableBase):
|
class EvolutionChain(TableBase):
|
||||||
u"""A family of Pokémon that are linked by evolution
|
u"""A family of Pokémon that are linked by evolution
|
||||||
"""
|
"""
|
||||||
|
@ -683,6 +683,48 @@ class Machine(TableBase):
|
||||||
"""
|
"""
|
||||||
return self.machine_number >= 100
|
return self.machine_number >= 100
|
||||||
|
|
||||||
|
class Move(TableBase):
|
||||||
|
u"""A Move: technique or attack a Pokémon can learn to use
|
||||||
|
"""
|
||||||
|
__tablename__ = 'moves'
|
||||||
|
__singlename__ = 'move'
|
||||||
|
id = Column(Integer, primary_key=True, nullable=False,
|
||||||
|
info=dict(description="A numeric ID"))
|
||||||
|
identifier = Column(Unicode(24), nullable=False,
|
||||||
|
info=dict(description="An identifier", format='identifier'))
|
||||||
|
generation_id = Column(Integer, ForeignKey('generations.id'), nullable=False,
|
||||||
|
info=dict(description="ID of the generation this move first appeared in"))
|
||||||
|
type_id = Column(Integer, ForeignKey('types.id'), nullable=False,
|
||||||
|
info=dict(description="ID of the move's elemental type"))
|
||||||
|
power = Column(SmallInteger, nullable=False,
|
||||||
|
info=dict(description="Base power of the move"))
|
||||||
|
pp = Column(SmallInteger, nullable=True,
|
||||||
|
info=dict(description="Base PP (Power Points) of the move, nullable if not applicable (e.g. Struggle and Shadow moves)."))
|
||||||
|
accuracy = Column(SmallInteger, nullable=True,
|
||||||
|
info=dict(description="Accuracy of the move; NULL means it never misses"))
|
||||||
|
priority = Column(SmallInteger, nullable=False,
|
||||||
|
info=dict(description="The move's priority bracket"))
|
||||||
|
target_id = Column(Integer, ForeignKey('move_targets.id'), nullable=False,
|
||||||
|
info=dict(description="ID of the target (range) of the move"))
|
||||||
|
damage_class_id = Column(Integer, ForeignKey('move_damage_classes.id'), nullable=False,
|
||||||
|
info=dict(description="ID of the damage class (physical/special) of the move"))
|
||||||
|
effect_id = Column(Integer, ForeignKey('move_effects.id'), nullable=False,
|
||||||
|
info=dict(description="ID of the move's effect"))
|
||||||
|
effect_chance = Column(Integer, nullable=True,
|
||||||
|
info=dict(description="The chance for a secondary effect. What this is a chance of is specified by the move's effect."))
|
||||||
|
contest_type_id = Column(Integer, ForeignKey('contest_types.id'), nullable=True,
|
||||||
|
info=dict(description="ID of the move's Contest type (e.g. cool or smart)"))
|
||||||
|
contest_effect_id = Column(Integer, ForeignKey('contest_effects.id'), nullable=True,
|
||||||
|
info=dict(description="ID of the move's Contest effect"))
|
||||||
|
super_contest_effect_id = Column(Integer, ForeignKey('super_contest_effects.id'), nullable=True,
|
||||||
|
info=dict(description="ID of the move's Super Contest effect"))
|
||||||
|
|
||||||
|
create_translation_table('move_names', Move, 'names',
|
||||||
|
relation_lazy='joined',
|
||||||
|
name = Column(Unicode(24), nullable=False, index=True,
|
||||||
|
info=dict(description="The name", format='plaintext', official=True))
|
||||||
|
)
|
||||||
|
|
||||||
class MoveBattleStyle(TableBase):
|
class MoveBattleStyle(TableBase):
|
||||||
u"""A battle style of a move""" # XXX: Explain better
|
u"""A battle style of a move""" # XXX: Explain better
|
||||||
__tablename__ = 'move_battle_styles'
|
__tablename__ = 'move_battle_styles'
|
||||||
|
@ -698,33 +740,26 @@ create_translation_table('move_battle_style_prose', MoveBattleStyle, 'prose',
|
||||||
info=dict(description="The name", format='plaintext', official=False)),
|
info=dict(description="The name", format='plaintext', official=False)),
|
||||||
)
|
)
|
||||||
|
|
||||||
class MoveEffectCategory(TableBase):
|
class MoveChangelog(TableBase):
|
||||||
u"""Category of a move effect
|
"""History of changes to moves across main game versions."""
|
||||||
"""
|
__tablename__ = 'move_changelog'
|
||||||
__tablename__ = 'move_effect_categories'
|
__singlename__ = 'move_changelog'
|
||||||
__singlename__ = 'move_effect_category'
|
move_id = Column(Integer, ForeignKey('moves.id'), primary_key=True, nullable=False,
|
||||||
id = Column(Integer, primary_key=True, nullable=False,
|
info=dict(description="ID of the move that changed"))
|
||||||
info=dict(description="A numeric ID"))
|
changed_in_version_group_id = Column(Integer, ForeignKey('version_groups.id'), primary_key=True, nullable=False,
|
||||||
identifier = Column(Unicode(64), nullable=False,
|
info=dict(description="ID of the version group in which the move changed"))
|
||||||
info=dict(description="An identifier", format='identifier'))
|
type_id = Column(Integer, ForeignKey('types.id'), nullable=True,
|
||||||
can_affect_user = Column(Boolean, nullable=False,
|
info=dict(description="Prior type of the move, or NULL if unchanged"))
|
||||||
info=dict(description="Set if the user can be affected"))
|
power = Column(SmallInteger, nullable=True,
|
||||||
|
info=dict(description="Prior base power of the move, or NULL if unchanged"))
|
||||||
create_translation_table('move_effect_category_prose', MoveEffectCategory, 'prose',
|
pp = Column(SmallInteger, nullable=True,
|
||||||
name = Column(Unicode(64), nullable=False, index=True,
|
info=dict(description="Prior base PP of the move, or NULL if unchanged"))
|
||||||
info=dict(description="The name", format='plaintext', official=False)),
|
accuracy = Column(SmallInteger, nullable=True,
|
||||||
)
|
info=dict(description="Prior accuracy of the move, or NULL if unchanged"))
|
||||||
|
effect_id = Column(Integer, ForeignKey('move_effects.id'), nullable=True,
|
||||||
class MoveEffectCategoryMap(TableBase):
|
info=dict(description="Prior ID of the effect, or NULL if unchanged"))
|
||||||
u"""Maps a move effect category to a move effect
|
effect_chance = Column(Integer, nullable=True,
|
||||||
"""
|
info=dict(description="Prior effect chance, or NULL if unchanged"))
|
||||||
__tablename__ = 'move_effect_category_map'
|
|
||||||
move_effect_id = Column(Integer, ForeignKey('move_effects.id'), primary_key=True, nullable=False,
|
|
||||||
info=dict(description="ID of the move effect"))
|
|
||||||
move_effect_category_id = Column(Integer, ForeignKey('move_effect_categories.id'), primary_key=True, nullable=False,
|
|
||||||
info=dict(description="ID of the category"))
|
|
||||||
affects_user = Column(Boolean, primary_key=True, nullable=False,
|
|
||||||
info=dict(description="Set if the user is affected"))
|
|
||||||
|
|
||||||
class MoveDamageClass(TableBase):
|
class MoveDamageClass(TableBase):
|
||||||
u"""Any of the damage classes moves can have, i.e. physical, special, or non-damaging.
|
u"""Any of the damage classes moves can have, i.e. physical, special, or non-damaging.
|
||||||
|
@ -759,6 +794,34 @@ create_translation_table('move_effect_prose', MoveEffect, 'prose',
|
||||||
info=dict(description="A detailed description of the effect", format='plaintext')),
|
info=dict(description="A detailed description of the effect", format='plaintext')),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
class MoveEffectCategory(TableBase):
|
||||||
|
u"""Category of a move effect
|
||||||
|
"""
|
||||||
|
__tablename__ = 'move_effect_categories'
|
||||||
|
__singlename__ = 'move_effect_category'
|
||||||
|
id = Column(Integer, primary_key=True, nullable=False,
|
||||||
|
info=dict(description="A numeric ID"))
|
||||||
|
identifier = Column(Unicode(64), nullable=False,
|
||||||
|
info=dict(description="An identifier", format='identifier'))
|
||||||
|
can_affect_user = Column(Boolean, nullable=False,
|
||||||
|
info=dict(description="Set if the user can be affected"))
|
||||||
|
|
||||||
|
create_translation_table('move_effect_category_prose', MoveEffectCategory, 'prose',
|
||||||
|
name = Column(Unicode(64), nullable=False, index=True,
|
||||||
|
info=dict(description="The name", format='plaintext', official=False)),
|
||||||
|
)
|
||||||
|
|
||||||
|
class MoveEffectCategoryMap(TableBase):
|
||||||
|
u"""Maps a move effect category to a move effect
|
||||||
|
"""
|
||||||
|
__tablename__ = 'move_effect_category_map'
|
||||||
|
move_effect_id = Column(Integer, ForeignKey('move_effects.id'), primary_key=True, nullable=False,
|
||||||
|
info=dict(description="ID of the move effect"))
|
||||||
|
move_effect_category_id = Column(Integer, ForeignKey('move_effect_categories.id'), primary_key=True, nullable=False,
|
||||||
|
info=dict(description="ID of the category"))
|
||||||
|
affects_user = Column(Boolean, primary_key=True, nullable=False,
|
||||||
|
info=dict(description="Set if the user is affected"))
|
||||||
|
|
||||||
class MoveEffectChangelog(TableBase):
|
class MoveEffectChangelog(TableBase):
|
||||||
"""History of changes to move effects across main game versions."""
|
"""History of changes to move effects across main game versions."""
|
||||||
__tablename__ = 'move_effect_changelog'
|
__tablename__ = 'move_effect_changelog'
|
||||||
|
@ -910,70 +973,6 @@ create_translation_table('move_target_prose', MoveTarget, 'prose',
|
||||||
info=dict(description="A description", format='plaintext')),
|
info=dict(description="A description", format='plaintext')),
|
||||||
)
|
)
|
||||||
|
|
||||||
class Move(TableBase):
|
|
||||||
u"""A Move: technique or attack a Pokémon can learn to use
|
|
||||||
"""
|
|
||||||
__tablename__ = 'moves'
|
|
||||||
__singlename__ = 'move'
|
|
||||||
id = Column(Integer, primary_key=True, nullable=False,
|
|
||||||
info=dict(description="A numeric ID"))
|
|
||||||
identifier = Column(Unicode(24), nullable=False,
|
|
||||||
info=dict(description="An identifier", format='identifier'))
|
|
||||||
generation_id = Column(Integer, ForeignKey('generations.id'), nullable=False,
|
|
||||||
info=dict(description="ID of the generation this move first appeared in"))
|
|
||||||
type_id = Column(Integer, ForeignKey('types.id'), nullable=False,
|
|
||||||
info=dict(description="ID of the move's elemental type"))
|
|
||||||
power = Column(SmallInteger, nullable=False,
|
|
||||||
info=dict(description="Base power of the move"))
|
|
||||||
pp = Column(SmallInteger, nullable=True,
|
|
||||||
info=dict(description="Base PP (Power Points) of the move, nullable if not applicable (e.g. Struggle and Shadow moves)."))
|
|
||||||
accuracy = Column(SmallInteger, nullable=True,
|
|
||||||
info=dict(description="Accuracy of the move; NULL means it never misses"))
|
|
||||||
priority = Column(SmallInteger, nullable=False,
|
|
||||||
info=dict(description="The move's priority bracket"))
|
|
||||||
target_id = Column(Integer, ForeignKey('move_targets.id'), nullable=False,
|
|
||||||
info=dict(description="ID of the target (range) of the move"))
|
|
||||||
damage_class_id = Column(Integer, ForeignKey('move_damage_classes.id'), nullable=False,
|
|
||||||
info=dict(description="ID of the damage class (physical/special) of the move"))
|
|
||||||
effect_id = Column(Integer, ForeignKey('move_effects.id'), nullable=False,
|
|
||||||
info=dict(description="ID of the move's effect"))
|
|
||||||
effect_chance = Column(Integer, nullable=True,
|
|
||||||
info=dict(description="The chance for a secondary effect. What this is a chance of is specified by the move's effect."))
|
|
||||||
contest_type_id = Column(Integer, ForeignKey('contest_types.id'), nullable=True,
|
|
||||||
info=dict(description="ID of the move's Contest type (e.g. cool or smart)"))
|
|
||||||
contest_effect_id = Column(Integer, ForeignKey('contest_effects.id'), nullable=True,
|
|
||||||
info=dict(description="ID of the move's Contest effect"))
|
|
||||||
super_contest_effect_id = Column(Integer, ForeignKey('super_contest_effects.id'), nullable=True,
|
|
||||||
info=dict(description="ID of the move's Super Contest effect"))
|
|
||||||
|
|
||||||
create_translation_table('move_names', Move, 'names',
|
|
||||||
relation_lazy='joined',
|
|
||||||
name = Column(Unicode(24), nullable=False, index=True,
|
|
||||||
info=dict(description="The name", format='plaintext', official=True))
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
class MoveChangelog(TableBase):
|
|
||||||
"""History of changes to moves across main game versions."""
|
|
||||||
__tablename__ = 'move_changelog'
|
|
||||||
__singlename__ = 'move_changelog'
|
|
||||||
move_id = Column(Integer, ForeignKey('moves.id'), primary_key=True, nullable=False,
|
|
||||||
info=dict(description="ID of the move that changed"))
|
|
||||||
changed_in_version_group_id = Column(Integer, ForeignKey('version_groups.id'), primary_key=True, nullable=False,
|
|
||||||
info=dict(description="ID of the version group in which the move changed"))
|
|
||||||
type_id = Column(Integer, ForeignKey('types.id'), nullable=True,
|
|
||||||
info=dict(description="Prior type of the move, or NULL if unchanged"))
|
|
||||||
power = Column(SmallInteger, nullable=True,
|
|
||||||
info=dict(description="Prior base power of the move, or NULL if unchanged"))
|
|
||||||
pp = Column(SmallInteger, nullable=True,
|
|
||||||
info=dict(description="Prior base PP of the move, or NULL if unchanged"))
|
|
||||||
accuracy = Column(SmallInteger, nullable=True,
|
|
||||||
info=dict(description="Prior accuracy of the move, or NULL if unchanged"))
|
|
||||||
effect_id = Column(Integer, ForeignKey('move_effects.id'), nullable=True,
|
|
||||||
info=dict(description="Prior ID of the effect, or NULL if unchanged"))
|
|
||||||
effect_chance = Column(Integer, nullable=True,
|
|
||||||
info=dict(description="Prior effect chance, or NULL if unchanged"))
|
|
||||||
|
|
||||||
class Nature(TableBase):
|
class Nature(TableBase):
|
||||||
u"""A nature a Pokémon can have, such as Calm or Brave
|
u"""A nature a Pokémon can have, such as Calm or Brave
|
||||||
"""
|
"""
|
||||||
|
@ -1391,6 +1390,17 @@ class PokemonFormPokeathlonStat(TableBase):
|
||||||
maximum_stat = Column(Integer, nullable=False, autoincrement=False,
|
maximum_stat = Column(Integer, nullable=False, autoincrement=False,
|
||||||
info=dict(description=u'The maximum value for this stat for this Pokémon form.'))
|
info=dict(description=u'The maximum value for this stat for this Pokémon form.'))
|
||||||
|
|
||||||
|
class PokemonGameIndex(TableBase):
|
||||||
|
u"""The number of a Pokémon a game uses internally
|
||||||
|
"""
|
||||||
|
__tablename__ = 'pokemon_game_indices'
|
||||||
|
pokemon_id = Column(Integer, ForeignKey('pokemon.id'), primary_key=True, autoincrement=False, nullable=False,
|
||||||
|
info=dict(description=u"Database ID of the Pokémon"))
|
||||||
|
generation_id = Column(Integer, ForeignKey('generations.id'), primary_key=True, autoincrement=False, nullable=False,
|
||||||
|
info=dict(description=u"Database ID of the generation"))
|
||||||
|
game_index = Column(Integer, nullable=False,
|
||||||
|
info=dict(description=u"Internal ID the generation's games use for the Pokémon"))
|
||||||
|
|
||||||
class PokemonHabitat(TableBase):
|
class PokemonHabitat(TableBase):
|
||||||
u"""The habitat of a Pokémon, as given in the FireRed/LeafGreen version Pokédex
|
u"""The habitat of a Pokémon, as given in the FireRed/LeafGreen version Pokédex
|
||||||
"""
|
"""
|
||||||
|
@ -1407,17 +1417,6 @@ create_translation_table('pokemon_habitat_names', PokemonHabitat, 'names',
|
||||||
info=dict(description="The name", format='plaintext', official=True)),
|
info=dict(description="The name", format='plaintext', official=True)),
|
||||||
)
|
)
|
||||||
|
|
||||||
class PokemonGameIndex(TableBase):
|
|
||||||
u"""The number of a Pokémon a game uses internally
|
|
||||||
"""
|
|
||||||
__tablename__ = 'pokemon_game_indices'
|
|
||||||
pokemon_id = Column(Integer, ForeignKey('pokemon.id'), primary_key=True, autoincrement=False, nullable=False,
|
|
||||||
info=dict(description=u"Database ID of the Pokémon"))
|
|
||||||
generation_id = Column(Integer, ForeignKey('generations.id'), primary_key=True, autoincrement=False, nullable=False,
|
|
||||||
info=dict(description=u"Database ID of the generation"))
|
|
||||||
game_index = Column(Integer, nullable=False,
|
|
||||||
info=dict(description=u"Internal ID the generation's games use for the Pokémon"))
|
|
||||||
|
|
||||||
class PokemonItem(TableBase):
|
class PokemonItem(TableBase):
|
||||||
u"""Record of an item a Pokémon can hold in the wild
|
u"""Record of an item a Pokémon can hold in the wild
|
||||||
"""
|
"""
|
||||||
|
@ -1471,7 +1470,6 @@ create_translation_table('pokemon_move_method_prose', PokemonMoveMethod, 'prose'
|
||||||
info=dict(description=u"A detailed description of how the method works", format='plaintext')),
|
info=dict(description=u"A detailed description of how the method works", format='plaintext')),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class PokemonShape(TableBase):
|
class PokemonShape(TableBase):
|
||||||
u"""The shape of a Pokémon's body, as used in generation IV Pokédexes.
|
u"""The shape of a Pokémon's body, as used in generation IV Pokédexes.
|
||||||
"""
|
"""
|
||||||
|
@ -1593,19 +1591,6 @@ create_translation_table('super_contest_effect_prose', SuperContestEffect, 'pros
|
||||||
info=dict(description=u"A description of the effect.", format='plaintext', official=True)),
|
info=dict(description=u"A description of the effect.", format='plaintext', official=True)),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class TypeEfficacy(TableBase):
|
|
||||||
u"""The damage multiplier used when a move of a particular type damages a
|
|
||||||
Pokémon of a particular other type.
|
|
||||||
"""
|
|
||||||
__tablename__ = 'type_efficacy'
|
|
||||||
damage_type_id = Column(Integer, ForeignKey('types.id'), primary_key=True, nullable=False, autoincrement=False,
|
|
||||||
info=dict(description=u"The ID of the damaging type."))
|
|
||||||
target_type_id = Column(Integer, ForeignKey('types.id'), primary_key=True, nullable=False, autoincrement=False,
|
|
||||||
info=dict(description=u"The ID of the defending Pokémon's type."))
|
|
||||||
damage_factor = Column(Integer, nullable=False,
|
|
||||||
info=dict(description=u"The multiplier, as a percentage of damage inflicted."))
|
|
||||||
|
|
||||||
class Type(TableBase):
|
class Type(TableBase):
|
||||||
u"""Any of the elemental types Pokémon and moves can have."""
|
u"""Any of the elemental types Pokémon and moves can have."""
|
||||||
__tablename__ = 'types'
|
__tablename__ = 'types'
|
||||||
|
@ -1625,6 +1610,35 @@ create_translation_table('type_names', Type, 'names',
|
||||||
info=dict(description="The name", format='plaintext', official=True)),
|
info=dict(description="The name", format='plaintext', official=True)),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
class TypeEfficacy(TableBase):
|
||||||
|
u"""The damage multiplier used when a move of a particular type damages a
|
||||||
|
Pokémon of a particular other type.
|
||||||
|
"""
|
||||||
|
__tablename__ = 'type_efficacy'
|
||||||
|
damage_type_id = Column(Integer, ForeignKey('types.id'), primary_key=True, nullable=False, autoincrement=False,
|
||||||
|
info=dict(description=u"The ID of the damaging type."))
|
||||||
|
target_type_id = Column(Integer, ForeignKey('types.id'), primary_key=True, nullable=False, autoincrement=False,
|
||||||
|
info=dict(description=u"The ID of the defending Pokémon's type."))
|
||||||
|
damage_factor = Column(Integer, nullable=False,
|
||||||
|
info=dict(description=u"The multiplier, as a percentage of damage inflicted."))
|
||||||
|
|
||||||
|
class Version(TableBase):
|
||||||
|
u"""An individual main-series Pokémon game."""
|
||||||
|
__tablename__ = 'versions'
|
||||||
|
__singlename__ = 'version'
|
||||||
|
id = Column(Integer, primary_key=True, nullable=False,
|
||||||
|
info=dict(description=u"A unique ID for this version."))
|
||||||
|
version_group_id = Column(Integer, ForeignKey('version_groups.id'), nullable=False,
|
||||||
|
info=dict(description=u"The ID of the version group this game belongs to."))
|
||||||
|
identifier = Column(Unicode(32), nullable=False,
|
||||||
|
info=dict(description=u'And identifier', format='identifier'))
|
||||||
|
|
||||||
|
create_translation_table('version_names', Version, 'names',
|
||||||
|
relation_lazy='joined',
|
||||||
|
name = Column(Unicode(32), nullable=False, index=True,
|
||||||
|
info=dict(description="The name", format='plaintext', official=True)),
|
||||||
|
)
|
||||||
|
|
||||||
class VersionGroup(TableBase):
|
class VersionGroup(TableBase):
|
||||||
u"""A group of versions, containing either two paired versions (such as Red
|
u"""A group of versions, containing either two paired versions (such as Red
|
||||||
and Blue) or a single game (such as Yellow.)
|
and Blue) or a single game (such as Yellow.)
|
||||||
|
@ -1645,24 +1659,6 @@ class VersionGroupRegion(TableBase):
|
||||||
region_id = Column(Integer, ForeignKey('regions.id'), primary_key=True, nullable=False,
|
region_id = Column(Integer, ForeignKey('regions.id'), primary_key=True, nullable=False,
|
||||||
info=dict(description=u"The ID of the region."))
|
info=dict(description=u"The ID of the region."))
|
||||||
|
|
||||||
class Version(TableBase):
|
|
||||||
u"""An individual main-series Pokémon game."""
|
|
||||||
__tablename__ = 'versions'
|
|
||||||
__singlename__ = 'version'
|
|
||||||
id = Column(Integer, primary_key=True, nullable=False,
|
|
||||||
info=dict(description=u"A unique ID for this version."))
|
|
||||||
version_group_id = Column(Integer, ForeignKey('version_groups.id'), nullable=False,
|
|
||||||
info=dict(description=u"The ID of the version group this game belongs to."))
|
|
||||||
identifier = Column(Unicode(32), nullable=False,
|
|
||||||
info=dict(description=u'And identifier', format='identifier'))
|
|
||||||
|
|
||||||
create_translation_table('version_names', Version, 'names',
|
|
||||||
relation_lazy='joined',
|
|
||||||
name = Column(Unicode(32), nullable=False, index=True,
|
|
||||||
info=dict(description="The name", format='plaintext', official=True)),
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
### Relations down here, to avoid ordering problems
|
### Relations down here, to avoid ordering problems
|
||||||
Ability.changelog = relation(AbilityChangelog,
|
Ability.changelog = relation(AbilityChangelog,
|
||||||
order_by=AbilityChangelog.changed_in_version_group_id.desc(),
|
order_by=AbilityChangelog.changed_in_version_group_id.desc(),
|
||||||
|
|
|
@ -26,6 +26,16 @@ def test_variable_names():
|
||||||
for table in tables.mapped_classes:
|
for table in tables.mapped_classes:
|
||||||
assert getattr(tables, table.__name__) is table
|
assert getattr(tables, table.__name__) is table
|
||||||
|
|
||||||
|
def test_class_order():
|
||||||
|
"""The declarative classes should be defined in alphabetical order.
|
||||||
|
Except for Language which should be first.
|
||||||
|
"""
|
||||||
|
class_names = [table.__name__ for table in tables.mapped_classes]
|
||||||
|
def key(name):
|
||||||
|
return name != 'Language', name
|
||||||
|
print [(a,b) for (a,b) in zip(class_names, sorted(class_names, key=key)) if a!=b]
|
||||||
|
assert class_names == sorted(class_names, key=key)
|
||||||
|
|
||||||
def test_i18n_table_creation():
|
def test_i18n_table_creation():
|
||||||
"""Creates and manipulates a magical i18n table, completely independent of
|
"""Creates and manipulates a magical i18n table, completely independent of
|
||||||
the existing schema and data. Makes sure that the expected behavior of the
|
the existing schema and data. Makes sure that the expected behavior of the
|
||||||
|
|
Loading…
Reference in a new issue