forked from Unleash/unleash-client-python
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathutils.py
28 lines (21 loc) · 931 Bytes
/
utils.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import logging
from typing import Any
import mmh3 # pylint: disable=import-error
from requests import Response
LOGGER = logging.getLogger('UnleashClient')
def normalized_hash(identifier: str,
activation_group: str,
normalizer: int = 100) -> int:
return mmh3.hash(f"{activation_group}:{identifier}", signed=False) % normalizer + 1
def get_identifier(context_key_name: str, context: dict) -> Any:
if context_key_name in context.keys():
value = context[context_key_name]
elif 'properties' in context.keys() and context_key_name in context['properties'].keys():
value = context['properties'][context_key_name]
else:
value = None
return value
def log_resp_info(resp: Response) -> None:
LOGGER.debug("HTTP status code: %s", resp.status_code)
LOGGER.debug("HTTP headers: %s", resp.headers)
LOGGER.debug("HTTP content: %s", resp.text)