Browse Source

working arg passing (sort of)

main
Michael Pilosov 2 years ago
parent
commit
e55ae1167b
  1. 41
      example_block/eden-server/announce.py
  2. 2
      example_block/eden-server/server.py

41
example_block/eden-server/announce.py

@ -18,16 +18,23 @@ def get_ip_address():
# Update these with the correct values for your host and server # Update these with the correct values for your host and server
HOST_SERVER_IP = "192.168.1.113" HOST_SERVER_IP = "192.168.1.113"
HOST_SERVER_PORT = 4999 HOST_SERVER_PORT = 4999
SERVER_NAME = "server_1"
SERVER_IP = get_ip_address() SERVER_IP = get_ip_address()
SERVER_PORT = 8000 SERVER_PORT = 8000
sio = socketio.AsyncClient() sio = socketio.AsyncClient()
async def announce_server(): async def announce_server(**kwargs):
SERVER_NAME = "server_1"
server_name = kwargs.get("name", SERVER_NAME)
# SERVER_IP = kwargs.get("ip", SERVER_IP)
# SERVER_PORT = kwargs.get("port", SERVER_PORT)
# HOST_SERVER_IP = kwargs.get("host_server_ip", HOST_SERVER_IP)
# HOST_SERVER_PORT = kwargs.get("host_server_port", HOST_SERVER_PORT)
@sio.event @sio.event
async def connect(): async def connect():
await sio.emit('register', {'name': SERVER_NAME, 'ip': SERVER_IP, 'port': SERVER_PORT}) await sio.emit('register', {'name': server_name, 'ip': SERVER_IP, 'port': SERVER_PORT})
print("Announced server to host") print("Announced server to host")
async def main(): async def main():
@ -53,15 +60,15 @@ async def announce_server():
await main() await main()
def announce_server_decorator(host_block_function): def announce_server_decorator(task):
@wraps(host_block_function) @wraps(task)
def wrapper(*args, **kwargs): def wrapper(*args, **kwargs):
async def main(*args, **kwargs): async def main(*args, **kwargs):
loop = asyncio.get_event_loop() loop = asyncio.get_event_loop()
host_block_thread = loop.run_in_executor(None, host_block_function) host_block_thread = loop.run_in_executor(None, task)
# Announce the server to the host # Announce the server to the host
await announce_server() await announce_server(name='test')
# Wait for host_block to finish # Wait for host_block to finish
await host_block_thread await host_block_thread
@ -69,3 +76,23 @@ def announce_server_decorator(host_block_function):
return asyncio.run(main()) return asyncio.run(main())
return wrapper return wrapper
# def announce_server_decorator(**outer_kwargs):
# def decorator(host_block_function):
# @wraps(host_block_function)
# def wrapper(*args, **kwargs):
# async def main(*args, **kwargs):
# loop = asyncio.get_event_loop()
# host_block_thread = loop.run_in_executor(None, host_block_function, *args, **kwargs)
# # Announce the server to the host
# await announce_server(**outer_kwargs)
# # Wait for host_block to finish
# await host_block_thread
# return asyncio.run(main(*args, **kwargs))
# return wrapper
# return decorator

2
example_block/eden-server/server.py

@ -57,7 +57,7 @@ def do_something(config):
from announce import announce_server_decorator from announce import announce_server_decorator
@announce_server_decorator @announce_server_decorator#(name="example_block", port=5656)
def run_host_block(): def run_host_block():
host_block( host_block(
block=eden_block, block=eden_block,

Loading…
Cancel
Save