Commit graph

275 commits

Author SHA1 Message Date
Eevee
68e14e663e Started switching to create_translation_table.
- Moved the function to its own file.
- Implemented the session-based default language switching.
- Migrated a couple tables.
2011-03-21 22:32:52 -07:00
Eevee
6a9172151a Sigh! Remove support for strings as keys; use Language objects. 2011-03-21 17:54:28 -07:00
Eevee
1da816af4b New i18n schema thing impl, and fixed the new tests to match. 2011-03-20 01:06:45 -07:00
Eevee
542aa670ae Added a test for the i18n dynamic table generation.
It fails spectacularly, but hopefully documents what I'm ultimately
going for.
2011-03-18 18:22:18 -07:00
Eevee
4645349133 Rename some meta-schema variables for ease of debugging. 2011-03-18 17:15:34 -07:00
Eevee
a417a0a9e1 Replace String* sqla stuff with association_proxy. 2011-03-14 22:24:29 -07:00
Eevee
a0f5c53193 Give every db table a __str__. 2011-03-14 20:51:31 -07:00
Eevee
b61acaff69 Tidy up relation creation for name tables. 2011-03-13 23:43:08 -07:00
Eevee
f773ef02ec Remove OfficiallyNamed and UnofficiallyNamed. 2011-03-13 23:33:42 -07:00
Eevee
482ca207cb Fix some i18n schema issues when running under a Real Database™. 2011-03-13 15:45:07 -07:00
Petr Viktorin
2f222ca973 Make the string properties mutable 2011-03-13 15:43:42 -07:00
Petr Viktorin
7c039115ee Use DefaultLangProperty for Markdown columns 2011-03-13 15:43:02 -07:00
Petr Viktorin
e5f7cd2aed Rename StatHint.text to .message (clashed with the all-texts attribute) 2011-03-13 15:43:01 -07:00
Petr Viktorin
1053b35471 fixup! I18n for the database schema 2011-03-13 15:43:01 -07:00
Petr Viktorin
980ae01d10 Fix connect() without arguments 2011-03-13 15:43:01 -07:00
Petr Viktorin
bc2707f6c4 Support filtering by strings (Pokemon.name, Pokemon.names['fr'], etc.) 2011-03-13 15:43:01 -07:00
Petr Viktorin
414a272c21 Add descriptions to new tables 2011-03-13 15:43:00 -07:00
Petr Viktorin
d0d4d1aa96 Use a class + mapper instead of dynamic declarative magic 2011-03-13 15:43:00 -07:00
Petr Viktorin
b3c7689d41 Replace all_tables by table_classes; get rid of globals() 2011-03-13 15:43:00 -07:00
Eevee
625aa19fbd Preserve the order of TextColumns and ProseColumns. 2011-03-13 15:40:46 -07:00
Petr Viktorin
30faa46ab6 Multi-language markdown move properties
Singular property name for English text
Plural property name for dict of texts keyed by language
2011-03-13 15:10:11 -07:00
Petr Viktorin
d813e24b25 I18n for the database schema
- Helper base class: Named
  Subclasses: OfficiallyNamed, UnofficiallyNamed
  for these, a 'name' column is created in the appropriate text table
  also, they get automatic __str__/__repr__/__unicode__
- Faux columns: ProseColumn, TextColumn
  these become columns in the appropriate text tables
  these text tables (*_text, *_prose) are auto-generated at the end
  the main table gets one property (singular name) that gets the English text
   and one (plural name) with dict of texts keyed by language
