�
���g� � � � d dl Z d dlZd dlmZ d dlZd dlZd dlmZmZm Z d dl
mZ n# e$ r d dl
mZ Y nw xY wdZdZ G d� de� � ZdS ) � N)�Thread)�APIError�DatetimeSerializer�
batch_post)�Emptyi i P c �h � e Zd ZdZ ej d� � Z dd �Zd
� Zd� Z d� Z
d
� Zd� ZdS )�Consumerz.Consumes the messages from the client's queue.�posthog�d N� �?F�
� c �� � t j | � � 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)�selfr r r r r r r r r r s �`/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/posthog/consumer.pyr zConsumer.__init__ sr � � ��������� ��
�,�������� � ��
���
��� �
���������$8��!�!�!� c � � | j � d� � | j r| � � � | j �| j � d� � dS )zRuns the consumer.zconsumer is running...zconsumer exited.N)�log�debugr �upload�r s r �runzConsumer.run= sW � �����/�0�0�0��l� ��K�K�M�M�M� �l� �
����)�*�*�*�*�*r c � � d| _ dS )zPause the consumer.FN)r r$ s r �pausezConsumer.pauseE s
� �����r c � � d}| � � � }t |� � dk rdS | � |� � d}nQ# t $ rD}| j � d|� � d}| j r| � ||� � Y d}~nd}~ww xY w|D ]}| j � � � �|S # |D ]}| j � � � �|c cY S xY w)z:Upload the next batch of items, return whether successful.Fr Tzerror uploading: %sN) �next�len�request� Exceptionr! �errorr r � task_done)r �success�batch�e�items r r# zConsumer.uploadI s
� ���� � �����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 }t j � � }d}t |� � | j k �rt j � � |z
}|| j k rn� |� d| j |z
�� � }t t
j |t �� � � � � � � }|t k r)| j � dt |� � � � ��|� |� � ||z
}|t k r| j � d|� � n*n# t"