When not initialized the list properties return an empty list rather than None. This is confusing as in the case below, that is not even a valid thing:
import properties
class Array(properties.HasProperties):
shape = properties.List(
'shape of the 2d array',
prop=properties.Integer('', min=1),
min_length=2,
max_length=2,
)
a = Array()
print(a.shape)
#> []