Ë
    sPêj!  ã                   ó   — d Z ddlmZ ddlmZ ddlmZmZm	Z	m
Z
 ddlmZ ddlZddlmZ ddlmZ d	d
lmZ d	dlmZ erddlmZ ej2                   G d„ dee«      «       Z ej8                  d¬«       G d„ d«      «       Z ej8                  d¬«       G d„ d«      «       Ze
eef   Z	 er G d„ dee   «      Z n G d„ de«      Z  G d„ de«      Z!y)zð
    This set of classes represents the lifecycles types in the CycloneDX standard.

.. note::
    Introduced in CycloneDX v1.5

.. note::
    See the CycloneDX Schema for lifecycles: https://cyclonedx.org/docs/1.7/xml/#metadata_lifecycles
é    )ÚEnum)Úloads)ÚTYPE_CHECKINGÚAnyÚOptionalÚUnion)ÚElementN)Ú
BaseHelper)Ú	SortedSeté   )ÚComparableTuple)Ú!CycloneDxDeserializationException)ÚViewTypec                   ó,   — e Zd ZdZdZdZdZdZdZdZ	dZ
y	)
ÚLifecyclePhasezá
    Enum object that defines the permissible 'phase' for a Lifecycle according to the CycloneDX schema.

    .. note::
        See the CycloneDX Schema definition: https://cyclonedx.org/docs/1.7/xml/#type_classification
    Údesignz	pre-buildÚbuildz
post-buildÚ
operationsÚ	discoveryÚdecommissionN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚDESIGNÚ	PRE_BUILDÚBUILDÚ
POST_BUILDÚ
OPERATIONSÚ	DISCOVERYÚDECOMMISSION© ó    ú^/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/cyclonedx/model/lifecycle.pyr   r   ,   s,   „ ñð €FØ€IØ€EØ€JØ€JØ€IØ!�Lr#   r   T)Ú%ignore_unknown_during_deserializationc                   óœ   — e Zd ZdZdeddfd„Zedefd„«       Zej                  deddfd„«       Zde	fd„Z
d	edefd
„Zd	edefd„Zdefd„Zy)ÚPredefinedLifecyclezß
    Object that defines pre-defined phases in the product lifecycle.

    .. note::
        See the CycloneDX Schema definition:
        https://cyclonedx.org/docs/1.7/json/#tab-pane_metadata_lifecycles_items_oneOf_i0
    ÚphaseÚreturnNc                 ó   — || _         y ©N©Ú_phase©Úselfr(   s     r$   Ú__init__zPredefinedLifecycle.__init__G   s	   € Øˆ�r#   c                 ó   — | j                   S r+   r,   ©r/   s    r$   r(   zPredefinedLifecycle.phaseJ   s   € à�{‰{Ðr#   c                 ó   — || _         y r+   r,   r.   s     r$   r(   zPredefinedLifecycle.phaseN   s	   € àˆ�r#   c                 ó,   — t        | j                  «      S r+   )Úhashr-   r2   s    r$   Ú__hash__zPredefinedLifecycle.__hash__R   s   € Ü�D—K‘KÓ Ð r#   Úotherc                 óV   — t        |t        «      r| j                  |j                  k(  S y©NF)Ú
isinstancer'   r-   ©r/   r7   s     r$   Ú__eq__zPredefinedLifecycle.__eq__U   s#   € Ü�eÔ0Ô1Ø—;‘; %§,¡,Ñ.Ð.Ør#   c                 ó‚   — t        |t        «      r| j                  |j                  k  S t        |t        «      ryt        S )NT)r:   r'   r-   ÚNamedLifecycleÚNotImplementedr;   s     r$   Ú__lt__zPredefinedLifecycle.__lt__Z   s3   € Ü�eÔ0Ô1Ø—;‘; §¡Ñ-Ð-Ü�eœ^Ô,ØÜÐr#   c                 ó"   — d| j                   › d�S )Nz<PredefinedLifecycle phase=ú>r,   r2   s    r$   Ú__repr__zPredefinedLifecycle.__repr__a   s   € Ø,¨T¯[©[¨M¸Ð;Ð;r#   )r   r   r   r   r   r0   Úpropertyr(   ÚsetterÚintr6   ÚobjectÚboolr<   r   r@   ÚstrrC   r"   r#   r$   r'   r'   =   s™   „ ñð˜nð °ó ð ð�~ò ó ðð ‡\�\ð˜>ð ¨dò ó ðð!˜#ó !ð˜Fð  tó ð
˜Cð  Dó ð<˜#ô <r#   r'   c                   ó   — e Zd ZdZddœdedee   ddfd„Ze ej                  d«       ej                  ej                  j                  «      defd	„«       «       «       Zej                  deddfd
„«       Ze ej                  d«       ej                  ej                  j                  «      dee   fd„«       «       «       Zej                  dee   ddfd„«       Zdefd„Zdefd„Zdedefd„Zdedefd„Zdefd„Zy)r>   zÙ
    Object that defines custom state in the product lifecycle.

    .. note::
        See the CycloneDX Schema definition:
        https://cyclonedx.org/docs/1.7/json/#tab-pane_metadata_lifecycles_items_oneOf_i1
    N)ÚdescriptionÚnamerK   r)   c                ó    — || _         || _        y r+   )Ú_nameÚ_description)r/   rL   rK   s      r$   r0   zNamedLifecycle.__init__o   s   € ØˆŒ
