Skip to main content

A Python SDK to aid interacting with The One API data.

Project description

The One API Python SDK

Installation

To install the SDK:

  1. Create and activate a venv
$ mkdir venv
$ python3.10 -m venv venv
$ source venv/bin/activate
  1. Install the package from PyPi
(venv) $ pip install the-one-api-sdk-duke

User Guide

  1. If you haven't done so, create an account at The One API
  2. 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

  1. Clone the project from GitHub
  2. Create a venv and activate it
  3. 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:

  1. Install "requirements-test.txt"
  2. Run the tests:
(venv) $ python -m pytest

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

the_one_api_sdk_duke-0.0.0-py3-none-any.whl (9.9 kB view details)

Uploaded Python 3

File details

Details for the file the_one_api_sdk_duke-0.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for the_one_api_sdk_duke-0.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c456ba7eddc355b497b2091e8db4d7861eca184259cfa9d67f29ecb5a99a13be
MD5 f20d6414995bafa0716e245a7101e1aa
BLAKE2b-256 812a07877be94912b22436ded0f78576fb734845808f544a8031fcd28ec4eaad

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page