diff options
author | Brian Coca <bcoca@ansible.com> | 2016-03-27 14:12:23 -0700 |
---|---|---|
committer | Brian Coca <bcoca@ansible.com> | 2016-03-27 14:12:23 -0700 |
commit | b77bba8f9f48b67cbc203705e68ac9954dcadd00 (patch) | |
tree | 6ba14a42e3ff5041e99bb24512e1ce1208d7f638 | |
parent | 363384f51731dc3935982c0c8ff8e8a298c0ec80 (diff) | |
parent | ef8c1124d0c05048dc8b654ad779d17c3be36ee6 (diff) | |
download | ansible-b77bba8f9f48b67cbc203705e68ac9954dcadd00.tar.gz |
Merge pull request #15175 from wimnat/feature/camel_case_fixing
Add function to convert CamelCased key names to snake_names
-rw-r--r-- | lib/ansible/module_utils/ec2.py | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/lib/ansible/module_utils/ec2.py b/lib/ansible/module_utils/ec2.py index 52b085eb78..18f7d1f590 100644 --- a/lib/ansible/module_utils/ec2.py +++ b/lib/ansible/module_utils/ec2.py @@ -262,3 +262,24 @@ def paging(pause=0): return page return wrapper + +def camel_dict_to_snake_dict(camel_dict): + + def camel_to_snake(name): + + import re + + first_cap_re = re.compile('(.)([A-Z][a-z]+)') + all_cap_re = re.compile('([a-z0-9])([A-Z])') + s1 = first_cap_re.sub(r'\1_\2', name) + + return all_cap_re.sub(r'\1_\2', s1).lower() + + + snake_dict = {} + for k, v in camel_dict.iteritems(): + if isinstance(v, dict): + v = camel_dict_to_snake_dict(v) + snake_dict[camel_to_snake(k)] = v + + return snake_dict |