By having models.py as one big file it causes to easily create circular dependencies. With the current setup it is not possible to re-use DynamoType. This refactor moves it out to its own file while trying to keep the structure as much as it is.
18 lines
497 B
Python
18 lines
497 B
Python
import re
|
|
|
|
|
|
def bytesize(val):
|
|
return len(str(val).encode("utf-8"))
|
|
|
|
|
|
def attribute_is_list(attr):
|
|
"""
|
|
Checks if attribute denotes a list, and returns the name of the list and the given list index if so
|
|
:param attr: attr or attr[index]
|
|
:return: attr, index or None
|
|
"""
|
|
list_index_update = re.match("(.+)\\[([0-9]+)\\]", attr)
|
|
if list_index_update:
|
|
attr = list_index_update.group(1)
|
|
return attr, list_index_update.group(2) if list_index_update else None
|