fosslight-util 2.1.17__tar.gz → 2.1.18__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.17 → fosslight_util-2.1.18}/PKG-INFO +1 -1
  2. {fosslight_util-2.1.17 → fosslight_util-2.1.18}/setup.py +1 -1
  3. {fosslight_util-2.1.17 → fosslight_util-2.1.18}/src/fosslight_util/_get_downloadable_url.py +30 -1
  4. {fosslight_util-2.1.17 → fosslight_util-2.1.18}/src/fosslight_util/constant.py +3 -1
  5. {fosslight_util-2.1.17 → fosslight_util-2.1.18}/src/fosslight_util/download.py +9 -2
  6. {fosslight_util-2.1.17 → fosslight_util-2.1.18}/src/fosslight_util.egg-info/PKG-INFO +1 -1
  7. {fosslight_util-2.1.17 → fosslight_util-2.1.18}/LICENSE +0 -0
  8. {fosslight_util-2.1.17 → fosslight_util-2.1.18}/MANIFEST.in +0 -0
  9. {fosslight_util-2.1.17 → fosslight_util-2.1.18}/README.md +0 -0
  10. {fosslight_util-2.1.17 → fosslight_util-2.1.18}/requirements.txt +0 -0
  11. {fosslight_util-2.1.17 → fosslight_util-2.1.18}/setup.cfg +0 -0
  12. {fosslight_util-2.1.17 → fosslight_util-2.1.18}/src/fosslight_util/__init__.py +0 -0
  13. {fosslight_util-2.1.17 → fosslight_util-2.1.18}/src/fosslight_util/compare_yaml.py +0 -0
  14. {fosslight_util-2.1.17 → fosslight_util-2.1.18}/src/fosslight_util/correct.py +0 -0
  15. {fosslight_util-2.1.17 → fosslight_util-2.1.18}/src/fosslight_util/cover.py +0 -0
  16. {fosslight_util-2.1.17 → fosslight_util-2.1.18}/src/fosslight_util/exclude.py +0 -0
  17. {fosslight_util-2.1.17 → fosslight_util-2.1.18}/src/fosslight_util/help.py +0 -0
  18. {fosslight_util-2.1.17 → fosslight_util-2.1.18}/src/fosslight_util/oss_item.py +0 -0
  19. {fosslight_util-2.1.17 → fosslight_util-2.1.18}/src/fosslight_util/output_format.py +0 -0
  20. {fosslight_util-2.1.17 → fosslight_util-2.1.18}/src/fosslight_util/parsing_yaml.py +0 -0
  21. {fosslight_util-2.1.17 → fosslight_util-2.1.18}/src/fosslight_util/read_excel.py +0 -0
  22. {fosslight_util-2.1.17 → fosslight_util-2.1.18}/src/fosslight_util/resources/frequentLicenselist.json +0 -0
  23. {fosslight_util-2.1.17 → fosslight_util-2.1.18}/src/fosslight_util/resources/frequent_license_nick_list.json +0 -0
  24. {fosslight_util-2.1.17 → fosslight_util-2.1.18}/src/fosslight_util/resources/licenses.json +0 -0
  25. {fosslight_util-2.1.17 → fosslight_util-2.1.18}/src/fosslight_util/set_log.py +0 -0
  26. {fosslight_util-2.1.17 → fosslight_util-2.1.18}/src/fosslight_util/spdx_licenses.py +0 -0
  27. {fosslight_util-2.1.17 → fosslight_util-2.1.18}/src/fosslight_util/timer_thread.py +0 -0
  28. {fosslight_util-2.1.17 → fosslight_util-2.1.18}/src/fosslight_util/write_cyclonedx.py +0 -0
  29. {fosslight_util-2.1.17 → fosslight_util-2.1.18}/src/fosslight_util/write_excel.py +0 -0
  30. {fosslight_util-2.1.17 → fosslight_util-2.1.18}/src/fosslight_util/write_opossum.py +0 -0
  31. {fosslight_util-2.1.17 → fosslight_util-2.1.18}/src/fosslight_util/write_scancodejson.py +0 -0
  32. {fosslight_util-2.1.17 → fosslight_util-2.1.18}/src/fosslight_util/write_spdx.py +0 -0
  33. {fosslight_util-2.1.17 → fosslight_util-2.1.18}/src/fosslight_util/write_txt.py +0 -0
  34. {fosslight_util-2.1.17 → fosslight_util-2.1.18}/src/fosslight_util/write_yaml.py +0 -0
  35. {fosslight_util-2.1.17 → fosslight_util-2.1.18}/src/fosslight_util.egg-info/SOURCES.txt +0 -0
  36. {fosslight_util-2.1.17 → fosslight_util-2.1.18}/src/fosslight_util.egg-info/dependency_links.txt +0 -0
  37. {fosslight_util-2.1.17 → fosslight_util-2.1.18}/src/fosslight_util.egg-info/entry_points.txt +0 -0
  38. {fosslight_util-2.1.17 → fosslight_util-2.1.18}/src/fosslight_util.egg-info/requires.txt +0 -0
  39. {fosslight_util-2.1.17 → fosslight_util-2.1.18}/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.17
3
+ Version: 2.1.18
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.17',
17
+ version='2.1.18',
18
18
  package_dir={"": "src"},
19
19
  packages=find_packages(where='src'),
20
20
  description='FOSSLight Util',
@@ -47,6 +47,9 @@ def extract_name_version_from_link(link):
47
47
  origin_name = origin_name[:-1]
