fosslight-dependency 4.1.13__py3-none-any.whl → 4.1.15__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.
@@ -45,5 +45,11 @@ SUPPORT_PACKAE = {
45
45
  CARGO: 'Cargo.toml'
46
46
  }
47
47
 
48
+ SUGGESTED_PACKAGE = {
49
+ 'Podfile': COCOAPODS,
50
+ 'Package.swift': SWIFT,
51
+ 'Cartfile': CARTHAGE
52
+ }
53
+
48
54
  # default android app name
49
55
  default_app_name = 'app'
@@ -118,37 +118,39 @@ class Go(PackageManager):
118
118
  if f'{package_path}({oss_item.version})' in self.relation_tree:
119
119
  dep_item.depends_on_raw = self.relation_tree[f'{package_path}({oss_item.version})']
120
120
 
121
- homepage_set = []
122
- oss_item.homepage = self.dn_url + package_path
123
- dep_item.purl = get_url_to_purl(f"{oss_item.homepage}@{oss_item.version}", self.package_manager_name)
121
+ dn_loc_set = []
122
+ tmp_dn_loc = self.dn_url + package_path
123
+ dep_item.purl = get_url_to_purl(f"{tmp_dn_loc}@{oss_item.version}", self.package_manager_name)
124
124
  purl_dict[f'{package_path}({oss_item.version})'] = dep_item.purl
125
125
 
126
126
  if oss_origin_version:
127
- tmp_homepage = f"{oss_item.homepage}@{oss_origin_version}"
128
- homepage_set.append(tmp_homepage)
129
- homepage_set.append(oss_item.homepage)
127
+ oss_item.download_location = f"{tmp_dn_loc}@{oss_origin_version}"
128
+ dn_loc_set.append(oss_item.download_location)
129
+ dn_loc_set.append(tmp_dn_loc)
130
130
 
131
- for homepage_i in homepage_set:
131
+ for dn_loc_i in dn_loc_set:
132
132
  urlopen_success = False
133
133
  while True:
134
134
  try:
135
- res = urllib.request.urlopen(homepage_i)
135
+ res = urllib.request.urlopen(dn_loc_i)
136
136
  if res.getcode() == 200:
137
137
  urlopen_success = True
138
- if homepage_i == oss_item.homepage:
138
+ if dn_loc_i == tmp_dn_loc:
139
139
  if oss_item.version:
140
- oss_item.comment = f'Cannot connect {tmp_homepage}, get info from the latest version.'
140
+ oss_item.comment = (f'Not found {oss_item.download_location}, '
141
+ 'get info from latest version.')
142
+ oss_item.download_location = tmp_dn_loc
141
143
  break
142
144
  except urllib.error.HTTPError as e:
143
145
  if e.code == 429:
144
- logger.info(f"{e} ({homepage_i}), Retrying to connect after 20 seconds")
146
+ logger.info(f"{e} ({dn_loc_i}), Retrying to connect after 20 seconds")
145
147
  time.sleep(20)
146
148
  continue
147
149
  else:
148
- logger.info(f"{e} ({homepage_i})")
150
+ logger.info(f"{e} ({dn_loc_i})")
149
151
  break
150
152
  except Exception as e:
151
- logger.warning(f"{e} ({homepage_i})")
153
+ logger.warning(f"{e} ({dn_loc_i})")
152
154
  break
153
155
  if urlopen_success:
154
156
  break
@@ -163,9 +165,9 @@ class Go(PackageManager):
163
165
 
164
166
  repository_data = bs_obj.find('div', {'class': 'UnitMeta-repo'})
165
167
  if repository_data:
166
- oss_item.download_location = repository_data.find('a')['href']
168
+ oss_item.homepage = repository_data.find('a')['href']
167
169
  else:
168
- oss_item.download_location = oss_item.homepage
170
+ oss_item.homepage = oss_item.download_location
169
171
 
170
172
  except Exception as e:
171
173
  logging.warning(f"Fail to parse {package_path} in go mod : {e}")
@@ -176,8 +176,8 @@ class Npm(PackageManager):
176
176
  if d[_private]:
177
177
  private_pkg = True
178
178
 
