@classmethod<EOL><INDENT>def __resolve_path(cls, obj, path):<DEDENT>
path = filter(lambda s: s, path)<EOL>if any(path):<EOL><INDENT>pathes = len(path)<EOL>i = <NUM_LIT:0><EOL>while i < pathes:<EOL><INDENT>obj, i = cls._get_obj_attr(obj, path, i)<EOL>i += <NUM_LIT:1><EOL><DEDENT><DEDENT>else:<EOL><INDENT>raise Exception("<STR_LIT>")<EOL><DEDENT>return obj<EOL>
Follow a kwargsql expression starting from a given object
        and return the deduced object.

        :param obj: the object to start from
        :param list path: list of operations to perform. It does not contain
                          the optional operation of a traditional kwargsql
                          expression.
        :return: the found object if any, `None` otherwise.

        For instance:
        >>> __resolve_path(dict(foo=dict(bar=42)), ['foo', 'bar'])
        >>> 42