Ø'ˆÕr#   é   c                 ó   — | j                   S )zS
        Name of the lifecycle phase.

        Returns:
             `str`
        ©rN   r2   s    r$   rL   zNamedLifecycle.names   s   € ð �z‰zÐr#   c                 ó   — || _         y r+   rR   )r/   rL   s     r$   rL   zNamedLifecycle.name   s	   € àˆ�
r#   r   c                 ó   — | j                   S )zZ
        Description of the lifecycle phase.

        Returns:
             `str`
        ©rO   r2   s    r$   rK   zNamedLifecycle.descriptionƒ   s   € ð × Ñ Ð r#   c                 ó   — || _         y r+   rU   )r/   rK   s     r$   rK   zNamedLifecycle.description�   s
   € à'ˆÕr#   c                 óD   — t        | j                  | j                  f«      S r+   )Ú_ComparableTuplerN   rO   r2   s    r$   Ú__comparable_tuplez!NamedLifecycle.__comparable_tuple“   s#   € ÜØ�J‰J˜×)Ñ)ð!
ó ð 	r#   c                 ó4   — t        | j                  «       «      S r+   )r5   Ú!_NamedLifecycle__comparable_tupler2   s    r$   r6   zNamedLifecycle.__hash__˜   s   € Ü�D×+Ñ+Ó-Ó.Ð.r#   r7   c                 óf   — t        |t        «      r!| j                  «       |j                  «       k(  S yr9   )r:   r>   r[   r;   s     r$   r<   zNamedLifecycle.__eq__›   s,   € Ü�eœ^Ô,Ø×*Ñ*Ó,°×0HÑ0HÓ0JÑJÐJØr#   c                 ó’   — t        |t        «      r!| j                  «       |j                  «       k  S t        |t        «      ryt        S r9   )r:   r>   r[   r'   r?   r;   s     r$   r@   zNamedLifecycle.__lt__    s=   € Ü�eœ^Ô,Ø×*Ñ*Ó,¨u×/GÑ/GÓ/IÑIÐIÜ�eÔ0Ô1ØÜÐr#   c                 ó"   — d| j                   › d�S )Nz<NamedLifecycle name=rB   rR   r2   s    r$   rC   zNamedLifecycle.__repr__§   s   € Ø& t§z¡z l°!Ð4Ð4r#   )r   r   r   r   rI   r   r0   rD   ÚserializableÚxml_sequenceÚ
xml_stringÚXmlStringSerializationTypeÚNORMALIZED_STRINGrL   rE   rK   rX   r[   rF   r6   rG   rH   r<   r   r@   rC   r"   r#   r$   r>   r>   e   sq  „ ñð CGò (˜Sð (°(¸3±-ð (È4ó (ð Ø€\×Ñ˜qÓ!Ø€\×Ñ˜\×DÑD×VÑVÓWð�cò ó Xó "ó ðð 
‡[�[ð˜ð  ò ó ðð Ø€\×Ñ˜qÓ!Ø€\×Ñ˜\×DÑD×VÑVÓWð!˜X c™]ò !ó Xó "ó ð!ð ×Ñð( x°¡}ð (¸ò (ó ð(ðÐ$4ó ð
/˜#ó /ð˜Fð  tó ð
˜Cð  Dó ð5˜#ô 5r#   r>   c                   ó   — e Zd ZdZy©ÚLifecycleRepositoryzoCollection of :class:`Lifecycle`.

        This is a `set`, not a `list`.  Order MUST NOT matter here.
        N©r   r   r   r   r"   r#   r$   rf   rf   µ   ó   „ ò	r#   rf   c                   ó   — e Zd ZdZyre   rg   r"   r#   r$   rf   rf   »   rh   r#   c                   óÒ   — e Zd Zededeed      dedefd„«       Zede	e
eef      dedefd„«       Zedededeed      d	ee   dedee   fd
„«       Zededee   dedefd„«       Zy)Ú_LifecycleRepositoryHelperÚoÚviewr   Ú__r)   c                ó|   — t        |«      dk(  ry |D �cg c]  }t        |j                  |¬«      «      ‘Œ c}S c c}w )Nr   )Úview_)ÚlenÚ
json_loadsÚas_json)Úclsrl   rm   rn   Úlis        r$   Újson_normalizez)_LifecycleRepositoryHelper.json_normalizeÃ   sJ   € ô ˆq‹6�QŠ;Øà#$ö&Øô ˜2Ÿ:™:Øð &ó õ ò &ð 	&ùò &s   ”"9c                 óæ   — t        «       }|D ]a  }d|v r%|j                  t        j                  |«      «       Œ,d|v r%|j                  t        j                  |«      «       ŒUt        d|›�«      ‚ |S )Nr(   rL   zunexpected: )rf   Úaddr'   Ú	from_jsonr>   r   )rt   rl   rn   Úreporu   s        r$   Újson_denormalizez+_LifecycleRepositoryHelper.json_denormalizeÌ   s   € ô #Ó$ˆØò 	OˆBØ˜"‰}Ø—‘Ô,×6Ñ6Øóõ à˜2‘Ø—‘œ×1Ñ1Øóõ ô 8¸,ÀrÀfÐ8MÓNÐNð	Oð ˆr#   Úelement_nameÚxmlnsc          	      ó�   — t        |«      dk(  ry t        |«      }|D ]&  }|j                  |j                  |dd|¬«      «       Œ( |S )Nr   FÚ	lifecycle)rp   Ú	as_stringr|   r}   )rq   r	   ÚappendÚas_xml)rt   rl   r|   rm   r}   rn   Úelemru   s           r$   Úxml_normalizez(_LifecycleRepositoryHelper.xml_normalizeÛ   s[   € ô ˆq‹6�QŠ;ØÜ�|Ó$ˆØò 	UˆBØ�K‰K˜Ÿ	™	Ø e¸+ÈUð "ó Tõ Uð	Uð ˆr#   Ú
default_nsc                 óR  — t        «       }d|xs di}|j                  d|«      D ]  }|j                  d|«      �&|j                  t        j                  ||«      «       Œ;|j                  d|«      �&|j                  t        j                  ||«      «       Œst        d|›�«      ‚ |S )NÚbomÚ zbom:lifecyclez	bom:phasezbom:namezunexpected content: )rf   ÚiterfindÚfindrx   r'   Úfrom_xmlr>   r   )rt   rl   r…   rn   rz   Úns_mapru   s          r$   Úxml_denormalizez*_LifecycleRepositoryHelper.xml_denormalizeé   s´   € ô #Ó$ˆØ˜Ò) rÐ*ˆð —*‘*˜_¨fÓ5ò 	WˆBØ�w‰w�{ FÓ+Ð7Ø—‘Ô,×5Ñ5Ø˜
ó$õ %à—‘˜ VÓ,Ð8Ø—‘œ×0Ñ0Ø˜
ó$õ %ô 8Ð:NÈrÈfÐ8UÓVÐVð	Wð ˆr#   N)r   r   r   Úclassmethodrf   r   Útyper   rv   ÚlistÚdictrI   r{   r	   r„   r�   r"   r#   r$   rk   rk   Â   s
  „ Øð&Ð2ð &Ø% d¨:Ñ&6Ñ7ð&à ð&à%(ò&ó ð&ð ð  d¨3°¨8¡nÑ!5ð Ø"ðØ':òó ðð ðÐ1ð Ø$'ðà$ T¨*Ñ%5Ñ6ðð & c™]ðð  ð	ð %-¨WÑ$5ò	ó ðð ð ð Ø$,¨S¡Mðà!ðà&9òó ñr#   rk   )"r   Úenumr   Újsonr   rr   Útypingr   r   r   r   Úxml.etree.ElementTreer	   Úpy_serializabler_   Úpy_serializable.helpersr
   Úsortedcontainersr   Ú_internal.comparer   rX   Úexception.serializationr   r   Úserializable_enumrI   r   Úserializable_classr'   r>   Ú	Lifecyclerf   rk   r"   r#   r$   ú<module>rž      së   ðñ$õ Ý $ß 6Ó 6Ý )ã &Ý .Ý &å CÝ GáÝ(ð ×Ñô"�S˜$ó "ó  ð"ð  !€× Ñ ÀtÔL÷$<ð $<ó Mð$<ðN !€× Ñ ÀtÔL÷B5ð B5ó MðB5ðJ Ð% ~Ð5Ñ6€	ðñ ô˜i¨	Ñ2õ ô˜iô ô8 õ 8r#   