def update_obj_count(domain, dir_name, obj_type): if (domain, obj_type) not in obj_counts: dir_name = make_path(dir_name) try: existing_partitions = glob(make_path(dir_name) + "/*") if existing_partitions: latest_folder = max(existing_partitions) base = int(latest_folder.split("/")[-1]) * PER_FOLDER count = base + len(os.listdir(latest_folder)) else: count = 0 except FileNotFoundError: count = 0 obj_counts[(domain, obj_type)] = count return obj_counts[(domain, obj_type)]
def writer(obj, fname, mkdir_no_exist, skip_if_exist, write_func_name): fname = make_path(fname) if skip_if_exist and os.path.isfile(fname): # pragma: no cover return False if mkdir_no_exist: dname = os.path.dirname(fname) if dname not in set([".", "..", ""]): mkdir(dname) ext = fname.split(".")[-1] if "." in fname[-6:] else "txt" writer_module = EXT_TO_MODULE[ext] write_fn = getattr(writer_module, write_func_name) return write_fn(obj, fname)
def remove(file_path, no_exist=False, recursive=False): file_path = make_path(file_path) if os.path.isfile(file_path): os.remove(file_path) return True if os.path.isdir(file_path): if recursive: shutil.rmtree(file_path) return True else: raise IOError("Cannot remove directory unless recursive=True") # if there is a default value, return that if no file/dir found when attempting to remove if no_exist is not None: return no_exist raise IOError("File '{}' does not exist.".format(file_path))
def reader(fname, no_exist, read_func_name, unknown_type, ignore_exceptions): fname = make_path(fname) if not os.path.isfile(fname) and no_exist is not None: return no_exist ext = fname.split(".")[-1] if "." in fname[-6:] else "txt" if ext not in EXT_TO_MODULE and unknown_type == "RAISE": raise TypeError("just does not yet cover '{}'".format(ext)) reader_module = EXT_TO_MODULE.get(ext, None) or EXT_TO_MODULE[unknown_type] read_fn = getattr(reader_module, read_func_name) if ignore_exceptions is not None: try: return read_fn(fname) except ignore_exceptions: return None else: return read_fn(fname)
def rename(fname, extension, no_exist=None): fname = make_path(fname) if not os.path.isfile(fname) and no_exist is not None: return False os.rename(fname, fname + "." + extension) return True
def remove(fname, no_exist=None): fname = make_path(fname) if not os.path.isfile(fname) and no_exist is not None: return False os.remove(fname) return True