Skip to main content

Sport Data Valley client library for Python

Project description

Sport Data Valley client library for Python

Downloads

Introduction

sdvclient is a Python client library for the Sport Data Valley platform. It is basically a wrapper around the REST API (documented here).

Installation

If you are working in the Sport Data Valley JupyterHub environment, this library is automatically installed.

If you are working in a different Python environment, this library can be installed from PyPI:

pip install sdvclient

Usage

import sdvclient as sdv


for dataset in sdv.my_data():
    # Do something
    pass

The dataset summaries that are returned from my_data() have attributes like title, event_start, event_end, owner, sport, tags and more...

dataset.sport
>>> "sports.riding"

To retrieve data from your network:

import sdvclient as sdv


for dataset in sdv.network_data():
    # Do something
    pass

Limit the number of results

Both sdv.my_data() and sdv.network_data() accept an optional limit argument that can be used to limit the number of dataset summaries that are returned.

import sdvclient as sdv

for dataset in sdv.my_data(limit=10):
    # Process maximum 10 datasets
    pass

Please note that if there are less datasets available then the limit you specify, the number of returned dataset summaries is lower than limit.

Filter network data

sdv.network_data() accepts an optional query argument that can be used to filter the returned datasets:

import sdvclient as sdv

for dataset in sdv.network_data(query="strava"):
    # Process datasets that are matched by the "strava" query
    pass

Please note that the query argument filters on all the fields of a dataset. This means that filtering on the name of a user does not necessarily only retrieve data for that user, as this name may also occur anywhere else in a different dataset.

N.B. The query argument is not available for sdv.my_data().

Retrieving datasets

import sdvclient as sdv


dataset = sdv.get_dataset(id=1337)

Every dataset that is returned from get_dataset() has attributes like title, event_start, event_end, owner, sport, type, tags and more fields depending on the data_type. For example a dataset with type strava_type has an attribute dataframe that contains a pandas.DataFrame with the data from this dataset.

dataset.data_type
>>> "strava_type"
dataset.dataframe
>>> <pandas.DataFrame>

Strava data type

As mentioned above, dasets of type strava_type have an attribute dataframe with the corresponding data in a dataframe:

dataset.data_type
>>> "strava_type"
dataset.dataframe
>>> <pandas.DataFrame>

Questionnaire data type

Datasets of type questionnaire have a questions attribute which contains of all the questions and answers in the questionnaire. For each question+answer, the question and answer are available on the question and answer attributes, respectivily.

dataset.questions[2].question
>>> "this is a question"

dataset.questions[2].answer
>>> "this is an answer"

Generic CSV data type

For generic tabular data like csv's the returned dataset has an attribute dataframe with the corresponding data in a dataframe:

dataset.data_type
>>> "generic_csv_type"
dataset.dataframe
>>> <pandas.DataFrame>

Daily activity data type

For daily activity data that is coming from e.g. Fitbit or Polar, the returned dataset has a range of attributes:

  • steps
  • distance
  • calories
  • floors
  • sleep_start
  • sleep_end
  • sleep_duration
  • resting_heart_rate
  • minutes_sedentary
  • minutes_lightly_active
  • minutes_fairly_active
  • minutes_very_active
dataset.data_type
>>> "fitbit_type"
dataset.resting_heart_rate
>>> 58

Please note that not all attributes are always available, this is platform and device dependent.

Unstructured data

Unstructured data is data (files) that Sport Data Valley does not know how to process. These files are stored "as is" in the platform and can be download via this client library as well: For generic tabular data like csv's the returned dataset has an attribute dataframe with the corresponding data in a dataframe: Unstructured data has a file_response attribute that contains a requests.Response object.

dataset.data_type
>>> "unstructured"
dataset.file_response
>>> <Response [200]>

Read more about processing files downloaded with the Python requests library here. E.g. to process binary response content, see here.

Other data types

Although this library will be updated when new data types are added it can happen that a specific data type is not fully supported yet. In that case the returned dateset will be identical as unstructured data, with an file_response attribute that contains a requests.Response object. Unstructured data is data (files) that Sport Data Valley does not know how to process.

dataset.data_type
>>> "some new data type"
dataset.file_response
>>> <Response [200]>

Authentication

The library retrieves your API token from the SDV_AUTH_TOKEN environment variable. If you are working in the Sport Data Valley JupyterHub, this is automatically set. If you are working in a different environment, you can retrieve an API token from the "Advanced" page here and set it like this:

sdv.set_token("your API token here")

Development

Adding Python versions

The supported Python versions are specified in pyproject.toml[tool.poetry.dependencies]#python. The Python versions that are tested are specified in pyproject.toml[tool.tox]#envlist and in Dockerfile.test. If you want to add a new supported Python version, or want to test against a newer version of an existing Python version, the versions at these locations need to be updated.

Contributors

License

See LICENSE file.

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

sdvclient-0.3.0.tar.gz (8.0 kB view details)

Uploaded Source

Built Distribution

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

sdvclient-0.3.0-py3-none-any.whl (7.9 kB view details)

Uploaded Python 3

File details

Details for the file sdvclient-0.3.0.tar.gz.

File metadata

  • Download URL: sdvclient-0.3.0.tar.gz
  • Upload date:
  • Size: 8.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.4 CPython/3.8.6 Linux/5.9.8-2-MANJARO

File hashes

Hashes for sdvclient-0.3.0.tar.gz
Algorithm Hash digest
SHA256 d1f885c5ab72164e1be3088af02726b133fe8e56c0340178bfa231c3815a5882
MD5 184d8e3071ef7318529eebc4d5734452
BLAKE2b-256 a2ae8427ebc51a5786f307c651ff7d4b26069af5f754840daa2673f2512e9180

See more details on using hashes here.

File details

Details for the file sdvclient-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: sdvclient-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 7.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.4 CPython/3.8.6 Linux/5.9.8-2-MANJARO

File hashes

Hashes for sdvclient-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c464e35135d9207627c46e4ca57bf39ae51dff030a3334d7f5592872b0ec5e9c
MD5 0268e3ebd3b6d36934676223eb337ec5
BLAKE2b-256 b43654ea41144946e8f29a662a46a6d2bccc5c3e521616dbd2ac3e0a36e15364

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