PokeAPI/pokebase

sprites.versions all have dashes in their names

Opened this issue · 1 comments

If I wanted to get, say, the Gen 4 sprite of Pikachu, my first instinct would be the following:

import pokebase as pb
pikachu = pb.pokemon("pikachu")
pikachu_sprite = pikachu.sprites.versions.generation-iv.front_default

However, notice that generation-iv has a hyphen. According to the python interpreter, that's a subtraction operator, and it throws an error because it doesn't know how to subtract iv.front_default (an object that doesn't exist) from pikachu.sprites.versions.generation (which also doesn't exist).

The simplest fix would probably be to change all generation calls to use underscores instead.

One way to get around this is to use getattr. For this example, you could get around it by saying

import pokebase as pb
pikachu = pb.pokemon("pikachu")
pikachu_sprite = getattr(pikachu.sprites.versions, "generation-iv").front_default

Though, you'd need to specify a version group in between since generation-iv leads to diamond-pearl, platinum, and heartgold-soulsilver. For the version groups that have dashes, you'd have to use another getattr call.