code: def linkcode_resolve(domain, info):
      def find_source():
          # try to find the file and line number, based on code from numpy:
          # https://github.com/numpy/numpy/blob/master/doc/source/conf.py#L286
          obj = sys.modules[info["module"]]
          for part in info["fullname"].split("."):
              obj = getattr(obj, part)
          import inspect
          import os
  
          fn = inspect.getsourcefile(obj)
          fn = os.path.relpath(
              fn, start=os.path.dirname(pytensor.__file__)
          )
          source, lineno = inspect.getsourcelines(obj)
          return fn, lineno, lineno + len(source) - 1
  
      if domain != "py" or not info["module"]:
          return None
      try:
          filename = "pytensor/%s#L%d-L%d" % find_source()
      except Exception:
          filename = info["module"].replace(".", "/") + ".py"
      import subprocess
  
      tag = subprocess.Popen(
          ["git", "rev-parse", "HEAD"],
          stdout=subprocess.PIPE,
          universal_newlines=True,
      ).communicate()[0][:-1]
      return (
          f"https://github.com/pymc-devs/pytensor/blob/{tag}/{filename}"
      )
  
imports: import os
  import sys
  import pytensor
label_desc: Use image node_id 1 for calling a global function with example usage: linkcode_resolve(domain, info) and returns: str, tag, str, filename, fn,  lineno,  unknown, None