- Every named table gets 'identifier'
- Languages compare & hash equal to their identifiers
- Existing foreign-name tables replaced by the autogenerated ones
- order_by: names replaced by identifiers
- New function: all_tables(), yields all tables
- Markdown move properties removed for now
- Schema test suite
2011-03-13 15:10:10 -07:00
Eevee
373c01dfda "Characteristic" text, here called stat hints. 2011-03-08 22:28:34 -08:00
Eevee
74454f8d76 Add B/W move metadata. #389 2011-03-08 22:28:33 -08:00
Lynn "Zhorken" Vaughan
edc222bbb6 Shorten some over-long move effect changelog entries.
I couldn't really shorten Dig and Fly's bug descriptions to 255
characters, so I also gave the column more space.
2011-02-10 22:00:18 -05:00
Lynn "Zhorken" Vaughan
92084b28b3 Support null PP for Struggle and Shadow moves. #190 2011-02-10 21:02:02 -05:00
Lynn "Zhorken" Vaughan
d6a96f5ee9 Support null pre-D/P damage class for ??? and Shadow.
Rather than marking them "non-damaging".
2011-02-10 21:02:01 -05:00
Eevee
1bfbaa67b1 Add a couple relations for move effect changelogs. 2011-02-09 23:39:03 -08:00
Eevee
96c5c6a09f Use engine_from_config for database connections. #390 2011-02-09 23:39:03 -08:00
Lynn "Zhorken" Vaughan
b0e99aa7f1 Order Ability's Pokémon relations by Pokemon.order. 2011-01-31 17:02:34 -05:00
Lynn "Zhorken" Vaughan
04ec336654 Make Type.moves a proper relation with an order_by. 2011-01-31 16:36:20 -05:00
Lynn "Zhorken" Vaughan
6c286ffa6f Morning is not a separate time of day for evolution.
As far as evolution is concerned, it's always day or night--there is no
in-between period when Eevee will not evolve into Espeon or Umbreon, and
there are no Pokémon that only evolve during the early part of the day.
Having 'morning' as a separate value is thus misleading, albeit not
terribly misleading since it never appeared outside of tables.py.
2011-01-31 14:41:19 -05:00
Petr Viktorin
497ba412b0 Speed tweaks for pokedex load in SQLite 2011-01-27 21:51:30 -08:00
Eevee
570719499d Remove useless encounter_slot_conditions table. #297 2011-01-27 20:44:57 -08:00
Eevee
4414bab714 Lots of encounters were using slots that claimed to be for other games. #297 #281 2011-01-27 20:44:56 -08:00
Lynn "Zhorken" Vaughan
50d39ec2b6 Merge the fem_sprite columns into has_gender_differences. #363
Chimecho does not have gender differences; its Platinum and HG/SS second-
frame female backsprites have one hand posed a little differently, but
no actual design differences.

