Skip to main content

SweatStack Python client library

Quickstart

uv pip install sweatstack
import sweatstack as ss

ss.login()

ss.list_activities()

Authentication

SweatStack supports three authentication methods:

1. Browser-Based OAuth2 Authentication

ss.login()  # Opens your default browser for authentication

2. Direct API Key Authentication

client = ss.Client(api_key="your-api-key")

3. Environment Variable

Set the SWEATSTACK_API_KEY environment variable:

export SWEATSTACK_API_KEY="your-api-key"

SweatStack follows this priority order:

  1. Browser-based OAuth2 (ss.login())
  2. Direct API key via Client constructor
  3. SWEATSTACK_API_KEY environment variable

For example, calling ss.login() or client.login() will override any existing API key authentication, including those set through the constructor or environment variables.

Interfaces: Singleton vs Class-based

This library provides both a singleton interface and a class-based interface.

Singleton interface:

import sweatstack as ss

activities = ss.list_activities()

Class-based interface:

from sweatstack import Client

client = Client()
activities = client.list_activities()

Although both interfaces are feature-equivalent, they serve different purposes:

  • The singleton interface is the default and recommended interface. It is intended for most use cases and is the easiest to use.
  • The class-based interface is intended for more advanced use cases, such as when you need to authenticate multiple users at the same time or in multi-threaded applications.

Streamlit integration

The sweatstack.streamlit module provides a Streamlit integration for SweatStack. This requires the optional streamlit dependency that can be installed with:

uv pip install 'sweatstack[streamlit]'

The StreamlitAuth class is a Streamlit component that handles the OAuth2 authentication flow. It provides a st.authenticate() function that can be used to authenticate the user.

Example usage:

from sweatstack.streamlit import StreamlitAuth

auth = StreamlitAuth()

with st.sidebar:
    st.authenticate()

if not auth.is_authenticated():
    st.write("User is not authenticated")
    st.stop()

st.write("User is authenticated")

auth.client.get_latest_activity()

Metadata

Release files for sweatstack 0.18.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sweatstack 0.18.0
File Size Uploaded
sweatstack-0.18.0.tar.gz 84.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sweatstack 0.18.0
File Interpreter ABI Platform
sweatstack-0.18.0-py3-none-any.whl Python 3 none any Details

Total release size: 99.9 kB

Release files / sweatstack-0.18.0.tar.gz

Download URL sweatstack-0.18.0.tar.gz
Size 84.8 kB
Tags Source
SHA-256 checksum
How to use checksums
b7825fa74109299db9077fadb0320eeaf138c603b477d95f64511f9de780818d
BLAKE2b-256 checksum
How to use checksums
88422e184b7241b324e1fa18fb8afaf6814ed4680d48b36b5a589dc6bb941d48
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.5

Release files / sweatstack-0.18.0-py3-none-any.whl

Download URL sweatstack-0.18.0-py3-none-any.whl
Size 15.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3cf038650c80d4e2d450a2205defe6a5f736dbe57727b7b6561abd8e46bb9fa6
BLAKE2b-256 checksum
How to use checksums
8ed5cf31c7c287033f5d0e8e5895a654a483b3662e8b8113c2dc26e28f138497
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.5

Release history Release notifications | RSS feed

0.94.0

2 release files

0.90.0

2 release files

0.89.0

2 release files

0.87.0

2 release files

0.86.0

2 release files

0.85.0

2 release files

0.84.0

2 release files

0.83.0

2 release files

0.82.0

2 release files

0.81.0

2 release files

0.80.0

2 release files

0.79.0

2 release files

0.77.1

2 release files

0.77.0

2 release files

0.76.2

2 release files

0.76.1

2 release files

0.76.0

2 release files

0.75.0

2 release files

0.74.0

2 release files

0.72.0

2 release files

0.71.0

2 release files

0.70.0

2 release files

0.69.0

2 release files

0.68.0

2 release files

0.65.0

2 release files

0.61.0

2 release files

0.60.0

2 release files

0.59.0

2 release files

0.58.0

2 release files

0.56.0

2 release files

0.55.0

2 release files

0.53.0

2 release files

0.52.0

2 release files

0.51.0

2 release files

0.50.0

2 release files

0.49.0

2 release files

0.48.0

2 release files

0.45.0

2 release files

0.44.0

2 release files

0.43.0

2 release files

0.42.0

2 release files

0.41.0

2 release files

0.40.1

2 release files

0.40.0

2 release files

0.38.0

2 release files

0.34.0

2 release files

0.33.0

2 release files

0.32.0

2 release files

0.31.1

2 release files

0.31.0

2 release files

0.30.1

2 release files

0.30.0

2 release files

0.28.0

2 release files

This release

0.18.0 This release

2 release files

0.14.6

2 release files

0.14.5

2 release files

0.14.4

2 release files

0.14.3

2 release files

0.14.2

2 release files

0.14.1

2 release files

0.14.0

2 release files

0.13.2

2 release files

0.13.1

2 release files

0.13.0

2 release files

0.12.0

2 release files

0.11.1

2 release files

0.11.0

2 release files

0.10.1

2 release files

0.10.0

2 release files

0.9.3

2 release files

0.9.2

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page