corrected camel case converter
This commit is contained in:
parent
d4604a2cb5
commit
4ab9f0d89b
@ -1,16 +1,25 @@
|
||||
from funcy import walk_keys, walk
|
||||
|
||||
from image_prediction.formatter.formatter import Formatter
|
||||
|
||||
|
||||
class Snake2CamelCaseKeyFormatter(Formatter):
|
||||
|
||||
@staticmethod
|
||||
def __format(key: str):
|
||||
def __format_key(key):
|
||||
|
||||
if isinstance(key, str):
|
||||
head, *tail = key.split("_")
|
||||
return head + "".join(map(lambda s: s.title(), tail))
|
||||
else:
|
||||
return key
|
||||
|
||||
def __format(self, data):
|
||||
|
||||
if not isinstance(data, dict):
|
||||
return data
|
||||
|
||||
keys_formatted = list(map(self.__format_key, data))
|
||||
|
||||
return dict(zip(keys_formatted, map(self.__format, data.values())))
|
||||
|
||||
def format(self, data):
|
||||
return walk(self.__format, data)
|
||||
return self.__format(data)
|
||||
|
||||
@ -18,5 +18,5 @@ def camel_case_data():
|
||||
return {"aKey": {"key": None, "key2": ["may_not_be_changed"]}, 2: {"yetAnotherKey": None}}
|
||||
|
||||
|
||||
# def test_camel_case_key_formatter(snake_case_data, camel_case_data):
|
||||
# assert Snake2CamelCaseKeyFormatter()(snake_case_data) == camel_case_data
|
||||
def test_camel_case_key_formatter(snake_case_data, camel_case_data):
|
||||
assert Snake2CamelCaseKeyFormatter()(snake_case_data) == camel_case_data
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user