spdx_tools.spdx3.model.ai.ai_package

  1# SPDX-FileCopyrightText: 2023 spdx contributors
  2#
  3# SPDX-License-Identifier: Apache-2.0
  4from dataclasses import field
  5from datetime import datetime
  6from enum import Enum, auto
  7
  8from beartype.typing import Dict, List, Optional
  9
 10from spdx_tools.common.typing.dataclass_with_properties import dataclass_with_properties
 11from spdx_tools.common.typing.type_checks import check_types_and_set_values
 12from spdx_tools.spdx3.model import CreationInfo, ExternalIdentifier, ExternalReference, IntegrityMethod
 13from spdx_tools.spdx3.model.licensing import LicenseField
 14from spdx_tools.spdx3.model.software import Package, SoftwarePurpose
 15
 16
 17class SafetyRiskAssessmentType(Enum):
 18    SERIOUS = auto()
 19    HIGH = auto()
 20    MEDIUM = auto()
 21    LOW = auto()
 22
 23
 24@dataclass_with_properties
 25class AIPackage(Package):
 26    energy_consumption: Optional[str] = None
 27    standard_compliance: List[str] = field(default_factory=list)
 28    limitation: Optional[str] = None
 29    type_of_model: List[str] = field(default_factory=list)
 30    information_about_training: Optional[str] = None
 31    information_about_application: Optional[str] = None
 32    hyperparameter: Dict[str, Optional[str]] = field(default_factory=dict)
 33    model_data_preprocessing: List[str] = field(default_factory=list)
 34    model_explainability: List[str] = field(default_factory=list)
 35    sensitive_personal_information: Optional[bool] = None
 36    metric_decision_threshold: Dict[str, Optional[str]] = field(default_factory=dict)
 37    metric: Dict[str, Optional[str]] = field(default_factory=dict)
 38    domain: List[str] = field(default_factory=list)
 39    autonomy_type: Optional[bool] = None
 40    safety_risk_assessment: Optional[SafetyRiskAssessmentType] = None
 41
 42    def __init__(
 43        self,
 44        spdx_id: str,
 45        name: str,
 46        supplied_by: List[str],
 47        download_location: str,
 48        package_version: str,
 49        primary_purpose: SoftwarePurpose,
 50        release_time: datetime,
 51        creation_info: Optional[CreationInfo] = None,
 52        summary: Optional[str] = None,
 53        description: Optional[str] = None,
 54        comment: Optional[str] = None,
 55        verified_using: List[IntegrityMethod] = None,
 56        external_reference: List[ExternalReference] = None,
 57        external_identifier: List[ExternalIdentifier] = None,
 58        extension: Optional[str] = None,
 59        originated_by: List[str] = None,
 60        built_time: Optional[datetime] = None,
 61        valid_until_time: Optional[datetime] = None,
 62        standard: List[str] = None,
 63        content_identifier: Optional[str] = None,
 64        additional_purpose: List[SoftwarePurpose] = None,
 65        concluded_license: Optional[LicenseField] = None,
 66        declared_license: Optional[LicenseField] = None,
 67        copyright_text: Optional[str] = None,
 68        attribution_text: Optional[str] = None,
 69        package_url: Optional[str] = None,
 70        homepage: Optional[str] = None,
 71        source_info: Optional[str] = None,
 72        energy_consumption: Optional[str] = None,
 73        standard_compliance: List[str] = None,
 74        limitation: Optional[str] = None,
 75        type_of_model: List[str] = None,
 76        information_about_training: Optional[str] = None,
 77        information_about_application: Optional[str] = None,
 78        hyperparameter: Dict[str, Optional[str]] = None,
 79        model_data_preprocessing: List[str] = None,
 80        model_explainability: List[str] = None,
 81        sensitive_personal_information: Optional[bool] = None,
 82        metric_decision_threshold: Dict[str, Optional[str]] = None,
 83        metric: Dict[str, Optional[str]] = None,
 84        domain: List[str] = None,
 85        autonomy_type: Optional[bool] = None,
 86        safety_risk_assessment: Optional[SafetyRiskAssessmentType] = None,
 87    ):
 88        verified_using = [] if verified_using is None else verified_using
 89        external_reference = [] if external_reference is None else external_reference
 90        external_identifier = [] if external_identifier is None else external_identifier
 91        originated_by = [] if originated_by is None else originated_by
 92        additional_purpose = [] if additional_purpose is None else additional_purpose
 93        standard = [] if standard is None else standard
 94        standard_compliance = [] if standard_compliance is None else standard_compliance
 95        type_of_model = [] if type_of_model is None else type_of_model
 96        hyperparameter = {} if hyperparameter is None else hyperparameter
 97        model_data_preprocessing = [] if model_data_preprocessing is None else model_data_preprocessing
 98        model_explainability = [] if model_explainability is None else model_explainability
 99        metric_decision_threshold = {} if metric_decision_threshold is None else metric_decision_threshold
