
    Xib                    P   S SK Jr  S SKrS SKrS SKrS SKJrJr  S SKJr  S SK	J	r	  S SK
JrJrJrJrJrJr  S SKJr  SS	KJrJrJr  SS
KJr  SSKJrJr  SSKJrJrJrJ r   SSK!J"r"  \(       a  S SKJ#r#J$r$  S SK%J&r&  S SK'J(r(  SSKJ)r)  \RT                  " \+5      r,/ SQr-SFS jr.\" S5      r/\" S5      r0 " S S\5      r1\" S\1S9r2\Rf                  " S5      r4SGS jr5SHS jr6SIS jr7SJS jr8SKS jr9SLS  jr:        SMS! jr;          SNS" jr<          SOS# jr=          SPS$ jr>        SQS% jr?        SRS& jr@        SSS' jrASTS( jrBSUS) jrCSVS* jrDSWS+ jrESXS, jrF " S- S.\G5      rH " S/ S0\H5      rI " S1 S2\H5      rJ " S3 S4\G5      rK\" S5S6S79 " S8 S95      5       rL\" S5S6S79 " S: S;5      5       rM\" S5S6S79 " S< S=5      5       rN\" S5S6S79 " S> S?5      5       rO\" S5S6S79 " S@ SA5      5       rP\" S5S6S79 " SB SC5      5       rQ\" S5S6S79 " SD SE5      5       rRg)Y    )annotationsN)MappingSequence)	dataclass)datetime)TYPE_CHECKINGAnyCallableProtocolTypeVarcast)urlparse   )EnvironmentMarkerdefault_environment)SpecifierSet)create_compatible_tags_selectorsys_tags)NormalizedNameis_normalized_nameparse_sdist_filenameparse_wheel_filename)Version)
CollectionIterator)Path)Self)Tag)
PackagePackageArchivePackageDirectoryPackageSdist
PackageVcsPackageWheelPylockPylockUnsupportedVersionErrorPylockValidationErroris_valid_pylock_pathc                     [         $ N)__all__     C/var/www/html/venv/lib/python3.13/site-packages/packaging/pylock.py__dir__r0   6   s    Nr.   _T_T2c                  (    \ rS rSr\SS j5       rSrg)_FromMappingProtocol>   c                    g r+   r-   clsds     r/   
_from_dict_FromMappingProtocol._from_dict?   s    7:r.   r-   Nr9   Mapping[str, Any]returnr   )__name__
__module____qualname____firstlineno__classmethodr:   __static_attributes__r-   r.   r/   r4   r4   >   s    : :r.   r4   _FromMappingProtocolT)boundz^pylock\.([^.]+)\.toml$c                ~    U R                   S:H  =(       d(    [        [        R                  U R                   5      5      $ )z4Check if the given path is a valid pylock file path.zpylock.toml)namebool_PYLOCK_FILE_NAME_REmatchpaths    r/   r)   r)   I   s+    99%T.B.H.H.S)TTr.   c                &    U R                  SS5      $ )N_-)replace)keys    r/   	_toml_keyrS   N   s    ;;sC  r.   c                    [        U[        [        [        45      (       a  [	        U5      $ [        U[
        5      (       a"  U S:X  a  U Vs/ s H  n[	        U5      PM     sn$ U$ s  snf )Nenvironments)
isinstancer   r   r   strr   )rR   valuevs      r/   _toml_valuerZ   R   sW    %'6<8995z%""sn'< %&1A&&L 's   A%c           	     l    U  VVs0 s H  u  pUc  M
  [        U5      [        X5      _M!     snn$ s  snnf r+   )rS   rZ   )datarR   rX   s      r/   _toml_dict_factoryr]   Z   s>     JC 	0	#C//  s   	00c                    U R                  U5      =nc  g[        X15      (       d.  [        S[        U5      R                   SUR                   S3US9eU$ )zBGet a value from the dictionary and verify it's the expected type.NUnexpected type  (expected )context)getrV   r(   typer?   r9   expected_typerR   rX   s       r/   _getrh   b   sd    s$e++#tE{334 5&//03
 	

 Lr.   c                :    [        XU5      =nc  [        U5      eU$ )zKGet a required value from the dictionary and verify it's the expected type.)rh   _PylockRequiredKeyErrorrf   s       r/   _get_requiredrk   o   s$    a,,5%c**Lr.   c                X   [        U [        U5      =nc  g[        U[        [        45      (       a!  [        S[        U5      R                   S3US9e[        U5       HI  u  pE[        XQ5      (       a  M  [        S[        U5      R                   SUR                   S3U SU S3S9e   U$ )	zMGet a list value from the dictionary and verify it's the expected items type.Nr_   z (expected Sequence)rb   r`   ra   [])	rh   r   rV   rW   bytesr(   re   r?   	enumerate)r9   expected_item_typerR   rX   iitems         r/   _get_sequencert   v   s     a3''0%#u&&#tE{3344HI
 	
 U#$33'"4:#6#6"7 8/889<%q1  $ Lr.   c                l    [        XU5      =nc  g U" U5      $ ! [         a  n[        XSS9UeSnAff = f)zGet a value from the dictionary, verify it's the expected type,
and convert to the target type.

This assumes the target_type constructor accepts the value.
Nrb   )rh   	Exceptionr(   )r9   rg   target_typerR   rX   es         r/   _get_asry      sF     a,,5;5!! ;#A3:;s    
3
.3c                :    [        XX#5      =nc  [        U5      eU$ )zbGet a required value from the dict, verify it's the expected type,
and convert to the target type.)ry   rj   )r9   rg   rw   rR   rX   s        r/   _get_required_asr{      s&     ;<<E%c**Lr.   c           	         [        XU5      =nc  g/ n U H  nU" U5      nUR                  U5        M     U$ ! [         a  n[        X S[	        U5       S3S9UeSnAff = f)z>Get list value from dictionary and verify expected items type.Nrm   rn   rb   )rt   appendrv   r(   len)	r9   rq   target_item_typerR   rX   resultrs   
typed_itemrx   s	            r/   _get_sequence_asr      s}     qc::CFOD)$/JMM*% 
 M  O#AaF}A/FGQNOs   "8 
A AA c                    [        U [        U5      =nc  g UR                  U5      $ ! [         a  n[	        XBS9UeSnAff = f)zIGet a dictionary value from the dictionary and convert it to a dataclass.Nrb   )rh   r   r:   rv   r(   )r9   rw   rR   rX   rx   s        r/   _get_objectr      sN     a#&&/;%%e,, ;#A3:;s   ( 
A
<Ac           	         [        U [        U5      =nc  g/ n U H%  nUR                  U5      nUR                  U5        M'     U$ ! [         a  n[        Xr S[        U5       S3S9UeSnAff = f)zJGet a list value from the dictionary and convert its items to a dataclass.Nrm   rn   rb   )rt   r   r:   r}   rv   r(   r~   )r9   r   rR   rX   r   rs   r   rx   s           r/   _get_sequence_of_objectsr      s     q'3//8*,FOD)44T:JMM*% 
 M  O#AaF}A/FGQNOs   +A 
A.A))A.c                :    [        XU5      =nc  [        U5      eU$ )zSGet a required list value from the dictionary and convert its items to a
dataclass.)r   rj   )r9   r   rR   r   s       r/   !_get_required_sequence_of_objectsr      s&    
 +1DDM%c**Mr.   c                X    [        U 5      (       d  [        SU < S35      e[        U 5      $ )z+Validate that a string is a NormalizedName.zName z is not normalized)r   r(   r   )rH   s    r/   _validate_normalized_namer      s-    d###eD83E$FGG$r.   c                8    U (       d  U(       d  [        S5      eg g )Nzpath or url must be provided)r(   )rM   urls     r/   _validate_path_urlr      s    #$BCC 4r.   c                    U (       d  g SU ;   a  U R                  SS5      S   $ SU ;   a  U R                  SS5      S   $ U $ )N/r   \)rsplitrL   s    r/   
_path_namer      sI     d{{{3"2&&	{{4#B''r.   c                f    U (       d  g [        U 5      R                  nUR                  SS5      S   $ )Nr   r   r   )r   rM   r   )r   url_paths     r/   	_url_namer      s-    }!!H??3"2&&r.   c                    U (       d  [        S5      e[        S U R                  5        5       5      (       d  [        S5      eU $ )Nz"At least one hash must be providedc              3  B   #    U  H  n[        U[        5      v   M     g 7fr+   )rV   rW   ).0hash_vals     r/   	<genexpr>#_validate_hashes.<locals>.<genexpr>  s     IXz(C((s   zHash values must be strings)r(   allvalues)hashess    r/   _validate_hashesr     s9    #$HIIIIII#$ABBMr.   c                  X    \ rS rSr% SrSrS\S'   S\S'   SS.     SS	 jjrSS
 jrSr	g)r(   i  z2Raised when when input data is not spec-compliant.N
str | Nonerc   rW   messagerb   c                   [        U[        5      (       aS  UR                  (       a*  U(       a  U SUR                   3OUR                  U l        OX l        UR                  U l        g X l        [	        U5      U l        g )N.)rV   r(   rc   r   rW   )selfcauserc   s      r/   __init__PylockValidationError.__init__  s\     e233}}4;wiq0   ' ==DL"Lu:DLr.   c                t    U R                   (       a  U R                   SU R                   < 3$ U R                  $ )Nz in rc   r   r   s    r/   __str__PylockValidationError.__str__%  s-    <<ll^4'788||r.   r   )r   zstr | Exceptionrc   r   r>   Noner>   rW   )
r?   r@   rA   rB   __doc__rc   __annotations__r   r   rD   r-   r.   r/   r(   r(     s?    <GZL #	&& 	&
 
&$r.   r(   c                  ,   ^  \ rS rSrSU 4S jjrSrU =r$ )rj   i+  c                "   > [         TU ]  SUS9  g )NzMissing required valuerb   )superr   )r   rR   	__class__s     r/   r    _PylockRequiredKeyError.__init__,  s    13?r.   r-   )rR   rW   r>   r   )r?   r@   rA   rB   r   rD   __classcell__)r   s   @r/   rj   rj   +  s    @ @r.   rj   c                      \ rS rSrSrSrg)r'   i0  z7Raised when encountering an unsupported `lock_version`.r-   Nr?   r@   rA   rB   r   rD   r-   r.   r/   r'   r'   0  s    Ar.   r'   c                      \ rS rSrSrSrg)PylockSelectErrori4  z:Base exception for errors raised by :meth:`Pylock.select`.r-   Nr   r-   r.   r/   r   r   4  s    Dr.   r   TF)frozeninitc                      \ rS rSr% S\S'   SrS\S'   SrS\S'   SrS\S'   S\S	'   SrS\S
'   SSSSS.             SS jjr	\
SS j5       rSrg)r$   i8  rW   re   Nr   r   rM   requested_revision	commit_idsubdirectory)r   rM   r   r   c                  [         R                  U SU5        [         R                  U SU5        [         R                  U SU5        [         R                  U SU5        [         R                  U SU5        [         R                  U SU5        g )Nre   r   rM   r   r   r   object__setattr__)r   re   r   rM   r   r   r   s          r/   r   PackageVcs.__init__A  sr     	4.4,4.4!57IJ4i84>r.   c                   U " [        U[        S5      [        U[        S5      [        U[        S5      [        U[        S5      [        U[        S5      [        U[        S5      S9n[        UR                  UR
                  5        U$ )Nre   r   rM   zrequested-revisionz	commit-idr   )re   r   rM   r   r   r   )rk   rW   rh   r   rM   r   )r8   r9   package_vcss      r/   r:   PackageVcs._from_dictS  sq    q#v.QU#af%#As,@A#AsK8an5
 	;++[__=r.   r-   )re   rW   r   r   rM   r   r   r   r   rW   r   r   r>   r   r<   )r?   r@   rA   rB   r   r   rM   r   r   r   rC   r:   rD   r-   r.   r/   r$   r$   8  s    
ICD*%)
)N#L*# )-#'? ? 	?
 ? '? ? !? 
?$ 
 
r.   r$   c                  r    \ rS rSr% S\S'   SrS\S'   SrS\S'   SSS	.       SS
 jjr\SS j5       r	Sr
g)r"   ia  rW   rM   Nbool | Noneeditabler   r   )r   r   c                   [         R                  U SU5        [         R                  U SU5        [         R                  U SU5        g )NrM   r   r   r   )r   rM   r   r   s       r/   r   PackageDirectory.__init__g  s:     	4.4X64>r.   c           	     l    U " [        U[        S5      [        U[        S5      [        U[        S5      S9$ )NrM   r   r   )rM   r   r   )rk   rW   rh   rI   r7   s     r/   r:   PackageDirectory._from_dicts  s3    q#v.!T:.an5
 	
r.   r-   )rM   rW   r   r   r   r   r>   r   r<   )r?   r@   rA   rB   r   r   r   r   rC   r:   rD   r-   r.   r/   r"   r"   a  sd    
I Hk #L*# !%#'
? 
? 	
?
 !
? 

? 
 
r.   r"   c                      \ rS rSr% SrS\S'   SrS\S'   SrS\S'   SrS\S	'   S
\S'   Sr	S\S'   SSSSSS.             SS jjr
\SS j5       rSrg)r!   i|  Nr   r   rM   
int | Nonesizedatetime | Noneupload_timeMapping[str, str]r   r   )r   rM   r   r   r   c                  [         R                  U SU5        [         R                  U SU5        [         R                  U SU5        [         R                  U SU5        [         R                  U SU5        [         R                  U SU5        g )Nr   rM   r   r   r   r   r   )r   r   rM   r   r   r   r   s          r/   r   PackageArchive.__init__  sp     	4,4.4.4<4624>r.   c                   U " [        U[        S5      [        U[        S5      [        U[        S5      [        U[        S5      [	        U[
        [        S5      [        U[        S5      S9n[        UR                  UR                  5        U$ )Nr   rM   r   upload-timer   r   )r   rM   r   r   r   r   )
rh   rW   intr   r{   r   r   r   rM   r   )r8   r9   package_archives      r/   r:   PackageArchive._from_dict  su    QU#af%af%Q-8#Aw0@(Kan5
 	?//1D1DEr.   r-   )r   r   rM   r   r   r   r   r   r   r   r   r   r>   r   r<   )r?   r@   rA   rB   r   r   rM   r   r   r   r   rC   r:   rD   r-   r.   r/   r!   r!   |  s    CD*D*#'K'#L*#
 '+#'? ? 	?
 ? %? "? !? 
?$ 
 
r.   r!   c                      \ rS rSr% SrS\S'   SrS\S'   SrS\S'   SrS\S'   Sr	S	\S
'   S\S'   SSSSSS.             SS jjr
\SS j5       r\SS j5       rSrg)r#   i  Nr   rH   r   r   r   rM   r   r   r   r   rH   r   r   rM   r   c                  [         R                  U SU5        [         R                  U SU5        [         R                  U SU5        [         R                  U SU5        [         R                  U SU5        [         R                  U SU5        g NrH   r   r   rM   r   r   r   r   rH   r   r   rM   r   r   s          r/   r   PackageSdist.__init__  p     	4.4<4,4.4.462r.   c                   U " [        U[        S5      [        U[        S5      [        U[        S5      [        U[        S5      [        U[        S5      [	        U[
        [        S5      S9n[        UR                  UR                  5        U$ NrH   r   r   rM   r   r   )rH   r   r   rM   r   r   
rh   rW   r   r   r{   r   r   r   rM   r   )r8   r9   package_sdists      r/   r:   PackageSdist._from_dict  u    af%Q-8QU#af%af%#Aw0@(K
 	=--}/@/@Ar.   c                    U R                   =(       d1    [        U R                  5      =(       d    [        U R                  5      nU(       d  [        S5      eU$ )zGet the filename of the sdist.zCannot determine sdist filenamerH   r   rM   r   r   r(   r   filenames     r/   r   PackageSdist.filename  =     99L
499 5L4889L'(IJJr.   r-   rH   r   r   r   r   r   rM   r   r   r   r   r   r>   r   r<   r   r?   r@   rA   rB   rH   r   r   r   rM   r   r   rC   r:   propertyr   rD   r-   r.   r/   r#   r#         D*#'K'CD*D*
  '+3 3 %	3
 3 3 3 "3 
3$ 
 
  r.   r#   c                      \ rS rSr% SrS\S'   SrS\S'   SrS\S'   SrS\S'   Sr	S	\S
'   S\S'   SSSSSS.             SS jjr
\SS j5       r\SS j5       rSrg)r%   i  Nr   rH   r   r   r   rM   r   r   r   r   r   c                  [         R                  U SU5        [         R                  U SU5        [         R                  U SU5        [         R                  U SU5        [         R                  U SU5        [         R                  U SU5        g r   r   r   s          r/   r   PackageWheel.__init__  r   r.   c                   U " [        U[        S5      [        U[        S5      [        U[        S5      [        U[        S5      [        U[        S5      [	        U[
        [        S5      S9n[        UR                  UR                  5        U$ r   r   )r8   r9   package_wheels      r/   r:   PackageWheel._from_dict  r   r.   c                    U R                   =(       d1    [        U R                  5      =(       d    [        U R                  5      nU(       d  [        S5      eU$ )zGet the filename of the wheel.zCannot determine wheel filenamer   r   s     r/   r   PackageWheel.filename  r   r.   r-   r   r<   r   r   r-   r.   r/   r%   r%     r   r.   r%   c                  N   \ rS rSr% S\S'   SrS\S'   SrS\S'   SrS	\S
'   SrS\S'   Sr	S\S'   Sr
S\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SSSSSSSSSSSSS.                           S!S jjr\S"S j5       r\S#S j5       rS rg)$r    i  r   rH   NVersion | NoneversionMarker | NonemarkerSpecifierSet | Nonerequires_python"Sequence[Mapping[str, Any]] | NonedependenciesPackageVcs | NonevcsPackageDirectory | None	directoryPackageArchive | Nonearchiver   indexPackageSdist | NonesdistSequence[PackageWheel] | Nonewheelsattestation_identitiesMapping[str, Any] | Nonetool)r   r  r  r  r  r
  r  r  r  r  r  r  c               Z   [         R                  U SU5        [         R                  U SU5        [         R                  U SU5        [         R                  U SU5        [         R                  U SU5        [         R                  U SU5        [         R                  U SU5        [         R                  U SU5        [         R                  U S	U	5        [         R                  U S
U
5        [         R                  U SU5        [         R                  U SU5        [         R                  U SU5        g )NrH   r   r  r  r  r  r
  r  r  r  r  r  r  r   )r   rH   r   r  r  r  r  r
  r  r  r  r  r  r  s                 r/   r   Package.__init__  s    $ 	4.4G44624!2OD4>4,4i84G44%04%04624!9;QR4.r.   c                   U " [        U[        [        S5      [        U[        [        S5      [        U[        [
        S5      [        U[        S5      [        U[        [        S5      [        U[        S5      [        U[        S5      [        U[        S5      [        U[        S	5      [        U[        S
5      [        U[         S5      [        U[        S5      [        U[        S5      S9n[#        UR$                  5      ['        UR(                  =(       d    / 5      -   n[#        UR*                  5      [#        UR,                  5      -   [#        UR.                  5      -   nUS:  a  US:  a  [1        S5      eUS:X  a  US:w  a  [1        S5      e[3        UR(                  =(       d    / 5       H  u  pV [5        UR6                  5      u  px  n	XrR:                  :w  a*  [1        SUR6                  < SUR:                  < 3SU S3S9eUR<                  (       d  Mk  XR<                  :w  d  M|  [1        SUR6                  < S[        UR<                  5      < 3SU S3S9e   UR$                  (       a   [?        UR$                  R6                  5      u  pxXrR:                  :w  a0  [1        SUR$                  R6                  < SUR:                  < 3S
S9eUR<                  (       aH  XR<                  :w  a9  [1        SUR$                  R6                  < S[        UR<                  5      < 3S
S9e [3        UR@                  =(       d    / 5       H  u  p[[C        U[        S5        M     U$ ! [8         a"  n
[1        SUR6                  < 3SU S3S9U
eS n
A
ff = f! [8         a(  n
[1        SUR$                  R6                  < 3S
S9U
eS n
A
ff = f! [8         a  n
[1        U
SW S3S9U
eS n
A
ff = f)NrH   r   requires-pythonr  r  r  r
  r  r  r  r  zattestation-identitiesr  )rH   r   r  r  r  r  r
  r  r  r  r  r  r  r   zFNone of vcs, directory, archive must be set if sdist or wheels are setr   zRExactly one of vcs, directory, archive must be set if sdist and wheels are not setzInvalid wheel filename zwheels[rn   rb   zName in z% is not consistent with package name zVersion in z( is not consistent with package version zInvalid sdist filename kindzattestation-identities[)"r{   rW   r   ry   r   r   rt   r   r   r   r$   r"   r!   rh   r#   r   r%   rI   r  r~   r  r  r
  r  r(   rp   r   r   rv   rH   r   r   r  rk   )r8   r9   packagedistributionsdirect_urlsrr   wheelrH   r   rO   rx   attestation_identitys               r/   r:   Package._from_dict7  s   !!S*CVLAsGY7#AsL:KL&q'>B1c684Az51!!%5{C>9=q#w'aw7+A|XF#0G=U#Va&)
 W]]+c'..2FB.GGW%6%6 77$w:OO 	 1q'X  A+"2'2  "'.."6B7HA(<U^^(L%1 ||#+u~~0 1$$+LL#35%aSN 
 7oo#=+!%..!3 4''*7??';&>@%aSN  8( == 4W]]5K5K L ||#+w}}558 9$$+LL#35# 
 7oo#=+!'--"8"8!; <''*7??';&>@# 
	+4..4",' 2C@, ]  +-enn-?@%aSN (  +-gmm.D.D-GH# ,  	'4QCq9	sH   1M".!N (8O "
N,N		N
O#N>>O
O$OO$c                J    U R                   =(       d    U R                  (       + $ r+   )r  r  r   s    r/   	is_directPackage.is_direct  s    JJ-$++..r.   r-   )rH   r   r   r   r  r  r  r  r  r  r  r  r
  r	  r  r  r  r   r  r  r  r  r  r  r  r  r>   r   r<   )r>   rI   )r?   r@   rA   rB   r   r   r  r  r  r  r
  r  r  r  r  r  r  r   rC   r:   r   r!  rD   r-   r.   r/   r    r      sn   
"G^" FM +/O(/7;L4;!C	!)-I&-%)G")E:!%E%,0F)0AE>E%)D
") #' $/3;?!%-1)- %)04EI)-/ /  	/
 / -/ 9/ / +/ '/ / #/ ./ !C/ '/  
!/@ N N` / /r.   r    c                  4   \ rS rSr% SrS\S'   SrS\S'   SrS\S	'   SrS
\S'   Sr	S\S'   Sr
S\S'   S\S'   S\S'   SrS\S'   SSSSSSS.                   SS jjr\SS j5       r\SS j5       rS S jrS!S jrSSSSS.         S"S jjrSrg)#r&   i  z#A class representing a pylock file.r   lock_versionNSequence[Marker] | NonerU   r  r  Sequence[NormalizedName] | NoneextrasSequence[str] | Nonedependency_groupsdefault_groupsrW   
created_bySequence[Package]packagesr  r  )rU   r  r'  r)  r*  r  c       	           [         R                  U SU5        [         R                  U SU5        [         R                  U SU5        [         R                  U SU5        [         R                  U SU5        [         R                  U SU5        [         R                  U SU5        [         R                  U SU5        [         R                  U S	U	5        g )
Nr$  rU   r  r'  r)  r*  r+  r-  r  r   )
r   r$  rU   r  r'  r)  r*  r+  r-  r  s
             r/   r   Pylock.__init__  s     	4>4>4!2OD4624!46GH4!1>B4z:4X64.r.   c                R   U " [        U[        [        S5      [        U[        [        S5      [        U[        [
        S5      [        U[        S5      [        U[        S5      [        U[        S5      [        U[        [        S5      [        U[        S5      [        U[        S	5      S
9	n[        S5      UR                  s=::  a  [        S5      :  d  O  [        SUR                   S35      eUR                  [        S5      :  a   [         R#                  SUR                  5        U$ )Nzlock-versionrU   r'  zdependency-groupszdefault-groupsz
created-byr  r-  r  )	r$  rU   r'  r)  r*  r+  r  r-  r  12zpylock version z is not supportedz1.0z(pylock minor version %s is not supported)r{   rW   r   r   r   r   rt   rk   ry   r   r   r    rh   r   r$  r'   _loggerwarning)r8   r9   pylocks      r/   r:   Pylock._from_dict  s    )!S'>J)!S&.I#As,ExP+As4GH(C1AB$Q\:#AsL:KL6q':Na&)

 s|v22AWS\A/!&"5"5!66GH  /OO:F<O<O r.   c               $    U R                  U5      $ )zCreate and validate a Pylock instance from a TOML dictionary.

Raises :class:`PylockValidationError` if the input data is not
spec-compliant.
)r:   r7   s     r/   	from_dictPylock.from_dict  s     ~~a  r.   c                4    [         R                  " U [        S9$ )z1Convert the Pylock instance to a TOML dictionary.)dict_factory)dataclassesasdictr]   r   s    r/   to_dictPylock.to_dict  s    !!$5GHHr.   c                B    U R                  U R                  5       5        g)ziValidate the Pylock instance against the specification.

Raises :class:`PylockValidationError` otherwise.N)r8  r>  r   s    r/   validatePylock.validate  s     	t||~&r.   )environmenttagsr'  r)  c             #    #    [        U=(       d
    [        5       5      n[        S[        U=(       d    0 [	        U=(       d    / 5      [	        Uc  U R
                  =(       d    / OU5      S95      nU(       a  US   O[        5       S   nU R                  (       aF  U R                  R                  U5      (       d&  [        SU< S[        U R                  5      < 35      eU R                  (       aH  U R                   H-  nUR                  [        SU=(       d    0 5      SS	9(       d  M-    O   [        S
5      e0 n	[        U R                  5       H  u  pUR                  (       a!  UR                  R                  USS	9(       d  M7  UR                  (       aX  UR                  R                  U5      (       d8  [        SU< S[        UR                  5      < SUR                   < SU
 S3	5      eUR                   U	;   a/  [        SUR                   < SU
 SXR                      S    S35      eX4XR                   '   M     U	R#                  5        H  u  pUR$                  b  XR$                  4v   M#  UR&                  b  XR&                  4v   MA  UR(                  b  XR(                  4v   M_  UR*                  (       al  [-        U" S UR*                   5       5      S5      nU(       a  X4v   M  UR.                  b  XR.                  4v   M  [        SUR                   < SU
 S35      eUR.                  b  XR.                  4v   M  [0        e   g7f)a?  Select what to install from the lock file.

The *environment* and *tags* parameters represent the environment being
selected for. If unspecified, ``packaging.markers.default_environment()`` and
``packaging.tags.sys_tags()`` are used.

The *extras* parameter represents the extras to install.

The *dependency_groups* parameter represents the groups to install. If
unspecified, the default groups are used.

This method must be used on valid Pylock instances (i.e. one obtained
from :meth:`Pylock.from_dict` or if constructed manually, after calling
:meth:`Pylock.validate`).
zdict[str, str | frozenset[str]]N)r'  r)  python_full_versionzpython_full_version zI in provided environment does not satisfy the Python version requirement zdict[str, str]requirementrb   zXProvided environment does not satisfy any of the environments specified in the lock file	lock_filez for package z at packages[rn   z Multiple packages with the name z are selected at packages[z] and packages[r   c              3  V   #    U  H  nU[        UR                  5      S    4v   M!     g7f)r   N)r   r   )r   r  s     r/   r    Pylock.select.<locals>.<genexpr>p  s+      -%3E  4U^^ DR HI%3s   ')z6No wheel found matching the provided tags for package z'], and no sdist available as a fallback)r   r   r   dict	frozensetr*  r   r  containsr   rW   rU   evaluaterp   r-  r  rH   r   r  r
  r  r  nextr  NotImplementedError)r   rC  rD  r'  r)  compatible_tags_selectorenvenv_python_full_version
env_markerselected_packages_by_namepackage_indexr  
best_wheels                r/   selectPylock.select  sk    @ $C4CU8:#V  -!r 2."+(0 ((.B*#
  -.$&'<= 	  (<(<(E(E#)
 )
 $&'>&A B"4#7#78;=  "//
&&);+<"=} '   	 0 (>  EG!&/&>"M ~~gnn&=&=c;&=&W &&w/F/F/O/O'0 0 (*+B*E F##&w'>'>#?"B-||&mM?!E  ||88'6w||6F G,,9? ;  9,, G JK1N  8E6N%ll3C '?H '@&F&F&H"M{{&{{** "".0000 ,.. 
 ", -%,^^-  
 !--]].!==00+''.||&6 7''4o 6?@  *}},, *)[ 'Is   D$M*H+Mr-   )r$  r   rU   r%  r  r  r'  r&  r)  r(  r*  r(  r+  rW   r-  r,  r  r  r>   r   r<   )r>   r=   )r>   r   )
rC  zEnvironment | NonerD  zSequence[Tag] | Noner'  Collection[str] | Noner)  rZ  r>   zfIterator[tuple[Package, PackageVcs | PackageDirectory | PackageArchive | PackageWheel | PackageSdist]])r?   r@   rA   rB   r   r   rU   r  r'  r)  r*  r  r   rC   r:   r8  r>  rA  rX  rD   r-   r.   r/   r&   r&     s\   -,0L)0+/O(/.2F+2.2+2+/N(/O%)D
") 15/32626/3 *./ / .	/
 -/ 0/ 0/ -/ / $/ '/ 
/0  , ! !I' +/%))-48l* (l* #	l*
 'l* 2l*	
l* l*r.   r&   )r>   z	list[str])rM   r   r>   rI   )rR   rW   r>   rW   )rR   rW   rX   r	   r>   r	   )r\   zlist[tuple[str, Any]]r>   zdict[str, Any])r9   r=   rg   type[_T]rR   rW   r>   z	_T | None)r9   r=   rg   r[  rR   rW   r>   r1   )r9   r=   rq   r[  rR   rW   r>   zSequence[_T] | None)
r9   r=   rg   r[  rw   Callable[[_T], _T2]rR   rW   r>   z
_T2 | None)
r9   r=   rg   r[  rw   r\  rR   rW   r>   r2   )
r9   r=   rq   r[  r   r\  rR   rW   r>   zlist[_T2] | None)r9   r=   rw   type[_FromMappingProtocolT]rR   rW   r>   z_FromMappingProtocolT | None)r9   r=   r   r]  rR   rW   r>   z"list[_FromMappingProtocolT] | None)r9   r=   r   r]  rR   rW   r>   zSequence[_FromMappingProtocolT])rH   rW   r>   r   )rM   r   r   r   r>   r   )rM   r   r>   r   )r   r   r>   r   )r   r=   r>   r=   )S
__future__r   r<  loggingrecollections.abcr   r   r   r   typingr   r	   r
   r   r   r   urllib.parser   markersr   r   r   
specifiersr   rD  r   r   utilsr   r   r   r   r   r   r   r   pathlibr   typing_extensionsr   r   	getLoggerr?   r3  r,   r0   r1   r2   r4   rE   compilerJ   r)   rS   rZ   r]   rh   rk   rt   ry   r{   r   r   r   r   r   r   r   r   r   rv   r(   rj   r'   r   r$   r"   r!   r#   r%   r    r&   r-   r.   r/   <module>rk     s;   "   	 - !   " = = $ ;  4&


H
% T]en;8 ;
   7?ST  zz"<= U
!
.6=@,;;; %; 
	;
 ;&


 %
 
	

 	
  * 
	
 &	;	;'B	;IL	;!	;,GNQ' ,GNQ$ D

'I <@3 @
B$9 BE	 E $U#% % $%P $U#
 
 $
4 $U#% % $%P $U#- - $-` $U#- - $-` $U#B/ B/ $B/J $U#{* {* ${*r.   