� J�gi ����ddlZddlmZmZdZdZGd�de��ZGd�de��ZGd �d e��ZGd �d e��Z Gd �de��Z Gd�de��Z Gd�de��Z d�Z dS)�N)�ABC�abstractmethodg����Mb�?g����Mb�?c�8�eZdZdZd�Zededefd���ZdS)�AbstractBackoffzBackoff interfacec��dS)z� Reset internal state before an operation. `reset` is called once at the beginning of every call to `Retry.call_with_retry` N���selfs �]/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/redis/backoff.py�resetzAbstractBackoff.reset s �� ���failures�returnc��dS)z'Compute backoff in seconds upon failureNr�r rs r �computezAbstractBackoff.computes �� �r N) �__name__� __module__� __qualname__�__doc__r r�int�floatrrr r rr sW�������� � � �� �� �� � � ��^� � � r rc�2�eZdZdZdeddfd�Zdedefd�ZdS)�ConstantBackoffzConstant backoff upon failure�backoffrNc��||_dS)z"`backoff`: backoff time in secondsN��_backoff)r rs r �__init__zConstantBackoff.__init__s ���� � � r rc��|jS�Nrrs r rzConstantBackoff.compute"s ���}�r )rrrrrrrrrr r rrs^������'�'� �� �$� � � � ����������r rc�$��eZdZdZd�fd� Z�xZS)� NoBackoffzNo backoff upon failurerNc�J��t���d��dS�Nr)�superr)r � __class__s �r rzNoBackoff.__init__)s!��� ����������r �rN)rrrrr� __classcell__)r's@r r#r#&sC�������!�!����������r r#c�8�eZdZdZeefdedefd�Zdedefd�Z dS) �ExponentialBackoffz Exponential backoff upon failure�cap�basec�"�||_||_dS��e `cap`: maximum backoff time in seconds `base`: base backoff time in seconds N��_cap�_base�r r,r-s r rzExponentialBackoff.__init__0��� �� ��� � � r rrc�B�t|j|jd|zz��S)N�)�minr2r3rs r rzExponentialBackoff.compute8s���4�9�d�j�1�h�;�6�7�7�7r N� rrrr� DEFAULT_CAP� DEFAULT_BASErrrrrr r r+r+-sh������*�*�$/�|���E��u�����8��8��8�8�8�8�8�8r r+c�<�eZdZdZeefdededdfd�Zdedefd�Z dS) �FullJitterBackoffz Full jitter backoff upon failurer,r-rNc�"�||_||_dSr/r1r4s r rzFullJitterBackoff.__init__?r5r rc �h�tjdt|j|jd|zz����S)Nrr7)�random�uniformr8r2r3rs r rzFullJitterBackoff.computeGs+���~�a��T�Y�� �Q��[�0H�!I�!I�J�J�Jr r9rr r r=r=<sx������*�*�$/�|���E��u��PT�����K��K��K�K�K�K�K�Kr r=c�<�eZdZdZeefdededdfd�Zdedefd�Z dS) �EqualJitterBackoffz!Equal jitter backoff upon failurer,r-rNc�"�||_||_dSr/r1r4s r rzEqualJitterBackoff.__init__Nr5r rc�x�t|j|jd|zz��dz }|tjd|��zS)Nr7r)r8r2r3r@rA)r r�temps r rzEqualJitterBackoff.computeVs:���4�9�d�j�1�h�;�6�7�7�!�;���f�n�Q��-�-�-�-r r9rr r rCrCKsp������+�+�$/�|���E��u��PT�����.��.��.�.�.�.�.�.r rCc�D�eZdZdZeefdededdfd�Zd d�Zde defd �Z dS) �DecorrelatedJitterBackoffz(Decorrelated jitter backoff upon failurer,r-rNc�0�||_||_d|_dS)r0rN)r2r3�_previous_backoffr4s r rz"DecorrelatedJitterBackoff.__init__^s �� �� ��� �!"����r c��d|_dSr%)rJr s r r zDecorrelatedJitterBackoff.resetgs��!"����r rc��t|j|jdz��}tj|j|��}t |j|��|_|jS)N�)�maxr3rJr@rAr8r2)r r� max_backoffrFs r rz!DecorrelatedJitterBackoff.computejsK���$�*�d�&<�q�&@�A�A� ��~�d�j�+�6�6��!$�T�Y��!5�!5����%�%r r() rrrrr:r;rrr rrrr r rHrH[s�������2�2�$/�|�#�#�E�#�u�#�PT�#�#�#�#�#�#�#�#�&��&��&�&�&�&�&�&r rHc��t��Sr!)rCrr r �default_backoffrQqs�� � � �r )r@�abcrrr:r;rrr#r+r=rCrHrQrr r �<module>rSsy�� � � � �#�#�#�#�#�#�#�#�� �� � � � � � �c� � � �"�����o������������� 8� 8� 8� 8� 8�� 8� 8� 8� K� K� K� K� K�� K� K� K� .� .� .� .� .�� .� .� .� &�&�&�&�&��&�&�&�, � � � � r
Memory