WaveAssist Python SDK for storing and retrieving structured data
Project description
WaveAssist Python SDK 🌊
WaveAssist makes it simple to store and retrieve data in your automation workflows.
✨ Features
- 🔐 One-line
init()to connect with your WaveAssist project - ⚙️ Automatically works on local and WaveAssist Cloud (worker) environments
- 📦 Store and retrieve data (DataFrames, JSON, strings)
- 🧠 LLM-friendly function names (
init,store_data,fetch_data) - 📁 Auto-serialization for common Python objects
- ✅ Built for automation workflows, cron jobs, and AI pipelines
🚀 Getting Started
1. Install
pip install waveassist
2. Initialize the SDK
import waveassist
# Option 1: Use no arguments (recommended)
waveassist.init()
# Will auto-resolve from:
# 1. Explicit args (if passed)
# 2. .env file (WA_UID, WA_PROJECT_KEY, WA_ENV_KEY)
# 3. Worker-injected credentials (on [WaveAssist Cloud](https://waveassist.io))
🛠 Setting up .env (for local runs)
uid=your-user-id
project_key=your-project-key
# optional
environment_key=your-env-key
This file will be ignored by Git if you use our default .gitignore.
3. Store Data
🧾 Store a string
waveassist.store_data("welcome_message", "Hello, world!")
📊 Store a DataFrame
import pandas as pd
df = pd.DataFrame({"name": ["Alice", "Bob"], "score": [95, 88]})
waveassist.store_data("user_scores", df)
🧠 Store JSON/dict/array
profile = {"name": "Alice", "age": 30}
waveassist.store_data("profile_data", profile)
4. Fetch Data
result = waveassist.fetch_data("user_scores")
# Will return:
# - A DataFrame (if stored as one)
# - A dict/list (if stored as JSON)
# - A string (if stored as text)
🧪 Running Tests
If you’re not using pytest, just run the test script directly:
python tests/run_tests.py
✅ Includes tests for:
- String roundtrip
- JSON/dict roundtrip
- DataFrame roundtrip
- Error if
init()is not called
🛠 Project Structure
WaveAssist/
├── waveassist/
│ ├── __init__.py # init(), store_data(), fetch_data()
│ ├── _config.py # Global config vars
│ └── ...
├── tests/
│ └── run_tests.py # Manual test runner
📌 Notes
- Data is stored in your WaveAssist backend (e.g. MongoDB) as serialized content
store_data()auto-detects the object type and serializes it (CSV/JSON/text)fetch_data()deserializes it back to the right Python object
🧠 Example Use Case
import waveassist
waveassist.init() # Auto-initialized from .env or worker
# Store GitHub PR data
waveassist.store_data("latest_pr", {
"title": "Fix bug in auth",
"author": "alice",
"status": "open"
})
# Later, fetch it for further processing
pr = waveassist.fetch_data("latest_pr")
print(pr["title"])
🤝 Contributing
Want to add formats, features, or cloud extensions? PRs welcome!
📬 Contact
Need help or have feedback? Reach out at connect@waveassist.io, visit WaveAssist.io, or open an issue.
© 2025 WaveAssist
Project details
Release history Release notifications | RSS feed
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 waveassist-0.1.1.tar.gz.
File metadata
- Download URL: waveassist-0.1.1.tar.gz
- Upload date:
- Size: 9.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
192d8e3e064284944e05d2d9712dcf6975e8a9b52d298a1d197e80faa5233057
|
|
| MD5 |
f74092b9ecb5c10ae9202b0b609dca49
|
|
| BLAKE2b-256 |
86de1778465ddd04e9d9800674d8c2d87e7022f0aae6b52498b11397f4c26631
|
Provenance
The following attestation bundles were made for waveassist-0.1.1.tar.gz:
Publisher:
python-publish.yml on WaveAssist/WaveAssist
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
waveassist-0.1.1.tar.gz -
Subject digest:
192d8e3e064284944e05d2d9712dcf6975e8a9b52d298a1d197e80faa5233057 - Sigstore transparency entry: 219816645
- Sigstore integration time:
-
Permalink:
WaveAssist/WaveAssist@b94c544c7fbdd609ff917723b0eb98c92d09bcce -
Branch / Tag:
refs/tags/0.1.1 - Owner: https://github.com/WaveAssist
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@b94c544c7fbdd609ff917723b0eb98c92d09bcce -
Trigger Event:
release
-
Statement type:
File details
Details for the file waveassist-0.1.1-py3-none-any.whl.
File metadata
- Download URL: waveassist-0.1.1-py3-none-any.whl
- Upload date:
- Size: 9.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a545152e44100a7861bf4fca77809d3f294f1927f096beb56739a104006b1044
|
|
| MD5 |
6499d314b24b4964a3695b1dd53ec2c2
|
|
| BLAKE2b-256 |
a24d341c00cefa8e553aee18145321c2314e0635fe0ee2ad93b2425fef22da7a
|
Provenance
The following attestation bundles were made for waveassist-0.1.1-py3-none-any.whl:
Publisher:
python-publish.yml on WaveAssist/WaveAssist
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
waveassist-0.1.1-py3-none-any.whl -
Subject digest:
a545152e44100a7861bf4fca77809d3f294f1927f096beb56739a104006b1044 - Sigstore transparency entry: 219816647
- Sigstore integration time:
-
Permalink:
WaveAssist/WaveAssist@b94c544c7fbdd609ff917723b0eb98c92d09bcce -
Branch / Tag:
refs/tags/0.1.1 - Owner: https://github.com/WaveAssist
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@b94c544c7fbdd609ff917723b0eb98c92d09bcce -
Trigger Event:
release
-
Statement type: