
    \jc                         d Z ddlmZ ddlZddlZddlmZ ddlmZm	Z	m
Z
 ddlmZ ddlmZmZ dZ ed	d
dg      Z G d de      Zy)z:
Default implementation of feature flag polling requests.
    )
namedtupleN)_http_factory)_headerslogthrow_if_unsuccessful_response)FeatureRequester)FEATURESSEGMENTSz/sdk/latest-all
CacheEntrydataetagc                       e Zd Zd Zd Zy)FeatureRequesterImplc                     t               | _        t        |      j                  d|j                        | _        || _        |j                  t        z   | _        y )N   )	dict_cacher   create_pool_managerbase_uri_http_configLATEST_ALL_URI	_poll_uri)selfconfigs     T/root/env/lib/python3.12/site-packages/ldclient/impl/datasource/feature_requester.py__init__zFeatureRequesterImpl.__init__   s?    f"6*>>q&//R
>9    c           	      (   | j                   }t        | j                        }| j                  j	                  |      }||j
                  |d<   | j                  j                  d||t        j                  | j                  j                  j                  | j                  j                  j                        d      }t        |       |j                  dk(  r||j                  }|j
                  }d}ngt!        j"                  |j                  j%                  d            }|j&                  j	                  d	      }d
}|t)        ||      | j                  |<   t+        j,                  d||j                  ||       t.        |d   t0        |d   iS )NzIf-None-MatchGET)connectreadr   )headerstimeoutretriesi0  TzUTF-8ETagF)r   r   z2%s response status:[%d] From cache? [%s] ETag:[%s]flagssegments)r   r   r   r   getr   r   requesturllib3Timeouthttpconnect_timeoutread_timeoutr   statusr   jsonloadsdecoder#   r   r   debugr	   r
   )r   urihdrscache_entryrr   r   
from_caches           r   get_all_dataz!FeatureRequesterImpl.get_all_data   s]   nn%kkooc*"$/$4$4D!JJuc'+'.t||?P?P?`?`gkgsgsgxgx  hF  hF  (G'(  * 	'q)88s?{6##D##DJ::affmmG45D99==(DJ#-4d#CC 		F:t	- d7md:&
 	
r   N)__name__
__module____qualname__r   r:    r   r   r   r      s    :
r   r   )__doc__collectionsr   r1   r+   ldclient.impl.httpr   ldclient.impl.utilr   r   r   ldclient.interfacesr   ldclient.versioned_data_kindr	   r
   r   r   r   r>   r   r   <module>rE      sK    #   , L L 0 ; # vv&67
"
+ "
r   