From 455174f19d15b524276aed79ca533a83dd4b0988 Mon Sep 17 00:00:00 2001 From: Andrew Ekstedt Date: Mon, 25 May 2015 21:25:36 -0700 Subject: [PATCH] Move PokemonMove back where it belongs. Since we're mucking around with sqlalchemy core, all the tables that PokemonMove references need to be defined already, so VersionGroup needs to move up. --- pokedex/db/tables.py | 44 +++++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/pokedex/db/tables.py b/pokedex/db/tables.py index cd8ed11..84f1a0c 100644 --- a/pokedex/db/tables.py +++ b/pokedex/db/tables.py @@ -111,6 +111,23 @@ create_translation_table('language_names', Language, 'names', info=dict(format='plaintext', official=True)), ) +### VersionGroup. Need for PokemonMove + +class VersionGroup(TableBase): + u"""A group of versions, containing either two paired versions (such as Red + and Blue) or a single game (such as Yellow). + """ + __tablename__ = 'version_groups' + id = Column(Integer, primary_key=True, nullable=False, + doc=u"This version group's unique ID.") + identifier = Column(Unicode(79), nullable=False, unique=True, + doc=u"This version group's unique textual identifier.", + info=dict(format='identifier')) + generation_id = Column(Integer, ForeignKey('generations.id'), nullable=False, + doc=u"The ID of the generation the games in this group belong to.") + order = Column(Integer, nullable=True, + doc=u"Order for sorting. Almost by date of release, except similar versions are grouped together.") + ### The actual tables class Ability(TableBase): @@ -1925,6 +1942,12 @@ pokemon_moveset_version_groups_table = Table('pokemon_moveset_version_groups', T PrimaryKeyConstraint('moveset_id', 'version_group_id'), ) +class PokemonMove(TableBase): + u"""Record of a move a Pokémon can learn.""" + __table__ = pokemon_moveset_table.join(pokemon_moveset_moves_table).join(pokemon_moveset_version_groups_table) + moveset_id = column_property(pokemon_moveset_table.c.id, pokemon_moveset_moves_table.c.moveset_id, pokemon_moveset_version_groups_table.c.moveset_id) + pokemon_move_method_id = column_property(pokemon_moveset_table.c.method_id) + class PokemonMoveMethod(TableBase): u"""A method a move can be learned by, such as "Level up" or "Tutor". """ __tablename__ = 'pokemon_move_methods' @@ -2188,21 +2211,6 @@ create_translation_table('version_names', Version, 'names', info=dict(format='plaintext', official=True)), ) -class VersionGroup(TableBase): - u"""A group of versions, containing either two paired versions (such as Red - and Blue) or a single game (such as Yellow). - """ - __tablename__ = 'version_groups' - id = Column(Integer, primary_key=True, nullable=False, - doc=u"This version group's unique ID.") - identifier = Column(Unicode(79), nullable=False, unique=True, - doc=u"This version group's unique textual identifier.", - info=dict(format='identifier')) - generation_id = Column(Integer, ForeignKey('generations.id'), nullable=False, - doc=u"The ID of the generation the games in this group belong to.") - order = Column(Integer, nullable=True, - doc=u"Order for sorting. Almost by date of release, except similar versions are grouped together.") - class VersionGroupPokemonMoveMethod(TableBase): u"""Maps a version group to a move learn methods it supports. @@ -2223,12 +2231,6 @@ class VersionGroupRegion(TableBase): region_id = Column(Integer, ForeignKey('regions.id'), primary_key=True, nullable=False, doc=u"The ID of the region.") -class PokemonMove(TableBase): - u"""Record of a move a Pokémon can learn.""" - __table__ = pokemon_moveset_table.join(pokemon_moveset_moves_table).join(pokemon_moveset_version_groups_table) - moveset_id = column_property(pokemon_moveset_table.c.id, pokemon_moveset_moves_table.c.moveset_id, pokemon_moveset_version_groups_table.c.moveset_id) - pokemon_move_method_id = column_property(pokemon_moveset_table.c.method_id) - ### Relationships down here, to avoid dependency ordering problems