Source code for landlab.framework.decorators
#! /usr/bin/env python
"""Decorators for TheLandlab package."""
import re
[docs]def camel_case(text, sep=None):
"""Convert to camel case.
Convert *text* to camel case. Use the *sep* keyword to specify the word
separator. The default is to split on whitespace.
>>> from landlab.framework.decorators import camel_case
>>> camel_case("eric idle")
'EricIdle'
>>> camel_case("terry_gilliam", sep="_")
'TerryGilliam'
>>> camel_case("MONTY Python")
'MONTYPython'
>>> camel_case("GrahamChapman")
'GrahamChapman'
"""
return "".join([word[0].upper() + word[1:] for word in text.split(sep)])
[docs]def snake_case(text):
"""Convert camel case to snake case.
Examples
--------
>>> from landlab.framework.decorators import snake_case
>>> snake_case("EricIdle")
'eric_idle'
>>> snake_case("MONTYPython")
'monty_python'
"""
s1 = re.sub("(.)([A-Z][a-z]+)", r"\1_\2", text)
return re.sub("([a-z0-9])([A-Z])", r"\1_\2", s1).lower()