def __repr__(self): msg = "<%s>\n" % self.__class__.__name__ msg += " <type: %s>\n" % Helper.first_match(submission_algos, self.type) msg += " <version: %s>\n" % Helper.first_match(specs_vers, self.version) msg += " <root: %s>\n" % self.root msg += " <name: %s>\n" % self.project msg += " <errors: %d>\n" % len(self.errors) msg += " <warnings: %d>\n" % len(self.warnings) return msg
def test_first_match(self): # fake dict a_dict = { "a": 1, "b": 99, "c": 1, } # test if it gives back the first matching key self.assertTrue(Helper.first_match(a_dict, 1) in ["a", "c"]) # test if it raises with a not-existing value with self.assertRaises(RuntimeError): Helper.first_match(a_dict, 2)
def __repr__(self): msg = " <BaseGridQA>\n" msg += " <type: %s>\n" % Helper.first_match(qa_algos, self.type) msg += " <grids: %s>\n" % bool(self.grids) return msg
def __repr__(self): msg = " <BaseScan>\n" msg += " <type: %s>\n" % Helper.first_match(scan_algos, self.type) msg += " <s57: %s>\n" % bool(self.s57) msg += " <flagged features: %s>\n" % len(self.flagged_features) return msg
def __repr__(self): msg = " <FlierDetector>\n" msg += " <type: %s>\n" % Helper.first_match(fliers_algos, self.type) msg += " <grids: %s>\n" % bool(self.grids) msg += " <possible fliers: %s>\n" % len(self.flagged_fliers) return msg
def __repr__(self): msg = " <BaseValsou>\n" msg += " <type: %s>\n" % Helper.first_match(valsou_algos, self.type) msg += " <s57: %s>\n" % bool(self.s57) msg += " <grids: %s>\n" % bool(self.grids) msg += " <flagged features: %s>\n" % len(self.flagged_features) return msg
def __repr__(self): msg = "<%s>\n" % self.__class__.__name__ msg += " <type: %s>\n" % Helper.first_match(designated_algos, self.type) msg += " <grids: %s>\n" % bool(self.grids) msg += " <flagged designated: %s>\n" % len(self.flagged_designated) return msg
def __repr__(self): msg = " <ChartBaseTriangle>\n" msg += " <type: %s>\n" % Helper.first_match(triangle_algos, self.type) msg += " <ss: %s>\n" % bool(self.ss) msg += " <s57: %s>\n" % bool(self.s57) msg += " <cs: %s>\n" % bool(self.cs) msg += " <flagged features: %s>\n" % len(self.flagged_features) return msg
def info_settings(self) -> None: msg = "Feature Scan settings:\n" msg += "- HSSD version: %s\n" % self.checks.version msg += "- nr. on features in the S57 file: %d\n" % len( self.checks.all_fts) msg += "- profile: %s\n" % ("field" if (self.checks.profile == 1) else "office") msg += "- survey area: %s\n" % Helper.first_match( Checks.survey_areas, self.checks.survey_area) msg += "- use MHW: %s [%s]\n" % (self.checks.use_mhw, self.checks.mhw_value) msg += "- check SORIND: %s\n" % (self.checks.sorind, ) msg += "- check SORDAT: %s\n" % (self.checks.sordat, ) msg += "- use HTD: %s \n" % (self.checks.check_image_names, ) logger.info(msg)
def save_to_db(self): """Save setup to db""" logger.info("*** > SETUP: saving ...") try: db = self.db # db.setup_version = self.setup_version # not overwrite the version since it implies different tables # db.active_setup_id = self.setup_id # obviously, unactivated to avoid db logic corruption # db.setup_status # only the current setup is visualized # db.setup_name = self.setup_name # input db.use_woa09 = self.use_woa09 db.use_woa13 = self.use_woa13 if db.setup_version > 1: db.use_woa18 = self.use_woa18 db.use_rtofs = self.use_rtofs if db.setup_version > 1: db.use_gomofs = self.use_gomofs db.ssp_extension_source = Helper.first_match(Dicts.atlases, self.ssp_extension_source) db.ssp_salinity_source = Helper.first_match(Dicts.atlases, self.ssp_salinity_source) db.ssp_temp_sal_source = Helper.first_match(Dicts.atlases, self.ssp_temp_sal_source) db.ssp_up_or_down = Helper.first_match(Dicts.ssp_directions, self.ssp_up_or_down) db.rx_max_wait_time = self.rx_max_wait_time db.use_sis4 = self.use_sis4 if db.setup_version > 1: db.use_sis5 = self.use_sis5 db.use_sippican = self.use_sippican db.use_mvp = self.use_mvp # client list db.delete_clients() for client in self.client_list.clients: logger.debug('- save: %s' % client.name) db.add_client(client_name=client.name, client_ip=client.ip, client_port=client.port, client_protocol=client.protocol) # listeners - sis4 db.sis_listen_port = self.sis_listen_port db.sis_listen_timeout = self.sis_listen_timeout # output - sis 4 and 5 db.sis_auto_apply_manual_casts = self.sis_auto_apply_manual_casts # listeners - sippican db.sippican_listen_port = self.sippican_listen_port db.sippican_listen_timeout = self.sippican_listen_timeout # listeners - mvp db.mvp_ip_address = self.mvp_ip_address db.mvp_listen_port = self.mvp_listen_port db.mvp_listen_timeout = self.mvp_listen_timeout db.mvp_transmission_protocol = self.mvp_transmission_protocol db.mvp_format = self.mvp_format db.mvp_winch_port = self.mvp_winch_port db.mvp_fish_port = self.mvp_fish_port db.mvp_nav_port = self.mvp_nav_port db.mvp_system_port = self.mvp_system_port db.mvp_sw_version = self.mvp_sw_version db.mvp_instrument_id = self.mvp_instrument_id db.mvp_instrument = self.mvp_instrument # server db.server_source = self.server_source db.server_apply_surface_sound_speed = self.server_apply_surface_sound_speed # current settings db.current_project = self.current_project db.custom_projects_folder = self.custom_projects_folder db.custom_outputs_folder = self.custom_outputs_folder db.custom_woa09_folder = self.custom_woa09_folder db.custom_woa13_folder = self.custom_woa13_folder if db.setup_version > 1: db.custom_woa18_folder = self.custom_woa18_folder db.noaa_tools = self.noaa_tools db.default_institution = self.default_institution db.default_survey = self.default_survey db.default_vessel = self.default_vessel db.auto_apply_default_metadata = self.auto_apply_default_metadata db.close() except Exception as e: raise RuntimeError("while saving setup to db, %s" % e) logger.info("*** > SETUP: saved!")
def algo(self) -> str: return Helper.first_match(anomaly_algos, self.type)