179
- oss_item.download_location = self.dn_url + oss_init_name
180
- dn_loc = f"{self.dn_url}{oss_init_name}/v/{oss_item.version}"
179
+ oss_item.download_location = f"{self.dn_url}{oss_init_name}/v/{oss_item.version}"
180
+ dn_loc = f"{self.dn_url}{oss_init_name}"
181
181
  dep_item.purl = get_url_to_purl(dn_loc, self.package_manager_name)
182
182
  purl_dict[f'{oss_init_name}({oss_item.version})'] = dep_item.purl
183
183
  if d[_repository]:
@@ -61,6 +61,7 @@ def find_package_manager(input_dir, abs_path_to_exclude=[], manifest_file_name=[
61
61
  manifest_file_name.append(value)
62
62
 
63
63
  found_manifest_file = []
64
+ suggested_files = []
64
65
  for parent, dirs, files in os.walk(input_dir):
65
66
  if len(files) < 1:
66
67
  continue
@@ -76,6 +77,8 @@ def find_package_manager(input_dir, abs_path_to_exclude=[], manifest_file_name=[
76
77
  continue
77
78
  if file in manifest_file_name:
78
79
  found_manifest_file.append(file)
80
+ if file in const.SUGGESTED_PACKAGE.keys():
81
+ suggested_files.append(os.path.join(parent, file))
79
82
  for dir in dirs:
80
83
  for manifest_f in manifest_file_name:
81
84
  manifest_l = manifest_f.split(os.path.sep)
@@ -111,7 +114,7 @@ def find_package_manager(input_dir, abs_path_to_exclude=[], manifest_file_name=[
111
114
  ret = False
112
115
  logger.info("Cannot find the manifest file.")
113
116
 
114
- return ret, found_package_manager, input_dir
117
+ return ret, found_package_manager, input_dir, suggested_files
115
118
 
116
119
 
117
120
  def run_dependency_scanner(package_manager='', input_dir='', output_dir_file='', pip_activate_cmd='',
@@ -213,7 +216,9 @@ def run_dependency_scanner(package_manager='', input_dir='', output_dir_file='',
213
216
  manifest_file_name = []
214
217
 
215
218
  try:
216
- ret, found_package_manager, input_dir = find_package_manager(input_dir, abs_path_to_exclude, manifest_file_name)
219
+ ret, found_package_manager, input_dir, suggested_files = find_package_manager(input_dir,
220
+ abs_path_to_exclude,
221
+ manifest_file_name)
217
222
  if ret:
218
223
  os.chdir(input_dir)
219
224
  except Exception as e:
@@ -226,9 +231,18 @@ def run_dependency_scanner(package_manager='', input_dir='', output_dir_file='',
226
231
  logger.info('Try to analyze dependency without manifest file. (Manual mode)')
227
232
  found_package_manager[package_manager] = []
228
233
  else:
229
- logger.error("Terminated: package manager could not be found.")
230
234
  ret = False
231
- return False, scan_item
235
+ if suggested_files:
236
+ suggested_files_str = []
237
+ suggested_files_str.append("Please check the following files and try again:")
238
+ for f in suggested_files:
239
+ pm = const.SUGGESTED_PACKAGE[f.split(os.path.sep)[-1]]
240
+ suggested_files_str.append(f"\t\t\t{f} ({pm}) detected, but {const.SUPPORT_PACKAE[pm]} missing.")
241
+
242
+ suggested_files_str.append("\t\t\tRefer: https://fosslight.org/fosslight-guide-en/scanner/3_dependency.html.")
243
+ scan_item.set_cover_comment('\n'.join(suggested_files_str))
244
+ else:
245
+ scan_item.set_cover_comment("No Package manager detected.")
232
246
 
233
247
  pass_key = 'PASS'
234
248
  success_pm = []
@@ -264,9 +278,6 @@ def run_dependency_scanner(package_manager='', input_dir='', output_dir_file='',
264
278
  info_msg = 'Check log file(fosslight_log*.txt) ' \
265
279
  'and https://fosslight.org/fosslight-guide-en/scanner/3_dependency.html#-prerequisite.'
266
280
  scan_item.set_cover_comment(f"Analysis failed Package manager: {', '.join(fail_pm)} ({info_msg})")
267
- else:
268
- if autodetect:
269
- scan_item.set_cover_comment("No Package manager detected.")
270
281
 
271
282
  if ret and graph_path:
272
283
  graph_path = os.path.abspath(graph_path)
@@ -300,12 +311,14 @@ def run_dependency_scanner(package_manager='', input_dir='', output_dir_file='',
300
311
  else:
301
312
  logger.warning(f"{err_msg}")
302
313
  for i in scan_item.get_cover_comment():
303
- logger.info(i)
314
+ if ret:
315
+ logger.info(i)
316
+ else:
317
+ logger.warning(i)
304
318
  else:
305
319
  ret = False
306
320
  logger.error(f"Fail to generate result file. msg:({err_msg})")
307
321
 
308
- logger.warning("### FINISH ###")
309
322
  return ret, scan_item
310
323
 
311
324
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fosslight-dependency
3
- Version: 4.1.13
3
+ Version: 4.1.15
4
4
  Summary: FOSSLight Dependency Scanner
5
5
  Home-page: https://github.com/fosslight/fosslight_dependency_scanner
6
6
  Author: LG Electronics
@@ -3,20 +3,20 @@ fosslight_dependency/_analyze_dependency.py,sha256=AKwKPEjA5x4p3oCWMJugQjd4zX9WK
3
3
  fosslight_dependency/_graph_convertor.py,sha256=D8GwmJfuj9Wg3_DeKRPLGGdyHSLcoU2Q0VzKQbkJG4g,2267
4
4
  fosslight_dependency/_help.py,sha256=S5tt26ccMLp-BEgWoXWyPxd8JzLtwZ5bIc-A2UTeM4k,3365
5
5
  fosslight_dependency/_package_manager.py,sha256=e2elnBIxVjuAaFGVx1y9VUUcUSMrd8t9RKj4lCMXinY,14916
6
- fosslight_dependency/constant.py,sha256=nGa2Q_IWMojHEKkwdvoFvZrsqZZ4jMCk9h3M78j_lMc,1122
6
+ fosslight_dependency/constant.py,sha256=5upuTFSTmmQwqv2u-MRcEG4lxaIZAIi_c-rAPhOrsfM,1226
7
7
  fosslight_dependency/dependency_item.py,sha256=wNLWcsNycf3HQ5Pib2WrMeo2dn0eHCRg20NLcL95Qew,3345
8
- fosslight_dependency/run_dependency_scanner.py,sha256=rCHwKW2NsOSRyRxsFmUunKruK9vN24O2ucHghJYgey4,17600
8
+ fosslight_dependency/run_dependency_scanner.py,sha256=k1UnI3tFjF1ZRG3TAceEvJnrpy2oYXzgtXlcl_DBmKo,18519
9
9
  fosslight_dependency/LICENSES/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
10
10
  fosslight_dependency/LICENSES/LicenseRef-3rd_party_licenses.txt,sha256=EcsFt7aE1rp3OXAdJgmXayfOZdpRdBMcmRnyoqWMCsw,95687
11
11
  fosslight_dependency/package_manager/Android.py,sha256=0UZFvbLxDIreerK4fR316YPyhUpPliV_kfZulrxkUyo,3218
12
12
  fosslight_dependency/package_manager/Cargo.py,sha256=erAHVVbnRW5KUHVcrPgaHFGJOClpnf4Oi-8HbnSuCaY,5918
13
13
  fosslight_dependency/package_manager/Carthage.py,sha256=VU506KafUiHBrr_62iOOXNI1fDOreOQgcC2EWM5PpQo,6122
14
14
  fosslight_dependency/package_manager/Cocoapods.py,sha256=k_URV1ekMOU8l_y9_KIp_luu96ZGOl1xLIkH737VREA,8524
15
- fosslight_dependency/package_manager/Go.py,sha256=HvMjCOE82WY9cECf3V7y_V9hKtQnrCqHzbXGZI2519c,7195
15
+ fosslight_dependency/package_manager/Go.py,sha256=eEWvPoE3Jd0lMJAxWMNdFcoi21fJF0EwtRbjBDHF8KQ,7309
16
16
  fosslight_dependency/package_manager/Gradle.py,sha256=IYmj9q3XiE_DPKdtll6lyRr98lFuyKWW2qz57X26Fn0,4359
17
17
  fosslight_dependency/package_manager/Helm.py,sha256=ucx2Y0tWX37UHIzIGaRyTe7uQ2vlu2nUuO09hOMq9ZU,4223
18
18
  fosslight_dependency/package_manager/Maven.py,sha256=vAiBEAEGQD5eaFGVSLmrZ8AAtoz_IuTmhaWuPTmsku0,10503
19
- fosslight_dependency/package_manager/Npm.py,sha256=1geiBG2nGamGPW8Jd3_Unn3eh7ejnd7kogpM2-HrWeA,10655
19
+ fosslight_dependency/package_manager/Npm.py,sha256=W7mdJKyIfPlO_S3jPTZiESnBOg7vQZxpkHSPQDazmcE,10659
20
20
  fosslight_dependency/package_manager/Nuget.py,sha256=x1SPdxwXS2Oyi1RnLasvJJL-IFJl45VI2CXt3wReW24,8884
21
21
  fosslight_dependency/package_manager/Pnpm.py,sha256=LDKooFGQHui_Q5U7XqSJ8KcCPiLVndXf5oGKTJExh5w,7056
22
22
  fosslight_dependency/package_manager/Pub.py,sha256=Rrz8_6wdrmMU6f3vbbuAwyMbODBauXNnBbI619OQgDk,10184
@@ -24,12 +24,12 @@ fosslight_dependency/package_manager/Pypi.py,sha256=LPeI7amFXKxhXMSRwiVaKfhHL_D7
24
24
  fosslight_dependency/package_manager/Swift.py,sha256=8fdbdAXTNlp2NDoSqQXm48JGAg9UhxA91M1-NhHkT40,6752
25
25
  fosslight_dependency/package_manager/Unity.py,sha256=n1006GZ6Qrk8wAdO6wla1Q-JD7Evin7REVj-HDeTARc,5142
26
26
  fosslight_dependency/package_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
27
- fosslight_dependency-4.1.13.dist-info/Apache-2.0.txt,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
28
- fosslight_dependency-4.1.13.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
29
- fosslight_dependency-4.1.13.dist-info/LicenseRef-3rd_party_licenses.txt,sha256=EcsFt7aE1rp3OXAdJgmXayfOZdpRdBMcmRnyoqWMCsw,95687
30
- fosslight_dependency-4.1.13.dist-info/METADATA,sha256=xG_h1Ljn_76Wm6_4RXLZeHqQWUCse52LMPYK75aFkGk,5103
31
- fosslight_dependency-4.1.13.dist-info/MIT.txt,sha256=9cx4CbArgByWvkoEZNqpzbpJgA9TUe2D62rMocQpgfs,1082
32
- fosslight_dependency-4.1.13.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
33
- fosslight_dependency-4.1.13.dist-info/entry_points.txt,sha256=e1QZbnCrQvfbwe9L6PxXnkRZMhl-PSo0QyUes0dGjU8,91
34
- fosslight_dependency-4.1.13.dist-info/top_level.txt,sha256=Jc0V7VcVCH0TEM8ksb8dwroTYz4AmRaQnlr3FB71Hcs,21
35
- fosslight_dependency-4.1.13.dist-info/RECORD,,
27
+ fosslight_dependency-4.1.15.dist-info/Apache-2.0.txt,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
28
+ fosslight_dependency-4.1.15.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
29
+ fosslight_dependency-4.1.15.dist-info/LicenseRef-3rd_party_licenses.txt,sha256=EcsFt7aE1rp3OXAdJgmXayfOZdpRdBMcmRnyoqWMCsw,95687
30
+ fosslight_dependency-4.1.15.dist-info/METADATA,sha256=CxzxHgXhk1agjJoDriMPn-aX9Z8ekeKwtf3uL-z8HDU,5103
31
+ fosslight_dependency-4.1.15.dist-info/MIT.txt,sha256=9cx4CbArgByWvkoEZNqpzbpJgA9TUe2D62rMocQpgfs,1082
32
+ fosslight_dependency-4.1.15.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
33
+ fosslight_dependency-4.1.15.dist-info/entry_points.txt,sha256=e1QZbnCrQvfbwe9L6PxXnkRZMhl-PSo0QyUes0dGjU8,91
34
+ fosslight_dependency-4.1.15.dist-info/top_level.txt,sha256=Jc0V7VcVCH0TEM8ksb8dwroTYz4AmRaQnlr3FB71Hcs,21
35
+ fosslight_dependency-4.1.15.dist-info/RECORD,,