Skip to main content

Python client for the PlayerData GraphQL API

Project description

PlayerDataPy

A python package for interacting with the PlayerData GraphQL API.

Folder Structure

  • playerdata_api: The main package for interacting with the PlayerData API.
    • gqlauth: The main package for authenticating with the PlayerData API.
    • gqlclient: The main package for interacting with the PlayerData GraphQL API.
    • custom_queries: Custom queries for the PlayerData GraphQL API.
    • custom_mutations: Custom mutations for the PlayerData GraphQL API.
    • custom_fields: Custom fields for the PlayerData GraphQL API.
    • input_types: Input types for the PlayerData GraphQL API.
    • enums: Enums for the PlayerData GraphQL API.
    • custom_typing_fields: Custom typing fields for the PlayerData GraphQL API.
    • custom_responses: Custom responses for the PlayerData GraphQL API.

Installation

uv is the tool we use to build and manage the playerdatapy Python package.

Make sure you install uv using pipx or the official installer. Installing with pip or other methods will lead to unexpected behavior.

We recommend using the official installer.

Then you can install the required dependencies, in a virtual environment if required.

    uv sync

Usage

To use the GraphqlClient, you need to provide your client id, this will be provided to you by PlayerData. To request API credentials, please contact the PlayerData team at support@playerdata.co.uk.

Option 1: Use generated types with PlayerDataAPI

Example usage of this option is provided in the examples/pydantic/ folder. The basic flow is to create a PlayerDataAPI instance, build the query objects using the code-generated Pydantic models (generated by ariadne-codegen), and then call the run_queries method.

For more detailed documentation, see examples/pydantic/README.md.

To run an example of this option, you can use the following command:

python examples/pydantic/quick_start.py

To run this you will need to set the following environment variables or hardcode them in the file:

export CLIENT_ID=your_client_id
export CLIENT_SECRET=your_client_secret
export CLUB_ID=your_club_id

For a more in-depth example, please see the examples/pydantic/example_use.ipynb notebook. This notebook demonstrates how to use the PlayerData API with Pydantic to query specifics such as session details, session metrics, and raw data.

Option 2: Use the GraphqlClient class directly

Example usage of this option is provided in the examples/direct/ folder. The basic flow is to create a GraphqlClient instance, build the query string, and then call the query method.

For more detailed documentation, see examples/direct/README.md.

To run an example of this option, you can use the following command:

python examples/direct/quick_start.py

To run this you will need to set the following environment variables or hardcode them in the file:

export CLIENT_ID=your_client_id
export CLIENT_SECRET=your_client_secret
export CLUB_ID=your_club_id

Authentication Types

These authentication types are set out in the playerdatapy.gqlauth.AuthenticationType enum. The default authentication type is AuthenticationType.AUTHORISATION_CODE_FLOW. These authentication types are used to set the authentication type in the GraphqlAuth class.

Authorisation Code Flow (PKCE)

Authorisation code flow with PKCE is used to authenticate users with non_confidential credentials.

Authorisation Code Flow

Authorisation code flow is used to authenticate users with confidential credentials.

Client Credentials Flow

Client credentials flow is used to authenticate backend to backend communication.

Updates to the API Fields and Mutations

To update the API fields and mutations, you need to set an AUTH_TOKEN environment variable. This code is auto-generated by Ariadne, so any changes to the API fields and mutations will be reflected in the code.

export AUTH_TOKEN=f"Bearer {your_auth_token}"
python -m ariadne-codegen

This will generate code and update files in the playerdatapy package.

Project details


Download files

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

Source Distribution

playerdatapy-1.15.0.tar.gz (392.9 kB view details)

Uploaded Source

Built Distribution

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

playerdatapy-1.15.0-py3-none-any.whl (194.8 kB view details)

Uploaded Python 3

File details

Details for the file playerdatapy-1.15.0.tar.gz.

File metadata

  • Download URL: playerdatapy-1.15.0.tar.gz
  • Upload date:
  • Size: 392.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for playerdatapy-1.15.0.tar.gz
Algorithm Hash digest
SHA256 344d0a9e6b37033817b8604b48b5d5d3ba4a7d780dbf7ec33a321fc6241f9098
MD5 cb27a1e92f1f014d9695c4eb491b378d
BLAKE2b-256 d48151c318afc65665999f807b2b1e0fbb0bedce1bd3b30f8d807b08e2078acc

See more details on using hashes here.

File details

Details for the file playerdatapy-1.15.0-py3-none-any.whl.

File metadata

  • Download URL: playerdatapy-1.15.0-py3-none-any.whl
  • Upload date:
  • Size: 194.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for playerdatapy-1.15.0-py3-none-any.whl
Algorithm Hash digest
SHA256 538d56cf234babd531cd674b774a66c4d06e3a0b4ec65ef256d7acbe17c0c850
MD5 7bb7f10c13dc31ba84c41647699474c9
BLAKE2b-256 41ab881dfc1eb64a22ca1873ca1f579c97a62fe42b62068703d2c5331c6e472d

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