base.py 文件源码

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

项目:CAEML 作者: Renumics 项目源码 文件源码
def constructCaemlObj_fromCaemlDict(aDict: dict) -> caemlBaseObj:
    """Constructs a object of caeml.base from a dict if caeml knows how to contruct, else aDict is returned."""
    if not 'caemlType' in aDict:
        raise ValueError('aDict must include a CAEMl type')
    aClassName = aDict.pop('caemlType')
    if not type(aClassName) is list:
        aClassName = [aClassName]
    logging.getLogger('system').debug('Building object of type' + aClassName[0])
    aClass = locate(aClassName[0])  # TODO manager autocomplete, TODO: manager
    if (not aClass):
        raise Exception('No ctor found for ' + aClassName[0])

    try:
        if 'name' in aDict:
            aObject = aClass(**aDict)  # TODO: maybe validate parent<-> child relationships here:
        else:
            aObject = aClass(**aDict)
        return aObject
    except Exception as e:
        raise Exception('Ctor of {} raised {}'.format(aClassName[0], str(e)))
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号