def setUp(self): self.strings_to_sort = ['name1', 'name11', 'name10', 'name2', 'name21'] self.correct_order_of_strings = ['name1', 'name2', 'name10', 'name11', 'name21'] self.filenames_to_sort = ['20190718_beans_01_s1.nt' + str(i) + '.mda' for i in range(1, 64)] self.file_sorter = FileSorter() self.sorted_strings = self.file_sorter.sort_filenames(self.strings_to_sort) self.sorted_filenames = self.file_sorter.sort_filenames(self.filenames_to_sort)
def get_all_epochs(self, date: str) -> list: all_datasets = [] directories = os.listdir(self.data_path + '/' + self.animal_name + '/preprocessing/' + date) FileSorter.sort_filenames(directories) for directory in directories: if directory.startswith(date): dataset_name = (directory.split('_')[2] + '_' + directory.split('_')[3]).split('.')[0] if not dataset_name in all_datasets: all_datasets.append(dataset_name) return all_datasets
def get_probes_from_directory(path: str): probes = [] files = FileSorter.sort_filenames(os.listdir(path)) for probe_file in files: if fnmatch.fnmatch(probe_file, "probe*.yml"): probes.append(path + '/' + probe_file) return probes
def __extract_experiments(self, data_path, animal_name, dates): preprocessing_path = data_path + animal_name + '/preprocessing' if not dates: dates = FileSorter.sort_filenames(os.listdir(preprocessing_path)) return { date: self.__extract_datasets(preprocessing_path + '/' + date) for date in dates }
class TestFilenameSorter(TestCase): def setUp(self): self.strings_to_sort = ['name1', 'name11', 'name10', 'name2', 'name21'] self.correct_order_of_strings = ['name1', 'name2', 'name10', 'name11', 'name21'] self.filenames_to_sort = ['20190718_beans_01_s1.nt' + str(i) + '.mda' for i in range(1, 64)] self.file_sorter = FileSorter() self.sorted_strings = self.file_sorter.sort_filenames(self.strings_to_sort) self.sorted_filenames = self.file_sorter.sort_filenames(self.filenames_to_sort) def test_string_sorting(self): self.assertEqual(self.sorted_strings, self.correct_order_of_strings) def test_filename_sorting(self): self.assertEqual(self.sorted_filenames[1], '20190718_beans_01_s1.nt2.mda') self.assertEqual(self.sorted_filenames[9], '20190718_beans_01_s1.nt10.mda') self.assertEqual(self.sorted_filenames[18], '20190718_beans_01_s1.nt19.mda') self.assertEqual(self.sorted_filenames[19], '20190718_beans_01_s1.nt20.mda')
def __extract_experiments(self, data_path, animal_name, dates): preprocessing_path = os.path.join(data_path, animal_name, 'preprocessing') if not dates: dates = FileSorter.sort_filenames(os.listdir(preprocessing_path)) return { date: self.__extract_datasets(os.path.join(preprocessing_path, date)) for date in dates }
def __extract_datasets(date_path): existing_datasets = set() datasets = {} directories = FileSorter.sort_filenames(os.listdir(date_path)) for directory in directories: dir_split = directory.split('_') if dir_split[0].isdigit(): dir_last_part = dir_split.pop().split('.') dataset_name = dir_split.pop() + '_' + dir_last_part[0] if not (dataset_name in existing_datasets): datasets[dataset_name] = Dataset(dataset_name) existing_datasets.add(dataset_name) for dataset in datasets.values(): if dataset_name == dataset.name: dataset.add_data_to_dataset( date_path + '/' + directory + '/', dir_last_part.pop()) return datasets
def get_all_data_from_dataset(self, data_type): directories = os.listdir(self.data[data_type]) FileSorter.sort_filenames(directories) return directories