� ���g����ddlZddlZddlmZddlZddlZddlmZmZm Z  ddl m Z n#e $r ddl m Z YnwxYwdZdZGd�de��ZdS) �N)�Thread)�APIError�DatetimeSerializer� batch_post)�EmptyiiPc�h�eZdZdZejd��Z dd �Zd �Zd �Z d �Z d �Z d�Z dS)�Consumerz.Consumes the messages from the client's queue.�posthog�dN��?F� �c ���tj|��d|_||_||_||_||_||_||_||_ d|_ ||_ | |_ | |_ dS)zCreate a consumer thread.TN)r�__init__�daemon�flush_at�flush_interval�api_key�host�on_error�queue�gzip�running�retries�timeout�historical_migration) �selfrrrrrrrrrrs �`/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/posthog/consumer.pyrzConsumer.__init__sr�� �������� � �� �,����� ��� � �� ��� ��� � �� ��� ��� �$8��!�!�!�c��|j�d��|jr|���|j�|j�d��dS)zRuns the consumer.zconsumer is running...zconsumer exited.N)�log�debugr�upload�rs r�runz Consumer.run=sW�� ����/�0�0�0��l� � �K�K�M�M�M��l� � ����)�*�*�*�*�*rc��d|_dS)zPause the consumer.FN)rr$s r�pausezConsumer.pauseEs ���� � � rc��d}|���}t|��dkrdS |�|��d}nQ#t$rD}|j�d|��d}|jr|�||��Yd}~nd}~wwxYw|D]}|j����|S#|D]}|j����|ccYSxYw)z:Upload the next batch of items, return whether successful.FrTzerror uploading: %sN) �next�len�request� Exceptionr!�errorrr� task_done)r�success�batch�e�items rr#zConsumer.uploadIs ����� � � � �� �u�:�:��?�?��5� � �L�L�� � � ��G�G��� (� (� (� �H�N�N�0�!� 4� 4� 4��G��}� (�� � �a��'�'�'����������  (����� '� '��� �$�$�&�&�&�&��N��� '� '��� �$�$�&�&�&�&��N�N�N�N�N�N�N�Ns/�A�B6� B�:B� B6�B�B6�6#Cc��|j}g}tj��}d}t|��|jk�rtj��|z }||jkrn� |�d|j|z ���}tt j|t���� ����}|tkr)|j � dt|������|�|��||z }|tkr|j �d|��n*n#t"$rYnwxYwt|��|jk��|S)z)Return the next batch of items to upload.rT)�blockr)�clsz)Item exceeds 900kib limit, dropping. (%s)zhit batch size limit (size: %d))r� monotonicr*rr�get�json�dumpsr�encode� MAX_MSG_SIZEr!r-�str�append�BATCH_SIZE_LIMITr"r)rr�items� start_time� total_size�elapsedr2� item_sizes rr)z Consumer.next^sW��� �����(�*�*� �� ��%�j�j�4�=�(�(��)�+�+�j�8�G��$�-�-�-�� ��y�y�t�T�5H�7�5R�y�S�S���� �4�5G� H� H� H� O� O� Q� Q�R�R� ��|�+�+��H�N�N�#N�PS�TX�PY�PY�Z�Z�Z��� � �T�"�"�"��i�'� ��!1�1�1��H�N�N�#D�j�Q�Q�Q��2��� � � ��� �����%�j�j�4�=�(�(�$� s�B D*�(AD*�* D7�6D7c����d�}tjtjt�jdz|�����fd���}|��dS)z=Attempt to upload the batch and retry before raising an errorc��t|t��r-|jdkrdSd|jcxkodknco |jdkSdS)NzN/AFi�i�i�)� isinstancer�status)�excs r�fatal_exceptionz)Consumer.request.<locals>.fatal_exception}s_���#�x�(�(� ��:��&�&� �5��s�z�/�/�/�/�C�/�/�/�/�F�S�Z�3�5F�F��ur�)� max_tries�giveupc�d��t�j�j�j�j��j���dS)N)rrr0r)rrrrrr)r0rs��r� send_requestz&Consumer.request.<locals>.send_request�sA��� �� �� ��Y�� ��%)�%>�  � � � � � rN)�backoff� on_exception�expor,r)rr0rIrNs`` rr+zConsumer.requestzso���� � � � � �g�l�I���PQ�AQ�Zi� j� j� j� � � � � � k� j� � � �����r)r NNr Fr rF) �__name__� __module__� __qualname__�__doc__�logging� getLoggerr!rr%r'r#r)r+�rrr r s�������8�8� �'� �I� &� &�C� � ��� ���"�9�9�9�9�B+�+�+�������*���8����rr )r8rV� threadingrrOr6�posthog.requestrrrrr� ImportError�Queuer;r>r rXrr�<module>r]s��� � � � �������������������D�D�D�D�D�D�D�D�D�D��������������������������� �#��}�}�}�}�}�v�}�}�}�}�}s �)� 7�7
Memory