100        metric = {} if metric is None else metric
101        domain = [] if domain is None else domain
102        check_types_and_set_values(self, locals())
class SafetyRiskAssessmentType(enum.Enum):
18class SafetyRiskAssessmentType(Enum):
19    SERIOUS = auto()
20    HIGH = auto()
21    MEDIUM = auto()
22    LOW = auto()
Inherited Members
enum.Enum
name
value
@dataclass_with_properties
class AIPackage(spdx_tools.spdx3.model.software.package.Package):
 25@dataclass_with_properties
 26class AIPackage(Package):
 27    energy_consumption: Optional[str] = None
 28    standard_compliance: List[str] = field(default_factory=list)
 29    limitation: Optional[str] = None
 30    type_of_model: List[str] = field(default_factory=list)
 31    information_about_training: Optional[str] = None
 32    information_about_application: Optional[str] = None
 33    hyperparameter: Dict[str, Optional[str]] = field(default_factory=dict)
 34    model_data_preprocessing: List[str] = field(default_factory=list)
 35    model_explainability: List[str] = field(default_factory=list)
 36    sensitive_personal_information: Optional[bool] = None
 37    metric_decision_threshold: Dict[str, Optional[str]] = field(default_factory=dict)
 38    metric: Dict[str, Optional[str]] = field(default_factory=dict)
 39    domain: List[str] = field(default_factory=list)
 40    autonomy_type: Optional[bool] = None
 41    safety_risk_assessment: Optional[SafetyRiskAssessmentType] = None
 42
 43    def __init__(
 44        self,
 45        spdx_id: str,
 46        name: str,
 47        supplied_by: List[str],
 48        download_location: str,
 49        package_version: str,
 50        primary_purpose: SoftwarePurpose,
 51        release_time: datetime,
 52        creation_info: Optional[CreationInfo] = None,
 53        summary: Optional[str] = None,
 54        description: Optional[str] = None,
 55        comment: Optional[str] = None,
 56        verified_using: List[IntegrityMethod] = None,
 57        external_reference: List[ExternalReference] = None,
 58        external_identifier: List[ExternalIdentifier] = None,
 59        extension: Optional[str] = None,
 60        originated_by: List[str] = None,
 61        built_time: Optional[datetime] = None,
 62        valid_until_time: Optional[datetime] = None,
 63        standard: List[str] = None,
 64        content_identifier: Optional[str] = None,
 65        additional_purpose: List[SoftwarePurpose] = None,
 66        concluded_license: Optional[LicenseField] = None,
 67        declared_license: Optional[LicenseField] = None,
 68        copyright_text: Optional[str] = None,
 69        attribution_text: Optional[str] = None,
 70        package_url: Optional[str] = None,
 71        homepage: Optional[str] = None,
 72        source_info: Optional[str] = None,
 73        energy_consumption: Optional[str] = None,
 74        standard_compliance: List[str] = None,
 75        limitation: Optional[str] = None,
 76        type_of_model: List[str] = None,
 77        information_about_training: Optional[str] = None,
 78        information_about_application: Optional[str] = None,
 79        hyperparameter: Dict[str, Optional[str]] = None,
 80        model_data_preprocessing: List[str] = None,
 81        model_explainability: List[str] = None,
 82        sensitive_personal_information: Optional[bool] = None,
 83        metric_decision_threshold: Dict[str, Optional[str]] = None,
 84        metric: Dict[str, Optional[str]] = None,
 85        domain: List[str] = None,
 86        autonomy_type: Optional[bool] = None,
 87        safety_risk_assessment: Optional[SafetyRiskAssessmentType] = None,
 88    ):
 89        verified_using = [] if verified_using is None else verified_using
 90        external_reference = [] if external_reference is None else external_reference
 91        external_identifier = [] if external_identifier is None else external_identifier
 92        originated_by = [] if originated_by is None else originated_by
 93        additional_purpose = [] if additional_purpose is None else additional_purpose
 94        standard = [] if standard is None else standard
 95        standard_compliance = [] if standard_compliance is None else standard_compliance
 96        type_of_model = [] if type_of_model is None else type_of_model
 97        hyperparameter = {} if hyperparameter is None else hyperparameter
 98        model_data_preprocessing = [] if model_data_preprocessing is None else model_data_preprocessing
 99        model_explainability = [] if model_explainability is None else model_explainability
