Skip to main content

The official OpenShock Python SDK to integrate with an OpenShock backend easily

Project description

OpenShock Python SDK

CI PyPI Python License

The official OpenShock Python SDK to integrate with an OpenShock backend easily. Provides a typed REST API client with planned support for live WebSocket connections.

Install

pip install openshock

Quick start

from openshock import OpenShockClient

client = OpenShockClient(api_token="your-api-token")

# Get backend info
info = client.meta.backend_info()
print(f"OpenShock {info.version}")

# List your shockers
shockers = client.shockers.list_own()

# Send a vibrate command
from openshock import Control

client.shockers.control([
    Control(id="shocker-uuid", type="Vibrate", intensity=50, duration=1000)
])

client.close()

Or use as a context manager:

with OpenShockClient(api_token="your-api-token") as client:
    stats = client.meta.online_stats()
    print(f"Devices online: {stats.devices_online}")

Resources

Resource Description Example
client.meta Backend info and stats client.meta.backend_info()
client.account User info and API tokens client.account.user_self()
client.devices Hub (device) management client.devices.list()
client.shockers Shocker CRUD, control, logs client.shockers.control(...)
client.shares Public share links and codes client.shares.list_public()
client.user_shares User-to-user shares (V2) client.user_shares.get()
client.sessions Login session management client.sessions.list()

For hub/device endpoints, use OpenShockHubClient:

from openshock import OpenShockHubClient

hub = OpenShockHubClient(hub_token="device-token")
lcg = hub.hub.assign_lcg()
print(f"Connect to {lcg.host}:{lcg.port}")

Authentication

Two client types for two auth schemes:

  • OpenShockClient(api_token=...) — User API token (OpenShockToken header)
  • OpenShockHubClient(hub_token=...) — Device token (DeviceToken header)

Create API tokens at openshock.app under Settings > API Tokens.

Typed models

All responses are parsed into typed dataclasses:

from openshock import (
    BackendInfo, Stats, User, Token, Device, Shocker,
    ShockerPermissions, ShockerLimits, ShockerLog, Control,
    Session, PublicShare, UserShares, ShareInvite, PauseReason,
)

Self-hosting

To connect to a self-hosted instance:

client = OpenShockClient(
    api_token="your-token",
    base_url="https://api.your-instance.com",
)

Development

git clone https://github.com/OpenShock/SDK.Python.git
cd SDK.Python
pip install -e ".[dev]"

# Format
ruff format .

# Lint
ruff check .

# Type check
mypy openshock/

# Test
pytest

License

MIT

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

openshock-0.1.0b1.tar.gz (17.0 kB view details)

Uploaded Source

Built Distribution

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

openshock-0.1.0b1-py3-none-any.whl (21.0 kB view details)

Uploaded Python 3

File details

Details for the file openshock-0.1.0b1.tar.gz.

File metadata

  • Download URL: openshock-0.1.0b1.tar.gz
  • Upload date:
  • Size: 17.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for openshock-0.1.0b1.tar.gz
Algorithm Hash digest
SHA256 2131188ecbd930be29783c070c22e9be96305fb769f4308bb14036333c94b135
MD5 47f522090b0eff716764914fdd507a35
BLAKE2b-256 cd00efa05d327975330e8146d61959d7511be9880db99ecd8370cbdd77687843

See more details on using hashes here.

Provenance

The following attestation bundles were made for openshock-0.1.0b1.tar.gz:

Publisher: publish.yml on OpenShock/SDK.Python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file openshock-0.1.0b1-py3-none-any.whl.

File metadata

  • Download URL: openshock-0.1.0b1-py3-none-any.whl
  • Upload date:
  • Size: 21.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for openshock-0.1.0b1-py3-none-any.whl
Algorithm Hash digest
SHA256 df0107a1254c6a4abb2bd613b193c41eca7b06de1cf7983939887666515a066a
MD5 ce598c7a4c9a47dd02621634bee5c49f
BLAKE2b-256 0f6fd0b7a77430ecdd64e20b368ba5a7c9067d350fe0b0f01b80577db338f3fb

See more details on using hashes here.

Provenance

The following attestation bundles were made for openshock-0.1.0b1-py3-none-any.whl:

Publisher: publish.yml on OpenShock/SDK.Python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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