def __init__(self, input_file, input_dir, file_regex, latest, debug, recursive=False): """ Return an instance of JsonFileProcessor. Parameters: input_file (string): file (full path) to check for data input_dir (string): directory (full path) to check for data files latest (Boolean): check for latest files only debug (Boolean): enable debug logging recursive (Boolean): check the search directory recursively """ self.debug = debug root_logger.info("Debug: %s", debug) if input_file: self.file_names = FileProcessor.match_file(input_file, file_regex) root_logger.info("Found %d json files for %s in %s", self.file_count(), file_regex, input_file) if input_dir: self.file_names = FileProcessor.dir_to_files( input_dir, file_regex, latest, recursive) root_logger.info("Found %d json files for %s in %s", self.file_count(), file_regex, input_dir)
def copy_monitoring(self, monitoring_dir, latest): """Copy daily monitoring data FIT files from a USB mounted Garmin device to the given directory.""" device_monitoring_dir = GarminDBConfigManager.device_monitoring_dir(self.device_mount_dir) logger.info("Copying monitoring files from %s to %s", device_monitoring_dir, monitoring_dir) file_names = FileProcessor.dir_to_files(device_monitoring_dir, Fit.file.name_regex, latest) for file in progressbar.progressbar(file_names): shutil.copy(file, monitoring_dir)
def __init__(self, input_dir, latest, measurement_system, debug): logger.info("Processing daily FIT data") self.measurement_system = measurement_system self.debug = debug if input_dir: self.file_names = FileProcessor.dir_to_files( input_dir, Fit.file.name_regex, latest, True)
def __init__(self, input_file, input_dir, db_params_dict, metric, debug): """Return a new instance of FitBitData given the location of the data files, paramters for accessing the database, and if the data should be stored in metric units.""" self.metric = metric self.fitbitdb = FitBitDB.FitBitDB(db_params_dict, debug) if input_file: self.file_names = FileProcessor.match_file(input_file, r'.*\.csv') if input_dir: self.file_names = FileProcessor.dir_to_files(input_dir, r'.*\.csv')
def __init__(self, input_file, input_dir, db_params_dict, metric, debug): self.metric = metric self.mshealth_db = MSHealthDB.MSHealthDB(db_params_dict, debug) if input_file: self.file_names = FileProcessor.match_file( input_file, r'Daily_Summary_.*\.csv') if input_dir: self.file_names = FileProcessor.dir_to_files( input_dir, r'Daily_Summary_.*\.csv')
def __init__(self, input_file, input_dir, db_params_dict, metric, debug): """Return an instance of MSHealthData given an input file or files and information on the databse to put it in.""" self.metric = metric self.mshealth_db = MSHealthDB.MSHealthDB(db_params_dict, debug) if input_file: self.file_names = FileProcessor.match_file( input_file, r'Daily_Summary_.*\.csv') if input_dir: self.file_names = FileProcessor.dir_to_files( input_dir, r'Daily_Summary_.*\.csv')
def __init__(self, input_file, input_dir, db_params_dict, metric, debug): self.metric = metric self.mshealth_db = MSHealthDB.MSHealthDB(db_params_dict, debug) self.cols_map = { 'Date': ('timestamp', CsvImporter.map_mdy_date), 'Weight': ('weight', MSVaultData.__map_weight), } if input_file: self.file_names = FileProcessor.match_file( input_file, r'HealthVault_Weight_.*\.csv') if input_dir: self.file_names = FileProcessor.dir_to_files( input_dir, r'HealthVault_Weight_.*\.csv')
def __init__(self, input_file, input_dir, db_params_dict, metric, debug): """Return an instance of MSVaultData given an input file or files and information on the databse to put it in.""" self.metric = metric self.mshealth_db = MSHealthDB.MSHealthDB(db_params_dict, debug) self.cols_map = { 'Date': ('timestamp', CsvImporter.map_mdy_date), 'Weight': ('weight', MSVaultData.__map_weight), } if input_file: self.file_names = FileProcessor.match_file( input_file, r'HealthVault_Weight_.*\.csv') if input_dir: self.file_names = FileProcessor.dir_to_files( input_dir, r'HealthVault_Weight_.*\.csv')
def __init__(self, input_dir, latest, measurement_system, debug): """ Return an instance of GarminMonitoringFitData. Parameters: input_dir (string): directory (full path) to check for monitoring data files latest (Boolean): check for latest files only measurement_system (enum): which measurement system to use when importing the files debug (Boolean): enable debug logging """ logger.info("Processing daily FIT data") self.measurement_system = measurement_system self.debug = debug if input_dir: self.file_names = FileProcessor.dir_to_files( input_dir, Fit.file.name_regex, latest, True)
def __init__(self, input_dir, latest, measurement_system, debug): """ Return an instance of GarminTcxData. Parameters: db_params_dict (dict): configuration data for accessing the database input_dir (string): directory (full path) to check for data files latest (Boolean): check for latest files only measurement_system (enum): which measurement system to use when importing the files debug (Boolean): enable debug logging """ logger.debug("Processing activities tcx data") self.measurement_system = measurement_system self.debug = debug if input_dir: self.file_names = FileProcessor.dir_to_files( input_dir, self.tcx_filename_regex, latest)
def test_parse_unknown(self): # root_logger.setLevel(logging.DEBUG) activity_path = self.file_path + '/unknown' file_names = FileProcessor.dir_to_files(activity_path, Fit.file.name_regex, False) for file_name in file_names: self.check_unknown_file(file_name)
def test_parse_sleep(self): activity_path = self.file_path + '/sleep' file_names = FileProcessor.dir_to_files(activity_path, Fit.file.name_regex, False) for file_name in file_names: self.check_sleep_file(file_name)
def test_parse_monitoring(self): monitoring_path = self.file_path + '/monitoring' file_names = FileProcessor.dir_to_files(monitoring_path, Fit.file.name_regex, False) for file_name in file_names: self.check_monitoring_file(file_name)