- February 5, 2008
- utilities formatting one-liners
- 0 (after 0 ratings)
Just a simple regex function to convert a camel case string ("ClassName") to a lower case string with underscores ("class_name"). Came across a need for this when I was trying to add properties to a model at runtime using
object.__class__.__name__. This is a modification of the function "get_verbose_name" found in django.db.models.options.
camelcase_to_underscore = lambda str: re.sub('(((?<=[a-z])[A-Z])|([A-Z](?![A-Z]|$)))', '_\\1', str).lower().strip('_')