scanoss 1.20.5__py3-none-any.whl → 1.22.0__py3-none-any.whl

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 (48) hide show
  1. protoc_gen_swagger/options/annotations_pb2.py +9 -12
  2. protoc_gen_swagger/options/annotations_pb2_grpc.py +1 -1
  3. protoc_gen_swagger/options/openapiv2_pb2.py +96 -98
  4. protoc_gen_swagger/options/openapiv2_pb2_grpc.py +1 -1
  5. scanoss/__init__.py +1 -1
  6. scanoss/api/common/v2/scanoss_common_pb2.py +20 -18
  7. scanoss/api/common/v2/scanoss_common_pb2_grpc.py +1 -1
  8. scanoss/api/components/v2/scanoss_components_pb2.py +38 -48
  9. scanoss/api/components/v2/scanoss_components_pb2_grpc.py +96 -142
  10. scanoss/api/cryptography/v2/scanoss_cryptography_pb2.py +42 -22
  11. scanoss/api/cryptography/v2/scanoss_cryptography_pb2_grpc.py +185 -75
  12. scanoss/api/dependencies/v2/scanoss_dependencies_pb2.py +32 -30
  13. scanoss/api/dependencies/v2/scanoss_dependencies_pb2_grpc.py +83 -75
  14. scanoss/api/provenance/v2/scanoss_provenance_pb2.py +20 -21
  15. scanoss/api/provenance/v2/scanoss_provenance_pb2_grpc.py +1 -1
  16. scanoss/api/scanning/v2/scanoss_scanning_pb2.py +20 -10
  17. scanoss/api/scanning/v2/scanoss_scanning_pb2_grpc.py +70 -40
  18. scanoss/api/semgrep/v2/scanoss_semgrep_pb2.py +18 -22
  19. scanoss/api/semgrep/v2/scanoss_semgrep_pb2_grpc.py +49 -71
  20. scanoss/api/vulnerabilities/v2/scanoss_vulnerabilities_pb2.py +27 -37
  21. scanoss/api/vulnerabilities/v2/scanoss_vulnerabilities_pb2_grpc.py +72 -109
  22. scanoss/cli.py +417 -74
  23. scanoss/components.py +5 -3
  24. scanoss/constants.py +12 -0
  25. scanoss/data/build_date.txt +1 -1
  26. scanoss/file_filters.py +272 -57
  27. scanoss/results.py +92 -109
  28. scanoss/scanner.py +25 -20
  29. scanoss/scanners/__init__.py +23 -0
  30. scanoss/scanners/container_scanner.py +474 -0
  31. scanoss/scanners/folder_hasher.py +302 -0
  32. scanoss/scanners/scanner_config.py +73 -0
  33. scanoss/scanners/scanner_hfh.py +172 -0
  34. scanoss/scanoss_settings.py +9 -5
  35. scanoss/scanossapi.py +29 -7
  36. scanoss/scanossbase.py +9 -3
  37. scanoss/scanossgrpc.py +145 -13
  38. scanoss/threadedscanning.py +6 -6
  39. scanoss/utils/abstract_presenter.py +103 -0
  40. scanoss/utils/crc64.py +96 -0
  41. scanoss/utils/simhash.py +198 -0
  42. {scanoss-1.20.5.dist-info → scanoss-1.22.0.dist-info}/METADATA +4 -2
  43. scanoss-1.22.0.dist-info/RECORD +83 -0
  44. {scanoss-1.20.5.dist-info → scanoss-1.22.0.dist-info}/WHEEL +1 -1
  45. scanoss-1.20.5.dist-info/RECORD +0 -74
  46. {scanoss-1.20.5.dist-info → scanoss-1.22.0.dist-info}/entry_points.txt +0 -0
  47. {scanoss-1.20.5.dist-info → scanoss-1.22.0.dist-info/licenses}/LICENSE +0 -0
  48. {scanoss-1.20.5.dist-info → scanoss-1.22.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,198 @@
1
+ """
2
+ SPDX-License-Identifier: MIT
3
+
4
+ Copyright (c) 2025, SCANOSS
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ of this software and associated documentation files (the "Software"), to deal
8
+ in the Software without restriction, including without limitation the rights
9
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the Software is
11
+ furnished to do so, subject to the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be included in
14
+ all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22
+ THE SOFTWARE.
23
+ """
24
+
25
+ import re
26
+ import unicodedata
27
+
28
+ FNV64_OFFSET_BASIS = 14695981039346656037
29
+ FNV64_PRIME = 1099511628211
30
+ MASK64 = 0xFFFFFFFFFFFFFFFF
31
+
32
+
33
+ def fnv1_64(data: bytes) -> int:
34
+ """Compute the 64‐bit FNV‑1 hash of data."""
35
+ h = FNV64_OFFSET_BASIS
36
+ for b in data:
37
+ h = (h * FNV64_PRIME) & MASK64
38
+ h = h ^ b
39
+ return h
40
+
41
+
42
+ class SimhashFeature:
43
+ def __init__(self, hash_value: int, weight: int = 1):
44
+ self.hash_value = hash_value
45
+ self.weight = weight
46
+
47
+ def sum(self) -> int:
48
+ """Return the 64-bit hash (sum) of this feature."""
49
+ return self.hash_value
50
+
51
+ def get_weight(self) -> int:
52
+ """Return the weight of this feature."""
53
+ return self.weight
54
+
55
+
56
+ def new_feature(f: bytes) -> SimhashFeature:
57
+ """Return a new feature for the given byte slice with weight 1."""
58
+ return SimhashFeature(fnv1_64(f), 1)
59
+
60
+
61
+ def new_feature_with_weight(f: bytes, weight: int) -> SimhashFeature:
62
+ """Return a new feature for the given byte slice with the given weight."""
63
+ return SimhashFeature(fnv1_64(f), weight)
64
+
65
+
66
+ def vectorize(features: list) -> list:
67
+ """
68
+ Given a list of features, return a 64-element vector.
69
+ Each feature contributes its weight to each coordinate,
70
+ added if that bit is set and subtracted otherwise.
71
+ """
72
+ v = [0] * 64
73
+ for feature in features:
74
+ h = feature.sum()
75
+ w = feature.get_weight()
76
+ for i in range(64):
77
+ if ((h >> i) & 1) == 1:
78
+ v[i] += w
79
+ else:
80
+ v[i] -= w
81
+ return v
82
+
83
+
84
+ def vectorize_bytes(features: list) -> list:
85
+ """
86
+ Given a list of byte slices, treat each as a feature (with weight 1)
87
+ by computing its FNV-1 hash.
88
+ """
89
+ v = [0] * 64
90
+ for feat in features:
91
+ h = fnv1_64(feat)
92
+ for i in range(64):
93
+ if ((h >> i) & 1) == 1:
94
+ v[i] += 1
95
+ else:
96
+ v[i] -= 1
97
+ return v
98
+
99
+
100
+ def fingerprint(v: list) -> int:
101
+ """
102
+ Given a 64-element vector, return a 64-bit fingerprint.
103
+ For each bit i, if v[i] >= 0, set bit i to 1; otherwise leave it 0.
104
+ """
105
+ f = 0
106
+ for i in range(64):
107
+ if v[i] >= 0:
108
+ f |= 1 << i
109
+ return f
110
+
111
+
112
+ def compare(a: int, b: int) -> int:
113
+ """
114
+ Calculate the Hamming distance between two 64-bit integers.
115
+ (The number of differing bits.)
116
+ """
117
+ v = a ^ b
118
+ c = 0
119
+ while v:
120
+ v &= v - 1
121
+ c += 1
122
+ return c
123
+
124
+
125
+ def simhash(fs) -> int:
126
+ """
127
+ Given a feature set (an object with a get_features() method),
128
+ return its 64-bit simhash.
129
+ """
130
+ return fingerprint(vectorize(fs.get_features()))
131
+
132
+
133
+ def simhash_bytes(b: list) -> int:
134
+ """
135
+ Given a list of byte slices, return the simhash.
136
+ """
137
+ return fingerprint(vectorize_bytes(b))
138
+
139
+
140
+ boundaries = re.compile(rb"[\w']+(?:\://[\w\./]+){0,1}")
141
+ unicode_boundaries = re.compile(r"[\w'-]+", re.UNICODE)
142
+
143
+
144
+ # --- Helper Functions for Feature Extraction ---
145
+ def _get_features_bytes(b: bytes, pattern: re.Pattern) -> list:
146
+ """
147
+ Split the given byte string using the given regex pattern,
148
+ and return a list of features (each created with new_feature).
149
+ """
150
+ words = pattern.findall(b)
151
+ return [new_feature(word) for word in words]
152
+
153
+
154
+ def _get_features_str(s: str, pattern) -> list:
155
+ """
156
+ Split the given string using the given regex pattern,
157
+ and return a list of features (each created by encoding to UTF-8).
158
+ """
159
+ words = pattern.findall(s)
160
+ return [new_feature(word.encode('utf-8')) for word in words]
161
+
162
+
163
+ class WordFeatureSet:
164
+ def __init__(self, b: bytes):
165
+ # Normalize the input to lowercase.
166
+ self.b = b.lower()
167
+
168
+ def get_features(self) -> list:
169
+ return _get_features_bytes(self.b, boundaries)
170
+
171
+
172
+ class UnicodeWordFeatureSet:
173
+ def __init__(self, b: bytes, norm_form: str = 'NFC'):
174
+ # Decode, normalize (using the provided form), and lowercase.
175
+ text = b.decode('utf-8')
176
+ normalized = unicodedata.normalize(norm_form, text)
177
+ self.text = normalized.lower()
178
+
179
+ def get_features(self) -> list:
180
+ return _get_features_str(self.text, unicode_boundaries)
181
+
182
+
183
+ def shingle(w: int, b: list) -> list:
184
+ """
185
+ Return the w-shingling of the given set of byte slices.
186
+ For example, if b is [b"this", b"is", b"a", b"test"]
187
+ and w == 2, the result is [b"this is", b"is a", b"a test"].
188
+ """
189
+ if w < 1:
190
+ raise ValueError('simhash.shingle(): k must be a positive integer')
191
+ if w == 1:
192
+ return b
193
+ w = min(w, len(b))
194
+ count = len(b) - w + 1
195
+ shingles = []
196
+ for i in range(count):
197
+ shingles.append(b' '.join(b[i : i + w]))
198
+ return shingles
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: scanoss
3
- Version: 1.20.5
3
+ Version: 1.22.0
4
4
  Summary: Simple Python library to leverage the SCANOSS APIs
5
5
  Home-page: https://scanoss.com
6
6
  Author: SCANOSS
@@ -29,8 +29,10 @@ Requires-Dist: importlib_resources
29
29
  Requires-Dist: packageurl-python
30
30
  Requires-Dist: pathspec
31
31
  Requires-Dist: jsonschema
32
+ Requires-Dist: crc
32
33
  Provides-Extra: fast-winnowing
33
34
  Requires-Dist: scanoss_winnowing>=0.5.0; extra == "fast-winnowing"
35
+ Dynamic: license-file
34
36
 
35
37
  # SCANOSS Python Package
36
38
  The SCANOSS python package provides a simple easy to consume library for interacting with SCANOSS APIs/Engine.
@@ -0,0 +1,83 @@
1
+ protoc_gen_swagger/__init__.py,sha256=WIZ8oAZVdZQxoQSsQDnOlVPKAYGBYza4gGHI6t7DACM,802
2
+ protoc_gen_swagger/options/__init__.py,sha256=WIZ8oAZVdZQxoQSsQDnOlVPKAYGBYza4gGHI6t7DACM,802
3
+ protoc_gen_swagger/options/annotations_pb2.py,sha256=b25EDD6gssUWnFby9gxgcpLIROTxPneZ4PQcNdmv1Z0,2550
4
+ protoc_gen_swagger/options/annotations_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
5
+ protoc_gen_swagger/options/openapiv2_pb2.py,sha256=vYElGp8E1vGHszvWqX97zNG9GFJ7u2QcdK9ouq0XdyI,14939
6
+ protoc_gen_swagger/options/openapiv2_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
7
+ scanoss/__init__.py,sha256=N6D9URr6AdSmpvYx7VJ2j8mViBMjK2aGLjn-kekJ2Sg,1146
8
+ scanoss/cli.py,sha256=StXsVdi4ti2cY7Y_KvpE7IHDNNoWkiOys10UnXJl770,63497
9
+ scanoss/components.py,sha256=pXzF892dDKRagVi2LM3FsQ0U6rciQ-7-5HCDMvfMKhU,14078
10
+ scanoss/constants.py,sha256=9cJxbaXMP4GUIMVn0O1eEyT7Qfq4Jl6BWgZsYQqxQ20,293
11
+ scanoss/csvoutput.py,sha256=qNKRwcChSkgIwLm00kZiVX6iHVQUF4Apl-sMbzJ5Taw,10192
12
+ scanoss/cyclonedx.py,sha256=UktDuqZUbXSggdt864Pg8ziTD7sdEQtLxfYL7vd_ZCE,12756
13
+ scanoss/file_filters.py,sha256=_1Ehb_rLnHw_-6N5Zhh4Es2lz6rlx0LozGPn-u52cok,20338
14
+ scanoss/filecount.py,sha256=RZjKQ6M5P_RQg0_PMD2tsRe5Z8f98ke0sxYVjPDN8iQ,6538
15
+ scanoss/results.py,sha256=47ZXXuU2sDjYa5vhtbWTmikit9jHhA0rsYKwkvZFI5w,9252
16
+ scanoss/scancodedeps.py,sha256=JbpoGW1POtPMmowzfwa4oh8sSBeeQCqaW9onvc4UFYM,11517
17
+ scanoss/scanner.py,sha256=ZL8I8KtVyXgUMcl7Ccbip_Q1IlU9WTgI-mFtSpF1JWw,45223
18
+ scanoss/scanoss_settings.py,sha256=393JnWLsEZhvMg5tPUGgxmqnBKp8AcLxYsDRbLP7aV4,10650
19
+ scanoss/scanossapi.py,sha256=v4D9i9Impa82Enw-5hZ7KLlscDIpaILNbGOMj3MJXqs,13067
20
+ scanoss/scanossbase.py,sha256=Dkpwxa8NH8XN1iRl03NM_Mkvby0JQ4qfvCiiUrJ5ul0,3163
21
+ scanoss/scanossgrpc.py,sha256=BZ6-JXmOigm0agvWp_rIoM1vkNN1K3yhcrjiNx6EO28,28075
22
+ scanoss/scanpostprocessor.py,sha256=-JsThlxrU70r92GHykTMERnicdd-6jmwNsE4PH0MN2o,11063
23
+ scanoss/scantype.py,sha256=gFmyVmKQpHWogN2iCmMj032e_sZo4T92xS3_EH5B3Tc,1310
24
+ scanoss/spdxlite.py,sha256=MQqFgQhIO-yrbRwEAQS77HmRgP5GDxff-2JYLVoceA0,28946
25
+ scanoss/threadeddependencies.py,sha256=CAeZnoYd3d1ayoRvfm_aVjYbaTDLsk6DMWDxkoBPvq0,9866
26
+ scanoss/threadedscanning.py,sha256=38ryN_kZGpzmrd_hkuiY9Sb3tOG248canGCDQDmGEwI,9317
27
+ scanoss/winnowing.py,sha256=68_AL3iI-yR8GMfOD1LemToA_rvbNHeghKTX5-AK698,19254
28
+ scanoss/api/__init__.py,sha256=hx-P78xbDsh6WQIigewkJ7Y7y1fqc_eYnyHC5IZTKmo,1122
29
+ scanoss/api/common/__init__.py,sha256=hx-P78xbDsh6WQIigewkJ7Y7y1fqc_eYnyHC5IZTKmo,1122
30
+ scanoss/api/common/v2/__init__.py,sha256=hx-P78xbDsh6WQIigewkJ7Y7y1fqc_eYnyHC5IZTKmo,1122
31
+ scanoss/api/common/v2/scanoss_common_pb2.py,sha256=_MlQ_jbRnFPWxO7O-q3-oVYnSmb87CsE6oATto_gios,2304
32
+ scanoss/api/common/v2/scanoss_common_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
33
+ scanoss/api/components/__init__.py,sha256=hx-P78xbDsh6WQIigewkJ7Y7y1fqc_eYnyHC5IZTKmo,1122
34
+ scanoss/api/components/v2/__init__.py,sha256=hx-P78xbDsh6WQIigewkJ7Y7y1fqc_eYnyHC5IZTKmo,1122
35
+ scanoss/api/components/v2/scanoss_components_pb2.py,sha256=3p6fn5NREEkTq8MU2KD6DhMJyoS3kpHRmYep2HVntt4,7188
36
+ scanoss/api/components/v2/scanoss_components_pb2_grpc.py,sha256=4wr8prnh7erZv8qOVDQoyI4KWA-o0WE12BA4zPxSJOc,8644
37
+ scanoss/api/cryptography/v2/scanoss_cryptography_pb2.py,sha256=9Hi1Ega0v-7KRLVIMNGihZTgbE8RXhXUHX_ctQY6ldw,8051
38
+ scanoss/api/cryptography/v2/scanoss_cryptography_pb2_grpc.py,sha256=DULlVhJrg1wdlUclk2gkDDwj_nYc_ZH4HkgI780B9PY,12659
39
+ scanoss/api/dependencies/__init__.py,sha256=hx-P78xbDsh6WQIigewkJ7Y7y1fqc_eYnyHC5IZTKmo,1122
40
+ scanoss/api/dependencies/v2/__init__.py,sha256=hx-P78xbDsh6WQIigewkJ7Y7y1fqc_eYnyHC5IZTKmo,1122
41
+ scanoss/api/dependencies/v2/scanoss_dependencies_pb2.py,sha256=4zG2dIiQnNcicg84WcJPPBqLK5QaOKQjkz49hXRTRkw,6501
42
+ scanoss/api/dependencies/v2/scanoss_dependencies_pb2_grpc.py,sha256=8KjaWuOT5rygIMe2oWTmyZND3Ugt7K3g94K7a1Mbwcs,6875
43
+ scanoss/api/provenance/__init__.py,sha256=KlDD87JmyZP-10T-fuJo0_v2zt1gxWfTgs70wjky9xg,1139
44
+ scanoss/api/provenance/v2/__init__.py,sha256=KlDD87JmyZP-10T-fuJo0_v2zt1gxWfTgs70wjky9xg,1139
45
+ scanoss/api/provenance/v2/scanoss_provenance_pb2.py,sha256=ItIz2iyDpmNgurKQAtcG4_IoF9snv9Z2H6X7Uv9y8_8,4199
46
+ scanoss/api/provenance/v2/scanoss_provenance_pb2_grpc.py,sha256=WdiNTDe1Xo0XBn0XVNHLrzEfHX99Xxo9fdVzvC0oQ5w,4799
47
+ scanoss/api/scanning/__init__.py,sha256=hx-P78xbDsh6WQIigewkJ7Y7y1fqc_eYnyHC5IZTKmo,1122
48
+ scanoss/api/scanning/v2/__init__.py,sha256=hx-P78xbDsh6WQIigewkJ7Y7y1fqc_eYnyHC5IZTKmo,1122
49
+ scanoss/api/scanning/v2/scanoss_scanning_pb2.py,sha256=rHScTNN5_jsgLu_y3UIPTjeBX74GUw0kyjA-IMoz7mQ,4324
50
+ scanoss/api/scanning/v2/scanoss_scanning_pb2_grpc.py,sha256=kyP1JRjyHlUR9vc0MXSJDvEGBiROEu5WvHvt737g27Q,4670
51
+ scanoss/api/semgrep/__init__.py,sha256=UAhvL2dFNZsG4g3I8HCauwQK6e0QoEFhMGqZ_9GgGhI,1122
52
+ scanoss/api/semgrep/v2/__init__.py,sha256=UAhvL2dFNZsG4g3I8HCauwQK6e0QoEFhMGqZ_9GgGhI,1122
53
+ scanoss/api/semgrep/v2/scanoss_semgrep_pb2.py,sha256=VIXDRVU7FmsTqdSAhYQQ0hhYbp-AplicrgUjn-V4sZo,3947
54
+ scanoss/api/semgrep/v2/scanoss_semgrep_pb2_grpc.py,sha256=2UELsajRZd8ctX1kAyj_zUaIjTViVNqerbTWIiIElqE,4627
55
+ scanoss/api/vulnerabilities/__init__.py,sha256=IFrDk_DTJgKSZmmU-nuLXuq_s8sQZlrSCHhIDMJT4r0,1122
56
+ scanoss/api/vulnerabilities/v2/__init__.py,sha256=IFrDk_DTJgKSZmmU-nuLXuq_s8sQZlrSCHhIDMJT4r0,1122
57
+ scanoss/api/vulnerabilities/v2/scanoss_vulnerabilities_pb2.py,sha256=CFhF80av8tenGvn9AIsGEtRJPuV2dC_syA5JLZb2lDw,5464
58
+ scanoss/api/vulnerabilities/v2/scanoss_vulnerabilities_pb2_grpc.py,sha256=HlS4k4Zmx6RIAqaO9I96jD-eyF5yU6Xx04pVm7pdqOg,6864
59
+ scanoss/data/build_date.txt,sha256=GqrDjXg6xymtFEJevLsewXnvrdsXhzDh27Sv0aQl75U,40
60
+ scanoss/data/scanoss-settings-schema.json,sha256=ClkRYAkjAN0Sk704G8BE_Ok006oQ6YnIGmX84CF8h9w,8798
61
+ scanoss/data/spdx-exceptions.json,sha256=s7UTYxC7jqQXr11YBlIWYCNwN6lRDFTR33Y8rpN_dA4,17953
62
+ scanoss/data/spdx-licenses.json,sha256=A6Z0q82gaTLtnopBfzeIVZjJFxkdRW1g2TuumQc-lII,228794
63
+ scanoss/inspection/__init__.py,sha256=0hjb5ktavp7utJzFhGMPImPaZiHWgilM2HwvTp5lXJE,1122
64
+ scanoss/inspection/copyleft.py,sha256=VynluuCUVxR7uQUz026sp4_yE0Eh3dwpPK0YJ6FNFFw,7579
65
+ scanoss/inspection/policy_check.py,sha256=NYBGKElaeHXKsMOFfSS4IKCiS71h3CKoL20uwhdjaoU,15685
66
+ scanoss/inspection/undeclared_component.py,sha256=0YEiWQ4Q1xu7j4YHLPsS3b5Mf9fplHJdHRXgUoQyF2w,10102
67
+ scanoss/inspection/utils/license_utils.py,sha256=Zb6QLmVJb86lKCwZyBsmwakyAtY1SXa54kUyyKmWMqA,5093
68
+ scanoss/scanners/__init__.py,sha256=D4C0lWLuNp8k_BjQZEc07WZcUgAvriVwQWOk063b0ZU,1122
69
+ scanoss/scanners/container_scanner.py,sha256=leP4roes6B9B95F49mJ0P_F8WcKCQkvJgk9azWyJrjg,16294
70
+ scanoss/scanners/folder_hasher.py,sha256=ePWinOTN3neSVz7T81TAF7GZVAGNYGJ8SfhM5LBYWb8,9824
71
+ scanoss/scanners/scanner_config.py,sha256=egG7cw3S2akU-D9M1aLE5jLrfz_c8e7_DIotMnnpM84,2601
72
+ scanoss/scanners/scanner_hfh.py,sha256=7w4WwNtjqBcZmu5ujmNkz1ejpGwO1s_XZbYBH2BsO9k,5773
73
+ scanoss/utils/__init__.py,sha256=0hjb5ktavp7utJzFhGMPImPaZiHWgilM2HwvTp5lXJE,1122
74
+ scanoss/utils/abstract_presenter.py,sha256=teiDTxBj5jBMCk2T8i4l1BJPf_u4zBLWrtCTFHSSECM,3148
75
+ scanoss/utils/crc64.py,sha256=TMrwQimSdE6imhFOUL7oAG6Kxu-8qMpGWMuMg8QpSVs,3169
76
+ scanoss/utils/file.py,sha256=yVyv7C7xLWtFNfUrv3r6W8tkIqEuPjZ7_mgIT01IjJs,2933
77
+ scanoss/utils/simhash.py,sha256=6iu8DOcecPAY36SZjCOzrrLMT9oIE7-gI6QuYwUQ7B0,5793
78
+ scanoss-1.22.0.dist-info/licenses/LICENSE,sha256=LLUaXoiyOroIbr5ubAyrxBOwSRLTm35ETO2FmLpy8QQ,1074
79
+ scanoss-1.22.0.dist-info/METADATA,sha256=vA4ujKiW-TKlanQrlQa_V30a6FsxHgfs3g_YL28kSF8,6060
80
+ scanoss-1.22.0.dist-info/WHEEL,sha256=pxyMxgL8-pra_rKaQ4drOZAegBVuX-G_4nRHjjgWbmo,91
81
+ scanoss-1.22.0.dist-info/entry_points.txt,sha256=Uy28xnaDL5KQ7V77sZD5VLDXPNxYYzSr5tsqtiXVzAs,48
82
+ scanoss-1.22.0.dist-info/top_level.txt,sha256=V11PrQ6Pnrc-nDF9xnisnJ8e6-i7HqSIKVNqduRWcL8,27
83
+ scanoss-1.22.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (76.0.0)
2
+ Generator: setuptools (79.0.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,74 +0,0 @@
1
- protoc_gen_swagger/__init__.py,sha256=WIZ8oAZVdZQxoQSsQDnOlVPKAYGBYza4gGHI6t7DACM,802
2
- protoc_gen_swagger/options/__init__.py,sha256=WIZ8oAZVdZQxoQSsQDnOlVPKAYGBYza4gGHI6t7DACM,802
3
- protoc_gen_swagger/options/annotations_pb2.py,sha256=ycI8kBZqAQkXJTIdOJYBhCRp4Yb468d1U1y4f2_a_50,2570
4
- protoc_gen_swagger/options/annotations_pb2_grpc.py,sha256=VCyAf0skoHSgQPkD4n8rKQPYesinqHqN8TEwyu7XGUo,159
5
- protoc_gen_swagger/options/openapiv2_pb2.py,sha256=BQjXc9AICIKSHMCAmPDiWrZBpNozEOc78TDRf1_ieaE,15243
6
- protoc_gen_swagger/options/openapiv2_pb2_grpc.py,sha256=VCyAf0skoHSgQPkD4n8rKQPYesinqHqN8TEwyu7XGUo,159
7
- scanoss/__init__.py,sha256=c-oaUn6HlvAPPZLg1W_KKgCuZi0NEzmwXg_dJi-_d4Y,1146
8
- scanoss/cli.py,sha256=STeBzhpLo0tDLnUSs2Ys3e5KcmFsRVNwmOu7OijdrXQ,53553
9
- scanoss/components.py,sha256=8YbNWl9SgpD0PZRo4DruhQVLR0d4vXC8gtIAwmNTwaw,13957
10
- scanoss/csvoutput.py,sha256=qNKRwcChSkgIwLm00kZiVX6iHVQUF4Apl-sMbzJ5Taw,10192
11
- scanoss/cyclonedx.py,sha256=UktDuqZUbXSggdt864Pg8ziTD7sdEQtLxfYL7vd_ZCE,12756
12
- scanoss/file_filters.py,sha256=33N5lmr2Tph72wgqils_5HEH_38UpK0G3yxxfUdrK2M,16585
13
- scanoss/filecount.py,sha256=RZjKQ6M5P_RQg0_PMD2tsRe5Z8f98ke0sxYVjPDN8iQ,6538
14
- scanoss/results.py,sha256=_an1D7BmSWyqzViSh4e8MrJvrUxwX28UXPpUDhhI4uw,9716
15
- scanoss/scancodedeps.py,sha256=JbpoGW1POtPMmowzfwa4oh8sSBeeQCqaW9onvc4UFYM,11517
16
- scanoss/scanner.py,sha256=oZi_H_6dSNTe0GUzh2xIT1CVL8C0vMtJQ_EX-okEBSE,45040
17
- scanoss/scanoss_settings.py,sha256=rWQlspAtMfItX24nUVjpeY37uZuJTD-nTSQE2OuCytY,10628
18
- scanoss/scanossapi.py,sha256=2Pr8rV59BJB16goXiyPoeZSDeseXCkYJJT5SPrM1mEM,12097
19
- scanoss/scanossbase.py,sha256=_SeQlvnY1SbItpVcX0oyKA3LdaG9ezu8x9ecE2klOoI,3067
20
- scanoss/scanossgrpc.py,sha256=rbIvQjhzc7--2muhh7F9qs4qU71Fs2B5es0-UlfYTrk,23409
21
- scanoss/scanpostprocessor.py,sha256=-JsThlxrU70r92GHykTMERnicdd-6jmwNsE4PH0MN2o,11063
22
- scanoss/scantype.py,sha256=gFmyVmKQpHWogN2iCmMj032e_sZo4T92xS3_EH5B3Tc,1310
23
- scanoss/spdxlite.py,sha256=MQqFgQhIO-yrbRwEAQS77HmRgP5GDxff-2JYLVoceA0,28946
24
- scanoss/threadeddependencies.py,sha256=CAeZnoYd3d1ayoRvfm_aVjYbaTDLsk6DMWDxkoBPvq0,9866
25
- scanoss/threadedscanning.py,sha256=QnWdCc7QChUG_dbndLW-4K115qHJcsdUPzUbwihilSs,9326
26
- scanoss/winnowing.py,sha256=68_AL3iI-yR8GMfOD1LemToA_rvbNHeghKTX5-AK698,19254
27
- scanoss/api/__init__.py,sha256=hx-P78xbDsh6WQIigewkJ7Y7y1fqc_eYnyHC5IZTKmo,1122
28
- scanoss/api/common/__init__.py,sha256=hx-P78xbDsh6WQIigewkJ7Y7y1fqc_eYnyHC5IZTKmo,1122
29
- scanoss/api/common/v2/__init__.py,sha256=hx-P78xbDsh6WQIigewkJ7Y7y1fqc_eYnyHC5IZTKmo,1122
30
- scanoss/api/common/v2/scanoss_common_pb2.py,sha256=EPiTsOrthF3s9jpY_ItcjGJDcq0PI828fTTr7aIyvm8,2210
31
- scanoss/api/common/v2/scanoss_common_pb2_grpc.py,sha256=VCyAf0skoHSgQPkD4n8rKQPYesinqHqN8TEwyu7XGUo,159
32
- scanoss/api/components/__init__.py,sha256=hx-P78xbDsh6WQIigewkJ7Y7y1fqc_eYnyHC5IZTKmo,1122
33
- scanoss/api/components/v2/__init__.py,sha256=hx-P78xbDsh6WQIigewkJ7Y7y1fqc_eYnyHC5IZTKmo,1122
34
- scanoss/api/components/v2/scanoss_components_pb2.py,sha256=GF1pyaa7DeS7QTXdGqynMu2r36ON0DFVQ3Vm6XIFfnU,7349
35
- scanoss/api/components/v2/scanoss_components_pb2_grpc.py,sha256=9nkw6Z0ilWivUW26_Lp-FAcNG7y-hq5-wofLZAB2Dj8,8788
36
- scanoss/api/cryptography/v2/scanoss_cryptography_pb2.py,sha256=j397iN586izMd3pHeVhflotR6kSv3nPRNRHnSNm7ka8,3901
37
- scanoss/api/cryptography/v2/scanoss_cryptography_pb2_grpc.py,sha256=-BqOmxhJwBEC9BXSLVuotvb2q3qhSdWwNOWzeGIcwws,4872
38
- scanoss/api/dependencies/__init__.py,sha256=hx-P78xbDsh6WQIigewkJ7Y7y1fqc_eYnyHC5IZTKmo,1122
39
- scanoss/api/dependencies/v2/__init__.py,sha256=hx-P78xbDsh6WQIigewkJ7Y7y1fqc_eYnyHC5IZTKmo,1122
40
- scanoss/api/dependencies/v2/scanoss_dependencies_pb2.py,sha256=b_ntwrbZaR_stbtkujMm3vh7dMjOESkUZ_6yNxjHv_o,5217
41
- scanoss/api/dependencies/v2/scanoss_dependencies_pb2_grpc.py,sha256=6aTlD1ynxFX4yDsK5rkmXCxw0JZnj5LAoJ_UoCXAZLE,4899
42
- scanoss/api/provenance/__init__.py,sha256=KlDD87JmyZP-10T-fuJo0_v2zt1gxWfTgs70wjky9xg,1139
43
- scanoss/api/provenance/v2/__init__.py,sha256=KlDD87JmyZP-10T-fuJo0_v2zt1gxWfTgs70wjky9xg,1139
44
- scanoss/api/provenance/v2/scanoss_provenance_pb2.py,sha256=cxcyIWxhYzjjRPdgTeEfLdOA3XfI_SuYi1OMZMv1c-Q,4443
45
- scanoss/api/provenance/v2/scanoss_provenance_pb2_grpc.py,sha256=87EYBU4fiVEQ8hDkOTzP29KgNPAbxDgEV85pZSPqPXE,4799
46
- scanoss/api/scanning/__init__.py,sha256=hx-P78xbDsh6WQIigewkJ7Y7y1fqc_eYnyHC5IZTKmo,1122
47
- scanoss/api/scanning/v2/__init__.py,sha256=hx-P78xbDsh6WQIigewkJ7Y7y1fqc_eYnyHC5IZTKmo,1122
48
- scanoss/api/scanning/v2/scanoss_scanning_pb2.py,sha256=dtKZjs0Hm2I6_At8imQ_A_oARiNj_FQcsEKlrXtewPw,2566
49
- scanoss/api/scanning/v2/scanoss_scanning_pb2_grpc.py,sha256=qNGUqcycX4e89aLXNhSfmN-kKCGhMUrduOLPhMgb4mE,2705
50
- scanoss/api/semgrep/__init__.py,sha256=UAhvL2dFNZsG4g3I8HCauwQK6e0QoEFhMGqZ_9GgGhI,1122
51
- scanoss/api/semgrep/v2/__init__.py,sha256=UAhvL2dFNZsG4g3I8HCauwQK6e0QoEFhMGqZ_9GgGhI,1122
52
- scanoss/api/semgrep/v2/scanoss_semgrep_pb2.py,sha256=8Do9XeIYAsmhX3JnySY2OTShN8YdlQxGUEiUkfIOIUs,4006
53
- scanoss/api/semgrep/v2/scanoss_semgrep_pb2_grpc.py,sha256=phiherhaqxWOnOsMsJNQuVO7945w1Q1YfS73fFpsvUE,4688
54
- scanoss/api/vulnerabilities/__init__.py,sha256=IFrDk_DTJgKSZmmU-nuLXuq_s8sQZlrSCHhIDMJT4r0,1122
55
- scanoss/api/vulnerabilities/v2/__init__.py,sha256=IFrDk_DTJgKSZmmU-nuLXuq_s8sQZlrSCHhIDMJT4r0,1122
56
- scanoss/api/vulnerabilities/v2/scanoss_vulnerabilities_pb2.py,sha256=q1qt-n8RTRMf05kxvpJgcMFJCbRwsnJSIErJMPAa1ng,5583
57
- scanoss/api/vulnerabilities/v2/scanoss_vulnerabilities_pb2_grpc.py,sha256=GLD8kmnS4CsBAlOV-P7ZBzmomB3P_1GyC2F7oxs-f_M,6985
58
- scanoss/data/build_date.txt,sha256=sucBDfFeyfS3yvTTDgQN_ieMBUHJDht6mu6aj2lYrw4,40
59
- scanoss/data/scanoss-settings-schema.json,sha256=ClkRYAkjAN0Sk704G8BE_Ok006oQ6YnIGmX84CF8h9w,8798
60
- scanoss/data/spdx-exceptions.json,sha256=s7UTYxC7jqQXr11YBlIWYCNwN6lRDFTR33Y8rpN_dA4,17953
61
- scanoss/data/spdx-licenses.json,sha256=A6Z0q82gaTLtnopBfzeIVZjJFxkdRW1g2TuumQc-lII,228794
62
- scanoss/inspection/__init__.py,sha256=0hjb5ktavp7utJzFhGMPImPaZiHWgilM2HwvTp5lXJE,1122
63
- scanoss/inspection/copyleft.py,sha256=VynluuCUVxR7uQUz026sp4_yE0Eh3dwpPK0YJ6FNFFw,7579
64
- scanoss/inspection/policy_check.py,sha256=NYBGKElaeHXKsMOFfSS4IKCiS71h3CKoL20uwhdjaoU,15685
65
- scanoss/inspection/undeclared_component.py,sha256=0YEiWQ4Q1xu7j4YHLPsS3b5Mf9fplHJdHRXgUoQyF2w,10102
66
- scanoss/inspection/utils/license_utils.py,sha256=Zb6QLmVJb86lKCwZyBsmwakyAtY1SXa54kUyyKmWMqA,5093
67
- scanoss/utils/__init__.py,sha256=0hjb5ktavp7utJzFhGMPImPaZiHWgilM2HwvTp5lXJE,1122
68
- scanoss/utils/file.py,sha256=yVyv7C7xLWtFNfUrv3r6W8tkIqEuPjZ7_mgIT01IjJs,2933
69
- scanoss-1.20.5.dist-info/LICENSE,sha256=LLUaXoiyOroIbr5ubAyrxBOwSRLTm35ETO2FmLpy8QQ,1074
70
- scanoss-1.20.5.dist-info/METADATA,sha256=9w9zFWz7I8uJHG5Vm3Dyw5wyqx3ZWvQss9GYn8fFObA,6019
71
- scanoss-1.20.5.dist-info/WHEEL,sha256=52BFRY2Up02UkjOa29eZOS2VxUrpPORXg1pkohGGUS8,91
72
- scanoss-1.20.5.dist-info/entry_points.txt,sha256=Uy28xnaDL5KQ7V77sZD5VLDXPNxYYzSr5tsqtiXVzAs,48
73
- scanoss-1.20.5.dist-info/top_level.txt,sha256=V11PrQ6Pnrc-nDF9xnisnJ8e6-i7HqSIKVNqduRWcL8,27
74
- scanoss-1.20.5.dist-info/RECORD,,