100        metric_decision_threshold = {} if metric_decision_threshold is None else metric_decision_threshold
101        metric = {} if metric is None else metric
102        domain = [] if domain is None else domain
103        check_types_and_set_values(self, locals())
AIPackage( spdx_id: str, name: str, supplied_by: list[str], download_location: str, package_version: str, primary_purpose: spdx_tools.spdx3.model.software.software_purpose.SoftwarePurpose, release_time: datetime.datetime, creation_info: Optional[spdx_tools.spdx3.model.creation_info.CreationInfo] = None, summary: Optional[str] = None, description: Optional[str] = None, comment: Optional[str] = None, verified_using: list[spdx_tools.spdx3.model.integrity_method.IntegrityMethod] = None, external_reference: list[spdx_tools.spdx3.model.external_reference.ExternalReference] = None, external_identifier: list[spdx_tools.spdx3.model.external_identifier.ExternalIdentifier] = None, extension: Optional[str] = None, originated_by: list[str] = None, built_time: Optional[datetime.datetime] = None, valid_until_time: Optional[datetime.datetime] = None, standard: list[str] = None, content_identifier: Optional[str] = None, additional_purpose: list[spdx_tools.spdx3.model.software.software_purpose.SoftwarePurpose] = None, concluded_license: Optional[spdx_tools.spdx3.model.licensing.license_field.LicenseField] = None, declared_license: Optional[spdx_tools.spdx3.model.licensing.license_field.LicenseField] = None, copyright_text: Optional[str] = None, attribution_text: Optional[str] = None, package_url: Optional[str] = None, homepage: Optional[str] = None, source_info: Optional[str] = None, energy_consumption: Optional[str] = None, standard_compliance: list[str] = None, limitation: Optional[str] = None, type_of_model: list[str] = None, information_about_training: Optional[str] = None, information_about_application: Optional[str] = None, hyperparameter: dict[str, typing.Optional[str]] = None, model_data_preprocessing: list[str] = None, model_explainability: list[str] = None, sensitive_personal_information: Optional[bool] = None, metric_decision_threshold: dict[str, typing.Optional[str]] = None, metric: dict[str, typing.Optional[str]] = None, domain: list[str] = None, autonomy_type: Optional[bool] = None, safety_risk_assessment: Optional[SafetyRiskAssessmentType] = None)
 43    def __init__(
 44        self,
 45        spdx_id: str,
 46        name: str,
 47        supplied_by: List[str],
 48        download_location: str,
 49        package_version: str,
 50        primary_purpose: SoftwarePurpose,
 51        release_time: datetime,
 52        creation_info: Optional[CreationInfo] = None,
 53        summary: Optional[str] = None,
 54        description: Optional[str] = None,
 55        comment: Optional[str] = None,
 56        verified_using: List[IntegrityMethod] = None,
 57        external_reference: List[ExternalReference] = None,
 58        external_identifier: List[ExternalIdentifier] = None,
 59        extension: Optional[str] = None,
 60        originated_by: List[str] = None,
 61        built_time: Optional[datetime] = None,
 62        valid_until_time: Optional[datetime] = None,
 63        standard: List[str] = None,
 64        content_identifier: Optional[str] = None,
 65        additional_purpose: List[SoftwarePurpose] = None,
 66        concluded_license: Optional[LicenseField] = None,
 67        declared_license: Optional[LicenseField] = None,
 68        copyright_text: Optional[str] = None,
 69        attribution_text: Optional[str] = None,
 70        package_url: Optional[str] = None,
 71        homepage: Optional[str] = None,
 72        source_info: Optional[str] = None,
 73        energy_consumption: Optional[str] = None,
 74        standard_compliance: List[str] = None,
 75        limitation: Optional[str] = None,
 76        type_of_model: List[str] = None,
 77        information_about_training: Optional[str] = None,
 78        information_about_application: Optional[str] = None,
 79        hyperparameter: Dict[str, Optional[str]] = None,
 80        model_data_preprocessing: List[str] = None,
 81        model_explainability: List[str] = None,
 82        sensitive_personal_information: Optional[bool] = None,
 83        metric_decision_threshold: Dict[str, Optional[str]] = None,
 84        metric: Dict[str, Optional[str]] = None,
 85        domain: List[str] = None,
 86        autonomy_type: Optional[bool] = None,
 87        safety_risk_assessment: Optional[SafetyRiskAssessmentType] = None,
 88    ):
 89        verified_using = [] if verified_using is None else verified_using
 90        external_reference = [] if external_reference is None else external_reference
 91        external_identifier = [] if external_identifier is None else external_identifier
 92        originated_by = [] if originated_by is None else originated_by
 93        additional_purpose = [] if additional_purpose is None else additional_purpose
 94        standard = [] if standard is None else standard
 95        standard_compliance = [] if standard_compliance is None else standard_compliance
 96        type_of_model = [] if type_of_model is None else type_of_model
 97        hyperparameter = {} if hyperparameter is None else hyperparameter
 98        model_data_preprocessing = [] if model_data_preprocessing is None else model_data_preprocessing
 99        model_explainability = [] if model_explainability is None else model_explainability