Torchic does count even though the only difference is a single-pixel dark
speck on the male's rear; the speck was carried over into B/W even though
the backsprites were entirely redone, so I'm guessing it either was
deliberate or has ascended into canon via "let's throw it in anyway."
2011-01-24 21:11:25 -05:00
Lynn "Zhorken" Vaughan
7e0cd75d29 Add properties for getting a Pokemon from a PokemonForm, and vice-versa. 2011-01-24 15:58:29 -05:00
Lynn "Zhorken" Vaughan
74c8d25eb7 Improve a bunch of schema documentation.
I didn't get to a bunch, but I wanted this to stop clogging up my working
tree.
2010-12-24 21:03:22 -05:00
Lynn "Zhorken" Vaughan
c984eaede1 Support kaburumo and chobomaki's trade-for-each other evolution. #378 2010-12-24 21:03:22 -05:00
a_magical_me
580ae8169e Add order_by=Pokemon.order to a few relations. 2010-12-20 20:26:26 -08:00
a_magical_me
6f89723dd5 Give Pokemon an order column.
Basically national order, but with families grouped together.
2010-12-14 19:07:47 -08:00
Lynn "Zhorken" Vaughan
6be23de775 Give move changelogs a few more relations. #78 2010-12-13 20:24:14 -05:00
Eevee
d280cfac94 Added a short_effect column to the items table. 2010-12-13 15:38:46 -08:00
Eevee
4dcb6e0f4d Eagerload PokemonName.language. 2010-12-11 21:43:46 -08:00
Lynn "Zhorken" Vaughan
535b6cfa73 Give abilities separate relations for all/normal/dream Pokémon. 2010-12-11 12:20:19 -05:00
Brigit Lemanski
6c02987fb6 Fixing typos like a winner. 2010-12-07 20:38:16 -05:00
Brigit Lemanski
42142f90a0 Implement move effect changelog; misc move fixes. 2010-12-07 20:23:14 -05:00
Brigit Lemanski
421a47ec32 Changelog for RGBY -> GS, HGSS -> BW 2010-12-07 17:05:17 -05:00
Lynn "Zhorken" Vaughan
2aa7848b62 Rename the "none" damage class to "non-damaging".
Also decapitalize the classes' names, because they make sense that way
and they're not among the things the games always capitalize.
2010-12-07 12:43:58 -05:00
Zhorken
cfd9a9aa3a Order move changelogs descendingly. 2010-12-06 18:10:52 -05:00
Zhorken
e7784d6467 Make version_group.versions an actual relation with an order_by(). 2010-12-06 17:56:43 -05:00
Zhorken
4e5415ac56 Implement an ability changelog; add a few changes. #78 2010-12-06 17:55:09 -05:00
Zhorken
523552e2d6 Version group Pokédexes don't need their own table. 2010-12-04 22:54:35 -05:00
Eevee
aa00ee83de Implement a move data changelog. Update old moves to their Gen V stats. #78 2010-11-30 22:48:29 -08:00
Zhorken
24631474fa Add Pokémon's Pokéathlon stats to the database. #285 2010-11-30 04:51:54 -05:00
Zhorken
49b7502099 Overhaul the Pokémon form schema. #286 #179 #379 2010-11-29 20:38:04 -05:00
Eevee
ade7d9aa19 Add Dream World abilities. #380 2010-11-25 00:10:12 -08:00
Petr Viktorin
1daff536b8 Finish documenting the tables 2010-11-19 23:29:32 -08:00
Petr Viktorin
febbf16222 Schema documentation, up to Language 2010-11-19 23:29:31 -08:00
Eevee
d56cc97b8c Moved priority out of the move_effects table. 2010-10-16 22:50:22 -07:00
Zhorken
ddca78c34d Order Pokemon.stats by stat id. #366 2010-09-27 02:59:48 -04:00
Zhorken
cf12819bc8 B/W: Add new items to the database.
There's now a hole in the items table: there's no item 667.  There are
two records for the Live Caster in B/W, and I couldn't figure out why,
or see any difference between them, and they were causing problems, so
I deleted the second one.
2010-09-25 04:55:21 -04:00
Eevee
cb3e7bcf96 B&W: New moves. Also changed always-hit moves to NULL; helps #124. 2010-09-19 01:11:03 -07:00
Eevee
c42ce7c1be B&W: Added all new Pokémon! Forms now start at 10001. 2010-09-18 22:53:53 -07:00
Eevee
c05ca1460f Fixed missing indices on the pokemon_moves table. 2010-09-10 23:29:26 -07:00
Eevee
497c3aa0f0 Make baby-trigger items (i.e., incense) a foreign key. #337 2010-09-01 23:24:21 -07:00
Eevee
0fcdb6bcc9 Add a Nature.is_neutral helper property. 2010-09-01 21:52:44 -07:00
Zhorken
3e7d750790 Add foreign type names to the database. 2010-08-06 22:48:30 -04:00
Eevee
1718da9854 Added gen 4 location internal ids and some pseudo-locations. 2010-07-25 22:26:05 -07:00
Eevee
c65c72842f Add identifiers for move flags. 2010-07-25 22:26:05 -07:00
Zhorken
276098b655 Store each Pokémon's initial hatch counter instead of a step count.
The step counts we had weren't even good estimates.  To hatch an egg
uninterrupted takes (counter + 1) * 255 steps in gen IV; what we had
was counter * 256.

Phione and Manaphy have different counters, as do Croagunk and Toxicroak
for some reason, so they're associated with individual Pokémon now,
rather than entire evolution chains.  Double-checked with Pearl,
Platinum, and SoulSilver; there were no differences between the three,
aside from the alternate forms introduced in Platinum.
2010-07-13 23:07:25 -04:00
Zhorken
8ef8c3a915 Add foreign names to the database.
Most names as ripped from HeartGold or SoulSilver.  Gen-III-only names
ripped from Emerald and de-allcapsed; for French, I also judged where
accents belong on newly-lowercase letters.  A couple of them might have
mistakes.
2010-06-14 23:13:42 -04:00
Zhorken
12aaf06359 Added foreign nature names to the database.
Same as abilities.  Japanese as ripped from SoulSilver; French, German,
Italian, and Spanish as ripped from Platinum.
2010-06-07 20:17:50 -04:00
Zhorken
77bec54324 Order Pokémon dex numbers by Pokédex ID. 2010-06-07 16:15:43 -04:00
Zhorken
577a6b44a4 Give Pokémon internal IDs their own table and add all gens' IDs.
- Gen I has them all mixed around.
- Gen II has no surprises, but I figured it's good to be thorough.
- Gen III has the first 251 in order, then a big break, then the
  third-gen Pokémon mixed around, though families are usually together.
