stmt_inferrer.py 文件源码

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

项目:Typpete 作者: caterinaurban 项目源码 文件源码
def _infer_import_from(node, context, solver):
    """Infer the imported module in an `import from` statement"""
    if node.module == "typing":
        # FIXME ignore typing module for now, so as not to break type variables
        # Remove after implementing stub for typing and built-in importing
        return solver.z3_types.none
    import_context = ImportHandler.infer_import(node.module, solver.config.base_folder, infer, solver)

    if len(node.names) == 1 and node.names[0].name == "*":
        # import all module elements
        for v in import_context.types_map:
            context.set_type(v, import_context.get_type(v))
    else:
        # Import only stated names
        for name in node.names:
            elt_name = name.name
            if name.asname:
                elt_name = name.asname
            if name.name not in import_context.types_map:
                raise ImportError("Cannot import name {}".format(name.name))
            context.set_type(elt_name, import_context.get_type(name.name))

    return solver.z3_types.none
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号