Inter-process communication library for Python3 to interact with JS renderer
Project description
PYTHONIPC
This project is solely used because I hate using js for IPC controls
Essentially this is a python port of electron IPC module
Instead of the renderer interacting with the main process, a socketio client is used to communicate with a python3 socketio server
A package for javascript client is available under the following git:
Installation
Simply install using pip or your favourite package manager
pip install pythonipc
PYTHONIPC ocumentation
Import
from pythonipc import PyIPC
Class: PyIPC
Constructor
PyIPC(port: int = 5000, debug = False)
Creates a new PyIPC instance.
port: The port number to run the server on (default is 5000)
Methods
start()
Starts the PyIPC server in a separate thread.
ipc = PyIPC()
ipc.start()
on(event: str)
Decorator to register a handler for a specific event.
@ipc.on('greet')
def greet_handler(data):
return f"Hello, {data['name']}!"
off(event: str)
Removes a handler for a specific event.
ipc.off('greet')
invoke(event: str, data: Any = None, timeout: float = 5.0) -> Any
Invokes a remote procedure and waits for its response.
result = ipc.invoke('greet', {'name': 'Alice'})
print(result) # Outputs: Hello, Alice!
get_connections() -> int
Get the number of connected clients.
connections = ipc.get_connections()
print(f"There are {connections} clients connected")
has_connection() -> bool
Check if there are any connected clients.
if ipc.has_connection():
print("We have a connection!")
kill()
Stops the PyIPC server and cleans up resources.
ipc.kill()
Full Example
from pythonipc import PyIPC
ipc = PyIPC(port=5000)
@ipc.on('greet')
def greet_handler(data):
return f"Hello, {data['name']}!"
def main():
ipc.start()
try:
result = ipc.invoke('greet', {'name': 'Alice'})
print(result) # Outputs: Hello, Alice!
finally:
ipc.kill()
main()
This example sets up a PyIPC server, registers a 'greet' handler, invokes it, and then shuts down the server.
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
Hashes for pythonipc-1.4.2-py3-none-any.whl
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 | b96cf373cf0fbd857f87581f657795ab225940f8ab4adb3c15376d12e674de38 |
|
| MD5 | 301635ca242a50815ad235e6070a8054 |
|
| BLAKE2b-256 | ac1da75e924a8532d072e5b089d00144eb3ee270c40877c1d4b0964bc933db54 |