
    [d^i                     x   U d dl Z d dlmZmZmZ d dlZd dlmZ d dlm	Z	  e j                  e      Zdaeej                     ed<   dej                  fdZdddd	d
edeeeef      deeeef      dedej&                  f
dZdddddd
edeeeef      deeeef      deeeef      dedej&                  fdZy)    N)AnyDictOptional)HTTPAdapter)Retry_sessionreturnc                      t         t         S t        j                         } t        dddddt	        g d      d      }t        |      }| j                  d|       | j                  d	|       | a | S )
N   g      ?)i  i  i  i  i  )GETPOSTPUTDELETEPATCHHEADOPTIONSF)totalconnectreadbackoff_factorstatus_forcelistallowed_methodsraise_on_status)max_retrieszhttp://zhttps://)r   requestsSessionr   	frozensetr   mount)sessionretriesadapters      A/Users/talgatiskakov/sites/serviceNotifications/app/utils/http.py_get_sessionr#      sr     G2!"^_G g.GMM)W%MM*g&HN    g      .@paramsheaderstimeouturlr&   r'   r(   c                    t               }	 |j                  | |||      }|S # t        $ r t        j	                  d|         w xY w)zF
    GET with sane defaults: retries, timeout, and basic logging.
    r%   zHTTP GET failed: %s)r#   get	Exceptionlogger	exception)r)   r&   r'   r(   r   resps         r"   http_getr0   #   sN     nG{{3vw{P .4s	   # !Ag      4@jsondatar'   r(   r2   r3   c                    t               }	 |j                  | ||||      }|S # t        $ r t        j	                  d|         w xY w)Nr1   zHTTP POST failed: %s)r#   postr,   r-   r.   )r)   r2   r3   r'   r(   r   r/   s          r"   	http_postr6   6   sQ     nG||CdwPW|X /5s	   $ !A)loggingtypingr   r   r   r   requests.adaptersr   urllib3.util.retryr   	getLogger__name__r-   r   r   __annotations__r#   strfloatResponser0   r6    r$   r"   <module>rB      s*    & &  ) $			8	$'+(8##
$ +h&& 2 (,(,	 T#s(^$ d38n%	
  , &*%)(,	 4S>
" 4S>
"	
 d38n%  r$   