
    ܖi	                         d Z ddlmZ ddlmZmZmZ erddlmZ  G d de	ee   df         Z
 G d d	e
      Z G d
 de
      Zy)zS
!!! ALL SYMBOLS IN HERE ARE INTERNAL.
Everything might change without any notice.
    )zip_longest)TYPE_CHECKINGAnyOptional)
PackageURLc                   0    e Zd ZdZdedefdZdedefdZy)ComparableTuplez@
    Allows comparison of tuples, allowing for None values.
    otherreturnc                 f    t        | |      D ]"  \  }}||k(  r| y| yt        ||k        c S  y)NFTr   boolselfr
   sos       _/var/www/html/content-pipeline/venv/lib/python3.12/site-packages/cyclonedx/_internal/compare.py__lt__zComparableTuple.__lt__$   sI    e, 	DAqAvyyA;	     c                 f    t        | |      D ]"  \  }}||k(  r| y| yt        ||kD        c S  y)NTFr   r   s       r   __gt__zComparableTuple.__gt__0   sI    e, 	DAqAvyyA;	 r   N)__name__
__module____qualname____doc__r   r   r   r    r   r   r	   r	      s-    
C 
D 

C 
D 
r   r	   .c                   6     e Zd ZdZdeeef   dd f fdZ xZS )ComparableDictzN
    Allows comparison of dictionaries, allowing for missing/None values.
    dr   c                 R    t         |   | t        |j                                     S N)super__new__sorteditems)clsr   	__class__s     r   r#   zComparableDict.__new__B   s    wsF1779$566r   )r   r   r   r   dictr   r#   __classcell__r'   s   @r   r   r   =   s)    7S#X 7+; 7 7r   r   c                   $     e Zd ZdZd fdZ xZS )ComparablePackageURLzC
    Allows comparison of PackageURL, allowing for qualifiers.
    c           
          t         |   | |j                  |j                  |j                  t        |j                  t              rt        |j                        n|j                  |j                  f      S r!   )
r"   r#   type	namespaceversion
isinstance
qualifiersr(   r   subpath)r&   pr'   s     r   r#   zComparablePackageURL.__new__K   sY    wsFFKKII,6q||T,JN1<<(PQP\P\II%
  	r   )r4   r   r   r,   )r   r   r   r   r#   r)   r*   s   @r   r,   r,   F   s     r   r,   N)r   	itertoolsr   typingr   r   r   
packageurlr   tupler	   r   r,   r   r   r   <module>r9      sM   &
 " / /%eHSM3./ <7_ 7? r   