Last updated:
0 purchases
eruptionsdk 0.0.10
Eruption Python 3 SDK
This is the documentation of the Python 3 SDK for Eruption
Table of Contents
Eruption Python 3 SDK
Table of Contents
Using the Python SDK
Getting started
Installation Instructions
Example Code
Imports
Establishing a Connection
Switching Profiles
Updating Parameters
Controlling the Canvas
Terminating the Connection
Full Code Listing
Using the Python SDK
Getting started
First you need to set up the required environment:
Create a virtual environment (venv)
Install the dependencies
Eruption Python 3 SDK
Google Protocol Buffers
Run an example application to test the installation
simple.py located in sdk/examples/python/
Installation Instructions
Create the virtual environment (venv)
python3 -m venv venv
source venv/bin/activate
Now install the dependencies
pip install eruption-sdk
Example Code
Imports
from eruption import SDK_VERSION, Connection, Canvas, Color
Establishing a Connection
The following code will establish a connection to a running instance of Eruption via the
local transport (UNIX domain socket)
# connect to the Eruption daemon (via a local connection)
try:
print("Connecting to the Eruption daemon...")
connection = Connection(type=Connection.LOCAL)
connection.connect()
print("Successfully connected to the Eruption daemon")
status = connection.get_server_status()
print(status)
Switching Profiles
The current active profile file can be queried using get_active_profile() and set using switch_profile().
print("Currently using", connection.get_active_profile())
# Use the profile's full file path
connection.switch_profile("/var/lib/eruption/profiles/solid.profile")
Updating Parameters
One or more script parameters can be set using set_parameters(). Pass in the full file
path of the profile and the script, then any parameters you want to update.
profile_file = "/var/lib/eruption/profiles/solid.profile"
script_file = "/usr/share/eruption/scripts/solid.lua"
connection.set_parameters(profile_file, script_file, color_background="#ff3f00ff", opacity=0.9)
Controlling the Canvas
Using the canvas with the Color class
# create a new canvas
canvas = Canvas()
red = Color(255, 0, 0, 128)
green = Color(0, 255, 0, 128)
blue = Color(0, 0, 255, 128)
final = Color(0, 0, 0, 0)
canvas.fill(red)
print("Submitting canvas...")
connection.submit_canvas(canvas)
time.sleep(1)
canvas.fill(green)
print("Submitting canvas...")
connection.submit_canvas(canvas)
time.sleep(1)
canvas.fill(blue)
print("Submitting canvas...")
connection.submit_canvas(canvas)
time.sleep(1)
canvas.fill(final)
print("Submitting canvas...")
connection.submit_canvas(canvas)
Terminating the Connection
connection.disconnect()
print("Exiting now")
except (Exception) as e:
print(f"An error occurred: {type(e).__name__} {e}" )
Full Code Listing
import sys
import time
from eruption import SDK_VERSION, Connection, Canvas, Color
EXAMPLE_NAME = "Simple Python Example #1"
def main():
"""Main program entrypoint"""
print(f"Welcome to the Eruption SDK!\nYou are running the \"{EXAMPLE_NAME}\" "
f"from the Eruption SDK version {SDK_VERSION}\n")
# connect to the Eruption daemon (via a local connection)
try:
print("Connecting to the Eruption daemon...")
connection = Connection(type=Connection.LOCAL)
connection.connect()
print("Successfully connected to the Eruption daemon")
status = connection.get_server_status()
print(status)
# create a new canvas
canvas = Canvas()
red = Color(255, 0, 0, 128)
green = Color(0, 255, 0, 128)
blue = Color(0, 0, 255, 128)
final = Color(0, 0, 0, 0)
canvas.fill(red)
print("Submitting canvas...")
connection.submit_canvas(canvas)
time.sleep(1)
canvas.fill(green)
print("Submitting canvas...")
connection.submit_canvas(canvas)
time.sleep(1)
canvas.fill(blue)
print("Submitting canvas...")
connection.submit_canvas(canvas)
time.sleep(1)
canvas.fill(final)
print("Submitting canvas...")
connection.submit_canvas(canvas)
connection.disconnect()
print("Exiting now")
except (Exception) as e:
print(f"An error occurred: {type(e).__name__} {e}" )
if __name__ == "__main__":
try:
main()
except KeyboardInterrupt:
pass
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.