100        metric_decision_threshold = {} if metric_decision_threshold is None else metric_decision_threshold
101        metric = {} if metric is None else metric
102        domain = [] if domain is None else domain
103        check_types_and_set_values(self, locals())
energy_consumption: Optional[str]
47    def get_field(self) -> field_type:
48        return getattr(self, f"_{field_name}")
standard_compliance: list[str]
47    def get_field(self) -> field_type:
48        return getattr(self, f"_{field_name}")
limitation: Optional[str]
47    def get_field(self) -> field_type:
48        return getattr(self, f"_{field_name}")
type_of_model: list[str]
47    def get_field(self) -> field_type:
48        return getattr(self, f"_{field_name}")
information_about_training: Optional[str]
47    def get_field(self) -> field_type:
48        return getattr(self, f"_{field_name}")
information_about_application: Optional[str]
47    def get_field(self) -> field_type:
48        return getattr(self, f"_{field_name}")
hyperparameter: dict[str, typing.Optional[str]]
47    def get_field(self) -> field_type:
48        return getattr(self, f"_{field_name}")
model_data_preprocessing: list[str]
47    def get_field(self) -> field_type:
48        return getattr(self, f"_{field_name}")
model_explainability: list[str]
47    def get_field(self) -> field_type:
48        return getattr(self, f"_{field_name}")
sensitive_personal_information: Optional[bool]
47    def get_field(self) -> field_type:
48        return getattr(self, f"_{field_name}")
metric_decision_threshold: dict[str, typing.Optional[str]]
47    def get_field(self) -> field_type:
48        return getattr(self, f"_{field_name}")
metric: dict[str, typing.Optional[str]]
47    def get_field(self) -> field_type:
48        return getattr(self, f"_{field_name}")
domain: list[str]
47    def get_field(self) -> field_type:
48        return getattr(self, f"_{field_name}")
autonomy_type: Optional[bool]
47    def get_field(self) -> field_type:
48        return getattr(self, f"_{field_name}")
safety_risk_assessment: Optional[SafetyRiskAssessmentType]
47    def get_field(self) -> field_type:
48        return getattr(self, f"_{field_name}")