input.py 文件源码

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

项目:bob 作者: BobBuildTool 项目源码 文件源码
def loadYaml(self, name, yamlSchema, default):
        bs = binStat(name)
        if name in self.__shelve:
            cached = self.__shelve[name]
            if ((cached['lstat'] == bs) and
                (cached.get('vsn') == BOB_INPUT_HASH)):
                self.__files[name] = cached['digest']
                return cached['data']

        with open(name, "r") as f:
            try:
                rawData = f.read()
                data = yaml.safe_load(rawData)
                digest = hashlib.sha1(rawData.encode('utf8')).digest()
            except Exception as e:
                raise ParseError("Error while parsing {}: {}".format(name, str(e)))

        if data is None: data = default
        try:
            data = yamlSchema.validate(data)
        except schema.SchemaError as e:
            raise ParseError("Error while validating {}: {}".format(name, str(e)))

        self.__files[name] = digest
        self.__shelve[name] = {
            'lstat' : bs,
            'data' : data,
            'vsn' : BOB_INPUT_HASH,
            'digest' : digest
        }
        return data
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号