merge.py 文件源码

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

项目:ansible-oss 作者: sailthru 项目源码 文件源码
def run(self, terms, variables, **kwargs):
        if len(terms) <= 1:
            raise AnsibleUndefinedVariable("Mergedict takes 2 options")

        if not (isinstance(terms[0], dict) or isinstance(terms[0], list)):
            raise AnsibleUndefinedVariable("First option must be a dict or list")

        if not isinstance(terms[1], dict):
            raise AnsibleUndefinedVariable("Second option must be a dict")

        result=[]
        temp={}

        to_data = terms[0]
        from_dict = terms[1]

        for item in to_data:
            if isinstance(to_data, list):
                temp = self.dict_merge(from_dict.copy(), item)

            if isinstance(to_data, dict):
                if len(terms) == 3:
                    if isinstance(terms[2], list):
                        if item not in terms[2]:
                            continue
                    else:
                       raise AnsibleUndefinedVariable("Third option must be a list")

                temp = self.dict_merge(from_dict.copy(), to_data[item])
                temp['key'] = item

            result.append(temp)

        return result
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号