�
��g�; � � � d Z ddlmZ ddlmZ ddlmZ ddlmZ dZ dZ
dZdd�Zd
� Z
d� Zd� Zdg d
d
fd�Zd� Zdd dddd
d
d
dddg fd�ZdS )z+Tools for setting up interactive sessions. � )�GROUND_TYPES)�
version_tuple)�
init_printing)�ARCHz�from sympy import *
x, y, z, t = symbols('x y z t')
k, m, n = symbols('k m n', integer=True)
f, g, h = symbols('f g h', cls=Function)
init_printing()
zjThese commands were executed:
%(source)s
Documentation can be found at https://docs.sympy.org/%(version)s
z�Could not locate IPython. Having IPython installed is greatly recommended.
See http://ipython.scipy.org for more details. If you use Debian/Ubuntu,
just install the 'ipython' package and start isympy again.
TFNc �: � ddl m} ddl m} ddl}ddl}|rdS d|j dd� z }| rd}nd }d
t z g} |� d� � }
|
�-|
� � � dk r| � d
� � |r| � d� � |||t d� | � � f}d|z }|�t }d}
|�
d� � dd� D ]}|s|
dz
}
�
|
d|z dz z
}
�|}d|v rd}nd|z }|dt |
|d�z z z
}|S )z,Create a banner for an interactive session. r )�__version__)�SYMPY_DEBUGN� z%d.%d.%d� �IPython�Pythonzground types: %s�SYMPY_USE_CACHE�noz
cache: offz
debugging: onz, z,%s console for SymPy %s (Python %s-%s) (%s)
�
�����z>>> �devz%s/)�source�version)�sympyr r �sys�os�version_infor �getenv�lower�appendr �join�preexec_source�split�verbose_message)�ipython�quietr �
sympy_versionr r r �python_version�
shell_name�info�cache�args�message�_source�line�doc_versions �i/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/sympy/interactive/session.py�
_make_messager- s� � �2�2�2�2�2�2�!�!�!�!�!�!��J�J�J�
�I�I�I�� ��r��#�"2�2�A�2�"6�6�N�� ��
�
��
���-�.�D��I�I�'�(�(�E���U�[�[�]�]�d�2�2����L�!�!�!�� %����O�$�$�$��}�n�d�D�I�I�d�O�O�K�D�=��D�G�
�~����G����T�"�"�3�B�3�'� ,� ,��� ,��t�O�G�G��v��}�t�+�+�G�G��K���������k�)���t�o�7�4?�)A� )A� A� A� A�G� �N� c �& � ddl m}m}m}m}m} ddlm} d� }g } | || � � j � � } | D ]R\ }
}}}}|
|k r- ||� � r"|� |df|df||f|dfg� � �;|�
|
|f� � �S ||� � S )aw
Wrap integer literals with Integer.
This is based on the decistmt example from
https://docs.python.org/3/library/tokenize.html.
Only integer literals are converted. Float literals are left alone.
Examples
========
>>> from sympy import Integer # noqa: F401
>>> from sympy.interactive.session import int_to_Integer
>>> s = '1.2 + 1/2 - 0x12 + a1'
>>> int_to_Integer(s)
'1.2 +Integer (1 )/Integer (2 )-Integer (0x12 )+a1 '
>>> s = 'print (1/2)'
>>> int_to_Integer(s)
'print (Integer (1 )/Integer (2 ))'
>>> exec(s)
0.5
>>> exec(int_to_Integer(s))
1/2
r )�generate_tokens�
untokenize�NUMBER�NAME�OP)�StringIOc �j � d| v s,d| � � � v sd| � � � v rdS dS )z]
Returns true if string value num (with token NUMBER) represents an integer.
�.�j�eFT)r )�nums r, �_is_intzint_to_Integer.<locals>._is_intq s; � �
�#�:�:��� � ���+�+�s�c�i�i�k�k�/A�/A��5��tr. �Integer�(�))�tokenizer0 r1 r2 r3 r4 �ior5 �readline�extendr )
�sr0 r1 r2 r3 r4 r5 r; �result�g�toknum�tokval�_s
r, �int_to_IntegerrI U s
� �2 G�F�F�F�F�F�F�F�F�F�F�F�F�F�������� � � �F��������,�-�-�A�#$� ,� ,�����1�a��V����������M�M��y�!��S� ��� ��S� � �
�
�
�
�
�M�M�6�6�*�+�+�+�+��:�f���r. c �: ��� ddl �| j ���fd�}|| _ dS )zM
Allow IPython to automatically convert integer literals to Integer.
r Nc � �� �� | � � t | � � } n# t $ r Y nw xY w �| g|�R i |��S �N)�parserI �SyntaxError)�cellr'