From ab1d5a3a3caa04bcbd0b7af644a3305a85ef0b77 Mon Sep 17 00:00:00 2001 From: Jan Kowalleck Date: Thu, 4 Jul 2024 11:37:14 +0200 Subject: [PATCH] style: model args one per line Signed-off-by: Jan Kowalleck --- cyclonedx/model/__init__.py | 73 +++++++++++++++----- cyclonedx/model/bom.py | 42 +++++++----- cyclonedx/model/component.py | 111 +++++++++++++++++++++---------- cyclonedx/model/contact.py | 31 ++++++--- cyclonedx/model/crypto.py | 109 +++++++++++++++++++++--------- cyclonedx/model/issue.py | 18 +++-- cyclonedx/model/license.py | 3 +- cyclonedx/model/release_note.py | 18 +++-- cyclonedx/model/service.py | 29 +++++--- cyclonedx/model/vulnerability.py | 99 ++++++++++++++++++--------- 10 files changed, 372 insertions(+), 161 deletions(-) diff --git a/cyclonedx/model/__init__.py b/cyclonedx/model/__init__.py index 27ce4c93..35d6f80e 100644 --- a/cyclonedx/model/__init__.py +++ b/cyclonedx/model/__init__.py @@ -79,7 +79,11 @@ class DataClassification: https://cyclonedx.org/docs/1.4/xml/#type_dataClassificationType """ - def __init__(self, *, flow: DataFlow, classification: str) -> None: + def __init__( + self, *, + flow: DataFlow, + classification: str + ) -> None: self.flow = flow self.classification = classification @@ -165,8 +169,12 @@ class AttachedText: DEFAULT_CONTENT_TYPE = 'text/plain' - def __init__(self, *, content: str, content_type: str = DEFAULT_CONTENT_TYPE, - encoding: Optional[Encoding] = None) -> None: + def __init__( + self, *, + content: str, + content_type: str = DEFAULT_CONTENT_TYPE, + encoding: Optional[Encoding] = None + ) -> None: self.content_type = content_type self.encoding = encoding self.content = content @@ -435,7 +443,11 @@ def from_composite_str(composite_hash: str) -> 'HashType': raise UnknownHashTypeException(f'Unable to determine hash type from {composite_hash!r}') - def __init__(self, *, alg: HashAlgorithm, content: str) -> None: + def __init__( + self, *, + alg: HashAlgorithm, + content: str + ) -> None: self.alg = alg self.content = content @@ -735,8 +747,13 @@ class ExternalReference: See the CycloneDX Schema definition: https://cyclonedx.org/docs/1.3/#type_externalReference """ - def __init__(self, *, type: ExternalReferenceType, url: XsUri, comment: Optional[str] = None, - hashes: Optional[Iterable[HashType]] = None) -> None: + def __init__( + self, *, + type: ExternalReferenceType, + url: XsUri, + comment: Optional[str] = None, + hashes: Optional[Iterable[HashType]] = None + ) -> None: self.url = url self.comment = comment self.type = type @@ -845,7 +862,11 @@ class Property: Specifies an individual property with a name and value. """ - def __init__(self, *, name: str, value: Optional[str] = None) -> None: + def __init__( + self, *, + name: str, + value: Optional[str] = None + ) -> None: self.name = name self.value = value @@ -914,8 +935,12 @@ class NoteText: DEFAULT_CONTENT_TYPE: str = 'text/plain' - def __init__(self, *, content: str, content_type: Optional[str] = None, - encoding: Optional[Encoding] = None) -> None: + def __init__( + self, *, + content: str, + content_type: Optional[str] = None, + encoding: Optional[Encoding] = None + ) -> None: self.content = content self.content_type = content_type or NoteText.DEFAULT_CONTENT_TYPE self.encoding = encoding @@ -1003,7 +1028,11 @@ class Note: _LOCALE_TYPE_REGEX = re.compile(r'^[a-z]{2}(?:\-[A-Z]{2})?$') - def __init__(self, *, text: NoteText, locale: Optional[str] = None) -> None: + def __init__( + self, *, + text: NoteText, + locale: Optional[str] = None + ) -> None: self.text = text self.locale = locale @@ -1083,9 +1112,14 @@ class Tool: See the CycloneDX Schema for toolType: https://cyclonedx.org/docs/1.3/#type_toolType """ - def __init__(self, *, vendor: Optional[str] = None, name: Optional[str] = None, version: Optional[str] = None, - hashes: Optional[Iterable[HashType]] = None, - external_references: Optional[Iterable[ExternalReference]] = None) -> None: + def __init__( + self, *, + vendor: Optional[str] = None, + name: Optional[str] = None, + version: Optional[str] = None, + hashes: Optional[Iterable[HashType]] = None, + external_references: Optional[Iterable[ExternalReference]] = None + ) -> None: self.vendor = vendor self.name = name self.version = version @@ -1203,8 +1237,12 @@ class IdentifiableAction: See the CycloneDX specification: https://cyclonedx.org/docs/1.4/xml/#type_identifiableActionType """ - def __init__(self, *, timestamp: Optional[datetime] = None, name: Optional[str] = None, - email: Optional[str] = None) -> None: + def __init__( + self, *, + timestamp: Optional[datetime] = None, + name: Optional[str] = None, + email: Optional[str] = None + ) -> None: if not timestamp and not name and not email: raise NoPropertiesProvidedException( 'At least one of `timestamp`, `name` or `email` must be provided for an `IdentifiableAction`.' @@ -1287,7 +1325,10 @@ class Copyright: See the CycloneDX specification: https://cyclonedx.org/docs/1.4/xml/#type_copyrightsType """ - def __init__(self, *, text: str) -> None: + def __init__( + self, *, + text: str + ) -> None: self.text = text @property diff --git a/cyclonedx/model/bom.py b/cyclonedx/model/bom.py index aaf61fe7..29f55574 100644 --- a/cyclonedx/model/bom.py +++ b/cyclonedx/model/bom.py @@ -59,15 +59,19 @@ class BomMetaData: See the CycloneDX Schema for Bom metadata: https://cyclonedx.org/docs/1.5/#type_metadata """ - def __init__(self, *, tools: Optional[Iterable[Tool]] = None, - authors: Optional[Iterable[OrganizationalContact]] = None, component: Optional[Component] = None, - supplier: Optional[OrganizationalEntity] = None, - licenses: Optional[Iterable[License]] = None, - properties: Optional[Iterable[Property]] = None, - timestamp: Optional[datetime] = None, - manufacturer: Optional[OrganizationalEntity] = None, - # Deprecated as of v1.6 - manufacture: Optional[OrganizationalEntity] = None) -> None: + def __init__( + self, *, + tools: Optional[Iterable[Tool]] = None, + authors: Optional[Iterable[OrganizationalContact]] = None, + component: Optional[Component] = None, + supplier: Optional[OrganizationalEntity] = None, + licenses: Optional[Iterable[License]] = None, + properties: Optional[Iterable[Property]] = None, + timestamp: Optional[datetime] = None, + manufacturer: Optional[OrganizationalEntity] = None, + # Deprecated as of v1.6 + manufacture: Optional[OrganizationalEntity] = None + ) -> None: self.timestamp = timestamp or _get_now_utc() self.tools = tools or [] # type:ignore[assignment] self.authors = authors or [] # type:ignore[assignment] @@ -304,14 +308,18 @@ class Bom: `cyclonedx.output.BaseOutput` to produce a CycloneDX document according to a specific schema version and format. """ - def __init__(self, *, components: Optional[Iterable[Component]] = None, - services: Optional[Iterable[Service]] = None, - external_references: Optional[Iterable[ExternalReference]] = None, - serial_number: Optional[UUID] = None, version: int = 1, - metadata: Optional[BomMetaData] = None, - dependencies: Optional[Iterable[Dependency]] = None, - vulnerabilities: Optional[Iterable[Vulnerability]] = None, - properties: Optional[Iterable[Property]] = None) -> None: + def __init__( + self, *, + components: Optional[Iterable[Component]] = None, + services: Optional[Iterable[Service]] = None, + external_references: Optional[Iterable[ExternalReference]] = None, + serial_number: Optional[UUID] = None, + version: int = 1, + metadata: Optional[BomMetaData] = None, + dependencies: Optional[Iterable[Dependency]] = None, + vulnerabilities: Optional[Iterable[Vulnerability]] = None, + properties: Optional[Iterable[Property]] = None + ) -> None: """ Create a new Bom that you can manually/programmatically add data to later. diff --git a/cyclonedx/model/component.py b/cyclonedx/model/component.py index bd23f408..274d4dca 100644 --- a/cyclonedx/model/component.py +++ b/cyclonedx/model/component.py @@ -73,9 +73,14 @@ class Commit: See the CycloneDX Schema definition: https://cyclonedx.org/docs/1.4/xml/#type_commitType """ - def __init__(self, *, uid: Optional[str] = None, url: Optional[XsUri] = None, - author: Optional[IdentifiableAction] = None, committer: Optional[IdentifiableAction] = None, - message: Optional[str] = None) -> None: + def __init__( + self, *, + uid: Optional[str] = None, + url: Optional[XsUri] = None, + author: Optional[IdentifiableAction] = None, + committer: Optional[IdentifiableAction] = None, + message: Optional[str] = None + ) -> None: if not uid and not url and not author and not committer and not message: raise NoPropertiesProvidedException( 'At least one of `uid`, `url`, `author`, `committer` or `message` must be provided for a `Commit`.' @@ -195,8 +200,11 @@ class ComponentEvidence: See the CycloneDX Schema definition: https://cyclonedx.org/docs/1.4/xml/#type_componentEvidenceType """ - def __init__(self, *, licenses: Optional[Iterable[License]] = None, - copyright: Optional[Iterable[Copyright]] = None) -> None: + def __init__( + self, *, + licenses: Optional[Iterable[License]] = None, + copyright: Optional[Iterable[Copyright]] = None + ) -> None: if not licenses and not copyright: raise NoPropertiesProvidedException( 'At least one of `licenses` or `copyright` must be supplied for a `ComponentEvidence`.' @@ -426,7 +434,11 @@ class Diff: See the CycloneDX Schema definition: https://cyclonedx.org/docs/1.4/xml/#type_diffType """ - def __init__(self, *, text: Optional[AttachedText] = None, url: Optional[XsUri] = None) -> None: + def __init__( + self, *, + text: Optional[AttachedText] = None, + url: Optional[XsUri] = None + ) -> None: if not text and not url: raise NoPropertiesProvidedException( 'At least one of `text` or `url` must be provided for a `Diff`.' @@ -507,8 +519,12 @@ class Patch: See the CycloneDX Schema definition: https://cyclonedx.org/docs/1.4/xml/#type_patchType """ - def __init__(self, *, type: PatchClassification, diff: Optional[Diff] = None, - resolves: Optional[Iterable[IssueType]] = None) -> None: + def __init__( + self, *, + type: PatchClassification, + diff: Optional[Diff] = None, + resolves: Optional[Iterable[IssueType]] = None + ) -> None: self.type = type self.diff = diff self.resolves = resolves or [] # type:ignore[assignment] @@ -596,10 +612,15 @@ class Pedigree: See the CycloneDX Schema definition: https://cyclonedx.org/docs/1.4/xml/#type_pedigreeType """ - def __init__(self, *, ancestors: Optional[Iterable['Component']] = None, - descendants: Optional[Iterable['Component']] = None, variants: Optional[Iterable['Component']] = None, - commits: Optional[Iterable[Commit]] = None, patches: Optional[Iterable[Patch]] = None, - notes: Optional[str] = None) -> None: + def __init__( + self, *, + ancestors: Optional[Iterable['Component']] = None, + descendants: Optional[Iterable['Component']] = None, + variants: Optional[Iterable['Component']] = None, + commits: Optional[Iterable[Commit]] = None, + patches: Optional[Iterable[Patch]] = None, + notes: Optional[str] = None + ) -> None: if not ancestors and not descendants and not variants and not commits and not patches and not notes: raise NoPropertiesProvidedException( 'At least one of `ancestors`, `descendants`, `variants`, `commits`, `patches` or `notes` must be ' @@ -748,9 +769,16 @@ class Swid: See the CycloneDX Schema definition: https://cyclonedx.org/docs/1.4/xml/#type_swidType """ - def __init__(self, *, tag_id: str, name: str, version: Optional[str] = None, - tag_version: Optional[int] = None, patch: Optional[bool] = None, - text: Optional[AttachedText] = None, url: Optional[XsUri] = None) -> None: + def __init__( + self, *, + tag_id: str, + name: str, + version: Optional[str] = None, + tag_version: Optional[int] = None, + patch: Optional[bool] = None, + text: Optional[AttachedText] = None, + url: Optional[XsUri] = None + ) -> None: self.tag_id = tag_id self.name = name self.version = version @@ -1031,25 +1059,40 @@ def for_file(absolute_file_path: str, path_for_bom: Optional[str]) -> 'Component ) ) - def __init__(self, *, - name: str, type: ComponentType = ComponentType.LIBRARY, - mime_type: Optional[str] = None, bom_ref: Optional[Union[str, BomRef]] = None, - supplier: Optional[OrganizationalEntity] = None, - publisher: Optional[str] = None, group: Optional[str] = None, version: Optional[str] = None, - description: Optional[str] = None, scope: Optional[ComponentScope] = None, - hashes: Optional[Iterable[HashType]] = None, licenses: Optional[Iterable[License]] = None, - copyright: Optional[str] = None, purl: Optional[PackageURL] = None, - external_references: Optional[Iterable[ExternalReference]] = None, - properties: Optional[Iterable[Property]] = None, release_notes: Optional[ReleaseNotes] = None, - cpe: Optional[str] = None, swid: Optional[Swid] = None, pedigree: Optional[Pedigree] = None, - components: Optional[Iterable['Component']] = None, evidence: Optional[ComponentEvidence] = None, - modified: bool = False, manufacturer: Optional[OrganizationalEntity] = None, - authors: Optional[Iterable[OrganizationalContact]] = None, - omnibor_ids: Optional[Iterable[OmniborId]] = None, swhids: Optional[Iterable[Swhid]] = None, - crypto_properties: Optional[CryptoProperties] = None, tags: Optional[Iterable[str]] = None, - # Deprecated in v1.6 - author: Optional[str] = None, - ) -> None: + def __init__( + self, *, + name: str, + type: ComponentType = ComponentType.LIBRARY, + mime_type: Optional[str] = None, + bom_ref: Optional[Union[str, BomRef]] = None, + supplier: Optional[OrganizationalEntity] = None, + publisher: Optional[str] = None, + group: Optional[str] = None, + version: Optional[str] = None, + description: Optional[str] = None, + scope: Optional[ComponentScope] = None, + hashes: Optional[Iterable[HashType]] = None, + licenses: Optional[Iterable[License]] = None, + copyright: Optional[str] = None, + purl: Optional[PackageURL] = None, + external_references: Optional[Iterable[ExternalReference]] = None, + properties: Optional[Iterable[Property]] = None, + release_notes: Optional[ReleaseNotes] = None, + cpe: Optional[str] = None, + swid: Optional[Swid] = None, + pedigree: Optional[Pedigree] = None, + components: Optional[Iterable['Component']] = None, + evidence: Optional[ComponentEvidence] = None, + modified: bool = False, + manufacturer: Optional[OrganizationalEntity] = None, + authors: Optional[Iterable[OrganizationalContact]] = None, + omnibor_ids: Optional[Iterable[OmniborId]] = None, + swhids: Optional[Iterable[Swhid]] = None, + crypto_properties: Optional[CryptoProperties] = None, + tags: Optional[Iterable[str]] = None, + # Deprecated in v1.6 + author: Optional[str] = None, + ) -> None: self.type = type self.mime_type = mime_type if isinstance(bom_ref, BomRef): diff --git a/cyclonedx/model/contact.py b/cyclonedx/model/contact.py index 8407f7d8..0cf04e2b 100644 --- a/cyclonedx/model/contact.py +++ b/cyclonedx/model/contact.py @@ -37,10 +37,16 @@ class PostalAddress: See the CycloneDX Schema definition: https://cyclonedx.org/docs/1.6/xml/#type_postalAddressType """ - def __init__(self, *, bom_ref: Optional[Union[str, BomRef]] = None, country: Optional[str] = None, - region: Optional[str] = None, locality: Optional[str] = None, - post_office_box_number: Optional[str] = None, postal_code: Optional[str] = None, - street_address: Optional[str] = None) -> None: + def __init__( + self, *, + bom_ref: Optional[Union[str, BomRef]] = None, + country: Optional[str] = None, + region: Optional[str] = None, + locality: Optional[str] = None, + post_office_box_number: Optional[str] = None, + postal_code: Optional[str] = None, + street_address: Optional[str] = None + ) -> None: self._bom_ref = bom_ref if isinstance(bom_ref, BomRef) else BomRef( value=bom_ref) if bom_ref else None self.country = country @@ -191,7 +197,12 @@ class OrganizationalContact: See the CycloneDX Schema definition: https://cyclonedx.org/docs/1.4/xml/#type_organizationalContact """ - def __init__(self, *, name: Optional[str] = None, phone: Optional[str] = None, email: Optional[str] = None) -> None: + def __init__( + self, *, + name: Optional[str] = None, + phone: Optional[str] = None, + email: Optional[str] = None + ) -> None: if not name and not phone and not email: raise NoPropertiesProvidedException( 'One of name, email or phone must be supplied for an OrganizationalContact - none supplied.' @@ -276,9 +287,13 @@ class OrganizationalEntity: See the CycloneDX Schema definition: https://cyclonedx.org/docs/1.4/xml/#type_organizationalEntity """ - def __init__(self, *, name: Optional[str] = None, urls: Optional[Iterable[XsUri]] = None, - contacts: Optional[Iterable[OrganizationalContact]] = None, - address: Optional[PostalAddress] = None) -> None: + def __init__( + self, *, + name: Optional[str] = None, + urls: Optional[Iterable[XsUri]] = None, + contacts: Optional[Iterable[OrganizationalContact]] = None, + address: Optional[PostalAddress] = None + ) -> None: if name is None and not urls and not contacts: raise NoPropertiesProvidedException( 'One of name, urls or contacts must be supplied for an OrganizationalEntity - none supplied.' diff --git a/cyclonedx/model/crypto.py b/cyclonedx/model/crypto.py index 955af5d9..e3f99e3d 100644 --- a/cyclonedx/model/crypto.py +++ b/cyclonedx/model/crypto.py @@ -276,15 +276,20 @@ class AlgorithmProperties: See the CycloneDX Schema for hashType: https://cyclonedx.org/docs/1.6/#type_cryptoPropertiesType """ - def __init__(self, *, primitive: Optional[CryptoPrimitive] = None, - parameter_set_identifier: Optional[str] = None, curve: Optional[str] = None, - execution_environment: Optional[CryptoExecutionEnvironment] = None, - implementation_platform: Optional[CryptoImplementationPlatform] = None, - certification_levels: Optional[Iterable[CryptoCertificationLevel]] = None, - mode: Optional[CryptoMode] = None, padding: Optional[CryptoPadding] = None, - crypto_functions: Optional[Iterable[CryptoFunction]] = None, - classical_security_level: Optional[int] = None, - nist_quantum_security_level: Optional[int] = None) -> None: + def __init__( + self, *, + primitive: Optional[CryptoPrimitive] = None, + parameter_set_identifier: Optional[str] = None, + curve: Optional[str] = None, + execution_environment: Optional[CryptoExecutionEnvironment] = None, + implementation_platform: Optional[CryptoImplementationPlatform] = None, + certification_levels: Optional[Iterable[CryptoCertificationLevel]] = None, + mode: Optional[CryptoMode] = None, + padding: Optional[CryptoPadding] = None, + crypto_functions: Optional[Iterable[CryptoFunction]] = None, + classical_security_level: Optional[int] = None, + nist_quantum_security_level: Optional[int] = None + ) -> None: self.primitive = primitive self.parameter_set_identifier = parameter_set_identifier self.curve = curve @@ -516,10 +521,17 @@ class CertificateProperties: See the CycloneDX Schema for hashType: https://cyclonedx.org/docs/1.6/#type_cryptoPropertiesType """ - def __init__(self, *, subject_name: Optional[str] = None, issuer_name: Optional[str] = None, - not_valid_before: Optional[datetime] = None, not_valid_after: Optional[datetime] = None, - signature_algorithm_ref: Optional[BomRef] = None, subject_public_key_ref: Optional[BomRef] = None, - certificate_format: Optional[str] = None, certificate_extension: Optional[str] = None) -> None: + def __init__( + self, *, + subject_name: Optional[str] = None, + issuer_name: Optional[str] = None, + not_valid_before: Optional[datetime] = None, + not_valid_after: Optional[datetime] = None, + signature_algorithm_ref: Optional[BomRef] = None, + subject_public_key_ref: Optional[BomRef] = None, + certificate_format: Optional[str] = None, + certificate_extension: Optional[str] = None + ) -> None: self.subject_name = subject_name self.issuer_name = issuer_name self.not_valid_before = not_valid_before @@ -736,7 +748,11 @@ class RelatedCryptoMaterialSecuredBy: See the CycloneDX Schema for hashType: https://cyclonedx.org/docs/1.6/#type_cryptoPropertiesType """ - def __init__(self, *, mechanism: Optional[str] = None, algorithm_ref: Optional[BomRef] = None) -> None: + def __init__( + self, *, + mechanism: Optional[str] = None, + algorithm_ref: Optional[BomRef] = None + ) -> None: self.mechanism = mechanism self.algorithm_ref = algorithm_ref @@ -798,12 +814,21 @@ class RelatedCryptoMaterialProperties: See the CycloneDX Schema for hashType: https://cyclonedx.org/docs/1.6/#type_cryptoPropertiesType """ - def __init__(self, *, type: Optional[RelatedCryptoMaterialType] = None, id: Optional[str] = None, - state: Optional[RelatedCryptoMaterialState] = None, algorithm_ref: Optional[BomRef] = None, - creation_date: Optional[datetime] = None, activation_date: Optional[datetime] = None, - update_date: Optional[datetime] = None, expiration_date: Optional[datetime] = None, - value: Optional[str] = None, size: Optional[int] = None, format: Optional[str] = None, - secured_by: Optional[RelatedCryptoMaterialSecuredBy] = None) -> None: + def __init__( + self, *, + type: Optional[RelatedCryptoMaterialType] = None, + id: Optional[str] = None, + state: Optional[RelatedCryptoMaterialState] = None, + algorithm_ref: Optional[BomRef] = None, + creation_date: Optional[datetime] = None, + activation_date: Optional[datetime] = None, + update_date: Optional[datetime] = None, + expiration_date: Optional[datetime] = None, + value: Optional[str] = None, + size: Optional[int] = None, + format: Optional[str] = None, + secured_by: Optional[RelatedCryptoMaterialSecuredBy] = None + ) -> None: self.type = type self.id = id self.state = state @@ -1053,8 +1078,12 @@ class ProtocolPropertiesCipherSuite: See the CycloneDX Schema for hashType: https://cyclonedx.org/docs/1.6/#type_cryptoPropertiesType """ - def __init__(self, *, name: Optional[str] = None, algorithms: Optional[Iterable[BomRef]] = None, - identifiers: Optional[Iterable[str]] = None) -> None: + def __init__( + self, *, + name: Optional[str] = None, + algorithms: Optional[Iterable[BomRef]] = None, + identifiers: Optional[Iterable[str]] = None + ) -> None: self.name = name self.algorithms = algorithms or [] # type:ignore[assignment] self.identifiers = identifiers or [] # type:ignore[assignment] @@ -1141,9 +1170,15 @@ class Ikev2TransformTypes: See the CycloneDX Schema for hashType: https://cyclonedx.org/docs/1.6/#type_cryptoPropertiesType """ - def __init__(self, *, encr: Optional[Iterable[BomRef]] = None, prf: Optional[Iterable[BomRef]] = None, - integ: Optional[Iterable[BomRef]] = None, ke: Optional[Iterable[BomRef]] = None, - esn: Optional[bool] = None, auth: Optional[Iterable[BomRef]] = None) -> None: + def __init__( + self, *, + encr: Optional[Iterable[BomRef]] = None, + prf: Optional[Iterable[BomRef]] = None, + integ: Optional[Iterable[BomRef]] = None, + ke: Optional[Iterable[BomRef]] = None, + esn: Optional[bool] = None, + auth: Optional[Iterable[BomRef]] = None + ) -> None: self.encr = encr or [] # type:ignore[assignment] self.prf = prf or [] # type:ignore[assignment] self.integ = integ or [] # type:ignore[assignment] @@ -1267,9 +1302,13 @@ class ProtocolProperties: See the CycloneDX Schema for hashType: https://cyclonedx.org/docs/1.6/#type_cryptoPropertiesType """ - def __init__(self, *, type: Optional[ProtocolPropertiesType] = None, version: Optional[str] = None, - cipher_suites: Optional[Iterable[ProtocolPropertiesCipherSuite]] = None, - ikev2_transform_types: Optional[Ikev2TransformTypes] = None) -> None: + def __init__( + self, *, + type: Optional[ProtocolPropertiesType] = None, + version: Optional[str] = None, + cipher_suites: Optional[Iterable[ProtocolPropertiesCipherSuite]] = None, + ikev2_transform_types: Optional[Ikev2TransformTypes] = None + ) -> None: self.type = type self.version = version self.cipher_suites = cipher_suites or [] # type:ignore[assignment] @@ -1361,11 +1400,15 @@ class CryptoProperties: See the CycloneDX Schema for hashType: https://cyclonedx.org/docs/1.6/#type_cryptoPropertiesType """ - def __init__(self, *, asset_type: Optional[CryptoAssetType] = None, - algorithm_properties: Optional[AlgorithmProperties] = None, - certificate_properties: Optional[CertificateProperties] = None, - related_crypto_material_properties: Optional[RelatedCryptoMaterialProperties] = None, - protocol_properties: Optional[ProtocolProperties] = None, oid: Optional[str] = None) -> None: + def __init__( + self, *, + asset_type: Optional[CryptoAssetType] = None, + algorithm_properties: Optional[AlgorithmProperties] = None, + certificate_properties: Optional[CertificateProperties] = None, + related_crypto_material_properties: Optional[RelatedCryptoMaterialProperties] = None, + protocol_properties: Optional[ProtocolProperties] = None, + oid: Optional[str] = None + ) -> None: self.asset_type = asset_type self.algorithm_properties = algorithm_properties self.certificate_properties = certificate_properties diff --git a/cyclonedx/model/issue.py b/cyclonedx/model/issue.py index 2a89a2a9..94084409 100644 --- a/cyclonedx/model/issue.py +++ b/cyclonedx/model/issue.py @@ -47,7 +47,11 @@ class IssueTypeSource: See the CycloneDX Schema definition: https://cyclonedx.org/docs/1.4/xml/#type_issueType """ - def __init__(self, *, name: Optional[str] = None, url: Optional[XsUri] = None) -> None: + def __init__( + self, *, + name: Optional[str] = None, + url: Optional[XsUri] = None + ) -> None: if not name and not url: raise NoPropertiesProvidedException( 'Neither `name` nor `url` were provided - at least one must be provided.' @@ -114,9 +118,15 @@ class IssueType: See the CycloneDX Schema definition: https://cyclonedx.org/docs/1.4/xml/#type_issueType """ - def __init__(self, *, type: IssueClassification, id: Optional[str] = None, name: Optional[str] = None, - description: Optional[str] = None, source: Optional[IssueTypeSource] = None, - references: Optional[Iterable[XsUri]] = None) -> None: + def __init__( + self, *, + type: IssueClassification, + id: Optional[str] = None, + name: Optional[str] = None, + description: Optional[str] = None, + source: Optional[IssueTypeSource] = None, + references: Optional[Iterable[XsUri]] = None + ) -> None: self.type = type self.id = id self.name = name diff --git a/cyclonedx/model/license.py b/cyclonedx/model/license.py index d1977aae..bfc30c86 100644 --- a/cyclonedx/model/license.py +++ b/cyclonedx/model/license.py @@ -249,8 +249,7 @@ class LicenseExpression: """ def __init__( - self, value: str, - # *, # all optional args are intended to be keyword-args + self, value: str, # *, # all optional args are intended to be keyword-args acknowledgement: Optional[LicenseAcknowledgement] = None ) -> None: self._value = value diff --git a/cyclonedx/model/release_note.py b/cyclonedx/model/release_note.py index f9e6659a..1046a497 100644 --- a/cyclonedx/model/release_note.py +++ b/cyclonedx/model/release_note.py @@ -34,11 +34,19 @@ class ReleaseNotes: See the CycloneDX Schema definition: https://cyclonedx.org/docs/1.4/#type_releaseNotesType """ - def __init__(self, *, type: str, title: Optional[str] = None, featured_image: Optional[XsUri] = None, - social_image: Optional[XsUri] = None, description: Optional[str] = None, - timestamp: Optional[datetime] = None, aliases: Optional[Iterable[str]] = None, - tags: Optional[Iterable[str]] = None, resolves: Optional[Iterable[IssueType]] = None, - notes: Optional[Iterable[Note]] = None, properties: Optional[Iterable[Property]] = None) -> None: + def __init__( + self, *, + type: str, title: Optional[str] = None, + featured_image: Optional[XsUri] = None, + social_image: Optional[XsUri] = None, + description: Optional[str] = None, + timestamp: Optional[datetime] = None, + aliases: Optional[Iterable[str]] = None, + tags: Optional[Iterable[str]] = None, + resolves: Optional[Iterable[IssueType]] = None, + notes: Optional[Iterable[Note]] = None, + properties: Optional[Iterable[Property]] = None + ) -> None: self.type = type self.title = title self.featured_image = featured_image diff --git a/cyclonedx/model/service.py b/cyclonedx/model/service.py index d122aa20..aa330dc0 100644 --- a/cyclonedx/model/service.py +++ b/cyclonedx/model/service.py @@ -48,17 +48,24 @@ class Service(Dependable): See the CycloneDX schema: https://cyclonedx.org/docs/1.4/xml/#type_service """ - def __init__(self, *, name: str, bom_ref: Optional[Union[str, BomRef]] = None, - provider: Optional[OrganizationalEntity] = None, - group: Optional[str] = None, version: Optional[str] = None, description: Optional[str] = None, - endpoints: Optional[Iterable[XsUri]] = None, authenticated: Optional[bool] = None, - x_trust_boundary: Optional[bool] = None, data: Optional[Iterable[DataClassification]] = None, - licenses: Optional[Iterable[License]] = None, - external_references: Optional[Iterable[ExternalReference]] = None, - properties: Optional[Iterable[Property]] = None, - services: Optional[Iterable['Service']] = None, - release_notes: Optional[ReleaseNotes] = None, - ) -> None: + def __init__( + self, *, + name: str, + bom_ref: Optional[Union[str, BomRef]] = None, + provider: Optional[OrganizationalEntity] = None, + group: Optional[str] = None, + version: Optional[str] = None, + description: Optional[str] = None, + endpoints: Optional[Iterable[XsUri]] = None, + authenticated: Optional[bool] = None, + x_trust_boundary: Optional[bool] = None, + data: Optional[Iterable[DataClassification]] = None, + licenses: Optional[Iterable[License]] = None, + external_references: Optional[Iterable[ExternalReference]] = None, + properties: Optional[Iterable[Property]] = None, + services: Optional[Iterable['Service']] = None, + release_notes: Optional[ReleaseNotes] = None, + ) -> None: if isinstance(bom_ref, BomRef): self._bom_ref = bom_ref else: diff --git a/cyclonedx/model/vulnerability.py b/cyclonedx/model/vulnerability.py index 462c4da4..a2ef8a1a 100644 --- a/cyclonedx/model/vulnerability.py +++ b/cyclonedx/model/vulnerability.py @@ -64,8 +64,12 @@ class BomTargetVersionRange: See the CycloneDX schema: https://cyclonedx.org/docs/1.4/#type_vulnerabilityType """ - def __init__(self, *, version: Optional[str] = None, range: Optional[str] = None, - status: Optional[ImpactAnalysisAffectedStatus] = None) -> None: + def __init__( + self, *, + version: Optional[str] = None, + range: Optional[str] = None, + status: Optional[ImpactAnalysisAffectedStatus] = None + ) -> None: if not version and not range: raise NoPropertiesProvidedException( 'One of version or range must be provided for BomTargetVersionRange - neither provided.' @@ -154,7 +158,11 @@ class BomTarget: See the CycloneDX schema: https://cyclonedx.org/docs/1.4/#type_vulnerabilityType """ - def __init__(self, *, ref: str, versions: Optional[Iterable[BomTargetVersionRange]] = None) -> None: + def __init__( + self, *, + ref: str, + versions: Optional[Iterable[BomTargetVersionRange]] = None + ) -> None: self.ref = ref self.versions = versions or [] # type:ignore[assignment] @@ -212,10 +220,13 @@ class VulnerabilityAnalysis: See the CycloneDX schema: https://cyclonedx.org/docs/1.4/#type_vulnerabilityType """ - def __init__(self, *, state: Optional[ImpactAnalysisState] = None, - justification: Optional[ImpactAnalysisJustification] = None, - responses: Optional[Iterable[ImpactAnalysisResponse]] = None, - detail: Optional[str] = None) -> None: + def __init__( + self, *, + state: Optional[ImpactAnalysisState] = None, + justification: Optional[ImpactAnalysisJustification] = None, + responses: Optional[Iterable[ImpactAnalysisResponse]] = None, + detail: Optional[str] = None + ) -> None: if not state and not justification and not responses and not detail: raise NoPropertiesProvidedException( 'At least one of state, justification, responses or detail must be provided for VulnerabilityAnalysis ' @@ -333,7 +344,11 @@ class VulnerabilityAdvisory: See the CycloneDX schema: https://cyclonedx.org/docs/1.4/#type_advisoryType """ - def __init__(self, *, url: XsUri, title: Optional[str] = None) -> None: + def __init__( + self, *, + url: XsUri, + title: Optional[str] = None + ) -> None: self.title = title self.url = url @@ -393,7 +408,11 @@ class VulnerabilitySource: See the CycloneDX schema: https://cyclonedx.org/docs/1.4/#type_vulnerabilitySourceType """ - def __init__(self, *, name: Optional[str] = None, url: Optional[XsUri] = None) -> None: + def __init__( + self, *, + name: Optional[str] = None, + url: Optional[XsUri] = None + ) -> None: if not name and not url: raise NoPropertiesProvidedException( 'Either name or url must be provided for a VulnerabilitySource - neither provided' @@ -460,7 +479,11 @@ class VulnerabilityReference: See the CycloneDX schema: https://cyclonedx.org/docs/1.4/#type_vulnerabilityType """ - def __init__(self, *, id: Optional[str] = None, source: Optional[VulnerabilitySource] = None) -> None: + def __init__( + self, *, + id: Optional[str] = None, + source: Optional[VulnerabilitySource] = None + ) -> None: if not id and not source: raise NoPropertiesProvidedException( 'Either id or source must be provided for a VulnerabilityReference - neither provided' @@ -704,12 +727,15 @@ class VulnerabilityRating: they are redundant if you have the vector (the vector allows you to calculate the scores). """ - def __init__(self, *, - source: Optional[VulnerabilitySource] = None, score: Optional[Decimal] = None, - severity: Optional[VulnerabilitySeverity] = None, - method: Optional[VulnerabilityScoreSource] = None, vector: Optional[str] = None, - justification: Optional[str] = None - ) -> None: + def __init__( + self, *, + source: Optional[VulnerabilitySource] = None, + score: Optional[Decimal] = None, + severity: Optional[VulnerabilitySeverity] = None, + method: Optional[VulnerabilityScoreSource] = None, + vector: Optional[str] = None, + justification: Optional[str] = None + ) -> None: if not source and not score and not severity and not method and not vector and not justification: raise NoPropertiesProvidedException( 'At least one property must be provided when creating a VulnerabilityRating - none supplied.' @@ -832,8 +858,11 @@ class VulnerabilityCredits: See the CycloneDX schema: https://cyclonedx.org/docs/1.4/#type_vulnerabilityType """ - def __init__(self, *, organizations: Optional[Iterable[OrganizationalEntity]] = None, - individuals: Optional[Iterable[OrganizationalContact]] = None) -> None: + def __init__( + self, *, + organizations: Optional[Iterable[OrganizationalEntity]] = None, + individuals: Optional[Iterable[OrganizationalContact]] = None + ) -> None: if not organizations and not individuals: raise NoPropertiesProvidedException( 'One of `organizations` or `individuals` must be populated - neither were' @@ -902,19 +931,27 @@ class Vulnerability: See the CycloneDX schema: https://cyclonedx.org/docs/1.4/#type_vulnerabilityType """ - def __init__(self, *, - bom_ref: Optional[Union[str, BomRef]] = None, id: Optional[str] = None, - source: Optional[VulnerabilitySource] = None, - references: Optional[Iterable[VulnerabilityReference]] = None, - ratings: Optional[Iterable[VulnerabilityRating]] = None, cwes: Optional[Iterable[int]] = None, - description: Optional[str] = None, detail: Optional[str] = None, recommendation: Optional[str] = None, - advisories: Optional[Iterable[VulnerabilityAdvisory]] = None, created: Optional[datetime] = None, - published: Optional[datetime] = None, updated: Optional[datetime] = None, - credits: Optional[VulnerabilityCredits] = None, - tools: Optional[Iterable[Tool]] = None, analysis: Optional[VulnerabilityAnalysis] = None, - affects: Optional[Iterable[BomTarget]] = None, - properties: Optional[Iterable[Property]] = None - ) -> None: + def __init__( + self, *, + bom_ref: Optional[Union[str, BomRef]] = None, + id: Optional[str] = None, + source: Optional[VulnerabilitySource] = None, + references: Optional[Iterable[VulnerabilityReference]] = None, + ratings: Optional[Iterable[VulnerabilityRating]] = None, + cwes: Optional[Iterable[int]] = None, + description: Optional[str] = None, + detail: Optional[str] = None, + recommendation: Optional[str] = None, + advisories: Optional[Iterable[VulnerabilityAdvisory]] = None, + created: Optional[datetime] = None, + published: Optional[datetime] = None, + updated: Optional[datetime] = None, + credits: Optional[VulnerabilityCredits] = None, + tools: Optional[Iterable[Tool]] = None, + analysis: Optional[VulnerabilityAnalysis] = None, + affects: Optional[Iterable[BomTarget]] = None, + properties: Optional[Iterable[Property]] = None + ) -> None: if isinstance(bom_ref, BomRef): self._bom_ref = bom_ref else: