Remember if finver form is extended
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
import re
|
||||
|
||||
def first_or_none(predicate, lst):
|
||||
return next((x for x in lst if predicate(x)), None)
|
||||
|
||||
@@ -18,3 +20,15 @@ def deep_merge(source, destination: dict):
|
||||
return b
|
||||
|
||||
return _deep_merge(source, dict(destination))
|
||||
|
||||
|
||||
def getattr_path(obj, path, default=None):
|
||||
_obj = obj
|
||||
for item in path.split("."):
|
||||
_obj = getattr(_obj, item, default)
|
||||
return _obj
|
||||
|
||||
|
||||
def camel_to_snake(camel_cased):
|
||||
s1 = re.sub("(.)([A-Z][a-z]+)", r"\1_\2", camel_cased)
|
||||
return re.sub("([a-z0-9])([A-Z])", r"\1_\2", s1).lower()
|
||||
|
Reference in New Issue
Block a user