def __init__(self, base_folder, digest_func='md5', ignored_prefixes=None, ignored_suffixes=None, check_suspended=None, case_sensitive=None, disable_duplication=False): self._case_sensitive = case_sensitive self._disable_duplication = disable_duplication # Function to check during long-running processing like digest # computation if the synchronization thread needs to be suspended self.check_suspended = check_suspended if ignored_prefixes is not None: # remove default prefixes and register with these new ones fname = ignore_prefixes.func.func_name func = remove_ignore_filter(fname) # reregister the "ignore_prefixes filter with the new prefixes add_ignore_filter(func, prefixes=ignored_prefixes, apply_to_parent=func.apply_to_parent) if ignored_suffixes is not None: # remove default suffixes and register with these new ones fname = ignore_suffixes.func.func_name func = remove_ignore_filter(fname) # reregister the "ignore_suffixes filter with the new suffixes add_ignore_filter(func, suffixes=ignored_suffixes, apply_to_parent=func.apply_to_parent) while len(base_folder) > 1 and base_folder.endswith(os.path.sep): base_folder = base_folder[:-1] self.base_folder = base_folder self._digest_func = digest_func
def manipulate_guest_filter(self, ignore_guest): if ignore_guest: # add "guest folder" filter so it is ignored func = getattr(self, "ignore_guest_folder", None) if func: add_ignore_filter(func) else: # remove "guest folder" filter so it is not ignored remove_ignore_filter("ignore_guest_folder")