https://github.com/PokeAPI/pokebase
Python 3 wrapper for Pokéapi v2
https://github.com/PokeAPI/pokebase
hacktoberfest pokeapi python wrapper
Last synced: 12 months ago
JSON representation
Python 3 wrapper for Pokéapi v2
- Host: GitHub
- URL: https://github.com/PokeAPI/pokebase
- Owner: PokeAPI
- License: bsd-3-clause
- Created: 2017-04-01T23:59:58.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2023-12-29T20:30:57.000Z (over 2 years ago)
- Last Synced: 2025-04-13T07:47:52.669Z (about 1 year ago)
- Topics: hacktoberfest, pokeapi, python, wrapper
- Language: Python
- Homepage:
- Size: 114 KB
- Stars: 320
- Watchers: 13
- Forks: 56
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Pokebase [](https://pokeapi.co/api/v2/pokemon/swampert)
[](https://github.com/PokeAPI/pokebase/actions/workflows/unit.yml)
[](https://pypi.org/project/pokebase/1.3.0/)
[](https://pypi.python.org/pypi/pokebase)
`pokebase` is a simple but powerful Python interface to the [PokeAPI database](https://pokeapi.co/)
Maintainer: [GregHilmes](https://github.com/GregHilmes)
## Installation
### Version Support
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`
## Usage
```python console
>>> 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)
>>> s1.url
''
>>> 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.
## Nomenclature
> - an `endpoint` is the results of an API call like
> `http://pokeapi.co/api/v2/berry` or
> `http://pokeapi.co/api/v2/move`
> - a `resource` is the actual data, from a call to
> `http://pokeapi.co/api/v2/pokemon/1`
## Testing
Python unit tests are in a separate `tests` directory and can be run via
`python -m tests`.
### Notes to the developer using this module
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!
```python console
>>> from pokebase.cache import API_CACHE
```
Do this :)
```python console
>>> from pokebase import cache
>>> cache.API_CACHE
```