ó
    ì*}jŠ  ã                   óî   • % S SK Jr  S SKJr  S SKrS SKJr  Sr\R                  \
S'   \R                   " S S5      5       r\R                  S	\R                  S
\4S j5       r\R                  " \5        g)é    )ÚFraction)ÚRationalN)ÚlibaviÿÿÿÚ
_INT32_MAXc                   óú   • \ rS rSrSrSS jr\R                  S\R                  4S j5       r
\S 5       r\S 5       rS rS	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!Sr"g)Ú
AVRationalé   uF  
An exact rational number stored as two int32s, mirroring FFmpeg's
``AVRational``.

Values are always reduced to lowest terms with a positive denominator.
Arithmetic between two :class:`AVRational` uses FFmpeg's ``av_mul_q``
family: intermediates are computed in int64, then reduced back to int32,
**approximating** the result if it does not fit. Arithmetic with other
numeric types promotes to :class:`fractions.Fraction` (exact).

Following FFmpeg, a zero denominator is allowed: ``1/0``, ``-1/0``
(infinities) and ``0/0`` (undefined) exist and, like the unset value
``AVRational(0, 1)``, are falsy â€” so ``if rate:`` covers every
not-a-real-value case that used to be ``None``.

Every PyAV setter that accepts a :class:`fractions.Fraction` (e.g.
``stream.time_base``, ``codec_context.framerate``) also accepts an
:class:`AVRational`.
c                 ó>  • US:X  a,  [        U[        5      (       a  UR                  UR                  p!UnUn[        R
                  " [        R                  " W5      [        R                  " W5      X4[        5      (       d  [        U SU S35      eXPl
        X`l        g )Né   Ú/z" cannot be reduced to fit in int32)Ú
isinstancer   Ú	numeratorÚdenominatorÚlibÚ	av_reduceÚcythonÚaddressr   ÚOverflowErrorÚnumÚden)Úselfr   r   Ún64Úd64ÚnÚds          Ú™C:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\av/rational.pyÚ__init__ÚAVRational.__init__!   s�   € Ø�!‹8œ
 3¬×1Ñ1Ø—}‘} c§o¡o�Ø"ˆØ"ˆô �}Š}Ü�NŠN˜1ÓœvŸ~š~¨aÓ0°#¼J÷
ñ 
ô   3 % q¨¨Ð-OÐ PÓQÐQØŒØ�ó    Úreturnc                 óJ   • U R                   Wl         U R                  Ul        U$ ©N©r   r   )r   Úqs     r   Ú_qÚAVRational._q/   s   € ð —‘ˆŒØ—‘ˆŒØˆr   c                 ó   • U R                   $ r"   )r   ©r   s    r   r   ÚAVRational.numerator6   ó   € à�x‰xˆr   c                 ó   • U R                   $ r"   )r   r(   s    r   r   ÚAVRational.denominator:   r*   r   c                 ó<   • SU R                    SU R                   S3$ )NzAVRational(z, Ú)r#   r(   s    r   Ú__repr__ÚAVRational.__repr__>   s   € Ø˜TŸX™X˜J b¨¯©¨
°!Ð4Ð4r   c                 ó8   • U R                    SU R                   3$ )Nr   r#   r(   s    r   Ú__str__ÚAVRational.__str__A   s   € Ø—(‘(�˜1˜TŸX™X˜JÐ'Ð'r   c                 óL   • U R                   S:g  =(       a    U R                  S:g  $ ©Nr   r#   r(   s    r   Ú__bool__ÚAVRational.__bool__D   s   € Ø�x‰x˜1‰}×. §¡¨Q¡Ð.r   c                 óº   • U R                   S:X  a3  U R                  S:X  a  [        S5      $ U R                  [        S5      -  $ U R                  U R                   -  $ )Nr   ÚnanÚinf)r   r   Úfloatr(   s    r   Ú	__float__ÚAVRational.__float__G   sF   € Ø�8‰8�q‹=Ø#'§8¡8¨q£=”5˜“<ÐM°d·h±hÄÀuÃÑ6MÐMØ�x‰x˜$Ÿ(™(Ñ"Ð"r   c                 ó¢   • U R                   S:X  a  [        U R                  S45      $ [        [        U R                  U R                   5      5      $ r5   )r   Úhashr   r   r(   s    r   Ú__hash__ÚAVRational.__hash__L   s:   € Ø�8‰8�q‹=Ü˜Ÿ™ 1˜Ó&Ð&Ü”H˜TŸX™X t§x¡xÓ0Ó1Ð1r   c                 ó>   • [         U R                  U R                  44$ r"   ©r   r   r   r(   s    r   Ú
__reduce__ÚAVRational.__reduce__Q   s   € Ü˜TŸX™X t§x¡xÐ0Ð1Ð1r   c                 ó
  • [        U[        5      (       a;  UnU R                  UR                  :H  =(       a    U R                  UR                  :H  $ U R                  S:X  a  g[	        U R                  U R                  5      U:H  $ )Nr   F)r   r   r   r   r   ©r   ÚotherÚos      r   Ú__eq__ÚAVRational.__eq__T   sa   € Ü�eœZ×(Ñ(Ø!ˆAØ—8‘8˜qŸu™uÑ$×:¨¯©°Q·U±UÑ):Ð:Ø�8‰8�q‹=ØÜ˜Ÿ™ $§(¡(Ó+¨uÑ4Ð4r   c                 óH   • [        U R                  U R                  5      U:  $ r"   ©r   r   r   ©r   rH   s     r   Ú__lt__ÚAVRational.__lt__\   ó   € Ü˜Ÿ™ $§(¡(Ó+¨eÑ3Ð3r   c                 óH   • [        U R                  U R                  5      U:*  $ r"   rM   rN   s     r   Ú__le__ÚAVRational.__le___   ó   € Ü˜Ÿ™ $§(¡(Ó+¨uÑ4Ð4r   c                 óH   • [        U R                  U R                  5      U:„  $ r"   rM   rN   s     r   Ú__gt__ÚAVRational.__gt__b   rQ   r   c                 óH   • [        U R                  U R                  5      U:¬  $ r"   rM   rN   s     r   Ú__ge__ÚAVRational.__ge__e   rU   r   c                 óD   • [        U R                  * U R                  5      $ r"   rC   r(   s    r   Ú__neg__ÚAVRational.__neg__h   s   € Ü˜4Ÿ8™8˜) T§X¡XÓ.Ð.r   c                 óî   • [        U[        5      (       a>  Un[        [        R                  " U R                  5       UR                  5       5      5      $ [        U R                  U R                  5      U-  $ r"   )	r   r   Úfrom_avrationalr   Úav_mul_qr%   r   r   r   rG   s      r   Ú__mul__ÚAVRational.__mul__k   óP   € Ü�eœZ×(Ñ(Ø!ˆAÜ"¤3§<¢<°·±³	¸1¿4¹4»6Ó#BÓCÐCÜ˜Ÿ™ $§(¡(Ó+¨eÑ3Ð3r   c                 óH   • U[        U R                  U R                  5      -  $ r"   rM   rN   s     r   Ú__rmul__ÚAVRational.__rmul__q   ó   € Ø”x §¡¨$¯(©(Ó3Ñ3Ð3r   c                 ó.  • [        U[        5      (       a^  UnUR                  S:X  a  [        U  SU 35      e[	        [
        R                  " U R                  5       UR                  5       5      5      $ [        U R                  U R                  5      U-  $ )Nr   z / )
r   r   r   ÚZeroDivisionErrorr`   r   Úav_div_qr%   r   r   rG   s      r   Ú__truediv__ÚAVRational.__truediv__t   sq   € Ü�eœZ×(Ñ(Ø!ˆAØ�u‰u˜‹zÜ'¨4¨&°°E°7Ð(;Ó<Ð<Ü"¤3§<¢<°·±³	¸1¿4¹4»6Ó#BÓCÐCÜ˜Ÿ™ $§(¡(Ó+¨eÑ3Ð3r   c                 óH   • U[        U R                  U R                  5      -  $ r"   rM   rN   s     r   Ú__rtruediv__ÚAVRational.__rtruediv__|   rh   r   c                 óî   • [        U[        5      (       a>  Un[        [        R                  " U R                  5       UR                  5       5      5      $ [        U R                  U R                  5      U-   $ r"   )	r   r   r`   r   Úav_add_qr%   r   r   r   rG   s      r   Ú__add__ÚAVRational.__add__   rd   r   c                 óH   • U[        U R                  U R                  5      -   $ r"   rM   rN   s     r   Ú__radd__ÚAVRational.__radd__…   rh   r   c                 óî   • [        U[        5      (       a>  Un[        [        R                  " U R                  5       UR                  5       5      5      $ [        U R                  U R                  5      U-
  $ r"   )	r   r   r`   r   Úav_sub_qr%   r   r   r   rG   s      r   Ú__sub__ÚAVRational.__sub__ˆ   rd   r   c                 óH   • U[        U R                  U R                  5      -
  $ r"   rM   rN   s     r   Ú__rsub__ÚAVRational.__rsub__Ž   rh   r   )r   r   N)r   r   )#Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   Úcfuncr   r   r%   Úpropertyr   r   r/   r2   r6   r<   r@   rD   rJ   rO   rS   rW   rZ   r]   rb   rf   rl   ro   rs   rv   rz   r}   Ú__static_attributes__© r   r   r   r      s»   † ñô(ð ‡\�\ð�C—N‘Nó ó ðð ñó ðð ñó ðò5ò(ò/ò#ò
2ò
2ò5ò4ò5ò4ò5ò/ò4ò4ò4ò4ò4ò4ò4õ4r   r   r$   r    c                 ó  • [         R                  [         5      n[        R                  " [        R
                  " UR                  5      [        R
                  " UR                  5      U R                  U R                  [        5        U$ r"   )	r   Ú__new__r   r   r   r   r   r   r   )r$   Úobjs     r   r`   r`   ’   sR   € ä ×(Ñ(¬Ó4€Cä‡M‚MÜ�Š�s—w‘wÓ¤§¢°·±Ó!8¸!¿%¹%ÀÇÁÌ
ôð €Jr   )Ú	fractionsr   Únumbersr   r   Úcython.cimportsr   r   r   ÚlonglongÚ__annotations__Úcclassr   r„   r`   Úregisterr‡   r   r   Ú<module>r’      sz   ðæ Ý ã Ý (à(€
ˆF�O‰OÓ (ð ‡�÷C4ð C4ó ðC4ðL ‡�ð�s—~‘~ð ¨*ó ó ðð 	× Ò �*Õ r   