48
48
  oss_name = f"go:{origin_name}"
49
49
  oss_version = match.group(2)
50
+ elif key == "cargo":
51
+ oss_name = f"cargo:{origin_name}"
52
+ oss_version = match.group(2)
50
53
  except Exception as ex:
51
54
  logger.info(f"extract_name_version_from_link {key}:{ex}")
52
55
  if oss_name and (not oss_version):
@@ -110,8 +113,34 @@ def get_downloadable_url(link):
110
113
  ret, result_link = get_download_location_for_pub(new_link)
111
114
  elif pkg_type == "go":
112
115
  ret, result_link = get_download_location_for_go(new_link)
116
+ elif pkg_type == "cargo":
117
+ ret, result_link = get_download_location_for_cargo(new_link)
118
+ return ret, result_link, oss_name, oss_version, pkg_type
119
+
120
+
121
+ def get_download_location_for_cargo(link):
122
+ # get the url for downloading source file: https://crates.io/api/v1/crates/<name>/<version>/download
123
+ ret = False
124
+ new_link = ''
125
+ host = 'https://crates.io/api/v1/crates'
126
+
127
+ try:
128
+ dn_loc_re = re.findall(r'crates.io\/crates\/([^\/]+)\/?([^\/]*)', link)
129
+ if dn_loc_re:
130
+ oss_name = dn_loc_re[0][0]
131
+ oss_version = dn_loc_re[0][1]
113
132
 
114
- return ret, result_link, oss_name, oss_version
133
+ new_link = f'{host}/{oss_name}/{oss_version}/download'
134
+ res = urlopen(new_link)
135
+ if res.getcode() == 200:
136
+ ret = True
137
+ else:
138
+ logger.warning(f'Cannot find the valid link for cargo (url:{new_link}')
139
+ except Exception as error:
140
+ ret = False
141
+ logger.warning(f'Cannot find the link for cargo (url:{link}({(new_link)})): {error}')
142
+
143
+ return ret, new_link
115
144
 
116
145
 
117
146
  def get_download_location_for_go(link):
@@ -35,6 +35,7 @@ SHEET_NAME_FOR_SCANNER = {
35
35
  # pub: https://pub.dev/packages/(package)/versions/(version)
36
36
  # Cocoapods : https://cocoapods.org/(package)
37
37
  # go : https://pkg.go.dev/(package_name_with_slash)@(version)
38
+ # cargo : https://crates.io/crates/(crate_name)/(version)
38
39
  PKG_PATTERN = {
39
40
  "pypi": r'https?:\/\/pypi\.org\/project\/([^\/]+)[\/]?([^\/]*)',
40
41
  "pypi2": r'https?:\/\/files\.pythonhosted\.org\/packages\/source\/[\w]\/([^\/]+)\/[\S]+-([^\-]+)\.tar\.gz',
@@ -43,5 +44,6 @@ PKG_PATTERN = {
43
44
  "npm2": r'https?:\/\/www\.npmjs\.com\/package\/(\@[^\/]+\/[^\/]+)(?:\/v\/)?([^\/]*)',
44
45
  "pub": r'https?:\/\/pub\.dev\/packages\/([^\/]+)(?:\/versions\/)?([^\/]*)',
45
46
  "cocoapods": r'https?:\/\/cocoapods\.org\/pods\/([^\/]+)',
46
- "go": r'https?:\/\/pkg.go.dev\/([^\@]+)\@?v?([^\/]*)'
47
+ "go": r'https?:\/\/pkg.go.dev\/([^\@]+)\@?v?([^\/]*)',
48
+ "cargo": r'https?:\/\/crates\.io\/crates\/([^\/]+)\/?([^\/]*)',
47
49
  }
@@ -314,7 +314,7 @@ def download_wget(link, target_dir, compressed_only):
314
314
 
315
315
  Path(target_dir).mkdir(parents=True, exist_ok=True)
316
316
 
317
- ret, new_link, oss_name, oss_version = get_downloadable_url(link)
317
+ ret, new_link, oss_name, oss_version, pkg_type = get_downloadable_url(link)
318
318
  if ret and new_link:
319
319
  link = new_link
320
320
 
@@ -323,6 +323,9 @@ def download_wget(link, target_dir, compressed_only):
323
323
  if link.endswith(ext):
324
324
  success = True
325
325
  break
326
+ if not success:
327
+ if pkg_type == 'cargo':
328
+ success = True
326
329
  else:
327
330
  success = True
328
331
 
@@ -330,7 +333,11 @@ def download_wget(link, target_dir, compressed_only):
330
333
  raise Exception('Not supported compression type (link:{0})'.format(link))
331
334
 
332
335
  logger.info(f"wget: {link}")
333
- downloaded_file = wget.download(link, target_dir)
336
+ if pkg_type == 'cargo':
337
+ outfile = os.path.join(target_dir, f'{oss_name}.tar.gz')
338
+ downloaded_file = wget.download(link, out=outfile)
339
+ else:
340
+ downloaded_file = wget.download(link, target_dir)
334
341
  if platform.system() != "Windows":
335
342
  signal.alarm(0)
336
343
  else:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fosslight-util
3
- Version: 2.1.17
3
+ Version: 2.1.18
4
4
  Summary: FOSSLight Util
5
5
  Home-page: https://github.com/fosslight/fosslight_util
6
6
  Author: LG Electronics
File without changes