
    ܖil                     (   d Z ddlZddlmZmZ ddlmZ ddlmZ ddl	m
Z
 ej                  dk\  rddlmZ nddlmZ d	d
lmZmZ d	dlmZ d	dlmZ  ed       G d de
             Z G d de
      Z G d de
      Z ed       G d de             Zy)zY
Set of helper classes for use with ``serializable`` when conducting (de-)serialization.
    N)AnyOptional)UUID)
PackageURL)
BaseHelper)      )
deprecated   )!CycloneDxDeserializationException'SerializationOfUnexpectedValueException)BomRef)%_LicenseRepositorySerializationHelperzUse :class:`BomRef` instead.c                   J    e Zd ZdZededee   fd       Zedede	fd       Z
y)BomRefHelperzn**DEPRECATED** in favour of :class:`BomRef`.

    .. deprecated:: 8.6
       Use :class:`BomRef` instead.
    oreturnc                 ,    t        j                  |      S N)r   	serializeclsr   s     d/var/www/html/content-pipeline/venv/lib/python3.12/site-packages/cyclonedx/serialization/__init__.pyr   zBomRefHelper.serialize3   s    ""    c                 ,    t        j                  |      S r   )r   deserializer   s     r   r   zBomRefHelper.deserialize7   s    !!!$$r   N)__name__
__module____qualname____doc__classmethodr   r   strr   r   r    r   r   r   r   )   sO     ## #(3- # # %C %F % %r   r   c                   @    e Zd Zededefd       Zededefd       Zy)
PackageUrlr   r   c                 p    t        |t              rt        |j                               S t	        d|      )Nz'Attempt to serialize a non-PackageURL: )
isinstancer   r"   	to_stringr   r   s     r   r   zPackageUrl.serialize>   s4    a$q{{}%%55aU;= 	=r   c                     	 t        j                  t        |            S # t        $ r}t	        d|      |d }~ww xY w)N)purlz%PURL string supplied does not parse: )r   from_stringr"   
ValueErrorr   r   r   errs      r   r   zPackageUrl.deserializeE   sF    	))s1v66 	37u=	s   ! 	>9>N)	r   r   r   r!   r   r"   r   r   r   r#   r   r   r%   r%   <   sD    =# =C = = C J  r   r%   c                   @    e Zd Zededefd       Zededefd       Zy)UrnUuidHelperr   r   c                 V    t        |t              r|j                  S t        d|      )Nz!Attempt to serialize a non-UUID: )r'   r   urnr   r   s     r   r   zUrnUuidHelper.serializeQ   s,    a55L5/u57 	7r   c                 l    	 t        t        |            S # t        $ r}t        d|      |d }~ww xY w)Nz%UUID string supplied does not parse: )r   r"   r,   r   r-   s      r   r   zUrnUuidHelper.deserializeX   s?    	A< 	37u=	s    	3.3N)	r   r   r   r!   r   r"   r   r   r   r#   r   r   r0   r0   O   sD    7# 7# 7 7 C D  r   r0   z)No public API planned for replacing this,c                       e Zd ZdZy)LicenseRepositoryHelperz]**DEPRECATED**

    .. deprecated:: 8.6
       No public API planned for replacing this,
    N)r   r   r   r    r#   r   r   r5   r5   b   s     	r   r5   )r    systypingr   r   uuidr   
packageurlr   py_serializable.helpersr   version_infowarningsr
   typing_extensionsexception.serializationr   r   model.bom_refr   model.licenser   r   r%   r0   r5   r#   r   r   <module>rA      s   &     " .w#, p " A *+%: % ,%$ &J & 78		C 		 9		r   