Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_empty_exclude(self) -> None:
path = THIS_DIR / "data" / "include_exclude_tests"
report = black.Report()
gitignore = PathSpec.from_lines("gitwildmatch", [])
empty = re.compile(r"")
sources: List[Path] = []
expected = [
Path(path / "b/dont_exclude/a.py"),
Path(path / "b/dont_exclude/a.pyi"),
Path(path / "b/exclude/a.py"),
Path(path / "b/exclude/a.pyi"),
Path(path / "b/.definitely_exclude/a.py"),
Path(path / "b/.definitely_exclude/a.pyi"),
]
this_abs = THIS_DIR.resolve()
sources.extend(
black.gen_python_files_in_dir(
path,
this_abs,
re.compile(black.DEFAULT_INCLUDES),
def _create_ignore_spec(self, build_ignore_patterns):
return PathSpec.from_lines(GitWildMatchPattern, build_ignore_patterns or [])
def test_empty_include(self) -> None:
path = THIS_DIR / "data" / "include_exclude_tests"
report = black.Report()
gitignore = PathSpec.from_lines("gitwildmatch", [])
empty = re.compile(r"")
sources: List[Path] = []
expected = [
Path(path / "b/exclude/a.pie"),
Path(path / "b/exclude/a.py"),
Path(path / "b/exclude/a.pyi"),
Path(path / "b/dont_exclude/a.pie"),
Path(path / "b/dont_exclude/a.py"),
Path(path / "b/dont_exclude/a.pyi"),
Path(path / "b/.definitely_exclude/a.pie"),
Path(path / "b/.definitely_exclude/a.py"),
Path(path / "b/.definitely_exclude/a.pyi"),
]
this_abs = THIS_DIR.resolve()
sources.extend(
black.gen_python_files_in_dir(
def _create_ignore_spec(self, build_ignore_patterns):
return PathSpec.from_lines(GitWildMatchPattern, build_ignore_patterns or [])
def _load_ignore(at_path, parent_spec, ignores):
ignore_file = at_path / ".gitignore"
if not ignore_file.exists():
return parent_spec
lines = ignore_file.read_text().split(os.linesep)
spec = PathSpec.from_lines("gitwildmatch", lines)
spec = PathSpec(parent_spec.patterns + spec.patterns)
ignores[at_path] = spec
return spec
def _load_ignore(at_path, parent_spec, ignores):
ignore_file = at_path / ".gitignore"
if not ignore_file.exists():
return parent_spec
lines = ignore_file.read_text().split(os.linesep)
spec = PathSpec.from_lines("gitwildmatch", lines)
spec = PathSpec(parent_spec.patterns + spec.patterns)
ignores[at_path] = spec
return spec
def _prepare_repo_files_for_packaging(
repository_dirpath, dirpath_with_original_files_with_git_filters, force_if_dirty):
repo = git.Repo(repository_dirpath)
if not force_if_dirty and repo.git.status("--porcelain"):
print(("Repository contains local changes."
" Please remove or commit changes before proceeding."),
file=sys.stderr)
exit(1)
path_specs = _get_path_specs_with_git_filters_from_gitattributes(repository_dirpath)
spec_obj = pathspec.PathSpec.from_lines(
pathspec.patterns.gitwildmatch.GitWildMatchPattern, path_specs)
relative_filepaths_with_git_filters = [
match for match in spec_obj.match_tree(repository_dirpath)]
_move_files_with_filters_to_temporary_location(
repository_dirpath,
relative_filepaths_with_git_filters,
dirpath_with_original_files_with_git_filters)
_reset_files_with_filters_and_activate_smudge_filters(repo, path_specs)
return relative_filepaths_with_git_filters
# Apply exclude patterns on the passed artifact paths if available
if exclude_patterns:
securesystemslib.formats.NAMES_SCHEMA.check_match(exclude_patterns)
norm_artifacts = _apply_exclude_patterns(norm_artifacts, exclude_patterns)
# Check if any of the prefixes passed for left stripping is a left substring
# of another
if lstrip_paths:
for prefix_one, prefix_two in itertools.combinations(lstrip_paths, 2):
if prefix_one.startswith(prefix_two) or \
prefix_two.startswith(prefix_one):
raise in_toto.exceptions.PrefixError("'{}' and '{}' "
"triggered a left substring error".format(prefix_one, prefix_two))
# Compile the gitignore-style patterns
exclude_filter = PathSpec.from_lines('gitwildmatch', exclude_patterns or [])
# Iterate over remaining normalized artifact paths
for artifact in norm_artifacts:
if os.path.isfile(artifact):
# FIXME: this is necessary to provide consisency between windows
# filepaths and *nix filepaths. A better solution may be in order
# though...
artifact = artifact.replace('\\', '/')
key = _apply_left_strip(artifact, artifacts_dict, lstrip_paths)
artifacts_dict[key] = _hash_artifact(artifact,
normalize_line_endings=normalize_line_endings)
elif os.path.isdir(artifact):
for root, dirs, files in os.walk(artifact,
followlinks=follow_symlink_dirs):
# Create a list of normalized dirpaths
if self.intransitive:
jvm_targets = set(self.context.target_roots).intersection(jvm_targets)
build_ignore_patterns = self.context.options.for_global_scope().build_ignore or []
project = Project(self.project_name,
self.python,
self.skip_java,
self.skip_scala,
self.use_source_root,
get_buildroot(),
debug_port,
self.context,
jvm_targets,
not self.intransitive,
self.TargetUtil(self.context),
PathSpec.from_lines(GitWildMatchPattern, build_ignore_patterns))
if self.python:
python_source_paths = self.get_options().python_source_paths
python_test_paths = self.get_options().python_test_paths
python_lib_paths = self.get_options().python_lib_paths
project.configure_python(python_source_paths, python_test_paths, python_lib_paths)
extra_source_paths = self.get_options().extra_jvm_source_paths
extra_test_paths = self.get_options().extra_jvm_test_paths
all_targets = project.configure_jvm(extra_source_paths, extra_test_paths)
return all_targets, project
gitignores.append(".gitignore")
for root, dir_names, file_names in os.walk(local_path):
for dir_name in dir_names:
if dir_name in svc_directories:
continue
dir_name = os.path.join(root, dir_name)
gitignore_path = os.path.join(dir_name, ".gitignore")
if os.path.exists(gitignore_path):
gitignores.append(gitignore_path)
for file_name in file_names:
if file_name == ".gitignore":
gitignore_path = os.path.join(root, file_name)
gitignores.append(gitignore_path)
for gitignore_file in gitignores:
with open(gitignore_file) as f:
spec = pathspec.PathSpec.from_lines("gitwildmatch", f)
gitignore_patterns += [x for x in spec.patterns if x.regex]
if not gitignores:
alert(
"--gitignore option set, but no .gitignore files were found",
color=ALERT_COLOR,
)
gitignore_spec = pathspec.PathSpec(gitignore_patterns)
files = []
if os.path.isdir(local_path):
for root, dir_names, file_names in os.walk(local_path):
for file_name in file_names:
file_name = os.path.join(root, file_name)
if not gitignore_spec.match_file(file_name):
files.append(file_name)
for svc_directory in svc_directories: