kgh LddlmZddlZddlmZddlmZmZmZm Z m Z m Z m Z m Z mZmZedZedZedZee eege effZer6dd lmZGd d e eeefZGd d e eeeefZned ddgZed gdZGddeeZGdde ee efeeeefZGdde eZGdde eZddZe ZdS)) annotationsN) namedtuple) TYPE_CHECKINGCallableGenericIterableIteratorMapping NamedTupleSequenceTypeVarUnionKTRTCT) Criterionc$eZdZUded<ded<dS)RequirementInformationr requirementz CT | NoneparentN)__name__ __module__ __qualname____annotations__~/builddir/build/BUILD/imunify360-venv-2.6.0/opt/imunify360/venv/lib/python3.11/site-packages/pip/_vendor/resolvelib/structs.pyrrs'rrc2eZdZUdZded<ded<ded<dS) StatezResolution state in a round.z dict[KT, CT]mappingzdict[KT, Criterion[RT, CT]]criteriaz$list[RequirementInformation[RT, CT]]backtrack_causesN)rrr__doc__rrrrr r s<**---->>>>>>rr rr)r!r"r#creZdZdZddZddZddZdd ZddZddZ ddZ d dZ d!dZ d"dZ d#dZd#dZdS)$ DirectedGraphz&A graph structure with directed edges.returnNonecHt|_i|_i|_dSN)set _vertices _forwards _backwardsselfs r__init__zDirectedGraph.__init__0s"%%%,.-/r Iterator[KT]c*t|jSr*)iterr,r/s r__iter__zDirectedGraph.__iter__5DN###rintc*t|jSr*)lenr,r/s r__len__zDirectedGraph.__len__8s4>"""rkeyrboolc||jvSr*)r,r0r;s r __contains__zDirectedGraph.__contains__;sdn$$rDirectedGraph[KT]ct|}t|j|_d|jD|_d|jD|_|S)z$Return a shallow copy of this graph.c4i|]\}}|t|Srr+.0kvs r z&DirectedGraph.copy..Bs$HHHA1c!ffHHHrc4i|]\}}|t|SrrCrDs rrHz&DirectedGraph.copy..Cs$JJJ$!QAs1vvJJJr)typer+r,r-itemsr.)r0others rcopyzDirectedGraph.copy>spT dn--HH1E1E1G1GHHHJJ$/2G2G2I2IJJJ rc||jvrtd|j|t|j|<t|j|<dS)zAdd a new vertex to the graph.z vertex existsN)r, ValueErroraddr+r-r.r>s rrPzDirectedGraph.addFsY $. _-- - 3!ees"uurc.|j||j|D]"}|j||#|j|D]"}|j||#dS)zCRemove a vertex from the graph, disconnecting all edges from/to it.N)r,remover-popr.)r0r;fts rrRzDirectedGraph.removeNs c"""##C(( + +A OA  % %c * * * *$$S)) * *A N1  $ $S ) ) ) ) * *rrTrUc>||j|vo||j|vSr*)r.r-r0rTrUs r connectedzDirectedGraph.connectedVs%DOA&&A1q0A+AArc||jvrt||j|||j||dS)zgConnect two existing vertices. Nothing happens if the vertices are already connected. N)r,KeyErrorr-rPr.rWs rconnectzDirectedGraph.connectYsY DN " "1++  qa    q!!!!!rIterator[tuple[KT, KT]]c#^K|jD]\}}|D]}||fV dSr*)r-rK)r0rTchildrenrUs r iter_edgeszDirectedGraph.iter_edgescsT>//11  KAx  d    rc6t|j|Sr*)r4r-r>s r iter_childrenzDirectedGraph.iter_childrenhsDN3'(((rc6t|j|Sr*)r4r.r>s r iter_parentszDirectedGraph.iter_parentsksDOC()))rN)r'r(r'r2r'r7)r;rr'r<)r'r@)r;rr'r()rTrrUrr'r<)rTrrUrr'r()r'r\)r;rr'r2)rrrr$r1r5r:r?rMrPrRrXr[r_rarcrrrr&r&-s000000 $$$$####%%%%%%%%****BBBB"""" ))))******rr&cJeZdZ ddd Zdd ZddZddZddZd dZd!dZ dS)"IteratorMappingNr!Mapping[KT, RT]accessorCallable[[RT], Iterable[CT]]appends Mapping[KT, Iterable[CT]] | Noner'r(c4||_||_|pi|_dSr*)_mapping _accessor_appends)r0r!rirks rr1zIteratorMapping.__init__ps!   !3:=b rstrcNd|j|j|jS)Nz!IteratorMapping({!r}, {!r}, {!r}))formatrnrorpr/s r__repr__zIteratorMapping.__repr__zs)299 M N M   rr<c8t|jp|jSr*)r<rnrpr/s r__bool__zIteratorMapping.__bool__sDM2T]333rr;objectc&||jvp||jvSr*)rnrpr>s rr?zIteratorMapping.__contains__sdm#;sdm';;rrFr Iterator[CT]c |j|}n*#t$rt|j|cYSwxYwt j|||j|dS)Nr)rnrZr4rp itertoolschainroget)r0rFrGs r __getitem__zIteratorMapping.__getitem__s{ * a AA * * * a()) ) ) ) *t~~a00$-2C2CAr2J2JKKKs $77r2c^fdjD}tjj|S)Nc3.K|]}|jv |VdSr*rnrErFr0s r z+IteratorMapping.__iter__..s/CCaAT],B,B,B,B,B,BCCr)rpr{r|rnr0mores` rr5zIteratorMapping.__iter__s2CCCC4=CCCt}d333rr7crtfdjD}tj|zS)Nc3.K|]}|jv dVdS)rNrrs rrz*IteratorMapping.__len__..s/FFq /E/E1/E/E/E/EFFr)sumrpr9rnrs` rr:zIteratorMapping.__len__s<FFFFdmFFFFF4=!!D((rr*)r!rhrirjrkrlr'r(r'rqr'r<)r;rwr'r<)rFrr'ryrdre) rrrr1rtrvr?r~r5r:rrrrgrgos 59 AAAAA    4444<<<<LLLL4444))))))rrgc2eZdZdZddZddZdd Zdd Zd S)_FactoryIterableViewa:Wrap an iterator factory returned by `find_matches()`. Calling `iter()` on this class would invoke the underlying iterator factory, making it a "collection with ordering" that can be iterated through multiple times, but lacks random access methods presented in built-in Python sequence types. factoryCallable[[], Iterable[RT]]r'r(c"||_d|_dSr*)_factory _iterable)r0rs rr1z_FactoryIterableView.__init__s .2rrqcPt|jdt|dSN())rJrlistr/s rrtz_FactoryIterableView.__repr__s(t**%55T 5555rr<cd tt|n#t$rYdSwxYwdS)NFT)nextr4 StopIterationr/s rrvz_FactoryIterableView.__bool__sE  d       55 ts  -- Iterator[RT]c|j|n|j}tj|\|_}|Sr*)rrr{tee)r0iterablecurrents rr5z_FactoryIterableView.__iter__s7&*n&<4==???$."+-"9"9rN)rrr'r(rrr'rrrrr$r1rtrvr5rrrrrsn33336666rrc2eZdZdZd dZddZdd Zdd Zd S)_SequenceIterableViewzWrap an iterable returned by find_matches(). This is essentially just a proxy to the underlying sequence that provides the same interface as `_FactoryIterableView`. sequence Sequence[RT]c||_dSr*) _sequence)r0rs rr1z_SequenceIterableView.__init__s !rr'rqc@t|jd|jdSr)rJrrr/s rrtz_SequenceIterableView.__repr__s$t**%999999rr<c*t|jSr*)r<rr/s rrvz_SequenceIterableView.__bool__r6rrc*t|jSr*)r4rr/s rr5z_SequenceIterableView.__iter__r6rN)rrrrrrrrrrrsn """"::::$$$$$$$$$$rrmatches Matches[CT]r' Iterable[CT]ct|rt|St|tst |}t |S)zCBuild an iterable view from the value returned by `find_matches()`.)callabler isinstancer rr)rs rbuild_iter_viewrsK-#G,,, gx ( ( w--  ) ))r)rrr'r) __future__rr{ collectionsrtypingrrrrr r r r r rrrrMatchesresolvers.criterionrrr r&rgrrr IterableViewrrrrs""""""""""""                         WT]] WT]] WT]]  hr8B<'788 9M......WRV_????? GBBJ/????(Z =("; Jw K K K L LE?*?*?*?*?*GBK?*?*?*D%)%)%)%)%)gb(2,./R1D%)%)%)P8B<:$$$$$HRL$$$(**** r