� !��g���^�dZddlZddlZgd�Zgd�Zd d�Zd�Ze��adad d �Z d �Z dS) zMSimple tools for timing functions' execution, when IPython is not available. �N)g�?g@�@g��.Age��A)�s�msuμs�ns�passc ���tj||���}d\}}tdd��D],}|�|��dkrn|�||krn|dz}�-t|�||����|z }|dkrFtt t jt j|����dz�� d��}nd}|||t|zt|fS) z1Adaptively measure execution time of a function. )�setup)��r � g�������?Ngr ) �timeit�Timer�range�min�repeat�int�math�floor�log10�_scales�_units) �funcr�limit�timerr�number�i�time�orders �i/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/sympy/utilities/timeutils.py�timedr s��� �L��U� +� +� +�E��N�F�F� �1�b�\�\���� �<�<�� � �3� &� &� �E� � �6�U�?�?� �E� �b�L�F�F� �u�|�|�F�F�+�+� ,� ,�v� 5�D� �c�z�z��S���D�J�t�$4�$4�5�5��:�;�;�;�Q�?�?����� �D�$�w�u�~�-�v�e�}� =�=�c��ddl}|�dd��}d�|�d��D��}t|��S)Nr� SYMPY_TIMINGS�c�6�g|]}|�����S�)�strip)�.0�xs r� <listcomp>z __do_timings.<locals>.<listcomp>(s �� -� -� -��1�7�7�9�9� -� -� -r �,)�os�getenv�split�set)r+�ress r� __do_timingsr0%sF�� �I�I�I� �)�)�O�R� (� (�C� -� -�c�i�i��n�n� -� -� -�C� �s�8�8�Or r c��td|zd|d|d|dfz��|dD]}t||dz���dS)N�-z %.2f %s%s�rr r )�print�_print_timestack)�stack�levelrs rr5r5/sb�� �#�e�)�[�E�!�H�e�A�h��a��#A�A�B�B�B� �1�X�'�'����E�A�I�&�&�&�&�'�'r c����fd�}|S)Nc�*����tvr�S�fd�}|S)Nc���ddlm}t}�jgd|ga|��}�|i|��}|��}||z td<|�#|d�t��|ant t��da|S)Nr)rr3r )r� _timestack� func_name�appendr5)�args�kwargsr� oldtimestack�t1�r�t2rs �r�wrapperz,timethis.<locals>.decorator.<locals>.wrapper;s���� !� !� !� !� !� !�%�L��.�"�a��6�J�����B���d�%�f�%�%�A�����B���G�J�q�M��'��Q��&�&�z�2�2�2�)� � � ��,�,�,�!� ��Hr )� _do_timings)rrD�names` �r� decoratorztimethis.<locals>.decorator6s4���� �{� "� "��K� � � � � � �r r%)rFrGs` r�timethisrH5s$��������, �r )rN)r ) �__doc__r rrrrr0rEr;r5rHr%r r�<module>rJs���S�S�� � � � � � � � � � �� 8� 8� 8��>�>�>�>�2��� �l�n�n� � � �'�'�'�'� ����r
Memory