def test_literal(self): subdir = 'foo' name = 'Blah.java' self.assert_files_equals([Path(name)], '', [name]) self.assert_files_equals([Path(join(subdir, name))], subdir, [name]) self.assert_files_equals([PathLiteral(Files, subdir, name)], '', [join(subdir, name)])
def generate_subjects(self, filenames): """Given filenames, generate a set of subjects for invalidation predicate matching.""" for f in filenames: # Stats, ReadLink, or FileContent for the literal path. yield Path(f) yield File(f) yield Link(f) # DirectoryListings for parent dirs. yield Dir(dirname(f))
def filter_buildfile_paths(address_mapper, directory_listing): if not directory_listing.exists: raise ResolveError('Directory "{}" does not exist.'.format( directory_listing.directory.path)) build_pattern = address_mapper.build_pattern def match(stat): return type(stat) is File and fnmatch(basename(stat.path), build_pattern) build_files = tuple( Path(stat.path, stat) for stat in directory_listing.dependencies if match(stat)) return BuildFiles(build_files)
def filter_buildfile_paths(address_mapper, directory_listing): if not directory_listing.exists: raise ResolveError('Directory "{}" does not exist.'.format( directory_listing.directory.path)) def match(stat): # Short circuit for ignored paths. if address_mapper.build_ignore_patterns.match_file(stat.path): return False return (type(stat) is File and any( fnmatch(basename(stat.path), pattern) for pattern in address_mapper.build_patterns)) build_files = tuple( Path(stat.path, stat) for stat in directory_listing.dependencies if match(stat)) return BuildFiles(build_files)