cyclonedx.contrib.bom.utils =========================== .. py:module:: cyclonedx.contrib.bom.utils .. autoapi-nested-parse:: Bom related utilities Classes ------- .. autoapisummary:: cyclonedx.contrib.bom.utils.BomRefDiscriminator Module Contents --------------- .. py:class:: BomRefDiscriminator(bomrefs: collections.abc.Iterable[cyclonedx.model.bom_ref.BomRef], prefix: str = 'BomRef') Ensure that a collection of BomRef objects has unique, non‑empty :attr:`cyclonedx.model.bom_ref.BomRef.value`. The discriminator inspects each provided BomRef and assigns a newly generated identifier to any instance whose ``value`` is missing or duplicates an earlier one. All original values are preserved and can be restored via :meth:`reset()` or by using this class as a context manager. .. py:method:: discriminate() -> None Enforce uniqueness across all :attr:`cyclonedx.model.bom_ref.BomRef.value`s. Any BomRef whose ``value`` is ``None`` or duplicates a previously encountered value is assigned a newly generated unique identifier. .. py:method:: reset() -> None Restore all :attr:`cyclonedx.model.bom_ref.BomRef.value`s to their original state. .. py:method:: from_bom(bom: cyclonedx.model.bom.Bom, prefix: str = 'BomRef') -> BomRefDiscriminator :classmethod: Create a discriminator for all :class:`cyclonedx.model.bom_ref.BomRefs` contained within a Bom. This includes BomRefs from * :attr:`cyclonedx.model.bom.Bom.components` * :attr:`cyclonedx.model.bom.Bom.services` * :attr:`cyclonedx.model.bom.Bom.vulnerabilities`