mypydantic.helpers.parsers
1from typing import Literal 2 3 4def snake_case(text: str): 5 convert = "".join(["_" + i.lower() if i.isupper() else i for i in text]).lstrip("_") 6 check_convert = convert.split("_") 7 # Handle ARN, IP, HTTP, AWS, KMS, ACL 8 return "".join( 9 [ 10 "" + j if len(j) == 1 and j not in ("p", "s", "l") else j + "_" 11 for j in check_convert 12 ] 13 ).rstrip("_") 14 15 16def camel_case(text: str): 17 # AWS uses ARN, IP, KMS, AWS, etc... 18 return "".join( 19 [ 20 i.capitalize() if i not in ("arn", "ip", "aws", "kms") else i.upper() 21 for i in text.split("_") 22 ] 23 ) 24 25 26def convert_all_keys(dict_object: dict, conversion_type: Literal["snake", "camel"]): 27 if conversion_type == "snake": 28 case_type = snake_case 29 if conversion_type == "camel": 30 case_type = camel_case 31 case_keys = [case_type(i) for i in dict_object.keys()] 32 message = dict(zip(case_keys, list(dict_object.values()))) 33 for key, value in dict_object.items(): 34 if isinstance(value, dict): 35 message[case_type(key)] = convert_all_keys(value, conversion_type) 36 if isinstance(value, list): 37 for idx, item in enumerate(value): 38 if isinstance(item, dict): 39 message[case_type(key)][idx] = convert_all_keys( 40 item, conversion_type 41 ) 42 return message 43 44 45def sanitize(dict_object: dict) -> dict: 46 for key, value in dict_object.items(): 47 if isinstance(value, str): 48 dict_object[key] = value.replace("\n", " ").rstrip(" ") 49 if isinstance(value, dict): 50 sanitize(value) 51 if isinstance(value, list): 52 for item in value: 53 if isinstance(item, dict): 54 sanitize(item) 55 return dict_object
def
snake_case(text: str):
5def snake_case(text: str): 6 convert = "".join(["_" + i.lower() if i.isupper() else i for i in text]).lstrip("_") 7 check_convert = convert.split("_") 8 # Handle ARN, IP, HTTP, AWS, KMS, ACL 9 return "".join( 10 [ 11 "" + j if len(j) == 1 and j not in ("p", "s", "l") else j + "_" 12 for j in check_convert 13 ] 14 ).rstrip("_")
def
camel_case(text: str):
def
convert_all_keys(dict_object: dict, conversion_type: Literal['snake', 'camel']):
27def convert_all_keys(dict_object: dict, conversion_type: Literal["snake", "camel"]): 28 if conversion_type == "snake": 29 case_type = snake_case 30 if conversion_type == "camel": 31 case_type = camel_case 32 case_keys = [case_type(i) for i in dict_object.keys()] 33 message = dict(zip(case_keys, list(dict_object.values()))) 34 for key, value in dict_object.items(): 35 if isinstance(value, dict): 36 message[case_type(key)] = convert_all_keys(value, conversion_type) 37 if isinstance(value, list): 38 for idx, item in enumerate(value): 39 if isinstance(item, dict): 40 message[case_type(key)][idx] = convert_all_keys( 41 item, conversion_type 42 ) 43 return message
def
sanitize(dict_object: dict) -> dict:
46def sanitize(dict_object: dict) -> dict: 47 for key, value in dict_object.items(): 48 if isinstance(value, str): 49 dict_object[key] = value.replace("\n", " ").rstrip(" ") 50 if isinstance(value, dict): 51 sanitize(value) 52 if isinstance(value, list): 53 for item in value: 54 if isinstance(item, dict): 55 sanitize(item) 56 return dict_object