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:
- Browser-based OAuth2 (
ss.login()) - Direct API key via
Clientconstructor SWEATSTACK_API_KEYenvironment 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.19.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| sweatstack-0.19.0.tar.gz | 4.0 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| sweatstack-0.19.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 5.9 MB
Release files / sweatstack-0.19.0.tar.gz
| Download URL | sweatstack-0.19.0.tar.gz |
|---|---|
| Size | 4.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d9e9ee96cc13654f68959d915689966ad04ac180ce01946f5070188d61660208
|
|
BLAKE2b-256 checksum How to use checksums |
76339172fe782c3f9c338d1625ccf32deded6f630e22beff399d5146f50e5293
|
| 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.19.0-py3-none-any.whl
| Download URL | sweatstack-0.19.0-py3-none-any.whl |
|---|---|
| Size | 2.0 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1c011049d960965ec3463a2a77dbcfd29706f57a6292204a55d986ef44a27692
|
|
BLAKE2b-256 checksum How to use checksums |
66be86efbcd5cc0ec8b7e7e5aaeb32fbce40455054e42bb6b1d62fbc45830988
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.5
|