scanoss 1.40.1__py3-none-any.whl → 1.41.1__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.
- scanoss/__init__.py +1 -1
- scanoss/cli.py +14 -0
- scanoss/constants.py +3 -0
- scanoss/data/build_date.txt +1 -1
- scanoss/data/osadl-copyleft.json +133 -0
- scanoss/filecount.py +37 -38
- scanoss/inspection/policy_check/scanoss/copyleft.py +7 -1
- scanoss/inspection/utils/license_utils.py +57 -71
- scanoss/inspection/utils/scan_result_processor.py +22 -11
- scanoss/osadl.py +125 -0
- scanoss/scanner.py +191 -189
- scanoss/scanners/folder_hasher.py +24 -24
- scanoss/scanners/scanner_hfh.py +21 -16
- scanoss/threadedscanning.py +10 -0
- {scanoss-1.40.1.dist-info → scanoss-1.41.1.dist-info}/METADATA +1 -1
- {scanoss-1.40.1.dist-info → scanoss-1.41.1.dist-info}/RECORD +20 -18
- {scanoss-1.40.1.dist-info → scanoss-1.41.1.dist-info}/WHEEL +0 -0
- {scanoss-1.40.1.dist-info → scanoss-1.41.1.dist-info}/entry_points.txt +0 -0
- {scanoss-1.40.1.dist-info → scanoss-1.41.1.dist-info}/licenses/LICENSE +0 -0
- {scanoss-1.40.1.dist-info → scanoss-1.41.1.dist-info}/top_level.txt +0 -0
scanoss/scanners/scanner_hfh.py
CHANGED
|
@@ -110,6 +110,19 @@ class ScannerHFH:
|
|
|
110
110
|
self.min_accepted_score = min_accepted_score
|
|
111
111
|
self.use_grpc = use_grpc
|
|
112
112
|
|
|
113
|
+
def _execute_grpc_scan(self, hfh_request: Dict) -> None:
|
|
114
|
+
"""
|
|
115
|
+
Execute folder hash scan.
|
|
116
|
+
|
|
117
|
+
Args:
|
|
118
|
+
hfh_request: Request dictionary for the gRPC call
|
|
119
|
+
"""
|
|
120
|
+
try:
|
|
121
|
+
self.scan_results = self.client.folder_hash_scan(hfh_request, self.use_grpc)
|
|
122
|
+
except Exception as e:
|
|
123
|
+
self.base.print_stderr(f'Error during folder hash scan: {e}')
|
|
124
|
+
self.scan_results = None
|
|
125
|
+
|
|
113
126
|
def scan(self) -> Optional[Dict]:
|
|
114
127
|
"""
|
|
115
128
|
Scan the provided directory using the folder hashing algorithm.
|
|
@@ -124,25 +137,17 @@ class ScannerHFH:
|
|
|
124
137
|
'min_accepted_score': self.min_accepted_score,
|
|
125
138
|
}
|
|
126
139
|
|
|
127
|
-
|
|
128
|
-
|
|
140
|
+
spinner_ctx = Spinner('Scanning folder...')
|
|
141
|
+
|
|
142
|
+
with spinner_ctx as spinner:
|
|
143
|
+
grpc_thread = threading.Thread(target=self._execute_grpc_scan, args=(hfh_request,))
|
|
144
|
+
grpc_thread.start()
|
|
129
145
|
|
|
130
|
-
|
|
131
|
-
while not stop_spinner:
|
|
146
|
+
while grpc_thread.is_alive():
|
|
132
147
|
spinner.next()
|
|
133
148
|
time.sleep(0.1)
|
|
134
149
|
|
|
135
|
-
|
|
136
|
-
spinner_thread.start()
|
|
137
|
-
|
|
138
|
-
try:
|
|
139
|
-
response = self.client.folder_hash_scan(hfh_request, self.use_grpc)
|
|
140
|
-
if response:
|
|
141
|
-
self.scan_results = response
|
|
142
|
-
finally:
|
|
143
|
-
stop_spinner = True
|
|
144
|
-
spinner_thread.join()
|
|
145
|
-
spinner.finish()
|
|
150
|
+
grpc_thread.join()
|
|
146
151
|
|
|
147
152
|
return self.scan_results
|
|
148
153
|
|
|
@@ -213,7 +218,7 @@ class ScannerHFHPresenter(AbstractPresenter):
|
|
|
213
218
|
}
|
|
214
219
|
|
|
215
220
|
get_vulnerabilities_json_request = {
|
|
216
|
-
'
|
|
221
|
+
'components': [{'purl': purl, 'requirement': best_match_version['version']}],
|
|
217
222
|
}
|
|
218
223
|
|
|
219
224
|
decorated_scan_results = self.scanner.client.get_dependencies(get_dependencies_json_request)
|
scanoss/threadedscanning.py
CHANGED
|
@@ -22,6 +22,7 @@ SPDX-License-Identifier: MIT
|
|
|
22
22
|
THE SOFTWARE.
|
|
23
23
|
"""
|
|
24
24
|
|
|
25
|
+
import atexit
|
|
25
26
|
import os
|
|
26
27
|
import queue
|
|
27
28
|
import sys
|
|
@@ -77,6 +78,8 @@ class ThreadedScanning(ScanossBase):
|
|
|
77
78
|
if nb_threads > MAX_ALLOWED_THREADS:
|
|
78
79
|
self.print_msg(f'Warning: Requested threads too large: {nb_threads}. Reducing to {MAX_ALLOWED_THREADS}')
|
|
79
80
|
self.nb_threads = MAX_ALLOWED_THREADS
|
|
81
|
+
# Register cleanup to ensure progress bar is finished on exit
|
|
82
|
+
atexit.register(self.complete_bar)
|
|
80
83
|
|
|
81
84
|
@staticmethod
|
|
82
85
|
def __count_files_in_wfp(wfp: str):
|
|
@@ -101,6 +104,13 @@ class ThreadedScanning(ScanossBase):
|
|
|
101
104
|
if self.bar:
|
|
102
105
|
self.bar.finish()
|
|
103
106
|
|
|
107
|
+
def __del__(self):
|
|
108
|
+
"""Ensure progress bar is cleaned up when object is destroyed"""
|
|
109
|
+
try:
|
|
110
|
+
self.complete_bar()
|
|
111
|
+
except Exception:
|
|
112
|
+
pass # Ignore errors during cleanup
|
|
113
|
+
|
|
104
114
|
def set_bar(self, bar: Bar) -> None:
|
|
105
115
|
"""
|
|
106
116
|
Set the Progress Bar to display progress while scanning
|
|
@@ -6,20 +6,21 @@ protoc_gen_swagger/options/annotations_pb2_grpc.py,sha256=KZOW9Ciio-f9iL42FuLFnS
|
|
|
6
6
|
protoc_gen_swagger/options/openapiv2_pb2.py,sha256=w0xDs63uyrWGgzRaQZXfJpfI7Jpyvh-i9ay_uzOR-aM,16475
|
|
7
7
|
protoc_gen_swagger/options/openapiv2_pb2.pyi,sha256=hYOV6uQ2yqhP89042_V3GuAsvoBBiXf5CGuYmnFnfv4,54665
|
|
8
8
|
protoc_gen_swagger/options/openapiv2_pb2_grpc.py,sha256=sje9Nh3yE7CHCUWZwtjTgwsKB4GvyGz5vOrGTnRXJfc,917
|
|
9
|
-
scanoss/__init__.py,sha256=
|
|
10
|
-
scanoss/cli.py,sha256=
|
|
9
|
+
scanoss/__init__.py,sha256=i_cLcgA_H4IZGEUVCJDYNtJA4imHO4tiPdeAw2juaww,1146
|
|
10
|
+
scanoss/cli.py,sha256=YAE9ihA2LswSLHBRHnpyqM-e2tcE7lPd8-ghABbnyU8,103984
|
|
11
11
|
scanoss/components.py,sha256=NFyt_w3aoMotr_ZaFU-ng00_89sruc0kgY7ERnJXkmM,15891
|
|
12
|
-
scanoss/constants.py,sha256=
|
|
12
|
+
scanoss/constants.py,sha256=vurzLNIfP_dnRMwOdZsUWvr5XAVuGoj98XZ0yjXNOjQ,632
|
|
13
13
|
scanoss/cryptography.py,sha256=lOoD_dW16ARQxYiYyb5R8S7gx0FqWIsnGkKfsB0nGaU,10627
|
|
14
14
|
scanoss/csvoutput.py,sha256=3wdXPeIqZG84bCtXFh8fMZO3XodekeSx6RZXoOhZMFc,10551
|
|
15
15
|
scanoss/cyclonedx.py,sha256=mHeX66yQCk41N3YCIzKy_fI7fLqQnetYPFRIzUKy_M4,18416
|
|
16
16
|
scanoss/delta.py,sha256=slmgnD7SsUOmfSE2zb0zdRAGo-JcjPJAtxyzuCSzO3I,9455
|
|
17
17
|
scanoss/file_filters.py,sha256=QcLqunaBKQIafjNZ9_Snh9quBX5_-fsTusVmxwjC1q8,18511
|
|
18
|
-
scanoss/filecount.py,sha256=
|
|
18
|
+
scanoss/filecount.py,sha256=icWaKN_xapMrH3ZZ-D3nldx7hWiguIOjoKg4gCeKDOM,6678
|
|
19
19
|
scanoss/gitlabqualityreport.py,sha256=_VG0Xoh8wYF3lsXGJvjoj-Ty58OS_-H1Domiq9OpQEo,8830
|
|
20
|
+
scanoss/osadl.py,sha256=VWalcHpshWxtRDGje2cK32SfFeSBAO62knfSW9pyYqc,4558
|
|
20
21
|
scanoss/results.py,sha256=47ZXXuU2sDjYa5vhtbWTmikit9jHhA0rsYKwkvZFI5w,9252
|
|
21
22
|
scanoss/scancodedeps.py,sha256=JbpoGW1POtPMmowzfwa4oh8sSBeeQCqaW9onvc4UFYM,11517
|
|
22
|
-
scanoss/scanner.py,sha256
|
|
23
|
+
scanoss/scanner.py,sha256=P2gswXapSVYC-tH6_oY763DYpe9Awi2g9xW1U9WGgQI,46374
|
|
23
24
|
scanoss/scanoss_settings.py,sha256=W8uFQ6uRIqtE-DXXA56bO8I4GsbJ-aA1c84hQ_qBel4,12161
|
|
24
25
|
scanoss/scanossapi.py,sha256=U3IytJXA0mQHYsylzjwCuFakuhD_dJhstY37NmyvtB8,13243
|
|
25
26
|
scanoss/scanossbase.py,sha256=Dkpwxa8NH8XN1iRl03NM_Mkvby0JQ4qfvCiiUrJ5ul0,3163
|
|
@@ -28,7 +29,7 @@ scanoss/scanpostprocessor.py,sha256=-JsThlxrU70r92GHykTMERnicdd-6jmwNsE4PH0MN2o,
|
|
|
28
29
|
scanoss/scantype.py,sha256=gFmyVmKQpHWogN2iCmMj032e_sZo4T92xS3_EH5B3Tc,1310
|
|
29
30
|
scanoss/spdxlite.py,sha256=4JMxmyNmvcL6fjScihk8toWfSuQ-Pj1gzaT3SIn1fXA,29425
|
|
30
31
|
scanoss/threadeddependencies.py,sha256=aN8E43iKS1pWJLJP3xCle5ewlfR5DE2-ljUzI_29Xwk,9851
|
|
31
|
-
scanoss/threadedscanning.py,sha256=
|
|
32
|
+
scanoss/threadedscanning.py,sha256=Y-OYamD3xJvFiqwCn5y_4QD5gk_rJ5xs2jI1DxNtJlc,9661
|
|
32
33
|
scanoss/winnowing.py,sha256=RsR9jRTR3TzS1pEeKQ2RuYlIG8Q7RnUQFfgPLog6B-A,21679
|
|
33
34
|
scanoss/api/__init__.py,sha256=hx-P78xbDsh6WQIigewkJ7Y7y1fqc_eYnyHC5IZTKmo,1122
|
|
34
35
|
scanoss/api/common/__init__.py,sha256=hx-P78xbDsh6WQIigewkJ7Y7y1fqc_eYnyHC5IZTKmo,1122
|
|
@@ -65,7 +66,8 @@ scanoss/api/vulnerabilities/__init__.py,sha256=IFrDk_DTJgKSZmmU-nuLXuq_s8sQZlrSC
|
|
|
65
66
|
scanoss/api/vulnerabilities/v2/__init__.py,sha256=IFrDk_DTJgKSZmmU-nuLXuq_s8sQZlrSCHhIDMJT4r0,1122
|
|
66
67
|
scanoss/api/vulnerabilities/v2/scanoss_vulnerabilities_pb2.py,sha256=pmm0MSiXkdf8e4rCIIDRcsNRixR2vGvD1Xak4l-wdwI,16550
|
|
67
68
|
scanoss/api/vulnerabilities/v2/scanoss_vulnerabilities_pb2_grpc.py,sha256=BNxT5kUKQ-mgtOt5QYBM1Qrg5LNDqSpWKpfEZquIlsM,19127
|
|
68
|
-
scanoss/data/build_date.txt,sha256=
|
|
69
|
+
scanoss/data/build_date.txt,sha256=GN1HqdC4YLdhbfc6DKTkk_oHV8CQ73bU4WYtYNGGyH8,40
|
|
70
|
+
scanoss/data/osadl-copyleft.json,sha256=O9b2XAfpjQY0TL0fYzO6kwMcp5IwQbF6f_YWbB10MhQ,4761
|
|
69
71
|
scanoss/data/scanoss-settings-schema.json,sha256=ClkRYAkjAN0Sk704G8BE_Ok006oQ6YnIGmX84CF8h9w,8798
|
|
70
72
|
scanoss/data/spdx-exceptions.json,sha256=s7UTYxC7jqQXr11YBlIWYCNwN6lRDFTR33Y8rpN_dA4,17953
|
|
71
73
|
scanoss/data/spdx-licenses.json,sha256=A6Z0q82gaTLtnopBfzeIVZjJFxkdRW1g2TuumQc-lII,228794
|
|
@@ -77,21 +79,21 @@ scanoss/inspection/policy_check/policy_check.py,sha256=nMb5ogRDntYMebm3xrIBde2Gq
|
|
|
77
79
|
scanoss/inspection/policy_check/dependency_track/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
78
80
|
scanoss/inspection/policy_check/dependency_track/project_violation.py,sha256=elc35kWffWxOoF8YMi50hK_obtc1Xa8E3dwUnz7WXcA,20713
|
|
79
81
|
scanoss/inspection/policy_check/scanoss/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
80
|
-
scanoss/inspection/policy_check/scanoss/copyleft.py,sha256=
|
|
82
|
+
scanoss/inspection/policy_check/scanoss/copyleft.py,sha256=ykTU4ZfK0V3iIboE8D5boJ4PlqQz6aqJoc4pvbEsVhQ,9659
|
|
81
83
|
scanoss/inspection/policy_check/scanoss/undeclared_component.py,sha256=ZkqPbfFzUHNEde-iVRWUSpkNKMTW_rOZQqG0y94MtUU,11673
|
|
82
84
|
scanoss/inspection/summary/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
83
85
|
scanoss/inspection/summary/component_summary.py,sha256=ZaQzvZBQDFtow43UC9bij5NCTHjY_QAEqIUyRp3KtWk,7308
|
|
84
86
|
scanoss/inspection/summary/license_summary.py,sha256=BC_REu2e4PkMHp0ttvSdf6yRW3MvFc623fT6_Ze_TQA,7958
|
|
85
87
|
scanoss/inspection/summary/match_summary.py,sha256=GdjIV7ws7fanQTVdBigYGx3683KPL6e6HO4wuXTKq9g,13812
|
|
86
88
|
scanoss/inspection/utils/file_utils.py,sha256=b-xTH6FSyPpl3EPZ9WzK0c4734yE9mAexT1_YLLqymE,1641
|
|
87
|
-
scanoss/inspection/utils/license_utils.py,sha256=
|
|
89
|
+
scanoss/inspection/utils/license_utils.py,sha256=7jjtNcQPL_QNHY22drQqh7D7Pskq_AvAY1rLHAJWAhI,4809
|
|
88
90
|
scanoss/inspection/utils/markdown_utils.py,sha256=zkFs48TM-NR6nUHYOyQmHCwV82_fUsks5UB4BmyGifU,2446
|
|
89
|
-
scanoss/inspection/utils/scan_result_processor.py,sha256=
|
|
91
|
+
scanoss/inspection/utils/scan_result_processor.py,sha256=zSPSWDBTqwRrF-pE6YaXi7tTYS4t1Qw_YIqw3hWvkW8,17736
|
|
90
92
|
scanoss/scanners/__init__.py,sha256=D4C0lWLuNp8k_BjQZEc07WZcUgAvriVwQWOk063b0ZU,1122
|
|
91
93
|
scanoss/scanners/container_scanner.py,sha256=fOrb64owrstX7LnTuxiIan059YgLeKXeBS6g2QaCyq0,16346
|
|
92
|
-
scanoss/scanners/folder_hasher.py,sha256=
|
|
94
|
+
scanoss/scanners/folder_hasher.py,sha256=UzOmtYTLMqeL3Jf4CpvT-L4qaPNCy9-7xV0BwYhAuRc,12973
|
|
93
95
|
scanoss/scanners/scanner_config.py,sha256=egG7cw3S2akU-D9M1aLE5jLrfz_c8e7_DIotMnnpM84,2601
|
|
94
|
-
scanoss/scanners/scanner_hfh.py,sha256=
|
|
96
|
+
scanoss/scanners/scanner_hfh.py,sha256=gn2DnWD0J1_EPAKm5Zmu6ZjbGBPPSdz0YjqcPESPE-c,9512
|
|
95
97
|
scanoss/services/dependency_track_service.py,sha256=JIpqev4I-x_ZajMxD5W2Y3OAUvEJ_4nstzAPV90vfP8,5070
|
|
96
98
|
scanoss/utils/__init__.py,sha256=0hjb5ktavp7utJzFhGMPImPaZiHWgilM2HwvTp5lXJE,1122
|
|
97
99
|
scanoss/utils/abstract_presenter.py,sha256=teiDTxBj5jBMCk2T8i4l1BJPf_u4zBLWrtCTFHSSECM,3148
|
|
@@ -99,9 +101,9 @@ scanoss/utils/crc64.py,sha256=TMrwQimSdE6imhFOUL7oAG6Kxu-8qMpGWMuMg8QpSVs,3169
|
|
|
99
101
|
scanoss/utils/file.py,sha256=62cA9a17TU9ZvfA3FY5HY4-QOajJeSrc8S6xLA_f-3M,2980
|
|
100
102
|
scanoss/utils/scanoss_scan_results_utils.py,sha256=ho9-DKefHFJlVZkw4gXOmMI-mgPIbV9Y2ftkI83fC1k,1727
|
|
101
103
|
scanoss/utils/simhash.py,sha256=6iu8DOcecPAY36SZjCOzrrLMT9oIE7-gI6QuYwUQ7B0,5793
|
|
102
|
-
scanoss-1.
|
|
103
|
-
scanoss-1.
|
|
104
|
-
scanoss-1.
|
|
105
|
-
scanoss-1.
|
|
106
|
-
scanoss-1.
|
|
107
|
-
scanoss-1.
|
|
104
|
+
scanoss-1.41.1.dist-info/licenses/LICENSE,sha256=LLUaXoiyOroIbr5ubAyrxBOwSRLTm35ETO2FmLpy8QQ,1074
|
|
105
|
+
scanoss-1.41.1.dist-info/METADATA,sha256=WHkHJzd48Xxp0q6yqTnpuUxElr0sikFpxxyYu_NgMb8,6181
|
|
106
|
+
scanoss-1.41.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
107
|
+
scanoss-1.41.1.dist-info/entry_points.txt,sha256=Uy28xnaDL5KQ7V77sZD5VLDXPNxYYzSr5tsqtiXVzAs,48
|
|
108
|
+
scanoss-1.41.1.dist-info/top_level.txt,sha256=V11PrQ6Pnrc-nDF9xnisnJ8e6-i7HqSIKVNqduRWcL8,27
|
|
109
|
+
scanoss-1.41.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|