spdx_tools.spdx3.model.software.software_purpose

 1# SPDX-FileCopyrightText: 2023 spdx contributors
 2#
 3# SPDX-License-Identifier: Apache-2.0
 4from enum import Enum, auto
 5
 6
 7class SoftwarePurpose(Enum):
 8    APPLICATION = auto()
 9    ARCHIVE = auto()
10    BOM = auto()
11    CONFIGURATION = auto()
12    CONTAINER = auto()
13    DATA = auto()
14    DEVICE = auto()
15    DOCUMENTATION = auto()
16    EXECUTABLE = auto()
17    FILE = auto()
18    FIRMWARE = auto()
19    FRAMEWORK = auto()
20    INSTALL = auto()
21    LIBRARY = auto()
22    MODEL = auto()
23    MODULE = auto()
24    OPERATING_SYSTEM = auto()
25    OTHER = auto()
26    PATCH = auto()
27    SOURCE = auto()
28    TEST = auto()
class SoftwarePurpose(enum.Enum):
 8class SoftwarePurpose(Enum):
 9    APPLICATION = auto()
10    ARCHIVE = auto()
11    BOM = auto()
12    CONFIGURATION = auto()
13    CONTAINER = auto()
14    DATA = auto()
15    DEVICE = auto()
16    DOCUMENTATION = auto()
17    EXECUTABLE = auto()
18    FILE = auto()
19    FIRMWARE = auto()
20    FRAMEWORK = auto()
21    INSTALL = auto()
22    LIBRARY = auto()
23    MODEL = auto()
24    MODULE = auto()
25    OPERATING_SYSTEM = auto()
26    OTHER = auto()
27    PATCH = auto()
28    SOURCE = auto()
29    TEST = 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.

APPLICATION = <SoftwarePurpose.APPLICATION: 1>
ARCHIVE = <SoftwarePurpose.ARCHIVE: 2>
BOM = <SoftwarePurpose.BOM: 3>
CONFIGURATION = <SoftwarePurpose.CONFIGURATION: 4>
CONTAINER = <SoftwarePurpose.CONTAINER: 5>
DATA = <SoftwarePurpose.DATA: 6>
DEVICE = <SoftwarePurpose.DEVICE: 7>
DOCUMENTATION = <SoftwarePurpose.DOCUMENTATION: 8>
EXECUTABLE = <SoftwarePurpose.EXECUTABLE: 9>
FILE = <SoftwarePurpose.FILE: 10>
FIRMWARE = <SoftwarePurpose.FIRMWARE: 11>
FRAMEWORK = <SoftwarePurpose.FRAMEWORK: 12>
INSTALL = <SoftwarePurpose.INSTALL: 13>
LIBRARY = <SoftwarePurpose.LIBRARY: 14>
MODEL = <SoftwarePurpose.MODEL: 15>
MODULE = <SoftwarePurpose.MODULE: 16>
OPERATING_SYSTEM = <SoftwarePurpose.OPERATING_SYSTEM: 17>
OTHER = <SoftwarePurpose.OTHER: 18>
PATCH = <SoftwarePurpose.PATCH: 19>
SOURCE = <SoftwarePurpose.SOURCE: 20>
TEST = <SoftwarePurpose.TEST: 21>
Inherited Members
enum.Enum
name
value