from sqlalchemy.orm import backref, relation
from sqlalchemy.sql import and_
from sqlalchemy.types import *
-from sqlalchemy.databases.mysql import *
from pokedex.db import rst
A slot (20% walking in grass) and any appropriate world conditions (no
swarm) are thus enough to define a specific encounter.
-
+
Well, okay, almost: each slot actually appears twice.
"""
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)
contest_effect_id = Column(Integer, ForeignKey('contest_effects.id'), nullable=True)
super_contest_effect_id = Column(Integer, ForeignKey('super_contest_effects.id'), nullable=False)
+class Nature(TableBase):
+ __tablename__ = 'natures'
+ id = Column(Integer, primary_key=True, nullable=False)
+ name = Column(Unicode(8), nullable=False)
+ decreased_stat_id = Column(Integer, ForeignKey('stats.id'), nullable=False)
+ increased_stat_id = Column(Integer, ForeignKey('stats.id'), nullable=False)
+
class Pokedex(TableBase):
__tablename__ = 'pokedexes'
id = Column(Integer, primary_key=True, nullable=False)
MoveName.language = relation(Language)
+Nature.decreased_stat = relation(Stat, primaryjoin=Nature.decreased_stat_id==Stat.id,
+ backref='decreasing_natures')
+Nature.increased_stat = relation(Stat, primaryjoin=Nature.increased_stat_id==Stat.id,
+ backref='increasing_natures')
+
Pokedex.version_groups = relation(VersionGroup, secondary=PokedexVersionGroup.__table__)
Pokemon.abilities = relation(Ability, secondary=PokemonAbility.__table__,