- Gen IV has the 493 in order and then alternate forms after Arceus,
  which will be useful to have once Gen V comes and we have to bump
  the alt forms in the pokemon table forward.
2010-06-07 16:15:23 -04:00
Eevee
47631116fb Form groups, rst => markdown 2010-06-02 00:26:57 -07:00
Eevee
17037f53d3 Use absolute_import in markdown.py, to fix import problem. 2010-06-02 00:17:27 -07:00
Eevee
1fbba5476c Scrap docutils for markdown. #275 2010-06-02 00:17:27 -07:00
Eevee
409b16e8ee Link stats to damage classes. 2010-06-02 00:17:27 -07:00
Eevee
b1691804c1 Blindly throw some more indexes on pokemon_moves. 2010-06-02 00:17:26 -07:00
Zhorken
106e156d22 Update the form group description column. #210
I meant to include this in the last commit.  Whoops.

Rotom's description is *really long*, so I needed to bump the length up
to fit it.  Also changed it to an RstTextColumn.
2010-05-26 14:46:01 -04:00
Zhorken
386e215ae3 Add foreign ability names to the database.
This adds Japanese, French, German, Spanish, and Italian names, as
ripped from SoulSilver (Japanese) or Platinum (everything else).

This also fixes a couple of backrefs.
2010-05-26 14:30:32 -04:00
a_magical_me
febfb239fb Python 2.5 compatibility 2010-05-25 14:41:15 -07:00
Eevee
b91c813966 Pokemon.evolution_* => Pokemon.*_pokemon 2010-05-25 00:12:53 -07:00
Eevee
672caf7aa9 Fix a many-to-many join bug with evolutions. 2010-05-25 00:12:53 -07:00
Eevee
cd24ebe9ca Removed evolution_methods table. #42 2010-05-25 00:12:53 -07:00
Eevee
78b6a68cd5 Overhauled evolution. #42 2010-05-25 00:12:53 -07:00
Zhorken
6f63bec90c Link move flavour text to version groups. #169 2010-05-20 01:08:26 -04:00
a_magical_me
ffc30bff8f Factor out logic for finding the default db/index. #180
Note: `if not x:` has changed to `if x is not None:`, changing the
semantics slightly.  Shouldn't be a big issue.
2010-05-13 21:45:51 -07:00
Eevee
5e52bef91a Make plumbing respect the same env vars as the CLI. #180 2010-05-12 23:23:05 -07:00
Eevee
cb2bfa3032 Added some missing item icons and fixed TMs/Data Cards. #248 2010-05-11 20:20:33 -07:00
Eevee
2333670d09 Pokemon.types should order by slot. #220 2010-05-09 21:47:07 -07:00
Zhorken
93108a6a84 Added ability flavour text. #62
We had D/P flavour text in the abilities table already, but I didn't
entirely trust it, so I reripped it along with the rest when I moved
flavour text into its own table.  And we didn't actually use the D/P
text anywhere, so I'm just going to pretend that it is entirely new.
2010-05-04 03:31:54 -04:00
Zhorken
641df3649d Added ability effects. Rewrote short effects. #39 2010-05-04 03:31:40 -04:00
Zhorken
3007297ede Added abilities' generations to the database. 2010-05-04 02:39:51 -04:00
Eevee
b8481d551a Added GrowthRate.max_experience. 2010-05-03 01:00:38 -07:00
Eevee
f8145b87e4 Restored Item.appears_underground and added location support to rst. 2010-05-03 01:00:38 -07:00
Eevee
d98632aa50 Broke existing item flags out into their own table. 2010-05-03 01:00:38 -07:00
Eevee
853a6eb921 Added item HG/SS flavor text and internal ids. #168? 2010-05-03 01:00:37 -07:00
a_magical_me
941bce52d7 Add experience tables. 2010-04-27 14:53:47 -07:00
Eevee
58dccb1803 Jammed in a bunch of nature stuff. 2010-04-26 23:26:37 -07:00
Eevee
affb8a02fb Turned Move.contest_type into a foreign key. 2010-04-26 21:48:44 -07:00
Eevee
b5fd88bba4 Item tidying; fixed missing és, added ItemPocket.identifier. 2010-04-26 21:13:28 -07:00
Eevee
fa3d205e51 At last, imported item and berry data. #10 2010-04-25 23:23:52 -07:00
Eevee
25c81541ae Use fnmatch for filenameish glob parsing. 2010-04-24 15:37:55 -07:00
Eevee
c9f32a8145 Loading big tables now shows a progress indicator. #180 2010-04-24 14:06:56 -07:00
Eevee
2204b95585 Overhauled CLI. #180
- Everything now accepts -i, -e, -q, and -v.

