Uname: Linux web3.us.cloudlogin.co 5.10.226-xeon-hst #2 SMP Fri Sep 13 12:28:44 UTC 2024 x86_64
Software: Apache
PHP version: 8.1.31 [ PHP INFO ] PHP os: Linux
Server Ip: 162.210.96.117
Your Ip: 3.147.45.11
User: edustar (269686) | Group: tty (888)
Safe Mode: OFF
Disable Function:
NONE

name : fractions.cpython-310.opt-2.pyc
o

^bRn�@sv	ddlmZddlZddlZddlZddlZddlZdgZejj	Z
ejjZe�
dejejB�ZGdd�dej�ZdS)���DecimalN�FractionaC
    \A\s*                      # optional whitespace at the start, then
    (?P<sign>[-+]?)            # an optional sign, then
    (?=\d|\.\d)                # lookahead for digit or .digit
    (?P<num>\d*)               # numerator (possibly empty)
    (?:                        # followed by
       (?:/(?P<denom>\d+))?    # an optional denominator
    |                          # or
       (?:\.(?P<decimal>\d*))? # an optional fractional part
       (?:E(?P<exp>[-+]?\d+))? # and optional exponent
    )
    \s*\Z                      # and optional whitespace to finish
cs�eZdZ	dZdQdd��fdd�Zedd	��Zed
d��Zdd
�ZdRdd�Z	e
dd��Ze
dd��Zdd�Z
dd�Zdd�Zdd�Zeeej�\ZZdd�Zeeej�\ZZdd �Zeeej�\ZZd!d"�Zeeej�\ZZ d#d$�Z!ee!ej"�\Z#Z$d%d&�Z%ee%e&�\Z'Z(d'd(�Z)ee)ej*�\Z+Z,d)d*�Z-d+d,�Z.d-d.�Z/d/d0�Z0d1d2�Z1d3d4�Z2d5d6�Z3d7d8�Z4dSd9d:�Z5d;d<�Z6d=d>�Z7d?d@�Z8dAdB�Z9dCdD�Z:dEdF�Z;dGdH�Z<dIdJ�Z=dKdL�Z>dMdN�Z?dOdP�Z@�ZAS)Tr��
_numerator�_denominatorrNT��
_normalizecs	tt|��|�}|dur�t|�tur||_d|_|St|tj	�r+|j
|_|j|_|St|tt
f�r<|��\|_|_|St|t�r�t�|�}|durPtd|��t|�d�pWd�}|�d�}|ret|�}n8d}|�d�}|r�dt|�}||t|�}||9}|�d�}	|	r�t|	�}	|	d	kr�|d|	9}n|d|	9}|�d
�dkr�|}q�td��t|�tur�t|�ur�nnnt|tj	�r�t|tj	�r�|j
|j|j
|j}}ntd
��|d	kr�td|��|r�t�||�}
|d	kr�|
}
||
}||
}||_||_|S)N�z Invalid literal for Fraction: %r�num�0�denom�decimal�
�expr�sign�-z2argument should be a string or a Rational instancez+both arguments should be Rational instanceszFraction(%s, 0))�superr�__new__�type�intrr�
isinstance�numbers�Rational�	numerator�denominator�floatr�as_integer_ratio�str�_RATIONAL_FORMAT�match�
ValueError�group�len�	TypeError�ZeroDivisionError�math�gcd)�clsrrr	�self�mr
rZscaler�g��	__class__��2/usr/local/python-3.10/lib/python3.10/fractions.pyr>sx

�



� 
�

�zFraction.__new__cCsF	t|tj�r||�St|t�std|j|t|�jf��||���S)Nz.%s.from_float() only takes floats, not %r (%s))rr�Integralrr$�__name__rr)r(�fr.r.r/�
from_float�s
�zFraction.from_floatcCsX	ddlm}t|tj�r|t|��}nt||�s&td|j|t|�jf��||�	��S)Nrrz2%s.from_decimal() only takes Decimals, not %r (%s))
rrrrr0rr$r1rr)r(Zdecrr.r.r/�from_decimal�s
��zFraction.from_decimalcCs	|j|jfS�Nr�r)r.r.r/r�szFraction.as_integer_ratio�@Bc
Cs�	|dkr	td��|j|krt|�Sd\}}}}|j|j}}	||}|||}	|	|kr/qG||||||	f\}}}}||||}}q |||}
t||
|||
|�}t||�}t||�t||�krm|S|S)Nr
z$max_denominator should be at least 1)rr
r
r)r!rrr�abs)
r)Zmax_denominatorZp0Zq0Zp1Zq1�n�d�aZq2�kZbound1Zbound2r.r.r/�limit_denominator�s*
�
zFraction.limit_denominatorcC�|jSr5)r�r;r.r.r/r�zFraction.numeratorcCr>r5)rr?r.r.r/rr@zFraction.denominatorcCs	d|jj|j|jfS)Nz
%s(%s, %s))r-r1rrr6r.r.r/�__repr__s�zFraction.__repr__cCs&	|jdkrt|j�Sd|j|jfS)Nr
z%s/%s)rrrr6r.r.r/�__str__
s

zFraction.__str__csV	��fdd�}d�jd|_�j|_��fdd�}d�jd|_�j|_||fS)NcsLt|ttf�r�||�St|t�r�t|�|�St|t�r$�t|�|�StSr5)rrrr�complex�NotImplemented�r;�b��fallback_operator�monomorphic_operatorr.r/�forwardds


