bib|ddlmZddlZddlZddlZddlmZmZddlmZddl m Z ddl m Z m Z m Z mZmZmZddlmZdd lmZmZmZdd lmZdd lmZmZdd lmZmZmZm Z dd l!m"Z"e rddlm#Z#m$Z$ddl%m&Z&ddl'm(Z(ddlm)Z)ej*e+Z,gdZ-dhdZ.edZ/edZ0GddeZ1ede1Z2ej3dZ4did Z5djd#Z6dkd&Z7dld*Z8dmd0Z9dnd1Z:dod4Z;dpd8Zdsd?Z?dtdAZ@dudCZAdvdFZBdwdJZCdxdKZDdydLZEdzdNZFGdOdPeGZHGdQdReHZIGdSdTeHZJGdUdVeGZKedWdXYGdZd[ZLedWdXYGd\d]ZMedWdXYGd^d_ZNedWdXYGd`daZOedWdXYGdbdcZPedWdXYGdddeZQedWdXYGdfdgZRdS){) annotationsN)MappingSequence) dataclass)datetime) TYPE_CHECKINGAnyCallableProtocolTypeVarcast)urlparse) EnvironmentMarkerdefault_environment) SpecifierSet)create_compatible_tags_selectorsys_tags)NormalizedNameis_normalized_nameparse_sdist_filenameparse_wheel_filename)Version) CollectionIterator)Path)Self)Tag) PackagePackageArchivePackageDirectory PackageSdist PackageVcs PackageWheelPylockPylockUnsupportedVersionErrorPylockValidationErroris_valid_pylock_pathreturn list[str]ctSN)__all__h/home/jenkins/jenkins/workspace/simtester-sanitize/venv/lib/python3.11/site-packages/packaging/pylock.py__dir__r26s Nr0_T_T2c&eZdZeddZdS)_FromMappingProtocoldMapping[str, Any]r*rcdSr-r/clsr7s r1 _from_dictz_FromMappingProtocol._from_dict?s7:sr0Nr7r8r*r)__name__ __module__ __qualname__ classmethodr<r/r0r1r6r6>s&:::[:::r0r6_FromMappingProtocolT)boundz^pylock\.([^.]+)\.toml$pathrboolcp|jdkp+tt|jS)z4Check if the given path is a valid pylock file path.z pylock.toml)namerE_PYLOCK_FILE_NAME_REmatchrDs r1r)r)Is- 9 % T.B.H.H.S.S)T)TTr0keystrc.|ddS)N_-)replace)rKs r1 _toml_keyrQNs ;;sC  r0valuer ct|tttfrt |St|t r|dkr d|DS|S)N environmentsc,g|]}t|Sr/)rL).0vs r1 z_toml_value..Vs&&&1A&&&r0) isinstancerrrrLr)rKrRs r1 _toml_valuerZRs\%'6<8995zz%""'sn'<'<&&&&&& Lr0datalist[tuple[str, Any]]dict[str, Any]cd|DS)NcTi|]%\}}|t|t||&Sr-)rQrZ)rVrKrRs r1 z&_toml_dict_factory..[s>    C   # C//   r0r/)r[s r1_toml_dict_factoryraZs#     r0r7r8 expected_typetype[_T] _T | Nonec||x}dSt||s/tdt|jd|jd||S)zBGet a value from the dictionary and verify it's the expected type.NUnexpected type (expected )context)getrYr(typer>r7rbrKrRs r1_getrnbs~s$t e] + + # 3tE{{3 3 3&/ 3 3 3    Lr0cJt|||x}t||S)zKGet a required value from the dictionary and verify it's the expected type.)rn_PylockRequiredKeyErrorrms r1 _get_requiredrqos,a,,,5%c*** Lr0expected_item_typeSequence[_T] | Nonectt|t|x}dSt|ttfr't dt |jd|t|D]J\}}t||s5t dt |jd|jd|d|dK|S) zMGet a list value from the dictionary and verify it's the expected items type.Nrfz (expected Sequence)rirgrh[]) rnrrYrLbytesr(rlr> enumerate)r7rrrKrRiitems r1 _get_sequencer{vsa3'''0t%#u&& # ItE{{3 I I I    U##4$ 233 '<4::#6<</8<<<     Lr0 target_typeCallable[[_T], _T2] _T2 | Nonect|||x}dS ||S#t$r}t|||d}~wwxYw)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. Nri)rn Exceptionr()r7rbr|rKrRes r1_get_asrsia,,,5t;{5!!! ;;;#As333:;s " A>AcLt||||x}t||S)zfGet a required value from the dict, verify it's the expected type, and convert to the target type.)rrp)r7rbr|rKrRs r1_get_required_asrs0M;<<<E%c*** Lr0target_item_typelist[_T2] | Nonec t|||x}dSg} |D]"}||}||#n7#t$r*}t||dt |d|d}~wwxYw|S)z>Get list value from dictionary and verify expected items type.Nrurvri)r{appendrr(len) r7rrrrKrRresultrz typed_itemrs r1_get_sequence_asrsq"4c:::Ct FO & &D))$//J MM* % % % % & OOO#A#/F/FF /F/F/FGGGQNO Ms%? A3 %A..A3type[_FromMappingProtocolT]_FromMappingProtocolT | Nonect|t|x}dS ||S#t$r}t |||d}~wwxYw)zIGet a dictionary value from the dictionary and convert it to a dataclass.Nri)rnrr<rr()r7r|rKrRrs r1 _get_objectrsma#&&&/t;%%e,,, ;;;#As333:;s1 AA  A"list[_FromMappingProtocolT] | Nonec t|t|x}dSg} |D],}||}||-n7#t$r*}t ||dt |d|d}~wwxYw|S)zJGet a list value from the dictionary and convert its items to a dataclass.Nrurvri)r{rr<rrr(r)r7rrKrRrrzrrs r1_get_sequence_of_objectsrsq'3///8t*,FO & &D)44T::J MM* % % % % & OOO#A#/F/FF /F/F/FGGGQNO Ms/A B%A==BSequence[_FromMappingProtocolT]cJt|||x}t||S)zWGet a required list value from the dictionary and convert its items to a dataclass.)rrp)r7rrKrs r1!_get_required_sequence_of_objectsrs/ +1.>DDDM%c*** Mr0rGrcdt|std|dt|S)z+Validate that a string is a NormalizedName.zName z is not normalized)rr(r)rGs r1_validate_normalized_namers; d # #H#$FD$F$F$FGGG $  r0 str | NoneurlNonec0|s|stddSdS)Nzpath or url must be provided)r()rDrs r1_validate_path_urlrs: DD#$BCCCDDDDr0c|sdSd|vr|dddSd|vr|dddS|S)N/r\)rsplitrJs r1 _path_namersZ t d{{{{3""2&& {{4##B'' r0cj|sdSt|j}|dddS)Nrrr)rrDr)rurl_paths r1 _url_namers6 t}}!H ??3 " "2 &&r0hashesc|stdtd|Dstd|S)Nz"At least one hash must be providedc3@K|]}t|tVdSr-)rYrL)rVhash_vals r1 z#_validate_hashes..s,IIXz(C((IIIIIIr0zHash values must be strings)r(allvalues)rs r1_validate_hashesrsV J#$HIII IIIII I IC#$ABBB Mr0cBeZdZUdZdZded<ded<dddd Zdd ZdS)r(z2Raised when when input data is not spec-compliant.NrrjrLmessagericausestr | Exceptionr*rct|tr7|jr|r |d|jn|j|_n||_|j|_dS||_t ||_dS)N.)rYr(rjrrL)selfrrjs r1__init__zPylockValidationError.__init__sw e2 3 3 &} '4;Nw00000  '  =DLLL"DLu::DLLLr0c@|jr|jd|jS|jS)Nz in )rjrrs r1__str__zPylockValidationError.__str__%s, < 9l88 88 8|r0)rrrjrr*rr*rL)r>r?r@__doc__rj__annotations__rrr/r0r1r(r( sm<<GLLL # &&&&&&$r0r(c eZdZdfd ZxZS)rprKrLr*rcNtd|dS)NzMissing required valueri)superr)rrK __class__s r1rz _PylockRequiredKeyError.__init__,s' 13?????r0)rKrLr*r)r>r?r@r __classcell__)rs@r1rprp+sG@@@@@@@@@@r0rpceZdZdZdS)r'z7Raised when encountering an unsupported `lock_version`.Nr>r?r@rr/r0r1r'r'0sAAAAr0r'ceZdZdZdS)PylockSelectErrorz:Base exception for errors raised by :meth:`Pylock.select`.Nrr/r0r1rr4sDDDDr0rTF)frozeninitceZdZUded<dZded<dZded<dZded<ded<dZded <ddddd dd Ze ddZ dS)r$rLrlNrrrDrequested_revision commit_id subdirectory)rrDrrr*rcVt|d|t|d|t|d|t|d|t|d|t|d|dS)NrlrrDrrrobject __setattr__)rrlrrDrrrs r1rzPackageVcs.__init__As 4...4,,,4...4!57IJJJ4i8884>>>>>r0r7r8rc L|t|tdt|tdt|tdt|tdt|tdt|td}t|j|j|S)NrlrrDzrequested-revisionz commit-idr)rlrrDrrr)rqrLrnrrDr)r;r7 package_vcss r1r<zPackageVcs._from_dictSscq#v..QU##af%%#As,@AA#AsK88an55     ;+[_===r0)rlrLrrrDrrrrrLrrr*rr=) r>r?r@rrrDrrrrAr<r/r0r1r$r$8s IIICD%)))))NNN#L#### )-#'??????$   [   r0r$c^eZdZUded<dZded<dZded<ddddd ZeddZdS)r"rLrDN bool | Noneeditablerr)rrr*rct|d|t|d|t|d|dS)NrDrrr)rrDrrs r1rzPackageDirectory.__init__gsR 4...4X6664>>>>>r0r7r8rc |t|tdt|tdt|tdS)NrDrr)rDrr)rqrLrnrEr:s r1r<zPackageDirectory._from_dictssHsq#v..!T:..an55    r0)rDrLrrrrr*rr=) r>r?r@rrrrrAr<r/r0r1r"r"as III H    #L#### !%#' ? ? ? ? ? ?   [   r0r"ceZdZUdZded<dZded<dZded<dZded<d ed <dZded <dddddd ddZ e ddZ dS)r!NrrrD int | Nonesizedatetime | None upload_timeMapping[str, str]rr)rrDrrrr*rcVt|d|t|d|t|d|t|d|t|d|t|d|dS)NrrDrrrrr)rrrDrrrrs r1rzPackageArchive.__init__s 4,,,4...4...4 <<<462224>>>>>r0r7r8rc X|t|tdt|tdt|tdt|tdt |t t dt|td}t|j|j |S)NrrDr upload-timerr)rrDrrrr) rnrLintrrrrrrDr)r;r7package_archives r1r<zPackageArchive._from_dicts#QU##af%%af%%Q-88#Aw0@(KKan55     ?/1DEEEr0)rrrDrrrrrrrrrr*rr=) r>r?r@rrrDrrrrrAr<r/r0r1r!r!|sCDD#'K''''#L#### '+#'??????$   [   r0r!ceZdZUdZded<dZded<dZded<dZded<dZded <d ed <dddddd ddZ e ddZ e ddZ dS)r#NrrGrrrrDrrrrrGrrrDrr*rcVt|d|t|d|t|d|t|d|t|d|t|d|dSNrGrrrDrrrrrGrrrDrrs r1rzPackageSdist.__init__ 4...4 <<<4,,,4...4...4622222r0r7r8rc X|t|tdt|tdt|tdt|tdt|tdt |t t d}t|j|j |SNrGrrrDrr)rGrrrDrr rnrLrrrrrrrDr)r;r7 package_sdists r1r<zPackageSdist._from_dictaf%%Q-88QU##af%%af%%#Aw0@(KK     =-}/@AAAr0rLc|jp't|jpt|j}|st d|S)zGet the filename of the sdist.zCannot determine sdist filenamerGrrDrrr(rfilenames r1rzPackageSdist.filenameF9L 49 5 5L489L9L K'(IJJ Jr0rGrrrrrrDrrrrrr*rr=rr>r?r@rGrrrrDrrrAr<propertyrr/r0r1r#r#D#'K''''CDD  '+333333$   [ Xr0r#ceZdZUdZded<dZded<dZded<dZded<dZded <d ed <dddddd ddZ e ddZ e ddZ dS)r%NrrGrrrrDrrrrrr*rcVt|d|t|d|t|d|t|d|t|d|t|d|dSrrrs r1rzPackageWheel.__init__rr0r7r8rc X|t|tdt|tdt|tdt|tdt|tdt |t t d}t|j|j |Srr)r;r7 package_wheels r1r<zPackageWheel._from_dictrr0rLc|jp't|jpt|j}|st d|S)zGet the filename of the wheel.zCannot determine wheel filenamerrs r1rzPackageWheel.filenamerr0rr=rrr/r0r1r%r%rr0r%c eZdZUded<dZded<dZded<dZded <dZd ed <dZd ed <dZ ded<dZ ded<dZ ded<dZ ded<dZ ded<dZd ed<dZded<ddddddddddddd d%dZed&d"Zed'd$ZdS)(r rrGNVersion | Noneversion Marker | NonemarkerSpecifierSet | Nonerequires_python"Sequence[Mapping[str, Any]] | None dependenciesPackageVcs | NonevcsPackageDirectory | None directoryPackageArchive | NonearchiverindexPackageSdist | NonesdistSequence[PackageWheel] | Nonewheelsattestation_identitiesMapping[str, Any] | Nonetool) rrrrrrr r r rrrr*rc t|d|t|d|t|d|t|d|t|d|t|d|t|d|t|d|t|d | t|d | t|d | t|d | t|d | dS)NrGrrrrrrr r r rrrr)rrGrrrrrrr r r rrrs r1rzPackage.__init__sE$ 4...4G444462224!2ODDD4>>>4,,,4i8884G4444%0004%000462224!9;QRRR4.....r0r7r8rc|t|ttdt|ttdt|tt dt |tdt|ttdt|tdt|tdt|tdt|td t|td t|t d t |td t|td  }t#|jt'|jpgz}t#|jt#|jzt#|jz}|dkr|dkrt1d|dkr|dkrt1dt3|jpgD]\}} t5|j\}}} } n0#t8$r#} t1d|jd|d| d} ~ wwxYw||jkr%t1d|jd|jd|d|jr=||jkr2t1d|jdt|jd|d|jr t?|jj\}}n1#t8$r$} t1d|jjd | d} ~ wwxYw||jkr&t1d|jjd|jd |jr>||jkr3t1d|jjdt|jd  t3|j pgD]\}} tC| tdn(#t8$r} t1| d|d| d} ~ wwxYw|S)NrGrrequires-pythonrrrrr r r rzattestation-identitiesr) rGrrrrrrr r r rrrrzFNone of vcs, directory, archive must be set if sdist or wheels are setrzRExactly one of vcs, directory, archive must be set if sdist and wheels are not setzInvalid wheel filename zwheels[rvrizName in z% is not consistent with package name z Version in z( is not consistent with package version zInvalid sdist filename kindzattestation-identities[)"rrLrrrrr{rrrr$r"r!rnr#rr%rEr rrrrr r(rxrrrrGrrrrq) r;r7package distributions direct_urlsrywheelrGrrNrattestation_identitys r1r<zPackage._from_dict7s#!!S*CVLLAsGY77#AsL:KLL&q'>BB1c6844Az511!!%5{CC>9==q#w''aw77+A|XFF#0G=U#V#Va&))   W]++c'.2FB.G.GG   W%6 7 7 7$w:O:O O  1  q'X  A  +"2"2'2 "'."6B77  HAu (r?r@rrrrrrrr r r rrrrrAr<rrr/r0r1r r sy"G"""" F    +/O////7;L;;;;!C!!!!)-I----%)G))))E!%E%%%%,0F0000AEEEEE%)D)))) #' $/3;?!%-1)- %)04EI)-//////@NNN[N`///X///r0r ceZdZUdZded<dZded<dZded<dZd ed <dZd ed <dZ d ed <ded<ded<dZ ded<dddddddd'dZ e d(dZ e d(dZd)dZd*dZdddddd+d&ZdS),r&z#A class representing a pylock file.r lock_versionNSequence[Marker] | NonerTrrSequence[NormalizedName] | NoneextrasSequence[str] | Nonedependency_groupsdefault_groupsrL created_bySequence[Package]packagesrr)rTrr!r#r$rr*rc t|d|t|d|t|d|t|d|t|d|t|d|t|d|t|d|t|d | dS) NrrTrr!r#r$r%r'rr) rrrTrr!r#r$r%r'rs r1rzPylock.__init__s 4>>>4>>>4!2ODDD462224!46GHHH4!1>BBB4z:::4X6664.....r0r7r8rc|t|ttdt|ttdt|tt dt |tdt |tdt|tdt|ttdt|tdt|td  }td |jcxkrtd ksntd |jd|jtdkr t d|j|S)Nz lock-versionrTr!zdependency-groupszdefault-groupsz created-byrr'r) rrTr!r#r$r%rr'r12zpylock version z is not supportedz1.0z(pylock minor version %s is not supported)rrLrrrrr{rqrrrr rnrrr'_loggerwarning)r;r7pylocks r1r<zPylock._from_dicts9)!S'>JJ)!S&.II#As,ExPP+As4GHH(C1ABB$Q\::#AsL:KLL6q':NNa&))    s||v2AAAAWS\\AAAA/H&"5HHH    / / OO:F| jr_t-|d| jDd} | r| | fVv| j | | jfVtd| jd | d| j | | jfVt0dS)aSelect 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`). zdict[str, str | frozenset[str]]N)r!r#python_full_versionzpython_full_version zI in provided environment does not satisfy the Python version requirement zdict[str, str] requirementrizXProvided environment does not satisfy any of the environments specified in the lock file lock_filez for package z at packages[rvz Multiple packages with the name z are selected at packages[z] and packages[rc3NK|] }|t|jdfV!dS)rN)rr)rVrs r1rz Pylock.select..psK--! 4U^ D DR HI------r0z6No wheel found matching the provided tags for package z'], and no sdist available as a fallback)rrr dict frozensetr$rrcontainsrrLrTevaluaterxr'rrGrrrr rnextr NotImplementedError) rr8r9r!r#compatible_tags_selectorenvenv_python_full_version env_markerselected_packages_by_name package_indexr best_wheels r1selectz Pylock.selectsv@$C4CU8::#V#V  - !r 2.."+(0(.B*##       >K- . .$&&'<=    (<(E(E #) )  $='>=="4#788==    "/   &&);+<"==}'E (> EG!&/ &>&>! O! O "M7~ gn&=&=c;&=&W&W & w/F/O/O'00 (E+BEE#&w'>#?#?EE|EE5BEEE|888'Nw|NN,9NN 9', G JNNN8Eg6N %gl 3 3'@&F&F&H&H- *- * "M7{&w{*****".w000000,w..... * ",,--%,^---   !:-----].!7=00000+@'.|@@'4@@@*w},,,,,*)[- *- *r0)rrrTrrrr!r r#r"r$r"r%rLr'r&rrr*rr=)r*r8)r*r) r8r:r9r;r!r<r#r<r*r=)r>r?r@rrrTrr!r#r$rrrAr<r0r5r7rPr/r0r1r&r&sx--,0L0000+/O////.2F2222.22222+/N////OOO%)D)))) 15/32626/3*.//////0[,!!![!IIII''''+/%))-48 l*l*l*l*l*l*l*l*r0r&)r*r+)rDrr*rE)rKrLr*rL)rKrLrRr r*r )r[r\r*r])r7r8rbrcrKrLr*rd)r7r8rbrcrKrLr*r3)r7r8rrrcrKrLr*rs) r7r8rbrcr|r}rKrLr*r~) r7r8rbrcr|r}rKrLr*r4) r7r8rrrcrr}rKrLr*r)r7r8r|rrKrLr*r)r7r8rrrKrLr*r)r7r8rrrKrLr*r)rGrLr*r)rDrrrr*r)rDrr*r)rrr*r)rr8r*r8)S __future__rr3loggingrecollections.abcrrrrtypingrr r r r r urllib.parsermarkersrrr specifiersrr9rrutilsrrrrrrrrpathlibrtyping_extensionsrr getLoggerr>r,r.r2r3r4r6rBcompilerHr)rQrZrarnrqr{rrrrrrrrrrrrr(rpr'rr$r"r!r#r%r r&r/r0r1r^s"""""" --------!!!!!!"!!!!!==========$$$$$$;;;;;;;; 44444444&&&&&& ' H % %    WT]] genn;;;;;8;;;   7?STTT"rz"<==UUUU !!!!    ,;;;;&    & ; ; ; ;         DDDD    ''''I<@@@@@3@@@ BBBBB$9BBBEEEEE EEE $U###%%%%%%%$#%P $U###       $# 4 $U###%%%%%%%$#%P $U###-------$#-` $U###-------$#-` $U###B/B/B/B/B/B/B/$#B/J $U###{*{*{*{*{*{*{*$#{*{*{*r0