code: def getsource(name, module_dir, level):
      # Try to load py file
      module_base = name.replace(".", os.path.sep) + ".py"
      if module_dir is None:
          assert (
              level <= 0
          ), "Cannot use relative path without module_dir"
          module_file = module_base
      else:
          module_file = os.path.sep.join(
              ([module_dir] + [".."] * (level - 1) + [module_base])
          )
      try:
          with open(module_file, "r") as fp:
              from pythran.frontend import raw_parse
  
              node = raw_parse(fp.read())
              add_filename_field(node, name + ".py")
              return node
      except IOError:
          raise PythranSyntaxError(
              "Module '{}' not found.".format(name)
          )
  
imports: from pythran.passmanager import Transformation
  from pythran.tables import MODULES, pythran_ward
  from pythran.syntax import PythranSyntaxError
  import gast
  import logging
  import os
label_desc: Use image node_id 8 for calling a global function with example usage: getsource(name, module_dir, level) and returns: node