z-Fraction._operator_fallbacks.<locals>.forward�__csVt|tj�r�||�St|tj�r�t|�t|��St|tj�r)�t|�t|��StSr5)rrrZRealr�ComplexrCrD�rFr;rGr.r/�reverseps
z-Fraction._operator_fallbacks.<locals>.reverseZ__r)r1�__doc__)rIrHrJrNr.rGr/�_operator_fallbackssO	
zFraction._operator_fallbacksc
Cs�	|j|j}}|j|j}}t�||�}|dkr(t||||||dd�S||}|||||}t�||�}	|	dkrIt|||dd�St||	|||	dd�S�Nr
Fr�rrr&r'r�
r;rF�na�da�nb�dbr+�s�t�g2r.r.r/�_add��z
Fraction._addc
Cs�	|j|j}}|j|j}}t�||�}|dkr(t||||||dd�S||}|||||}t�||�}	|	dkrIt|||dd�St||	|||	dd�SrQrRrSr.r.r/�_sub�r\z
Fraction._subcCs|	|j|j}}|j|j}}t�||�}|dkr!||}||}t�||�}|dkr3||}||}t||||dd�SrQrR)r;rFrTrUrVrW�g1rZr.r.r/�_mul�sz
Fraction._mulc
Cs�	|j|j}}|j|j}}t�||�}|dkr!||}||}t�||�}|dkr3||}||}||||}}	|	dkrG||	}}	t||	dd�S�Nr
rFrrR)
r;rFrTrUrVrWr^rZr9r:r.r.r/�_div�sz
Fraction._divcCs	|j|j|j|jSr5�rrrEr.r.r/�	_floordivszFraction._floordivcCs<	|j|j}}t|j|||j�\}}|t|||�fSr5)r�divmodrr)r;rFrUrWZdivZn_modr.r.r/�_divmod
szFraction._divmodcCs.	|j|j}}t|j||j|||�Sr5)rrr)r;rFrUrWr.r.r/�_modsz
Fraction._modcCs�	t|tj�rM|jdkrE|j}|dkr t|j||j|dd�S|jdkr4t|j||j|dd�St|j||j|dd�St|�t|�St|�|Sr`)	rrrrrrrrr)r;rFZpowerr.r.r/�__pow__s(

�

��zFraction.__pow__cCs^	|jdkr|jdkr||jSt|tj�rt|j|j�|S|jdkr)||jS|t|�S)Nr
r)	rrrrrrrrrrMr.r.r/�__rpow__:s


zFraction.__rpow__cCs	t|j|jdd�S�NFr�rrrr?r.r.r/�__pos__HszFraction.__pos__cCs	t|j|jdd�Srirjr?r.r.r/�__neg__LszFraction.__neg__cCs	tt|j�|jdd�Sri)rr8rrr?r.r.r/�__abs__PszFraction.__abs__cCs(	|jdkr|j|jS|j|jS)Nrrr?r.r.r/�	__trunc__Ts
zFraction.__trunc__cCs	|j|jSr5rbr?r.r.r/�	__floor__[szFraction.__floor__cCs	|j|jSr5rbr?r.r.r/�__ceil___szFraction.__ceil__cCs�	|dur.t|j|j�\}}|d|jkr|S|d|jkr"|dS|ddkr*|S|dSdt|�}|dkrAtt||�|�Stt||�|�S)N�r
rr)rdrrr8r�round)r)Zndigits�floor�	remainder�shiftr.r.r/�	__round__dszFraction.__round__cCsf	z	t|jdt�}Wntyt}Ynwttt|j��|�}|jdkr(|n|}|dkr1dS|S)N���r���)�powr�_PyHASH_MODULUSr!�_PyHASH_INF�hashr8r)r)ZdinvZhash_�resultr.r.r/�__hash__}s�zFraction.__hash__cCs�	t|�tur|j|ko|jdkSt|tj�r#|j|jko"|j|jkSt|tj	�r1|j
dkr1|j}t|t�rKt
�|�s@t
�|�rDd|kS||�|�kStS)Nr
r�)rrrrrrrrrrL�imag�realrr&�isnan�isinfr3rDrEr.r.r/�__eq__�s
�
zFraction.__eq__cCsd	t|tj�r||j|j|j|j�St|t�r0t�	|�s#t�
|�r(|d|�S|||�|��StS)Nr)
rrrrrrrrr&r�r�r3rD)r)�other�opr.r.r/�_richcmp�s

�

zFraction._richcmpcC�	|�|tj�Sr5)r��operator�ltrEr.r.r/�__lt__��zFraction.__lt__cCr�r5)r�r��gtrEr.r.r/�__gt__�r�zFraction.__gt__cCr�r5)r�r��lerEr.r.r/�__le__�r�zFraction.__le__cCr�r5)r�r��gerEr.r.r/�__ge__�r�zFraction.__ge__cCs	t|j�Sr5)�boolrr?r.r.r/�__bool__�s
zFraction.__bool__cCs|jt|�ffSr5)r-rr6r.r.r/�
__reduce__�szFraction.__reduce__cC� t|�tkr|S|�|j|j�Sr5�rrr-rrr6r.r.r/�__copy__��zFraction.__copy__cCr�r5r�)r)�memor.r.r/�__deepcopy__�r�zFraction.__deepcopy__)rN)r7r5)Br1�
__module__�__qualname__�	__slots__r�classmethodr3r4rr=�propertyrrrArBrPr[r��add�__add__�__radd__r]�sub�__sub__�__rsub__r_�mul�__mul__�__rmul__ra�truediv�__truediv__�__rtruediv__rc�floordiv�__floordiv__�
__rfloordiv__rerd�
__divmod__�__rdivmod__rf�mod�__mod__�__rmod__rgrhrkrlrmrnrorprvr~r�r�r�r�r�r�r�r�r�r��
__classcell__r.r.r,r/r&shi


7

0
!)rrr&rr��re�sys�__all__�	hash_info�modulusrz�infr{�compile�VERBOSE�
IGNORECASErrrr.r.r.r/�<module>s
�
© 2025 GrazzMean