
    %e!                     V    d dl Z d dlmZmZ  G d de          Z G d de          ZdS )    N)OptionalUnionc                       e Zd ZdS )JSNumberBoundsExceptionN)__name__
__module____qualname__     3lib/python3.11/site-packages/streamlit/js_number.pyr   r      s        Dr   r   c                       e Zd ZdZdZdZdZdZe Ze	dde
dee         d	dfd
            Ze	dee
ef         dee         d	dfd            ZdS )JSNumberz7Utility class for exposing JavaScript Number constants.l    l gg       Nvalue
value_namereturnc                     |d}|| j         k     rt          |d|d          || j        k    rt          |d|d          dS )a  Validate that an int value can be represented with perfect precision
        by a JavaScript Number.

        Parameters
        ----------
        value : int
        value_name : str or None
            The name of the value parameter. If specified, this will be used
            in any exception that is thrown.

        Raises
        ------
        JSNumberBoundsException
            Raised with a human-readable explanation if the value falls outside
            JavaScript int bounds.

        Nr    (z) must be >= -((1 << 53) - 1)z) must be <= (1 << 53) - 1)MIN_SAFE_INTEGERr   MAX_SAFE_INTEGERclsr   r   s      r   validate_int_boundszJSNumber.validate_int_bounds+   sy    &  J3''')9CUUUK   S))))6@jj%%%H   *)r   c                     |d}t          |t          j        t          f          st	          |d|d          || j        k     rt	          |d|d          || j        k    rt	          |d|d          dS )a  Validate that a float value can be represented by a JavaScript Number.

        Parameters
        ----------
        value : float
        value_name : str or None
            The name of the value parameter. If specified, this will be used
            in any exception that is thrown.

        Raises
        ------
        JSNumberBoundsException
            Raised with a human-readable explanation if the value falls outside
            JavaScript float bounds.

        Nr   r   z) is not a floatz) must be >= -1.797e+308z) must be <= 1.797e+308)
isinstancenumbersIntegralfloatr   MIN_NEGATIVE_VALUE	MAX_VALUEr   s      r   validate_float_boundszJSNumber.validate_float_boundsJ   s    (  J%'"2E!:;; 	),6JJ>   S+++)4>JJF   S]"")3=::uuuE   #"r   )N)r   r   r	   __doc__r   r   r   	MIN_VALUEr   classmethodintr   strr   r   r   r    r
   r   r   r   r      s        AA % ( 'I I $  # RV    [< !#u*%!3;C=!	! ! ! [! ! !r   r   )r   typingr   r   	Exceptionr   objectr   r
   r   r   <module>r)      s     " " " " " " " "	 	 	 	 	i 	 	 	U U U U Uv U U U U Ur   