Source code for esorm.utils

"""
Utility functions
"""
import re
import datetime


[docs]def snake_case(camel_str: str): """ Convert to snake case :param camel_str: The string to convert to snake case :return: Converted string """ if '_' in camel_str: # If it is already snake cased return camel_str s1 = re.sub('(.)([A-Z][a-z]+)', r'\1_\2', camel_str) return re.sub('([a-z0-9])([A-Z])', r'\1_\2', s1).lower()
[docs]def camel_case(snake_str: str, capitalize_first: bool = False): """ Convert to camel case :param snake_str: The string to convert to camel case :param capitalize_first: Capitalize the first letter :return: Converted string """ components = snake_str.split('_') if capitalize_first: components[0] = components[0].title() return components[0] + ''.join((x.title()) for x in components[1:])
[docs]def utcnow(): """ Get current UTC time :return: Current UTC time """ return datetime.datetime.now(datetime.timezone.utc)