pathspec.py 文件源码

python
阅读 22 收藏 0 点赞 0 评论 0

项目:bob 作者: BobBuildTool 项目源码 文件源码
def evalBackward(self, nodes):
        """Inverse evaluation of location path step."""
        if self.__test == "*":
            pass
        elif '*' in self.__test:
            nodes = set(i for i in nodes if fnmatchcase(i.getName(), self.__test))
        else:
            nodes = set(i for i in nodes if i.getName() == self.__test)

        if self.__pred:
            nodes = nodes & self.__pred.evalBackward()

        if self.__axis == "child":
            nodes = self.__evalAxisParent(nodes, True)
        elif self.__axis == "descendant":
            nodes = self.__evalAxisAncestor(nodes, True)
        elif self.__axis == "descendant-or-self":
            nodes = self.__evalAxisAncestor(nodes, True) | nodes
        elif self.__axis == "direct-child":
            nodes = self.__evalAxisParent(nodes, False)
        elif self.__axis == "direct-descendant":
            nodes = self.__evalAxisAncestor(nodes, False)
        elif self.__axis == "direct-descendant-or-self":
            nodes = self.__evalAxisAncestor(nodes, False) | nodes
        elif self.__axis == "self":
            pass
        else:
            assert False, "Invalid axis: " + self.__axis

        return nodes
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号