*j ( S SK Jr S SKrS SKrS SKrS SKrS SKrS SKrS/r\R R r\R R r
\R " SS9S 5 r\R " S\R" \R$ - 5 rS
S jrS r\R " S
\R, \R" - 5 R. r\R " S\R, \R" - 5 R. r " S S\R4 5 rg) DecimalNFractioni @ )maxsizec [ US[ 5 n[ [ [ U 5 5 U- 5 nU S: a UOU* nUS:X a S$ U$ ! [ a [
n N'f = f)Nr )pow_PyHASH_MODULUShashabs
ValueError_PyHASH_INF) numeratordenominatordinvhash_results 0/opt/alt/python313/lib64/python3.13/fractions.py_hash_algorithmr se 2;O4( T#i.)D011nU5&F22)6)+ s A AAa
\A\s* # optional whitespace at the start,
(?P[-+]?) # an optional sign, then
(?=\d|\.\d) # lookahead for digit or .digit
(?P\d*|\d+(_\d+)*) # numerator (possibly empty)
(?: # followed by
(?:\s*/\s*(?P\d+(_\d+)*))? # an optional denominator
| # or
(?:\.(?P\d*|\d+(_\d+)*))? # an optional fractional part
(?:E(?P[-+]?\d+(_\d+)*))? # and optional exponent
)
\s*\Z # and optional whitespace to finish
c US: a USU- - nO U SU* - - n [ XS- - U5 u pEUS:X a US- S:X a US- nU( a US: OU S: nU[ U5 4$ )Nr
r )divmodr
)ndexponentno_neg_zeroqrsigns r _round_to_exponentr" J sx 1} R\ R(] !Av,"DAAv!a%1* R1q5QUDQ< c U S:X a SSSU-
4$ [ [ U 5 5 [ U5 pC[ U5 [ U5 -
XC:* - nXR-
n[ XU5 u px[ [ U5 5 US- :X a
US- nUS-
nXxU4$ )Nr Fr r )strr
lenr" ) r r figuresstr_nstr_dmr r! significands r _round_to_figuresr, g s " AvaW$$ s1v;A5E
SZ5>2A {H*1:D 3{!+A
h&&r# ay
(?:
(?P.)?
(?P[<>=^])
)?
(?P[-+ ]?)
# Alt flag forces a slash and denominator in the output, even for
# integer-valued Fraction objects.
(?P\#)?
# We don't implement the zeropad flag since there's no single obvious way
# to interpret it.
(?P0|[1-9][0-9]*)?
(?P[,_])?
a
(?:
(?P.)?
(?P[<>=^])
)?
(?P[-+ ]?)
(?Pz)?
(?P\#)?
# A '0' that's *not* followed by another digit is parsed as a minimum width
# rather than a zeropad flag.
(?P0(?=[0-9]))?
(?P0|[1-9][0-9]*)?
(?P[,_])?
(?:\.(?P0|[1-9][0-9]*))?
(?P[eEfFgG%])
c ^ \ rS rSrSrS0U 4S jjr\S 5 r\S 5 r\U 4S j5 r S r
S rS1S jr\
S
5 r\
S 5 rS rS
rS rS rS r S2S jrS r\" \\R0 5 u rrS r\" \\R8 5 u rrS r\" \\R@ 5 u r!r"S r#\" \#\RH 5 u r%r&S r'\" \'\RP S5 u r)r*S r+\" \+\,S5 u r-r.S r/\" \/\R` S5 u r1r2S r3S r4S r5S r6S r7\Rp 4S jr9S r:S! r;S" r