@staticmethod
def expand_collection_shortcut(path):
    parts = path.split('.')
    if (len(parts) != 2):
        return (None, None, f'invalid collection path {path}')
    parts = [('_default' if (x == '') else x) for x in parts]
    return (parts[0], parts[1], None)
@staticmethod
def expand_collection_shortcut(path):
    parts = path.split('.')
    if (len(parts) != 2):
        return (None, None, f'invalid collection path {path}')
    parts = [('_default' if (x == ) else x) for x in parts]
    return (parts[0], parts[1], None)