fosslight-util 2.1.8__tar.gz → 2.1.9__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {fosslight_util-2.1.8 → fosslight_util-2.1.9}/PKG-INFO +1 -1
- {fosslight_util-2.1.8 → fosslight_util-2.1.9}/setup.py +1 -1
- fosslight_util-2.1.9/src/fosslight_util/exclude.py +63 -0
- {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util.egg-info/PKG-INFO +1 -1
- {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util.egg-info/SOURCES.txt +1 -0
- {fosslight_util-2.1.8 → fosslight_util-2.1.9}/LICENSE +0 -0
- {fosslight_util-2.1.8 → fosslight_util-2.1.9}/MANIFEST.in +0 -0
- {fosslight_util-2.1.8 → fosslight_util-2.1.9}/README.md +0 -0
- {fosslight_util-2.1.8 → fosslight_util-2.1.9}/requirements.txt +0 -0
- {fosslight_util-2.1.8 → fosslight_util-2.1.9}/setup.cfg +0 -0
- {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/__init__.py +0 -0
- {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/_get_downloadable_url.py +0 -0
- {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/compare_yaml.py +0 -0
- {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/constant.py +0 -0
- {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/correct.py +0 -0
- {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/cover.py +0 -0
- {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/download.py +0 -0
- {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/help.py +0 -0
- {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/oss_item.py +0 -0
- {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/output_format.py +0 -0
- {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/parsing_yaml.py +0 -0
- {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/read_excel.py +0 -0
- {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/resources/frequentLicenselist.json +0 -0
- {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/resources/frequent_license_nick_list.json +0 -0
- {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/resources/licenses.json +0 -0
- {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/set_log.py +0 -0
- {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/spdx_licenses.py +0 -0
- {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/timer_thread.py +0 -0
- {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/write_cyclonedx.py +0 -0
- {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/write_excel.py +0 -0
- {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/write_opossum.py +0 -0
- {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/write_scancodejson.py +0 -0
- {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/write_spdx.py +0 -0
- {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/write_txt.py +0 -0
- {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/write_yaml.py +0 -0
- {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util.egg-info/dependency_links.txt +0 -0
- {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util.egg-info/entry_points.txt +0 -0
- {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util.egg-info/requires.txt +0 -0
- {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
# -*- coding: utf-8 -*-
|
|
3
|
+
# Copyright (c) 2025 LG Electronics Inc.
|
|
4
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
|
|
6
|
+
import os
|
|
7
|
+
import fnmatch
|
|
8
|
+
|
|
9
|
+
def excluding_files(patterns: list[str], path_to_scan: str) -> list[str]:
|
|
10
|
+
excluded_paths = set()
|
|
11
|
+
|
|
12
|
+
# Normalize patterns: e.g., 'sample/', 'sample/*' -> 'sample'
|
|
13
|
+
# Replace backslash with slash
|
|
14
|
+
normalized_patterns = []
|
|
15
|
+
for pattern in patterns:
|
|
16
|
+
pattern = pattern.replace('\\', '/')
|
|
17
|
+
if pattern.endswith('/') or pattern.endswith('/*'):
|
|
18
|
+
pattern = pattern.rstrip('/*')
|
|
19
|
+
normalized_patterns.append(pattern)
|
|
20
|
+
|
|
21
|
+
# Traverse directories
|
|
22
|
+
for root, dirs, files in os.walk(path_to_scan):
|
|
23
|
+
remove_dir_list = []
|
|
24
|
+
|
|
25
|
+
# (1) Directory matching
|
|
26
|
+
for d in dirs:
|
|
27
|
+
dir_name = d
|
|
28
|
+
dir_path = os.path.relpath(os.path.join(root, d), path_to_scan).replace('\\', '/')
|
|
29
|
+
matched = False
|
|
30
|
+
|
|
31
|
+
for pat in normalized_patterns:
|
|
32
|
+
# Match directory name
|
|
33
|
+
if fnmatch.fnmatch(dir_name, pat):
|
|
34
|
+
matched = True
|
|
35
|
+
|
|
36
|
+
# Match the full relative path
|
|
37
|
+
if not matched:
|
|
38
|
+
if fnmatch.fnmatch(dir_path, pat) or fnmatch.fnmatch(dir_path, pat + "/*"):
|
|
39
|
+
matched = True
|
|
40
|
+
|
|
41
|
+
# If matched, exclude all files under this directory and stop checking patterns
|
|
42
|
+
if matched:
|
|
43
|
+
sub_root_path = os.path.join(root, d)
|
|
44
|
+
for sr, _, sf in os.walk(sub_root_path):
|
|
45
|
+
for sub_file in sf:
|
|
46
|
+
sub_file_path = os.path.relpath(os.path.join(sr, sub_file), path_to_scan)
|
|
47
|
+
excluded_paths.add(sub_file_path.replace('\\', '/'))
|
|
48
|
+
remove_dir_list.append(d)
|
|
49
|
+
break
|
|
50
|
+
|
|
51
|
+
# (1-2) Prune matched directories from further traversal
|
|
52
|
+
for rd in remove_dir_list:
|
|
53
|
+
dirs.remove(rd)
|
|
54
|
+
|
|
55
|
+
# (2) File matching
|
|
56
|
+
for f in files:
|
|
57
|
+
file_path = os.path.relpath(os.path.join(root, f), path_to_scan).replace('\\', '/')
|
|
58
|
+
for pat in normalized_patterns:
|
|
59
|
+
if fnmatch.fnmatch(file_path, pat) or fnmatch.fnmatch(file_path, pat + "/*"):
|
|
60
|
+
excluded_paths.add(file_path)
|
|
61
|
+
break
|
|
62
|
+
|
|
63
|
+
return sorted(excluded_paths)
|
|
@@ -10,6 +10,7 @@ src/fosslight_util/constant.py
|
|
|
10
10
|
src/fosslight_util/correct.py
|
|
11
11
|
src/fosslight_util/cover.py
|
|
12
12
|
src/fosslight_util/download.py
|
|
13
|
+
src/fosslight_util/exclude.py
|
|
13
14
|
src/fosslight_util/help.py
|
|
14
15
|
src/fosslight_util/oss_item.py
|
|
15
16
|
src/fosslight_util/output_format.py
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/resources/frequentLicenselist.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|