mirror of
https://github.com/anchore/syft.git
synced 2025-11-17 08:23:15 +01:00
remove extra fields from the compare script metadata namedtuple
Signed-off-by: Alex Goodman <alex.goodman@anchore.com>
This commit is contained in:
parent
232cd13035
commit
e2593cd6b7
@ -84,7 +84,6 @@ class InlineScan:
|
|||||||
|
|
||||||
metadata[pkg.type][pkg] = utils.package.Metadata(
|
metadata[pkg.type][pkg] = utils.package.Metadata(
|
||||||
version=entry["maven-version"],
|
version=entry["maven-version"],
|
||||||
extra=tuple(),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
return packages, metadata
|
return packages, metadata
|
||||||
@ -98,7 +97,7 @@ class InlineScan:
|
|||||||
type=entry["type"].lower(),
|
type=entry["type"].lower(),
|
||||||
)
|
)
|
||||||
packages.add(pkg)
|
packages.add(pkg)
|
||||||
metadata[pkg.type][pkg] = utils.package.Metadata(version=entry["version"], extra=tuple())
|
metadata[pkg.type][pkg] = utils.package.Metadata(version=entry["version"])
|
||||||
|
|
||||||
return packages, metadata
|
return packages, metadata
|
||||||
|
|
||||||
@ -113,7 +112,7 @@ class InlineScan:
|
|||||||
type=entry["type"].lower(),
|
type=entry["type"].lower(),
|
||||||
)
|
)
|
||||||
packages.add(pkg)
|
packages.add(pkg)
|
||||||
metadata[pkg.type][pkg] = utils.package.Metadata(version=entry["version"], extra=tuple())
|
metadata[pkg.type][pkg] = utils.package.Metadata(version=entry["version"])
|
||||||
|
|
||||||
return packages, metadata
|
return packages, metadata
|
||||||
|
|
||||||
@ -126,7 +125,7 @@ class InlineScan:
|
|||||||
type=entry["type"].lower(),
|
type=entry["type"].lower(),
|
||||||
)
|
)
|
||||||
packages.add(pkg)
|
packages.add(pkg)
|
||||||
metadata[pkg.type][pkg] = utils.package.Metadata(version=entry["version"], extra=tuple())
|
metadata[pkg.type][pkg] = utils.package.Metadata(version=entry["version"])
|
||||||
|
|
||||||
return packages, metadata
|
return packages, metadata
|
||||||
|
|
||||||
@ -138,6 +137,6 @@ class InlineScan:
|
|||||||
name=entry["package"], type=entry["type"].lower()
|
name=entry["package"], type=entry["type"].lower()
|
||||||
)
|
)
|
||||||
packages.add(pkg)
|
packages.add(pkg)
|
||||||
metadata[pkg.type][pkg] = utils.package.Metadata(version=entry["version"], extra=tuple())
|
metadata[pkg.type][pkg] = utils.package.Metadata(version=entry["version"])
|
||||||
|
|
||||||
return packages, metadata
|
return packages, metadata
|
||||||
|
|||||||
@ -3,7 +3,7 @@ import collections
|
|||||||
import dataclasses
|
import dataclasses
|
||||||
from typing import Set, FrozenSet, Tuple, Any, List
|
from typing import Set, FrozenSet, Tuple, Any, List
|
||||||
|
|
||||||
Metadata = collections.namedtuple("Metadata", "version extra")
|
Metadata = collections.namedtuple("Metadata", "version")
|
||||||
Package = collections.namedtuple("Package", "name type")
|
Package = collections.namedtuple("Package", "name type")
|
||||||
Info = collections.namedtuple("Info", "packages metadata")
|
Info = collections.namedtuple("Info", "packages metadata")
|
||||||
|
|
||||||
|
|||||||
@ -4,7 +4,6 @@ import collections
|
|||||||
|
|
||||||
import utils.package
|
import utils.package
|
||||||
import utils.image
|
import utils.image
|
||||||
from utils.traverse import dig
|
|
||||||
|
|
||||||
|
|
||||||
class Syft:
|
class Syft:
|
||||||
@ -29,8 +28,6 @@ class Syft:
|
|||||||
metadata = collections.defaultdict(dict)
|
metadata = collections.defaultdict(dict)
|
||||||
for entry in self._enumerate_section(section="artifacts"):
|
for entry in self._enumerate_section(section="artifacts"):
|
||||||
|
|
||||||
extra = {}
|
|
||||||
|
|
||||||
# normalize to inline
|
# normalize to inline
|
||||||
pkg_type = entry["type"].lower()
|
pkg_type = entry["type"].lower()
|
||||||
if pkg_type in ("wheel", "egg", "python"):
|
if pkg_type in ("wheel", "egg", "python"):
|
||||||
@ -52,7 +49,7 @@ class Syft:
|
|||||||
if "java" in pkg_type:
|
if "java" in pkg_type:
|
||||||
# we need to use the virtual path instead of the name to account for nested dependencies with the same
|
# we need to use the virtual path instead of the name to account for nested dependencies with the same
|
||||||
# package name (but potentially different metadata)
|
# package name (but potentially different metadata)
|
||||||
name = dig(entry, "metadata", "virtualPath")
|
name = entry.get("metadata", {}).get("virtualPath")
|
||||||
|
|
||||||
elif pkg_type == "apkg":
|
elif pkg_type == "apkg":
|
||||||
# inline scan strips off the release from the version, which should be normalized here
|
# inline scan strips off the release from the version, which should be normalized here
|
||||||
@ -66,6 +63,6 @@ class Syft:
|
|||||||
|
|
||||||
packages.add(pkg)
|
packages.add(pkg)
|
||||||
|
|
||||||
metadata[pkg.type][pkg] = utils.package.Metadata(version=version, extra=tuple())
|
metadata[pkg.type][pkg] = utils.package.Metadata(version=version)
|
||||||
|
|
||||||
return utils.package.Info(packages=frozenset(packages), metadata=metadata)
|
return utils.package.Info(packages=frozenset(packages), metadata=metadata)
|
||||||
|
|||||||
@ -1,21 +0,0 @@
|
|||||||
|
|
||||||
def dig(target, *keys, **kwargs):
|
|
||||||
"""
|
|
||||||
Traverse a nested set of dictionaries, tuples, or lists similar to ruby's dig function.
|
|
||||||
"""
|
|
||||||
end_of_chain = target
|
|
||||||
for key in keys:
|
|
||||||
if isinstance(end_of_chain, dict) and key in end_of_chain:
|
|
||||||
end_of_chain = end_of_chain[key]
|
|
||||||
elif isinstance(end_of_chain, (list, tuple)) and isinstance(key, int):
|
|
||||||
end_of_chain = end_of_chain[key]
|
|
||||||
else:
|
|
||||||
if 'fail' in kwargs and kwargs['fail'] is True:
|
|
||||||
if isinstance(end_of_chain, dict):
|
|
||||||
raise KeyError
|
|
||||||
else:
|
|
||||||
raise IndexError
|
|
||||||
else:
|
|
||||||
return None
|
|
||||||
|
|
||||||
return end_of_chain
|
|
||||||
Loading…
x
Reference in New Issue
Block a user