initial beta version
Project description
nikkiServiceBase for Python
Easy-to-use Python client for connecting your service to the nikki.build playground using WebSocket.
What this library offers
- Simple async WebSocket connection
- Automatic handling of
serviceDef.json+serviceToken.json - Strict validation at startup (fail-fast with clear errors)
- Auto-reconnect (optional)
- Clean callbacks:
onConnect,onConnect,onError,onData - Two send methods:
await client.send(...)→ normal send (raises on rate limit)client.send_nowait(...)→ safe for callbacks (never crashes, ignores rate limit)
- Full size & rate-limit protection (exactly matches platform rules)
- Production-ready, defensive, and very easy to use
Installation
- Install the only dependency:
pip install websockets
Copy the library file into your project as nikki_client.py (or keep it as libBase.py).
Quick Start
import asyncio
import time
from nikki_python.nikki_client import nikkiServiceBase
async def main():
client = nikkiServiceBase(auto_reconnect=True)
def onConnect_handler(details): print(f"✅ CONNECTED ")
def onDisconnect_handler(details): print(f"❌ DISCONNECTED → {details}")
def onError_handler(error): print(f"⚠️ ERROR → {error}")
def onData_handler(data: dict):
print(f"📨 RECEIVED: {data}")
# inner = data.get("data", {})
# said = inner.get("said", "")
# if isinstance(said, str):
# has_on = "on" in said.lower()
# reply = {"state": has_on}
# print(f" → said = '{said}' | contains 'on' = {has_on} → replying {reply}")
# client.send_nowait(reply) # ← ONE LINE, super clean!
client.onConnect = onConnect_handler
client.onDisconnect = onDisconnect_handler
client.onError = onError_handler
client.onData = onData_handler
await client.connect()
print("📤 Sending 100 test messages (every 2 seconds)...")
for i in range(100):
test = {"state" : bool(i %2== 0)}
try:
await client.send(test)
print(f" Sent #{i+1}/100")
except Exception as e:
print(f" Send failed: {e}")
await asyncio.sleep(2)
await asyncio.sleep(30)
await client.disconnect()
print("🏁 Test completed.")
if __name__ == "__main__":
asyncio.run(main())
Configuration Files
Place these two files in the same folder as your script (or pass base_path):
- serviceDef.json
- serviceToken.json
Official Website
For full documentation, API reference, and more examples visit: https://nikki.build
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 nikki_python-2.0.2.tar.gz.
File metadata
- Download URL: nikki_python-2.0.2.tar.gz
- Upload date:
- Size: 5.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8ad5601d556226830a9fe95efdeb718a4d72c4d3a0b7e1b1219d55b6641a75e6
|
|
| MD5 |
3982be28ba808308fb372c44e7ff1ea6
|
|
| BLAKE2b-256 |
54aace709aeada8e5947decf84711f6222cfb8722fb866c61b971d90d38dbb68
|
File details
Details for the file nikki_python-2.0.2-py3-none-any.whl.
File metadata
- Download URL: nikki_python-2.0.2-py3-none-any.whl
- Upload date:
- Size: 6.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
561c98374ff44d962fd4ca61d295164ffdef25b7accc287ce94684da56301f90
|
|
| MD5 |
7d7f76aa7d928c1a7285411851a77f47
|
|
| BLAKE2b-256 |
eef0752cca227def95e142cc53f0bb438e9c20bea46f1a18a0e4d5f93d85fdf4
|