spdx_tools.spdx.validation.validation_message

 1# SPDX-FileCopyrightText: 2022 spdx contributors
 2#
 3# SPDX-License-Identifier: Apache-2.0
 4
 5from dataclasses import dataclass
 6from enum import Enum, auto
 7
 8from beartype.typing import Any, Optional
 9
10
11class SpdxElementType(Enum):
12    LICENSE_EXPRESSION = auto()
13    PACKAGE_VERIFICATION_CODE = auto()
14    EXTERNAL_DOCUMENT_REF = auto()
15    CHECKSUM = auto()
16    EXTERNAL_PACKAGE_REF = auto()
17    ACTOR = auto()
18    DOCUMENT = auto()
19    CREATION_INFO = auto()
20    PACKAGE = auto()
21    FILE = auto()
22    SNIPPET = auto()
23    ANNOTATION = auto()
24    RELATIONSHIP = auto()
25    EXTRACTED_LICENSING_INFO = auto()
26
27
28@dataclass(frozen=True)
29class ValidationContext:
30    spdx_id: Optional[str] = None  # not every type has an id, or it might be missing
31    parent_id: Optional[str] = None  # if a parent is known and has a valid id
32    element_type: Optional[SpdxElementType] = None
33    full_element: Any = None  # can be any class of the data model
34
35
36@dataclass(frozen=True)
37class ValidationMessage:
38    validation_message: str
39    context: ValidationContext
class SpdxElementType(enum.Enum):
12class SpdxElementType(Enum):
13    LICENSE_EXPRESSION = auto()
14    PACKAGE_VERIFICATION_CODE = auto()
15    EXTERNAL_DOCUMENT_REF = auto()
16    CHECKSUM = auto()
17    EXTERNAL_PACKAGE_REF = auto()
18    ACTOR = auto()
19    DOCUMENT = auto()
20    CREATION_INFO = auto()
21    PACKAGE = auto()
22    FILE = auto()
23    SNIPPET = auto()
24    ANNOTATION = auto()
25    RELATIONSHIP = auto()
26    EXTRACTED_LICENSING_INFO = auto()

Create a collection of name/value pairs.

Example enumeration:

>>> class Color(Enum):
...     RED = 1
...     BLUE = 2
...     GREEN = 3

Access them by:

  • attribute access::
>>> Color.RED
<Color.RED: 1>
  • value lookup:
>>> Color(1)
<Color.RED: 1>
  • name lookup:
>>> Color['RED']
<Color.RED: 1>

Enumerations can be iterated over, and know how many members they have:

>>> len(Color)
3
>>> list(Color)
[<Color.RED: 1>, <Color.BLUE: 2>, <Color.GREEN: 3>]

Methods can be added to enumerations, and members can have their own attributes -- see the documentation for details.

LICENSE_EXPRESSION = <SpdxElementType.LICENSE_EXPRESSION: 1>
PACKAGE_VERIFICATION_CODE = <SpdxElementType.PACKAGE_VERIFICATION_CODE: 2>
EXTERNAL_DOCUMENT_REF = <SpdxElementType.EXTERNAL_DOCUMENT_REF: 3>
CHECKSUM = <SpdxElementType.CHECKSUM: 4>
EXTERNAL_PACKAGE_REF = <SpdxElementType.EXTERNAL_PACKAGE_REF: 5>
ACTOR = <SpdxElementType.ACTOR: 6>
DOCUMENT = <SpdxElementType.DOCUMENT: 7>
CREATION_INFO = <SpdxElementType.CREATION_INFO: 8>
PACKAGE = <SpdxElementType.PACKAGE: 9>
FILE = <SpdxElementType.FILE: 10>
SNIPPET = <SpdxElementType.SNIPPET: 11>
ANNOTATION = <SpdxElementType.ANNOTATION: 12>
RELATIONSHIP = <SpdxElementType.RELATIONSHIP: 13>
EXTRACTED_LICENSING_INFO = <SpdxElementType.EXTRACTED_LICENSING_INFO: 14>
Inherited Members
enum.Enum
name
value
@dataclass(frozen=True)
class ValidationContext:
29@dataclass(frozen=True)
30class ValidationContext:
31    spdx_id: Optional[str] = None  # not every type has an id, or it might be missing
32    parent_id: Optional[str] = None  # if a parent is known and has a valid id
33    element_type: Optional[SpdxElementType] = None
34    full_element: Any = None  # can be any class of the data model
ValidationContext( spdx_id: Optional[str] = None, parent_id: Optional[str] = None, element_type: Optional[SpdxElementType] = None, full_element: Any = None)
spdx_id: Optional[str] = None
parent_id: Optional[str] = None
element_type: Optional[SpdxElementType] = None
full_element: Any = None
@dataclass(frozen=True)
class ValidationMessage:
37@dataclass(frozen=True)
38class ValidationMessage:
39    validation_message: str
40    context: ValidationContext
ValidationMessage( validation_message: str, context: ValidationContext)
validation_message: str