Source code for romsearch.util.general

import copy
import os
import time
from datetime import datetime


[docs] def split(full_list, chunk_size=10): """Split a list in chunks of size chunk_size Args: full_list (list): list to split chunk_size (int, optional): size of each chunk. Defaults to 10 """ for i in range(0, len(full_list), chunk_size): yield full_list[i : i + chunk_size]
[docs] def get_parent_name( game_name, dupe_dict, ): """Get the parent name recursively searching through a dupe dict""" # We do this by lowercase checking reg_dupes = [g for g in dupe_dict] all_dupes = [g.lower() for g in dupe_dict] # Pull out all the clones so we can check that way as well all_clones = [list(dupe_dict[key].keys()) for key in dupe_dict] found_dupe = False found_parent_name = None # First, just check the dupes if game_name.lower() in all_dupes: found_idx = all_dupes.index(game_name.lower()) found_parent_name = reg_dupes[found_idx] found_dupe = True # Check all the clones within the dupes else: for i, clone in enumerate(all_clones): if found_dupe: continue clone = [c.lower() for c in clone] if game_name.lower() in clone: found_parent_name = reg_dupes[i] found_dupe = True if not found_dupe: found_parent_name = copy.deepcopy(game_name) if found_parent_name is None: raise ValueError("Could not find a parent name!") return found_parent_name
[docs] def get_file_time( f, datetime_format="%Y/%m/%d, %H:%M:%S", return_as_str=True, ): """Get created file time from the file itself Args: f (str): Filename datetime_format (str, optional): Date and time format. Defaults to "%Y/%m/%d %H:%M:%S" return_as_str (bool, optional): Return string or full datetime. Defaults to True """ if os.path.exists(f): ti_m = os.path.getmtime(f) date_ti_m = datetime.strptime(time.ctime(ti_m), "%a %b %d %H:%M:%S %Y") else: date_ti_m = datetime(year=1900, month=1, day=1, hour=0, minute=0, second=0) if return_as_str: date_ti_m_str = date_ti_m.strftime(format=datetime_format) return date_ti_m_str else: return date_ti_m