A Python SDK to aid interacting with The One API data.
Project description
The One API Python SDK
Installation
To install the SDK:
- Create and activate a venv
$ mkdir venv
$ python3.10 -m venv venv
$ source venv/bin/activate
- Install the package from PyPi
(venv) $ pip install the-one-api-sdk-duke
User Guide
- If you haven't done so, create an account at The One API
- Use your access token to authenticate:
>>> import the_one_api
>>> the_one_api.api_key = "your-access-token-here"
Endpoints
Movie Endpoint
Import the Movie module:
>>> from the_one_api import movie
Quotes can be listed in full, fetched by ID, or searched using a variety of filters
>>> movie.list_all()
>>> movie.get('quote-id')
>>> movie.filter(**filters)
Quote Endpoint
Import the Quote module:
>>> from the_one_api import quote
Quotes can be listed in full, fetched by ID, or searched using a variety of filters, including by movie ID.
>>> quote.list_all()
>>> quote.get('quote-id')
>>> quote.filter(movie_id="movie-id", match={"character": "character-id"}) # etc.
About Sorts and Filters
The filter functionality accepts a sort keyword argument and a variety of filters
Sort
Supply a field to sort by, and prepend a "-" for a descending sort. Only one field at a time is supported.
>>> movie.filter(sort="name")
>>> quote.filter(sort="-character")
Match/Negate Match
Supply a dictionary containing a field and value for an exact match (or to not match). Only one term per match is supported.
>>> movie.filter(match={"name": "The Lord of the Rings Series")
>>> movie.filter(negate_match={"name": "The Lord of the Rings Series")
Filter/Exclude
Supply a dictionary containing a field and a list of values to match (or not match).
>>> movie.filter(filter={"name": ["The Return of the King", "The Fellowship of the Ring"]})
>>> movie.filter(exclude={"name": ["The Return of the King", "The Fellowship of the Ring"]})
Regex/Negate Regex
Supply a MongoDB-style regex pattern to include or not. See the MongoDB documentation for details.
>>> quote.filter(regex={"dialog": "/foot/i"})
>>> quote.filter(negate_regex={"dialog": "/foot/i"})
Less Than, Greater Than, and Greater Than or Equal To
Supply a dictionary containing a field and a number or character.
>>> movie.filter(gte={"budgetInMillions": 600}, lt={"budgetInMillions": 400})
>>> quote.filter(lt={"dialog": "B"})
Developer Guide
Installation
- Clone the project from GitHub
- Create a venv and activate it
- Install the requirements and the project itself in editable mode:
(venv) $ pip install -r requirements.txt -r requirements-dev.txt
(venv) $ pip install -e .
Running the test suite
Once the project has been installed following the Developer Guide:
- Install "requirements-test.txt"
- Run the tests:
(venv) $ python -m pytest
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file the_one_api_sdk_duke-0.0.0-py3-none-any.whl.
File metadata
- Download URL: the_one_api_sdk_duke-0.0.0-py3-none-any.whl
- Upload date:
- Size: 9.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c456ba7eddc355b497b2091e8db4d7861eca184259cfa9d67f29ecb5a99a13be
|
|
| MD5 |
f20d6414995bafa0716e245a7101e1aa
|
|
| BLAKE2b-256 |
812a07877be94912b22436ded0f78576fb734845808f544a8031fcd28ec4eaad
|