def main(args): if len(args) > 0: cli = CLI() cli.run() else: appctxt = AppContext() # 1. Instantiate ApplicationContext exit_code = appctxt.run() # 2. Invoke appctxt.app.exec_() sys.exit(exit_code)
class Node: def __init__(self): self.udp_ip = cfg.UdpServer['ip'] self.udp_port = cfg.UdpServer['port'] self.flask_ip = cfg.FlaskServer['ip'] self.flask_port = cfg.FlaskServer['port'] self.username = cfg.Application['name'] self.dir = cfg.Application['dir'] self.bs_ip = cfg.BoostrapServer['ip'] self.bs_port = cfg.BoostrapServer['port'] self.routing_table = RoutingTable() self.cli = CLI() self.udp_server = UDPServer(self.udp_ip, self.udp_port) self.rest_server = RESTServer(self.flask_ip, self.flask_port) def run(self): # generate random files to be shared self.generate_files(random.randint(2, 5)) self.reg_in_bs() self.connect_to_network() # starting udp server in a new process self.udp_server.run() # starting rest server in a new process self.rest_server.run() # starting cli in the main process self.cli.run() self.udp_server.terminate() self.rest_server.terminate() self.unreg_from_bs() self.disconnect_from_network() shutil.rmtree(self.dir) def reg_in_bs(self): query = query_builder("REG", data=[self.udp_ip, self.udp_port, self.username]) data = udp_send_recv(self.bs_ip, self.bs_port, query) try: res_type, data = query_parser(data) except Exception as e: print("Error:", str(e)) sys.exit("Exiting, Couldn't connect to BS") else: if res_type == "REGOK": for i in range(0, len(data), 2): self.routing_table.add(data[i], data[i + 1]) else: print("Error: Invalid response from BS") sys.exit("Exiting, Couldn't connect to BS") def unreg_from_bs(self): query = query_builder("UNREG", data=[self.udp_ip, self.udp_port, self.username]) res = udp_send_recv(self.bs_ip, self.bs_port, query) try: res_type, res = query_parser(res) except Exception as e: pass def connect_to_network(self): for ip, port in self.routing_table.get(): query = query_builder("JOIN", data=[self.udp_ip, self.udp_port]) data = udp_send_recv(ip, port, query) try: res_type, data = query_parser(data) except Exception as e: print("Error:", str(e)) self.routing_table.remove((ip, port)) else: if res_type == "JOINOK": pass def disconnect_from_network(self): for ip, port in self.routing_table.get(): query = query_builder("LEAVE", data=[self.udp_ip, self.udp_port]) data = udp_send_recv(ip, port, query) try: res_type, data = query_parser(data) except Exception as e: print("Error:", str(e)) else: if res_type == "LEAVEOK": pass def generate_files(self, num_files): if os.path.isdir(self.dir): print("path already exist") else: os.mkdir(self.dir) file_names = [] with open("File Names.txt", 'r') as in_file: for line in in_file: file_names.append(line.strip()) random.shuffle(file_names) for i in range(num_files): generate_random_file(self.dir, file_names[i], random.randint(2, 10))
def main(): cli = CLI() cli.run()
def main(): cli = CLI() cli.run() return 0
from function_holder import FunctionHolder from cli import CLI def testFunction(): print("hello, world. testing, testing...") return 22 function_holder = FunctionHolder() # Add a simple function to the function_holder function_holder.addFunction("test", testFunction, 0) cli = CLI(function_holder) cli.run()
Parameter: beg (int) : """ print('Finished in {0:.3f} ms.'.format(clock() - beg)) if __name__ == '__main__': beg = clock() args = parse_args() code = args['code'] source = args['file'] pyint = Interpreter() # execute raw code if code: out = pyint.run(code=code) print('Output:\n\t' + out) show_elapsed(beg) # execute code from file elif source: out = pyint.run(file=source) print('Output:\n\t' + out) show_elapsed(beg) # cli else: CLI.run(pyint)
########################################################### # A main file of the project # Author: Piotr Wiezel ########################################################### from cli import CLI # Command line interface cli = CLI() cli.run()