def glob(clazz, paths, patterns): 'Like glob but handles one or more paths and one or more patterns' patterns = object_util.listify(patterns) result = [] for pattern in patterns: result.extend(clazz._glob_one_pattern(paths, pattern)) return sorted(algorithm.unique(result))
def _glob_one_pattern(clazz, paths, pattern): paths = object_util.listify(paths) paths = [path.join(p, pattern) for p in paths] result = [] for p in paths: result.extend(glob.glob(p)) return sorted(algorithm.unique(result))
def files(self, package_name, levels): check.check_string(package_name) files = self._native_package.package_files(package_name) if levels: files = [ self._level_path(p, levels) for p in files ] files = algorithm.unique(files) for f in files: print(f) return 0
def _resolve_mask_to_list(clazz, s): assert string_util.is_string(s) s = s.lower() s = clazz.ALIASES.get(s, s) parts = [part for part in clazz.mask_split(s) if part] result = [] for part in parts: result.extend(clazz._resolve_mask_part(part)) result = sorted(algorithm.unique(result)) if not result: return [clazz.NONE] return result
def search_replace(clazz, root_dir, replacements, backup=True, test_func=None): assert isinstance(replacements, dict) text = [str(x) for x in replacements.keys()] items = clazz.search(root_dir, text, relative=False) filenames = algorithm.unique([item.filename for item in items]) return file_replace.replace_many(filenames, replacements, backup=backup, test_func=test_func)
def dirs(self, package_name, levels, root_dir): check.check_string(package_name) dirs = self._native_package.package_dirs(package_name) if levels: dirs = [ self._level_path(p, levels) for p in dirs ] dirs = algorithm.unique(dirs) if root_dir: ancestor = file_path.common_ancestor(dirs) if ancestor: print(ancestor) else: for f in dirs: print(f) return 0
def remove_dups(self): self._values = algorithm.unique(self._values)
def names(self): return algorithm.unique([tag.name for tag in self])
def files(self): return algorithm.unique([item.filename for item in self])