From 48fbc07e1106f217e56dba99d273946d39de5974 Mon Sep 17 00:00:00 2001 From: TinWoodman92 Date: Sun, 11 Jun 2023 20:49:16 -0500 Subject: Updated launcher and script to use the dialoguer package. --- launcher.py | 101 +++++++-------------------------------------------------- source_file.py | 41 ----------------------- source_file.r | 49 ++-------------------------- 3 files changed, 14 insertions(+), 177 deletions(-) delete mode 100644 source_file.py diff --git a/launcher.py b/launcher.py index 32ec12b..50aaedc 100644 --- a/launcher.py +++ b/launcher.py @@ -1,96 +1,19 @@ -import os -import subprocess -import threading -import socket -import time +import dialoguer -HEADER = 64 -PORT = 6011 -SERVER = 'localhost' -ADDR = (SERVER, PORT) -FORMAT = 'utf-8' -DISCONNECT_MESSAGE = b'!DISSCONNECT' +src_fil_r = dialoguer.Dialogue('source_file.r') +print('active:', src_fil_r.active) +src_fil_r.open() +print('active:', src_fil_r.active) -server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) -server.bind(ADDR) +msg_1 = src_fil_r.import_variable('msg_1') +print(msg_1) -def establish_connection(mutable = {}): - server.listen() - conn, addr = server.accept() - mutable['conn'] = conn - mutable['addr'] = addr - return conn, addr +msg_2 = src_fil_r.import_variable('msg_2') +print(msg_2) -def send_msg(conn, msg): - data = bytes(msg, FORMAT) - data += b' ' * (HEADER - len(data)) - conn.send(data) - -def recv_msg(conn): - msg = conn.recv(HEADER).strip() - return msg - -def execute_source_file(file_name): - ext = file_name.split('.') - if ext[1] == 'py': cmd = 'Python' - elif ext[1] == 'r': cmd = 'Rscript' - - subprocess.run( - f'{cmd} {file_name}', - cwd = os.getcwd(), - start_new_session = True - ) - print(f'{file_name} executed') - -def launch_and_connect(file_name, CONN): - connect_ = threading.Thread(target=establish_connection, args=[CONN]) - launch_ = threading.Thread(target=execute_source_file, args=[file_name]) - - connect_.start() - launch_.start() - connect_.join() - - conn = CONN['conn'] - addr = CONN['addr'] - CONN['launch_'] = launch_ - return conn, addr - -def disconnect_and_close(CONN): - conn = CONN['conn'] - launch_ = CONN['launch_'] - send_msg(conn, '!DISCONNECT') - print(f'closing {CONN["addr"]}') - launch_.join() - print(f'closed {CONN["addr"]}') - conn.close() - -CONN_R = {} -CONN_PY = {} -src_fil_r = threading.Thread(target=launch_and_connect, args=['source_file.r', CONN_R]) -src_fil_py = threading.Thread(target=launch_and_connect, args=['source_file.py', CONN_PY]) -disc_r = threading.Thread(target=disconnect_and_close, args=[CONN_R]) -disc_py = threading.Thread(target=disconnect_and_close, args=[CONN_PY]) - -src_fil_r.run() -src_fil_py.run() - -conn_r = CONN_R['conn'] -conn_py = CONN_PY['conn'] - -msg = recv_msg(conn_r) -print(msg) -msg = recv_msg(conn_py) -print(msg) - -for i in range(255): - msg = f'message {i}' - send_msg(conn_r, msg) - send_msg(conn_py, msg) - -disc_r.start() -disc_py.start() -disc_r.join() -disc_py.join() +print('active:', src_fil_r.active) +src_fil_r.close() +print('active:', src_fil_r.active) print("end launcher") diff --git a/source_file.py b/source_file.py deleted file mode 100644 index 672139c..0000000 --- a/source_file.py +++ /dev/null @@ -1,41 +0,0 @@ -import socket - -HEADER = 64 -PORT = 6011 -SERVER = 'localhost' -ADDR = (SERVER, PORT) -FORMAT = 'utf-8' -DISCONNECT_MESSAGE = b'!DISSCONNECT' - -CONN = socket.socket(socket.AF_INET, socket.SOCK_STREAM) -CONN.connect(ADDR) - -def display_msg(msg): - print( - '\033[93m', - msg, - sep='', - end='\033[0m\n' - ) - -def send_msg(conn, msg): - data = bytes(msg, FORMAT) - data += b' ' * (HEADER - len(data)) - conn.send(data) - -def recv_msg(conn): - msg = conn.recv(HEADER).strip() - msg = msg.decode(FORMAT) - return msg - -msg = "Initializing Client - Python" -display_msg(msg) - -msg = "Initialized Client - Python" -send_msg(CONN, msg) - -while msg != '!DISCONNECT': - msg = recv_msg(CONN) - display_msg(msg) - -CONN.close() \ No newline at end of file diff --git a/source_file.r b/source_file.r index ce7e85d..3d13503 100644 --- a/source_file.r +++ b/source_file.r @@ -1,47 +1,2 @@ -HEADER <- 64 -PORT <- 6011 -SERVER <- "localhost" -FORMAT <- "utf-8" -DISCONNECT_MESSAGE <- "!DISSCONNECT" - -con <- socketConnection( - host = SERVER, - port = PORT, - server = FALSE -) - -display_msg <- function(msg) { - cat( - '\033[94m', - msg, - sep = '', - end = '\033[0m\n' - ) -} - -send_msg <- function(conn, msg) { - sendme <- paste(msg, strrep(" ", HEADER - nchar(msg)), sep = "") - writeChar(sendme, conn) -} - -recv_msg <- function(conn) { - suppressWarnings(msg <- trimws(readChar(conn, HEADER))) - while (length(msg) == 0) { - #cat('ALERT\n') - suppressWarnings(msg <- trimws(readChar(conn, HEADER))) - } - return(msg) -} - -msg <- "Initializing Client - R" -display_msg(msg) - -msg <- "Initialized Client - R" -send_msg(con, msg) - -while (msg != '!DISCONNECT') { - msg <- recv_msg(con) - display_msg(msg) -} - -close(con) \ No newline at end of file +msg_1 <- "Initializing Client - R" +msg_2 <- "Initialized Client - R" \ No newline at end of file -- cgit v1.2.3