- Plumbing commands now announce what database/index they're using and
  where they got them from.

- New command status, which does nothing but still does the announcing.

- New command reindex, which recreates only the whoosh index.
2010-04-24 14:06:56 -07:00
a_magical_me
b80d2d2963 Fix location_area_encounter_rates
- encounter_type_id -> encounter_terrain_id

- Added a version_id column. Previous rates were from Diamond and
  HeartGold; these have been copied to Pearl & Platinum and SoulSilver,
  respectively, which i assume is accurate. RBY rates need to be added.
2010-04-21 10:57:23 -07:00
Eevee
55dd46fae7 Support natures in lookup. 2010-04-18 22:43:33 -07:00
Eevee
4ae8bb5f21 Added Pokemon.stat() accessor. 2010-04-16 23:09:32 -07:00
Eevee
e73eca020c Added canonical_pokedex, Pokedex.region, and some Pokédex descriptions. 2010-04-16 23:09:32 -07:00
a_magical_me
ef798afdcb Add slot index to encounter_slots 2010-04-12 23:06:15 -07:00
Eevee
b54501ef94 Why am I importing sqlalchemy.databases.mysql...? 2010-03-28 22:18:26 -07:00
Eevee
b367e70b49 Added natures table. 2010-03-28 22:18:24 -07:00
Eevee
a89a616203 Allow passing engine arguments to connect(). 2010-03-17 00:44:33 -07:00
Zhorken
419f65c90c Added language codes alongside the country codes.
Language codes are ISO 639-1; country codes are ISO 3166-1 alpha-2.

The country codes are important to keep for flags and stuff, I guess,
but reporting the language code as a short form for the language is
more correct.

Gonna see if I can do that, I guess.  I added the language codes mostly
just because I was adding languages.
2010-03-15 23:24:29 -04:00
Eevee
47f5953457 Implemented rst as_text, for showing short move effects outside the Web. 2010-03-15 00:10:08 -07:00
Eevee
e0aeb771b2 Make rst as_html handle errors a little more nicely. 2010-03-15 00:10:08 -07:00
Eevee
6e611d7a54 Fixed the hell out of all remaining form problems.
Every flavor page should work with no missing sprites.  Save perhaps for
Unown, because I honestly don't have them.

Every sprite exists as ###-form.png.  There is also still a ###.png,
containing a reasonable default form, so people who don't give a crap
about this mess can just use the numbered sprites.  Beta forms should
now all be ###-beta.png.

Form groups now have a notion of "in-battle", which is used to hide
overworld sprites when appropriate.

Form sprites have a first-class sense of being a default or not, too.

