jedi_dump.py 文件源码

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

项目:call_map 作者: nccgroup 项目源码 文件源码
def get_module_node(effective_sys_path: List[Path], module_name: str) -> Tuple[Optional[Node], Optional[Exception]]:
    from .errors import ModuleResolutionError

    import_script = create_import_script(effective_sys_path, module_name)
    definitions = import_script.goto_definitions()

    if definitions:
        mod = tz.first(definitions)

        if tuple(map(int, jedi.__version__.split('.'))) >= (0,10,1):
            # duck punch to avoid mod._name.api_type error, which uses parent_context.
            mod._name.parent_context = mod._name.get_root_context()

        if mod.module_path:
            JediCodeElementNode.usage_resolution_modules |= frozenset((mod._name.get_root_context(),))

        node = JediCodeElementNode.from_definition(
            role='definition',
            call_pos=(mod.module_path, (1,0), (None,None)),
            definition=mod)

        err = None
    else:
        node = None
        err = ModuleResolutionError(
            'Could not resolve module {} (did you mean to use "-f"?)'.format(module_name))

    return node, err
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号