Skip to content

Instantly share code, notes, and snippets.

@feluelle
Created September 1, 2020 16:25
Show Gist options
  • Save feluelle/498022fad301e368f2a33d46992c58e0 to your computer and use it in GitHub Desktop.
Save feluelle/498022fad301e368f2a33d46992c58e0 to your computer and use it in GitHub Desktop.
A small script for transforming text to various widely used naming conventions like snake_case or camelCase.
def transform_string(string: str, separator: str, upper: bool) -> str:
def _words() -> list:
return string.split()
def _first_character(word: str) -> str:
return word[0].upper() if upper else word[0].lower()
return separator.join(_first_character(word[0]) + word[1:] for word in _words())
def to_snake_case(string: str) -> str:
return transform_string(string, separator='_', upper=False)
def to_upper_camel_case(string: str) -> str:
return transform_string(string, separator='', upper=True)
def to_lower_camel_case(string: str) -> str:
new_string = to_upper_camel_case(string)
return new_string[0].lower() + new_string[1:]
def to_kebab_case(string: str) -> str:
return transform_string(string, separator='-', upper=False)
string = 'Hello World'
print('snake_case: ', to_snake_case(string))
print('UpperCamelCase: ', to_upper_camel_case(string))
print('lowerCamelCase: ', to_lower_camel_case(string))
print('kebab-case: ', to_kebab_case(string))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment