def add_user(self, name, password, save_config=True): Logger.info('AppManager: %s adding user' % (dround(self.uptime))) if not name in self.users: self.users[name] = User(name, password) if save_config: self.save_config() return True
def remove_user(self, name, save_config=True): Logger.info('AppManager: %s removing user' % (dround(self.uptime))) if name in self.users: del self.users[name] if save_config: self.save_config() return True
def __cycle0(self): # self.time += 1 self.model.tick(self.time) self.__send_data() self.__receive_data() Logger.info("Tick complete") time.sleep(1) os.system("clear")
def __log_parameters(self, params): """ Zapisuje parametry do logów. """ current_time, current_temp, previous_temp, water_temp = params current_time = "time=" + str(current_time) current_temp = "current_temp=" + str(current_temp) + " st. C" previous_temp = "previous_temp=" + str(previous_temp) + " st. C" water_temp = "water_temp=" + str(water_temp) + " st. C" msg = current_time + " " + current_temp + " " + previous_temp + " " + water_temp Logger.info(msg)
def __log_parameters(self, params): """ Zapisuje parametry do logów. """ current_time, current_temp, previous_temp, water_temp = params current_time = "time="+str(current_time) current_temp = "current_temp="+str(current_temp)+" st. C" previous_temp = "previous_temp="+str(previous_temp)+" st. C" water_temp = "water_temp="+str(water_temp)+" st. C" msg = current_time+" "+current_temp+" "+previous_temp+" "+water_temp Logger.info(msg)
def start(): global manager, app, login_manager manager = app_manager.AppManager(app, login_manager) login_manager.init_app(app) app.jinja_env.globals['manager'] = manager server = pywsgi.WSGIServer( ('0.0.0.0', 7114), app, # log=GeventLoggerInfo(), error_log=GeventLoggerError() log=None) Logger.info('Server: %s init' % (round(time() - app_manager.TIME0, 2))) server.serve_forever()
def __init__(self, model): Logger.info("Created communication") self.host = Configuration.get_hostname() self.port = Configuration.get_port() self.socket = None self.model = model self.communication_tries = 20 self.time = 10 self.role = Configuration.get_role() self.json_builder = JsonBuilder(self.role) self.prepare_connection()
def run(self): if self.socket is None: Logger.error("Socket does not exists, aborting!") return self.__send_init() js = self.__receive_init() try: self.time = js[Communication.TIME_KEY] except: Logger.info('Using default value of time ' + str(self.time)) self.time = 10 while True: self.__cycle0()
def run(self): if self.socket is None: Logger.error("Socket does not exists, aborting!") return self.__send_init() js = self.__receive_init() try: self.time = js[Communication.TIME_KEY] except: Logger.info("Using default value of time " + str(self.time)) self.time = 10 while True: self.__cycle0()
def __send(self, msg): Logger.debug("Sending msg=%s to server." % msg) if self.socket is None: Logger.warning("Will not send message, socket does not exist.") return for t in range(self.communication_tries): try: Logger.info("Trying to send msg.") self.socket.sendall(bytes(msg, "utf-8")) Logger.debug("Msg sent.") break except Exception as e: Logger.warning("Exception caught. " + str(e)) time.sleep(0.5) else: Logger.error("Failed to send message.")
def __send(self, msg): Logger.debug('Sending msg=%s to server.' % msg) if self.socket is None: Logger.warning("Will not send message, socket does not exist.") return for t in range(self.communication_tries): try: Logger.info('Trying to send msg.') self.socket.sendall(bytes(msg, 'utf-8')) Logger.debug('Msg sent.') break except Exception as e: Logger.warning('Exception caught. ' + str(e)) time.sleep(0.5) else: Logger.error("Failed to send message.")
def _read_config_file(self): try: if os.path.exists(app_globals.CONF_PATH): try: Logger.info('AppManager: %s Loading config' % (dround(self.uptime))) with open(app_globals.CONF_PATH, 'r') as f: conf = json.load(f) return conf except json.JSONDecodeError: self._write_default_config_json() else: self._write_default_config_json() if not os.path.exists(self.dir_file_share): os.makedirs(self.dir_file_share) except: Logger.critical('AppManager: Failed to load config') raise
def save_config(self): Logger.info('AppManager: %s save_config' % (dround(self.uptime))) with open(app_globals.CONF_PATH, 'w') as f: sdict = copy(app_globals.DEFAULT_CONFIG) users = {} for k, v in self.users.items(): users[k] = { 'id': v.id, 'name': v.name, 'password': v.passwd } appm = [('app_name', self.app_name), ('root', self.root), ('dir_file_share', self.dir_file_share), ('upload_extensions', self.upload_extensions), ('uploaded_files', self.uploaded_files), ('users', users)] for a, b in appm: sdict['AppManager'][a] = b json.dump(sdict, f, indent=4)
def start(self, **kwargs): for k, v in kwargs.items(): setattr(self, k, v) dir_path = os.path.dirname(os.path.realpath(__file__)) last_modification_time = os.path.getmtime(dir_path) try: while True: self._get_queued_messages() if self.process_state != self.P_RUNNING: self.restarted_times += 1 if self.process_state in (self.P_STOPPED, self.P_CRASHED): if self.restarted_times is 0: tt = 'HotLoader: %s restarting process' % ( self.timer) else: tt = 'HotLoader: %s restarting process (%s)' % ( self.timer, self.restarted_times) Logger.info(tt) if self.process_state == self.P_CRASHED: sleep(self.sleep_timer) self.process_state = self.P_RUNNING t = Thread(target=self._start_process) t.start() sleep(self.sleep_timer) new_modification_time = os.path.getmtime(dir_path) for x in self.monitor_paths: try: mod = os.path.getmtime(x) if mod > new_modification_time: new_modification_time = mod except FileNotFoundError: pass if new_modification_time > last_modification_time: self.write_log('new modifications') last_modification_time = new_modification_time + 1.0 if self.P_RUNNING: self._stop_process() sleep(self.sleep_timer) except KeyboardInterrupt: pass
def main(args): coco_dataloader = CocoDataLoader(args) trainloader = coco_dataloader.get_trainloader(args) yolov2 = DarkNet19() optimizer = Optimizer(yolov2.parameters(), args.lr) criterion = Loss() logger = Logger() logger.info('----- Starting training -----') for epoch in range(args.epochs): for i,data in enumerate(trainloader): images, targets = data optimizer.zero_grad() outputs = yolov2(images) total_loss = criterion.get_total_loss(outputs, targets, args) total_loss.backward() optimizer.step() logger.info(f'Epoch: {epoch+1}/{args.epochs}, Step: {i+1}, Loss: {loss.data}') logger.info('----- Training done! -----')
def prepare_connection(self): Logger.info("Initializing communication") Logger.info("Creating connection to %s:%s" % (self.host, self.port)) self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) if self.socket is None: Logger.error("Failed to create socket.") for t in range(self.communication_tries): try: self.socket.connect((self.host, self.port)) Logger.info("Successfully connected to host.") break except (ConnectionRefusedError, socket.timeout) as e: Logger.error("Failed to connect to host. %s" % e) time.sleep(0.5) else: self.socket = None
def write_log(self, message, level='info'): if level[0] == 'i': Logger.info('HotLoader: %s %s' % (self.timer, message)) elif level[0] == 'e': Logger.error('HotLoader: %s %s' % (self.timer, message))
def __receive_time(self): js = self.json_builder.deserialize(self.__receive()) self.time = js['time'] Logger.info("Received time value %f" % self.time)
def __receive_init(self): js = self.json_builder.deserialize(self.__receive()) Logger.info('Init msg received. ' + str(js)) return js
def __del__(self): if self.socket is not None: self.socket.close() Logger.info("Killing socket on exit.")
def _write_default_config_json(self): with open(app_globals.CONF_PATH, 'w') as f: json.dump(app_globals.DEFAULT_CONFIG, f, indent=4) Logger.info('AppManager: wrote default config to file')
def __receive_time(self): js = self.json_builder.deserialize(self.__receive()) self.time = js["time"] Logger.info("Received time value %f" % self.time)
def load_config(self): _ignored = ('default_user', 'users') conf = self._read_config_file().get('AppManager', None) if conf: # Add missing cofigs from defaults save_config = False for x in self.DEFAULTS: if x not in conf: save_config = True conf[x] = self.DEFAULTS[x] # Set manager attributes from config items for k, v in conf.items(): if k not in _ignored: setattr(self, k, v) self.login_manager.login_view = self.url('/login') self.app.config['APPLICATION_ROOT'] = self.root if save_config: self.save_config() # Remove missing files from uploaded_files dict fdel_list = [] for x in self.uploaded_files: x_path = self.uploaded_files[x]['path'] if os.path.exists(x_path): x_id = self.uploaded_files[x]['id'] self.uploaded_file_paths[x_path] = x_id else: fdel_list.append(x) for x in fdel_list: del self.uploaded_files[x] Logger.info( ('AppManager: removed file with nonexistent path: ' ' %s' % (x))) # Initialise user objects from config if conf['users']: cnt = 0 for k, v in conf['users'].items(): self.add_user(v['id'], v['password'], save_config=False) cnt += 1 if self.users: Logger.info('AppManager: loaded %s users' % (cnt)) else: usr = conf['default_user'] self.add_user(usr[0], usr[1], save_config=False) Logger.info(('AppManager: No users in config, added ' 'default user "%s" with password "%s"') % (usr[0], usr[1])) else: Logger.info('AppManager: No config, using defaults') self.using_default_user = True udef = self.DEFAULTS['default_user'] if udef[0] in self.users: if self.users[udef[0]].passwd == udef[1]: self.using_default_user = True Logger.info('AppManager: Using default user')
def __receive_init(self): js = self.json_builder.deserialize(self.__receive()) Logger.info("Init msg received. " + str(js)) return js