File: //lib/python3.12/__pycache__/numbers.cpython-312.pyc
�
    )!�h�,  �                   �   � d Z ddlmZmZ g d�Z G d� de��      Z G d� de�      Zej                  e�        G d	� d
e�      Z	e	j                  e
�        G d� de	�      Z G d
� de�      Zej                  e
�       y)z~Abstract Base Classes (ABCs) for numbers, according to PEP 3141.
TODO: Fill out more detailed documentation on the operators.�    )�ABCMeta�abstractmethod)�Number�Complex�Real�Rational�Integralc                   �   � e Zd ZdZdZdZy)r   z�All numbers inherit from this class.
    If you just want to check if an argument x is a number, without
    caring what kind, use isinstance(x, Number).
    � N)�__name__�
__module__�__qualname__�__doc__�	__slots__�__hash__r   �    �/usr/lib/python3.12/numbers.pyr   r   %   s   � ��
 �I� �Hr   r   )�	metaclassc                   �:  � e Zd ZdZdZed� �       Zd� Zeed� �       �       Z	eed� �       �       Z
ed� �       Zed� �       Zed	� �       Z
ed
� �       Zd� Zd� Zed
� �       Zed� �       Zed� �       Zed� �       Zed� �       Zed� �       Zed� �       Zed� �       Zed� �       Zy)r   af  Complex defines the operations that work on the builtin complex type.
    In short, those are: a conversion to complex, .real, .imag, +, -,
    *, /, **, abs(), .conjugate, ==, and !=.
    If it is given heterogeneous arguments, and doesn't have special
    knowledge about them, it should fall back to the builtin complex
    type as described below.
    r   c                  �   � y)z<Return a builtin complex instance. Called for complex(self).Nr   ��selfs    r   �__complex__zComplex.__complex__F   s   � r   c                 �   � | dk7  S )z)True if self != 0. Called for bool(self).r   r   r   s    r   �__bool__zComplex.__bool__J   s   � ��q�y�r   c                 �   � t         �)zXRetrieve the real component of this number.
        This should subclass Real.
        ��NotImplementedErrorr   s    r   �realzComplex.realN   �
   � � "�!r   c                 �   � t         �)z]Retrieve the imaginary component of this number.
        This should subclass Real.
        r   r   s    r   �imagzComplex.imagW   r    r   c                 �   � t         �)zself + otherr   �r   �others     r   �__add__zComplex.__add__`   �
   � � "�!r   c                 �   � t         �)zother + selfr   r$   s     r   �__radd__zComplex.__radd__e   r'