2bi` SSKrSSKJr SSKJr SSKJrJrJrJ r \RS:aSSKJ r OSSK J r "SS\ 5r S \S \ \ S \\4S jrS \S \\S\\S\\S \\4 SjrSS \S \\S\\\S \\4Sjjr\S:XaHSSKJr \"SS55r\"S\"SSS5\"SSS5\"SSS5/5r\"\"\55 gg)N)Fraction)ceil)castListOptionalSequence))ProtocolcJ\rSrSr%SrSr\\\S'Sr \\S'Sr \\S'Sr g) Edge z1Any object that defines an edge (such as Layout).Nsizeratio minimum_size) __name__ __module__ __qualname____firstlineno____doc__rrint__annotations__rr__static_attributes__rډ/builddir/build/BUILDROOT/alt-python313-pip-23.3.1-3.el8.x86_64/opt/alt/python313/lib/python3.13/site-packages/pip/_vendor/rich/_ratio.pyr r s&;D(3-E3NL#rr totaledgesreturncUVs/sHo"R=(d SPM nn[nSU;Ga[[X155VVVs/sHunupbUbM XR4PM nnnnU[ SU55- nUS::a8[X15VVs/sHupbUcUR =(d SOUPM! snn$U"U[ SU555n UH1upRXR -UR ::dM#UR X5' O7 U"S5n UH&upR[XR -U -S5upjXcU'M( O SU;aGM[[[U5$s snfs snnnfs snnf)a`Divide total space to satisfy size, ratio, and minimum_size, constraints. The returned list of integers should add up to total in most cases, unless it is impossible to satisfy all the constraints. For instance, if there are two edges with a minimum size of 20 each and `total` is 30 then the returned list will be greater than total. In practice, this would mean that a Layout object would clip the rows that would overflow the screen height. Args: total (int): Total number of characters. edges (List[Edge]): Edges within total space. Returns: List[int]: Number of characters for each edge. Nc36# UHo=(d Sv M g7f)rNr).0rs r ratio_resolve..2s#&e"3"3JD.2\$##(qtC"3   sKNKK  *KE#t'8'88#00  *"! I- "(::)= )I1"M#e  . E %-H S 5 !!S 4 sE E"E"&E)ratiosmaximumsvaluescb[X5VVs/sHupEU(aUOSPM nnn[U5nU(dUSS$Un/nURn [XU5HIupJn U(a4US:a.[U [ XG-U- 55n U "X- 5 X|-nXd-nMAU "U 5 MK U$s snnf)aDDivide an integer total in to parts based on ratios. Args: total (int): The total to divide. ratios (List[int]): A list of integer ratios. maximums (List[int]): List of maximums values for each slot. values (List[int]): List of values Returns: List[int]: A list of integers guaranteed to sum to total. rN)r*r+appendminround) rr5r6r7r_max total_ratiototal_remainingresultr9maximumvalue distributeds r ratio_reducerCQs7:&6K L6K{ute"6KF Lf+K ayOF ]]F!$Vv!> [1_guU-D{-R'STK 5& '  *O  K 5M"? MMsB+minimumscxU(a([X5VVs/sHup4U(aUOSPM nnn[U5nUS:dS5eUn/nURnUcS/[U5-n OUn [X5H8up:US:a[ U [ X6-U- 55n OUn U"U 5 XS-nXk-nM: U$s snnf)a Distribute an integer total in to parts based on ratios. Args: total (int): The total to divide. ratios (List[int]): A list of integer ratios. minimums (List[int]): List of minimum values for each slot. Returns: List[int]: A list of integers guaranteed to sum to total. rzSum of ratios must be > 0)r*r+r9lenmaxr) rr5rDr_minr=r>distributed_totalr9 _minimumsminimumrBs rratio_distributerLqs:=f:OP:O;54%Q&:OPf+K ?777?O#%  % %FC#f+%  f0 ?gtE,Ck,Q'RSK)K{ &1 'QsB6__main__) dataclasscF\rSrSr%Sr\\\S'Sr\\S'Sr \\S'Sr g)ENrrrrr) rrrrrrrrrrrrrrrPrPs%#hsm"s crrPnr)N)sys fractionsrmathrtypingrrrr version_infor pip._vendor.typing_extensionsr rr4rCrLr dataclassesrNrPresolvedprintr+rrrr\s5 11v68:":"Xd^:"S :"z S -1#Y@DS  #YBDH! !S !-5d3i-@! #Y!H z% S1T1a=!D!Q-4A"OPH #h-r