Sport Data Valley client library for Python
Project description
Sport Data Valley client library for Python
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_data(id=1337)
Every dataset that is returned from get_data() 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.
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
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 sdvclient-0.2.0.tar.gz.
File metadata
- Download URL: sdvclient-0.2.0.tar.gz
- Upload date:
- Size: 7.4 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
665387b88a1a8642e2514856510a1138df91dfdcc994bb148cda31a2260f470a
|
|
| MD5 |
1aea3b3edc9ea0ebb896efc7ddcdfff4
|
|
| BLAKE2b-256 |
9733bd21bf40ff229aa23ec5c1b7f3066464b04cc605de20dfe0263a109b4f8f
|
File details
Details for the file sdvclient-0.2.0-py3-none-any.whl.
File metadata
- Download URL: sdvclient-0.2.0-py3-none-any.whl
- Upload date:
- Size: 7.5 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5889653661f54820a8dc371190d221d893cdb1569699bb30d669b001047fefc8
|
|
| MD5 |
1a258083bd2c1a85261caadb3fec133d
|
|
| BLAKE2b-256 |
7fa0770a49cf2c5c43d90d9fec2efc90db68a3ee0b897f5d39efff933346ee42
|