� ���g�� ��ddlZddlZddlmZmZddlmZddlmZddlm Z m Z m Z ddl Z ddl mZddlmZddlmZdd lmZe j�ed d d � ��� ��Ze j���Ze�d e��dZdZeZdezZde e de fd�Z! d.de de e de"de#de j$f d�Z%dd�de j$de de"de e j$e ffd�Z&d/de de e de"de#de f d �Z'd0d"e de e d#e de#de f d$�Z( d/de de e de"de#de j$f d%�Z)d1de d&e de e de e#de j$f d'�Z*Gd(�d)e+��Z,Gd*�d+e,��Z-Gd,�d-ej.��Z/dS)2�N)�date�datetime)�GzipFile)�BytesIO)�Any�Optional�Union)�tzutc)�Retry)�remove_trailing_slash)�VERSION�)�total�connect�read)� max_retrieszhttps://zhttps://us.i.posthog.comzhttps://eu.i.posthog.comzposthog-python/�host�returnc�f�|pt}t|��}|dvrtS|dkrtS|S)z"Determines the server host to use.)zhttps://app.posthog.comzhttps://us.posthog.comzhttps://eu.posthog.com)� DEFAULT_HOSTr �US_INGESTION_ENDPOINT�EU_INGESTION_ENDPOINT)r�host_or_default� trimmed_hosts �_/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/posthog/request.py�determine_server_hostr!sC���*�l�O�(��9�9�L��L�L�L�$�$� �1� 1� 1�$�$���F��api_key�gzip�timeoutc ���tjd��}|}tjt ��������|d<t |pt��|z}||d<tj |t���} |� d| ��dtd�} |rxd | d <t��} t| d � ��5} | �| �d ����ddd��n #1swxYwY| ���} t$�|| | |���} | jdkr|� d��| S)zPost the `kwargs` to the API�posthog)�tz�sentAtr)�clszmaking request: %szapplication/json)z Content-Type� User-Agentr zContent-Encoding�w)�fileobj�modezutf-8N)�data�headersr!���data uploaded successfully)�logging� getLoggerr�nowr � isoformatr r�json�dumps�DatetimeSerializer�debug� USER_AGENTrr�write�encode�getvalue�_session�post� status_code)rr�pathr r!�kwargs�log�body�urlr+r,�buf�gz�ress rr<r<-s��� � �I� &� &�C� �D��\�U�W�W�-�-�-�7�7�9�9�D��N� �� 4� � 5� 5�� <�C��D��O� �:�d� 2� 3� 3� 3�D��I�I�"�D�)�)�)�1��L�L�G� ��&,��"�#��i�i�� �c�� ,� ,� ,� +�� �H�H�T�[�[��)�)� *� *� *� +� +� +� +� +� +� +� +� +� +� +���� +� +� +� +��|�|�~�~�� �-�-��$���-� I� I�C� ��#��� � � �.�/�/�/� �Js� )D�D�DT)� return_jsonrE�success_messagerFc�X�tjd��}|jdkr�|�|��|r|���n|}t |t ��rSd|vrOt |dt��r4d|dvr*|�d��t|jd���|S |���}|�d|��t|j|d���#ttf$rt|j|j ���wxYw) Nr#r-� quotaLimited� feature_flagsz�[FEATURE FLAGS] PostHog feature flags quota limited, resetting feature flag data. Learn more about billing limits at https://posthog.com/docs/billing/limits-alertszFeature flags quota limitedzreceived response: %s�detail)r/r0r=r6r3� isinstance�dict�list�warning�QuotaLimitError�APIError�KeyError� ValueError�text)rErGrFr@�response�payloads r�_process_responserWJs8�� � �I� &� &�C� ��#��� � � �/�"�"�"�!,�5�3�8�8�:�:�:�#�� �x�� &� &� R��(�*�*��8�N�3�T�:�:�+��8�N�#;�;�;� �K�K�w� � � �"�#�/�3P�Q�Q� Q���2��(�(�*�*�� � � �)�7�3�3�3��s����(9�:�:�:�� �j� !�2�2�2��s����1�1�1�2���s �8AC=�=,D)c �F�t||d||fi|��}t|d���S)z+Post the `kwargs to the decide API endpointz /decide/?v=4z"Feature flags decided successfully�rG�r<rW�rrr r!r?rEs r�decider\gs3�� �w��n�d�G� F� F�v� F� F�C� �S�2V� W� W� W�Wr��personal_api_key�keyc�.�t|d|�d�||��S)z<Get remote config flag value from remote_config API endpointz%/api/projects/@current/feature_flags/z/remote_config/)�get)r^rr_r!s r� remote_configrbms%�� ��!]��!]�!]�!]�_c�el� m� m�mrc �H�t||d||fi|��}t|dd���S)z6Post the `kwargs` to the batch API endpoint for eventsz/batch/r.F)rGrFrZr[s r� batch_postrdrs8�� �w��i��w� A� A�&� A� A�C� �S�2N�\a� b� b� b�brrBc��t|pt��|z}tj|d|ztd�|���}t |d|�d����S)Nz Bearer %s)� Authorizationr')r,r!zGET z completed successfullyrY)r r�requestsrar7rW)rrBrr!rEs rrarazs]�� �� 4� � 5� 5�� ;�C� �,�s�k�G�6K�[e�$f�$f�pw� x� x� x�C� �S�2U��2U�2U�2U� V� V� V�Vrc�4�eZdZdeeefdefd�Zd�ZdS)rQ�status�messagec�"�||_||_dS�N)rjri)�selfrirjs r�__init__zAPIError.__init__�s���� ��� � � rc�F�d}|�|j|j��S)Nz[PostHog] {0} ({1}))�formatrjri)rm�msgs r�__str__zAPIError.__str__�s��#���z�z�$�,�� �4�4�4rN)�__name__� __module__� __qualname__r �int�strrnrr�rrrQrQ�sM�������u�S�#�X��������5�5�5�5�5rrQc��eZdZdS)rPN)rsrtrurxrrrPrP�s�������DrrPc��eZdZdefd�ZdS)r5�objc��t|ttf��r|���Stj�||��Srl)rLrrr2r3� JSONEncoder�default)rmr{s rr~zDatetimeSerializer.default�s@�� �c�D�(�+� ,� ,� #��=�=�?�?� "���'�'��c�2�2�2rN)rsrtrurr~rxrrr5r5�s/������3�3�3�3�3�3�3�3rr5)NNFr)NFr)Nr]r)NN)0r3r/rrr r�ior�typingrrr rg� dateutil.tzr �urllib3.util.retryr � posthog.utilsr �posthog.versionr �adapters� HTTPAdapter�adapter�sessions�Sessionr;�mountrrrr7rwr�boolrv�Responser<rWr\rbrdra� ExceptionrQrPr}r5rxrr�<module>r�s��� � � � �����#�#�#�#�#�#�#�#�������������'�'�'�'�'�'�'�'�'�'�����������$�$�$�$�$�$�/�/�/�/�/�/�#�#�#�#�#�#� � � '� '����� ���� (� � �� � � $� $� &� &�����z�7�#�#�#�2��2��$� � �� (� � ��� � �#� � � � �]_��� �� �� ��?C��VY�� ������<JN�2�2�2� � �2�-0�2�BF�2� �8� �c� !�"�2�2�2�2�:X�X�C�X�x��}�X�4�X�RU�X�il�X�X�X�X� n�n�C�n�x��}�n�#�n�]`�n�jm�n�n�n�n� RT�c�c� �c� �� �c�48�c�KN�c� ��c�c�c�c�W�W��W�3�W�h�s�m�W�X�c�]�W�^f�^o�W�W�W�W� 5�5�5�5�5�y�5�5�5� � � � � �h� � � �3�3�3�3�3��)�3�3�3�3�3r
Memory