예제 #1
0
    def _get_module(self):
        name = '__main__'
        if self.path is not None:
            import_names = transform_path_to_dotted(self._evaluator.get_sys_path(), self.path)
            if import_names is not None:
                name = '.'.join(import_names)

        module = ModuleContext(
            self._evaluator, self._module_node, self.path,
            code_lines=self._code_lines
        )
        imports.add_module_to_cache(self._evaluator, name, module)
        return module
예제 #2
0
    def _get_module(self):
        name = '__main__'
        if self.path is not None:
            import_names = dotted_path_in_sys_path(self._evaluator.get_sys_path(), self.path)
            if import_names is not None:
                name = '.'.join(import_names)

        module = ModuleContext(
            self._evaluator, self._module_node, self.path,
            code_lines=self._code_lines
        )
        imports.add_module_to_cache(self._evaluator, name, module)
        return module
예제 #3
0
    def _get_module(self):
        name = '__main__'
        if self.path is not None:
            n = dotted_path_in_sys_path(self._evaluator.get_sys_path(), self.path)
            if n is not None:
                name = n

        module = ModuleContext(
            self._evaluator, self._module_node, self.path,
            code_lines=self._code_lines
        )
        imports.add_module_to_cache(self._evaluator, name, module)
        return module
예제 #4
0
def _create(evaluator, access_handle, parent_context, *args):
    compiled_object = create_cached_compiled_object(
        evaluator, access_handle, parent_context=parent_context.compiled_object)

    result = _find_syntax_node_name(evaluator, access_handle)
    if result is None:
        return compiled_object

    module_node, tree_node, path, code_lines = result

    if parent_context.tree_node.get_root_node() == module_node:
        module_context = parent_context.get_root_context()
    else:
        module_context = ModuleContext(
            evaluator, module_node,
            path=path,
            code_lines=code_lines,
        )
        # TODO this __name__ is probably wrong.
        name = compiled_object.get_root_context().py__name__()
        if name is not None:
            imports.add_module_to_cache(evaluator, name, module_context)

    tree_context = module_context.create_context(
        tree_node,
        node_is_context=True,
        node_is_object=True
    )
    if tree_node.type == 'classdef':
        if not access_handle.is_class():
            # Is an instance, not a class.
            tree_context, = tree_context.execute_evaluated()

    return MixedObject(
        evaluator,
        parent_context,
        compiled_object,
        tree_context=tree_context
    )