pokebase
is a simple but powerful Python interface to the PokeAPI database
Maintainer: GregHilmes
pokebase 1.3.0 supports Python 3.6. Install it with pip install 'pokebase==1.3.0'
pokebase 1.4.1 drops support for Python 3.6 and adds support for Python >=3.8 <=3.12. Install it with pip install pokebase
>>> import pokebase as pb
>>> chesto = pb.APIResource('berry', 'chesto')
>>> chesto.name
'chesto'
>>>
chesto.natural_gift_type.name
'water'
>>> charmander = pb.pokemon('charmander') # Quick lookup.
>>> charmander.height
6
>>> # Now with sprites! (again!)
>>> s1 = pb.SpriteResource('pokemon', 17)
<pokebase.interface.SpriteResource object at 0x7f2f15660860>
>>> s1.url
'<https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/17.png>'
>>> s2 = pb.SpriteResource('pokemon', 1, other=True, official_artwork=True)
>>> s2.path
'/home/user/.cache/pokebase/sprite/pokemon/other-sprites/official-artwork/1.png'
>>> s3 = pb.SpriteResource('pokemon', 3, female=True, back=True)
>>> s3.img_data b'x89PNGrnx1anx00x00x00rIHDRx00x00x00 ... xca^x7fxbbd\*x00x00x00x00IENDxaeB`x82'
... And it's just that simple.
- an
endpoint
is the results of an API call likehttp://pokeapi.co/api/v2/berry
orhttp://pokeapi.co/api/v2/move
- a
resource
is the actual data, from a call tohttp://pokeapi.co/api/v2/pokemon/1
Python unit tests are in a separate tests
directory and can be run via
python -m tests
.
The quick data lookup for a Pokémon type, is pokebase.type_('type-name')
, not pokebase.type('type-name')
. This is because of a naming conflict with the built-in type
function, were you to from pokebase import *
.
When changing the cache, avoid importing the cache constants directly. You should only import them with the whole cache module. If you do not do this, calling set_cache
will not change your local copy of the variable.
NOT THIS!
>>> from pokebase.cache import API_CACHE
Do this :)
>>> from pokebase import cache
>>> cache.API_CACHE