Error in the data model regarding attributes of species/pokémon
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 5.4k
- Forks
- 1.2k
- Avg merge
- 2d 5h
- Merged PRs (30d)
- 21
Description
The current model has some relationships between entities that used to work in earlier generations, but have become inaccurate, at least since the introduction of regional variants (unless you consider Burmy/Shellos/Deerling/Flabébé/Pumpkaboo). Specifically, some attributes that should be linked to specific pokémon (or maybe even each cosmetic form) are still tied to the whole pokémon species.
The first one that comes to mind is evolution chain. For example, Kantonian Meowth, Alolan Meowth and Galarian Meowth each have a separate evolution chain. A-Meowth can't evolve to K-Persian and vice-versa. If I want to get, for example, all moves each evolved pokémon can learn by including their pre-evo moves (#897), there's no way to separate which moves come from each possible base form in a species with more than one evolution chain (other than handling these cases separately). This has been brought up before in #966, #844 and #655, for example.
has_gender_differences should also be an attribute of each individual pokémon. Kantonian Rattata/Raticate have gender differenciation, whereas Alolan Rattata/Raticate don't.
Same goes for pokemon_color_id. Alolan Sandshrew isn't yellow.
There might be more. Those are only the more obvious when taking a glance at table pokemon_v2_pokemonspecies.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the pokemon_v2_pokemonspecies table and the earlier discussions in issues #966, #844, and #655. Map which attributes differ across regional variants and evolution chains, then define what model changes are needed so those distinctions are represented. Done means the affected relationships and attributes no longer conflate variants such as Meowth, Rattata, and Sandshrew.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- database
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 28/100