def __init__(self, driver=None): self.driver = driver self.name_index = self.read_name_index() self.name_proposals = self.get_name_proposals() self.existing = self.get_existing() self.urls = self.get_urls() self.manufacturers = ManufacturerIndex()
def rename_manufacturers(): manufacturers = ManufacturerIndex() for db in DBS: if os.path.isfile(os.path.join(DIR_PATH, db, 'name_index.tsv')): # Rename entries in name index if such exists name_index = NameIndex.read_tsv( os.path.join(DIR_PATH, db, 'name_index.tsv')) for item in name_index.items: if item.form == 'ignore' or not item.true_name: continue true_name = manufacturers.replace(item.true_name) if true_name is None: print(f'"{name}" not found in manufacturers') continue if true_name == item.true_name: continue print(f'Renamed "{item.true_name}" with "{true_name}"') name_index.update( NameItem(item.false_name, true_name, item.form), item.false_name, item.true_name, item.form) name_index.write_tsv( os.path.join(DIR_PATH, db, 'name_index.tsv')) # Rename existing files existing_files = list( glob(os.path.join(DIR_PATH, db, 'data', '**', '*.csv'), recursive=True)) for fp in existing_files: dir_path, name = os.path.split(fp) name = name.replace('.csv', '') true_name = manufacturers.replace(name) if true_name is None: print(f'"{name}" not found in manufacturers') continue new_dir_path = os.path.abspath( os.path.join(dir_path, os.pardir, true_name)) new_file_path = os.path.join(new_dir_path, f'{true_name}.csv') os.makedirs(new_dir_path, exist_ok=True) if os.path.normcase( os.path.normpath(new_file_path)) != os.path.normcase( os.path.normpath(fp)): print( f'Moved "{os.path.relpath(fp, DIR_PATH)}" to "{os.path.relpath(new_file_path, DIR_PATH)}"' ) shutil.move(fp, new_file_path) try: os.rmdir(dir_path) except OSError: pass
def __init__(self, driver=None): self.driver = driver self.name_index = self.read_name_index() self.manufacturers = ManufacturerIndex() self.name_proposals = None self.init_name_proposals() self.existing = self.get_existing() self.urls = self.get_urls() # UI self.prompts = widgets.VBox([]) self.iframe = widgets.VBox([]) self.widget = widgets.HBox([self.prompts, self.iframe])
def main(): manufacturers = ManufacturerIndex() for db in ['crinacle', 'headphonecom', 'innerfidelity', 'oratory1990', 'rtings']: if os.path.isfile(os.path.join(DIR_PATH, db, 'name_index.tsv')): name_index = NameIndex.read_tsv(os.path.join(DIR_PATH, db, 'name_index.tsv')) else: name_index = NameIndex() for item in name_index.items: if item.form == 'ignore' or not item.true_name: continue true_name = manufacturers.replace(item.true_name) if true_name is None: print(f'"{name}" not found in manufacturers') continue if true_name == item.true_name: continue print(f'Renamed "{item.true_name}" with "{true_name}"') name_index.update( NameItem(item.false_name, true_name, item.form), item.false_name, item.true_name, item.form ) if name_index: name_index.write_tsv(os.path.join(DIR_PATH, db, 'name_index.tsv')) existing = list(glob(os.path.join(DIR_PATH, db, 'data', '**', '*.csv'), recursive=True)) for fp in existing: dir_path, name = os.path.split(fp) name = name.replace('.csv', '') true_name = manufacturers.replace(name) if true_name is None: print(f'"{name}" not found in manufacturers') continue new_dir_path = os.path.abspath(os.path.join(dir_path, os.pardir, true_name)) new_file_path = os.path.join(new_dir_path, f'{true_name}.csv') os.makedirs(new_dir_path, exist_ok=True) if os.path.normcase(os.path.normpath(new_file_path)) != os.path.normcase(os.path.normpath(fp)): print(f'Moved "{os.path.relpath(fp, DIR_PATH)}" to "{os.path.relpath(new_file_path, DIR_PATH)}"') shutil.move(fp, new_file_path) try: os.rmdir(dir_path) except OSError: pass
def write_hesuvi_zip(): manufacturers = ManufacturerIndex() zip_object = ZipFile(os.path.join(DIR_PATH, 'hesuvi.zip'), 'w') dir_paths = [ os.path.join(DIR_PATH, 'oratory1990'), os.path.join(DIR_PATH, 'crinacle', 'gras_43ag-7_harman_over-ear_2018'), os.path.join(DIR_PATH, 'crinacle', 'ears-711_harman_over-ear_2018'), os.path.join(DIR_PATH, 'innerfidelity'), os.path.join(DIR_PATH, 'rtings'), os.path.join(DIR_PATH, 'headphonecom'), os.path.join(DIR_PATH, 'referenceaudioanalyzer'), ] zip_files = set() for dir_path in dir_paths: for fp in glob(os.path.join(dir_path, '**', '* GraphicEQ.txt'), recursive=True): _, name = os.path.split(fp) name = name.replace(' GraphicEQ.txt', '') if re.search(MOD_REGEX, name, flags=re.IGNORECASE): # Skip samples, there are averaged results available continue manufacturer, _ = manufacturers.find(name) if manufacturer is None: print(f'Manufacturer could not be found for {name}') continue name = manufacturers.model(name) arcname = f'eq/{manufacturer}/{name}.txt' if arcname in zip_files: # Skip duplicates continue with open(fp, 'r', encoding='utf-8') as fh: s = fh.read() data = np.array( [x.split() for x in s.split(': ')[1].split('; ')], dtype='float') sl = np.logical_and(data[:, 0] > 100, data[:, 0] < 10000) data[:, 1] -= np.mean(data[sl, 1]) s = 'GraphicEQ: ' s += '; '.join([f'{x[0]:.0f} {x[1]:.1f}' for x in data]) zip_object.writestr(arcname, s) zip_files.add(arcname) zip_object.close()
def write_hesuvi_index(): os.makedirs(os.path.join(DIR_PATH, 'hesuvi'), exist_ok=True) manufacturers = ManufacturerIndex() zip_object = ZipFile(os.path.join(DIR_PATH, 'hesuvi.zip'), 'w') dir_paths = [ os.path.join(DIR_PATH, 'oratory1990'), os.path.join(DIR_PATH, 'crinacle', 'harman_in-ear_2019v2'), os.path.join(DIR_PATH, 'crinacle', 'crinacl_over-ear'), os.path.join(DIR_PATH, 'innerfidelity'), os.path.join(DIR_PATH, 'rtings'), os.path.join(DIR_PATH, 'headphonecom'), ] zip_files = set() for dir_path in dir_paths: for fp in glob(os.path.join(dir_path, '**', '* GraphicEQ.txt'), recursive=True): _, name = os.path.split(fp) name = name.replace(' GraphicEQ.txt', '') if re.search(r' \(?(sample |sn)[a-zA-Z0-9]+\)?$', name, flags=re.IGNORECASE): # Skip samples, there are averaged results available continue manufacturer, _ = manufacturers.find(name) name = manufacturers.model(name) arcname = f'eq/{manufacturer}/{name}.txt' if arcname in zip_files: # Skip duplicates continue with open(fp, 'r', encoding='utf-8') as fh: s = fh.read() data = np.array( [x.split() for x in s.split(': ')[1].split('; ')], dtype='float') sl = np.logical_and(data[:, 0] > 100, data[:, 0] < 10000) data[:, 1] -= np.mean(data[sl, 1]) s = 'GraphicEQ: ' s += '; '.join([f'{x[0]:.0f} {x[1]:.1f}' for x in data]) zip_object.writestr(arcname, s) zip_files.add(arcname) zip_object.close()