Deoxys is...  well, let's not talk about Deoxys.  Deoxys is fixed.
2010-03-10 00:19:05 -08:00
Eevee
8280652dd2 Factored habitats into a separate table. 2010-03-03 00:53:00 -08:00
Eevee
5b100b1651 Factored Pokémon colors out into their own table. 2010-03-02 21:11:17 -08:00
Zhorken
f24fb43c1b Corrected a docstring in rst.py. 2010-02-22 00:13:28 -05:00
Zhorken
a2b0218035 Moved Gen-I internal Pokémon IDs to their own Pokédex. 2010-02-17 02:19:48 -05:00
Zhorken
3b88a83fff Added Pokédexes to replace dex numbers' generations.
This deals with Gen IV having two Sinnoh dexes and a Johto dex.
2010-02-17 02:16:59 -05:00
Eevee
81eaf4a9ef Made regions first-class objects. 2010-01-28 01:21:35 -08:00
Eevee
e163c13038 Re-re-ripped HG/SS encounters.
Turns out "fishing swarm 2" is time of day; it represents some water
Pokémon that only appear at night.
2010-01-28 01:21:34 -08:00
Eevee
49be86a9d3 Redumped encounters for all five gen4 games. 2010-01-28 01:21:34 -08:00
Zhorken
4384d56c2c Added types' generations and pre-gen-IV damage classes. 2009-12-19 23:09:27 -08:00
Eevee
c1c0225eb8 Optimized the fuck out of pokedex load.
Major change was to skip the ORM entirely.  Sped it up 500%.
2009-12-09 18:15:51 -08:00
Eevee
e6635b4897 Refactored encounters schema so HG/SS can work.
Conditions are now condition values; condition groups are conditions.
Types are now terrain.  Slots are first-class things.

Encounters' condition values and slots' conditions have been broken off
into their own tables, as HG/SS has several slots affected by multiple
conditions.
2009-12-09 14:35:29 -08:00
Eevee
2e49f953c3 Added PokemonMove.machine relation. 2009-11-28 02:20:02 -08:00
Eevee
0a706d44a3 Added ISO-3166 country codes to languages table and lookup. 2009-11-23 21:50:45 -08:00
Eevee
11c0bb01fd Added move categories. #41 2009-11-08 17:00:45 -08:00
Eevee
c2f2e077ce Added HG/SS machines. 2009-09-18 21:45:37 -07:00
Eevee
7aa391c96f Added contest combos. 2009-09-15 20:04:22 -07:00
Eevee
6eb581d76e Marked sprite forms with what version group introduced them. 2009-09-15 00:46:11 -07:00
Eevee
9ec97e2bc3 Added move flavor text. 2009-09-14 22:18:01 -07:00
Eevee
33d0e1e280 Added super contest effects. 2009-09-14 22:07:08 -07:00
Eevee
beb9be4084 Added preliminary HG/SS encounter data. 2009-09-14 21:18:47 -07:00
Eevee
97d2b09d75 Balls. Last commit was only data. Here's move flag code. 2009-09-14 08:29:05 -07:00
Eevee
990469bcd5 Added foreign move names. Japanese only so far.
Also fixed roomaji conversion to not die spectacularly when given
hiragana.  For some reason I let it know about hiragana soukuon and
youon, but nothing else, so it gets totally confused.
2009-09-13 21:06:15 -07:00
Eevee
149b34b888 When loading Pokédex data, commit every 1000 rows.
Mostly done to fix RAM usage issues, but seems to have increased speed slightly.
2009-09-13 20:10:20 -07:00
Eevee
774b69f5bd Made short_effect also an rST column, so effect chance works.
Added support for types in move effects.
2009-09-10 10:20:48 -07:00
Eevee
fc18219158 Added __singlename__ property to tables that have corresponding dex pages. 2009-09-10 10:17:59 -07:00
Eevee
585cb31c0a Added semi-magical reST parsing for move effects. 2009-08-31 21:37:29 -07:00
Eevee
c545fbf764 Moved damage classes to a separate table. #76 2009-08-26 22:30:07 -07:00
Eevee
0946db6b8b Fixed some weirdness using version_group as a one-to-many. 2009-08-18 23:50:36 -07:00
Eevee
fd5e863eed Added --quiet switch to dump/load. 2009-08-18 18:36:45 -07:00
Eevee
1a7d046fbc Vastly improved the pokedex import/export UI.
csvimport is now load; csvexport is now dump.

Both take an optional -e switch to specify an engine, but will happily
use a default SQLite database in the pokedex package directory.

Additionally, the CSV directory is now controlled by the optional -d
switch, and defaults to Doing The Right Thing.

So `pokedex load` now does exactly what you'd expect: loads the data
from the right files into a consistently-located database.
2009-08-18 18:02:53 -07:00
Eevee
545cbc8928 Added generation_id to moves. 2009-08-12 17:24:35 -07:00