Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
license_expression = String(
label='license expression',
help='The license expression for this package typically derived '
'from its declared license or .')
declared_license = String(
label='declared license',
help='The declared license mention, tag or text as found in a '
'package manifest.')
notice_text = String(
label='notice text',
help='A notice text for this package.')
root_path = String(
label='package root path',
help='The path to the root of the package documented in this manifest '
'if any, such as a Maven .pom or a npm package.json parent directory.')
dependencies = List(
item_type=DependentPackage,
label='dependencies',
help='A list of DependentPackage for this package. ')
contains_source_code = TriBoolean(
label='contains source code',
help='Flag set to True if this package contains its own source code, None '
'if this is unknown, False if not.')
source_packages = List(
item_type=String,
class ResourceNotInCache(Exception):
pass
class UnknownResource(Exception):
pass
@attr.s(slots=True)
class Header(object):
"""
Represent a codebase header. Each tool that transforms the codebase
should create a Header and append it to the codebase log_entries list.
"""
tool_name = String(help='Name of the tool used such as scancode-toolkit.')
tool_version = String(default='', help='Tool version used such as v1.2.3.')
options = Mapping(help='Mapping of key/values describing the options used with this tool.')
notice = String(default='', help='Notice text for this tool.')
start_timestamp = String(help='Start timestamp for this header.')
end_timestamp = String(help='End timestamp for this header.')
message = String(help='Message text.')
errors = List(help='List of error messages.')
extra_data = Mapping(help='Mapping of extra key/values for this tool.')
def to_dict(self):
return attr.asdict(self, dict_factory=OrderedDict)
@classmethod
def from_dict(cls, **kwargs):
"""
Return a Header object deserialized from a `kwargs` mapping of
key/values. Unknown attributes are ignored.
release_date = Date(
label='release date',
help='Release date of the package')
parties = List(
item_type=Party,
label='parties',
help='A list of parties such as a person, project or organization.')
keywords = List(
item_type=str,
label='keywords',
help='A list of keywords.')
homepage_url = String(
label='homepage URL',
help='URL to the homepage for this package.')
download_url = String(
label='Download URL',
help='A direct download URL.')
size = Integer(
default=None,
label='download size',
help='size of the package download in bytes')
sha1 = String(
label='SHA1 checksum',
help='SHA1 checksum for this download in hexadecimal')
label='MD5 checksum',
help='MD5 checksum for this download in hexadecimal')
sha256 = String(
label='SHA256 checksum',
help='SHA256 checksum for this download in hexadecimal')
sha512 = String(
label='SHA512 checksum',
help='SHA512 checksum for this download in hexadecimal')
bug_tracking_url = String(
label='bug tracking URL',
help='URL to the issue or bug tracker for this package')
code_view_url = String(
label='code view URL',
help='a URL where the code can be browsed online')
vcs_url = String(
help='a URL to the VCS repository in the SPDX form of: '
'https://github.com/nexb/scancode-toolkit.git@405aaa4b3 '
'See SPDX specification "Package Download Location" '
'at https://spdx.org/spdx-specification-21-web-version#h.49x2ik5 ')
copyright = String(
label='Copyright',
help='Copyright statements for this package. Typically one per line.')
license_expression = String(
label='license expression',
help='The license expression for this package typically derived '
)
@attr.s()
class Party(BaseModel):
"""
A party is a person, project or organization related to a package.
"""
type = String(
validator=choices(PARTY_TYPES),
label='party type',
help='the type of this party: One of: '
+', '.join(p for p in PARTY_TYPES if p))
role = String(
label='party role',
help='A role for this party. Something such as author, '
'maintainer, contributor, owner, packager, distributor, '
'vendor, developer, owner, etc.')
name = String(
label='name',
help='Name of this party.')
email = String(
label='email',
help='Email for this party.')
url = String(
label='url',
help='URL to a primary web page for this party.')
validator=choices(PARTY_TYPES),
label='party type',
help='the type of this party: One of: '
+', '.join(p for p in PARTY_TYPES if p))
role = String(
label='party role',
help='A role for this party. Something such as author, '
'maintainer, contributor, owner, packager, distributor, '
'vendor, developer, owner, etc.')
name = String(
label='name',
help='Name of this party.')
email = String(
label='email',
help='Email for this party.')
url = String(
label='url',
help='URL to a primary web page for this party.')
@attr.s()
class BasePackage(BaseModel):
"""
A base identifiable package object using discrete identifying attributes as
specified here https://github.com/package-url/purl-spec.
"""
# class-level attributes used to recognize a package
pass
@attr.s(slots=True)
class Header(object):
"""
Represent a codebase header. Each tool that transforms the codebase
should create a Header and append it to the codebase log_entries list.
"""
tool_name = String(help='Name of the tool used such as scancode-toolkit.')
tool_version = String(default='', help='Tool version used such as v1.2.3.')
options = Mapping(help='Mapping of key/values describing the options used with this tool.')
notice = String(default='', help='Notice text for this tool.')
start_timestamp = String(help='Start timestamp for this header.')
end_timestamp = String(help='End timestamp for this header.')
message = String(help='Message text.')
errors = List(help='List of error messages.')
extra_data = Mapping(help='Mapping of extra key/values for this tool.')
def to_dict(self):
return attr.asdict(self, dict_factory=OrderedDict)
@classmethod
def from_dict(cls, **kwargs):
"""
Return a Header object deserialized from a `kwargs` mapping of
key/values. Unknown attributes are ignored.
"""
known_attributes = set([
'tool_name',
'tool_version',
'options',
class ResourceNotInCache(Exception):
pass
class UnknownResource(Exception):
pass
@attr.s(slots=True)
class Header(object):
"""
Represent a codebase header. Each tool that transforms the codebase
should create a Header and append it to the codebase log_entries list.
"""
tool_name = String(help='Name of the tool used such as scancode-toolkit.')
tool_version = String(default='', help='Tool version used such as v1.2.3.')
options = Mapping(help='Mapping of key/values describing the options used with this tool.')
notice = String(default='', help='Notice text for this tool.')
start_timestamp = String(help='Start timestamp for this header.')
end_timestamp = String(help='End timestamp for this header.')
message = String(help='Message text.')
errors = List(help='List of error messages.')
extra_data = Mapping(help='Mapping of extra key/values for this tool.')
def to_dict(self):
return attr.asdict(self, dict_factory=OrderedDict)
@classmethod
def from_dict(cls, **kwargs):
"""
Return a Header object deserialized from a `kwargs` mapping of
parties = List(
item_type=Party,
label='parties',
help='A list of parties such as a person, project or organization.')
keywords = List(
item_type=str,
label='keywords',
help='A list of keywords.')
homepage_url = String(
label='homepage URL',
help='URL to the homepage for this package.')
download_url = String(
label='Download URL',
help='A direct download URL.')
size = Integer(
default=None,
label='download size',
help='size of the package download in bytes')
sha1 = String(
label='SHA1 checksum',
help='SHA1 checksum for this download in hexadecimal')
md5 = String(
label='MD5 checksum',
help='MD5 checksum for this download in hexadecimal')
help='A list of keywords.')
homepage_url = String(
label='homepage URL',
help='URL to the homepage for this package.')
download_url = String(
label='Download URL',
help='A direct download URL.')
size = Integer(
default=None,
label='download size',
help='size of the package download in bytes')
sha1 = String(
label='SHA1 checksum',
help='SHA1 checksum for this download in hexadecimal')
md5 = String(
label='MD5 checksum',
help='MD5 checksum for this download in hexadecimal')
sha256 = String(
label='SHA256 checksum',
help='SHA256 checksum for this download in hexadecimal')
sha512 = String(
label='SHA512 checksum',
help='SHA512 checksum for this download in hexadecimal')
bug_tracking_url = String(