class_docstr: The usage of Hybrid Module is very similar to conventional TVM module,
  but conventional TVM module requires a function body which is already fully
  lowered. This contradicts to the fact that Hybrid Module is originally a text
  format for Phase 0 HalideIR. Thus, a totally separated module is defined.
class_docstr_tok: ["The","usage","of","Hybrid","Module","is","very","similar","to","conventional","TVM","module",",","but","conventional","TVM","module","requires","a","function","body","which","is","already","fully","lowered",".","This","contradicts","to","the","fact","that","Hybrid","Module","is","originally","a","text","format","for","Phase","0","HalideIR",".","Thus",",","a","totally","separated","module","is","defined","."]
docstr: Load the module from a python file
  
  Parameters
  ----------
  path : str
      Path to the given python file
docstr_tok: ["Load","the","module","from","a","python","file","Parameters","--","--","--","--","--","path",":","str","Path","to","the","given","python","file"]
code: def load(self, path):
      """Load the module from a python file
  
      Parameters
      ----------
      path : str
          Path to the given python file
      """
      with open(path, "r") as f:
          self.src_ = f.read()
  
      src = self.src_
  
      class FindFunc(ast.NodeVisitor):
          """Find the function in module to be loaded module."""
  
          # pylint: disable=invalid-name
          def __init__(self):
              self.name = None
              self.root = None
  
          def visit_FunctionDef(self, node):
              _internal_assert(
                  self.name is None,
                  "For now, only one function supported!",
              )
              self.name = node.name
              _internal_assert(
                  self.root is None,
                  "For now, only one function supported!",
              )
              self.root = node
  
      root = ast.parse(src)
      finder = FindFunc()
      finder.visit(root)
      _internal_assert(
          finder.name is not None and finder.root is not None,
          "No function found!",
      )
      if self.name is None:
          self.name = finder.name
      self.root_ = finder.root
  
      _, local_ = {}, {}
      exec(self.src_, _, local_)  # pylint: disable=exec-used
      local_.pop("tvm")
      assert len(local_) == 1
      self.func_ = list(local_.values())[0]
  
file_path: tvm/python/tvm/te/hybrid/module.py
imports: import ast
  from tvm.contrib import utils
  from .utils import _internal_assert
  from .utils import _is_tvm_arg_types
  from .parser import source_to_op
label_desc: Use image node_id 5 for calling the HybridModule obj's underlying member method code with example usage: obj.load(path) without return types