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.
Files changed (39) hide show
  1. {fosslight_util-2.1.8 → fosslight_util-2.1.9}/PKG-INFO +1 -1
  2. {fosslight_util-2.1.8 → fosslight_util-2.1.9}/setup.py +1 -1
  3. fosslight_util-2.1.9/src/fosslight_util/exclude.py +63 -0
  4. {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util.egg-info/PKG-INFO +1 -1
  5. {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util.egg-info/SOURCES.txt +1 -0
  6. {fosslight_util-2.1.8 → fosslight_util-2.1.9}/LICENSE +0 -0
  7. {fosslight_util-2.1.8 → fosslight_util-2.1.9}/MANIFEST.in +0 -0
  8. {fosslight_util-2.1.8 → fosslight_util-2.1.9}/README.md +0 -0
  9. {fosslight_util-2.1.8 → fosslight_util-2.1.9}/requirements.txt +0 -0
  10. {fosslight_util-2.1.8 → fosslight_util-2.1.9}/setup.cfg +0 -0
  11. {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/__init__.py +0 -0
  12. {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/_get_downloadable_url.py +0 -0
  13. {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/compare_yaml.py +0 -0
  14. {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/constant.py +0 -0
  15. {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/correct.py +0 -0
  16. {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/cover.py +0 -0
  17. {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/download.py +0 -0
  18. {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/help.py +0 -0
  19. {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/oss_item.py +0 -0
  20. {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/output_format.py +0 -0
  21. {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/parsing_yaml.py +0 -0
  22. {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/read_excel.py +0 -0
  23. {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/resources/frequentLicenselist.json +0 -0
  24. {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/resources/frequent_license_nick_list.json +0 -0
  25. {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/resources/licenses.json +0 -0
  26. {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/set_log.py +0 -0
  27. {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/spdx_licenses.py +0 -0
  28. {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/timer_thread.py +0 -0
  29. {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/write_cyclonedx.py +0 -0
  30. {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/write_excel.py +0 -0
  31. {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/write_opossum.py +0 -0
  32. {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/write_scancodejson.py +0 -0
  33. {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/write_spdx.py +0 -0
  34. {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/write_txt.py +0 -0
  35. {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util/write_yaml.py +0 -0
  36. {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util.egg-info/dependency_links.txt +0 -0
  37. {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util.egg-info/entry_points.txt +0 -0
  38. {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util.egg-info/requires.txt +0 -0
  39. {fosslight_util-2.1.8 → fosslight_util-2.1.9}/src/fosslight_util.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fosslight_util
3
- Version: 2.1.8
3
+ Version: 2.1.9
4
4
  Summary: FOSSLight Util
5
5
  Home-page: https://github.com/fosslight/fosslight_util
6
6
  Author: LG Electronics
@@ -14,7 +14,7 @@ with open('requirements.txt', 'r', 'utf-8') as f:
14
14
  if __name__ == "__main__":
15
15
  setup(
16
16
  name='fosslight_util',
17
- version='2.1.8',
17
+ version='2.1.9',
18
18
  package_dir={"": "src"},
19
19
  packages=find_packages(where='src'),
20
20
  description='FOSSLight Util',
@@ -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)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fosslight-util
3
- Version: 2.1.8
3
+ Version: 2.1.9
4
4
  Summary: FOSSLight Util
5
5
  Home-page: https://github.com/fosslight/fosslight_util
6
6
  Author: LG Electronics
@@ -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