A synchronous, object oriented API wrapper for thecatapi
-
Install it from pypi
pip install cats.py
-
To install the development version, clone this repository and install it. You need git installed for this
pip install git+https://github.com/MarzaElise/cats.py.git
If you don't already have an API key, get one here
from cats import Client
client = Client(api_key="YOUR API KEY HERE")
breed = client.search_breed("beng")
print(breed)
The above code should print something similar to this
For async support, import Client
from async_cats
instead of cats
.
More usage examples can be found here
This module/repository is new and might break at any moment. Which is why all pull requests that bring good changes are welcome.
If you are new to github and wondering how to contribute, click here
If you are confused on what would be a good contribution, take a look at the open issues
-
Are all endpoints supported?
- All of the endpoints except for images/upload works perfectly as I tested them locally before publishing
- All
breeds/
endpoints might break since the API is constantly adding new properties
-
Why is
utils/_dataclasses.py
such a code-gore?- Data returned by the API is inconsistent. For example, some properties are sometimes given and sometimes not. To manage that I set them all to None by default
-
How is this wrapper object oriented?
- All values returned by each method has its own class (Breed, Vote, Favourite etc)
- This entire wrapper revolves around dataclasses and subclassing
-
I found a bug, how do I report?
- You can contact me on discord at Marcus | Bot Dev#4438
- If you are not on discord, open a new issue
- If you also have a fix for it, create a new pull request and I'll merge it if its good. (See Contributing)
-
How to use this in an asynchronous environment?
- You can import and use the
async_cats.Client
class for async support. A simple example can be found in examples/async.py
- You can import and use the
-
Is this wrapper consistent?
- I tried my best to keep this wrapper consistent with the API itself. By returning lists when API returns an array etc.
-
Where is the documentation?
- Currently, there is no documentation for this wrapper. Alternatively, you can take a look at the API documentation, the docstrings and the source to figure out what you need
-
Who asked?
- I did
Note: all changes were tested on python 3.10.0 64-bit before being published
- Support for asynchronous environment
- New
async_cats
package - More examples in the examples folder
GNU AGPLv3