code: def search_include_directories(
      dirs, qualified_name, suffix, pos, include=False
  ):
      """
      Search the list of include directories for the given file name.
  
      If a source file position is given, first searches the directory
      containing that file. Returns None if not found, but does not
      report an error.
  
      The 'include' option will disable package dereferencing.
      """
  
      if pos:
          file_desc = pos[0]
          if not isinstance(file_desc, FileSourceDescriptor):
              raise RuntimeError("Only file sources for code supported")
          if include:
              dirs = (os.path.dirname(file_desc.filename),) + dirs
          else:
              dirs = (
                  Utils.find_root_package_dir(file_desc.filename),
              ) + dirs
  
      dotted_filename = qualified_name
      if suffix:
          dotted_filename += suffix
  
      if not include:
          names = qualified_name.split(".")
          package_names = tuple(names[:-1])
          module_name = names[-1]
          module_filename = module_name + suffix
          package_filename = "__init__" + suffix
  
      for dirname in dirs:
          path = os.path.join(dirname, dotted_filename)
          if os.path.exists(path):
              return path
  
          # Arcadia-specific lookup: search for packages in include paths,
          # ignoring existence of __init__.py files as packages markers
          # (they are not required by Arcadia build system)
          if not include:
              package_dir = os.path.join(dirname, *package_names)
              path = os.path.join(package_dir, module_filename)
              if os.path.exists(path):
                  return path
              path = os.path.join(
                  dirname, package_dir, module_name, package_filename
              )
              if os.path.exists(path):
                  return path
  
      return None
  
imports: from __future__ import absolute_import
  import os
  import re
  import sys
  import io
  from .None import Errors
  from .StringEncoding import EncodedString
  from .Scanning import PyrexScanner, FileSourceDescriptor
  from .Errors import PyrexError, CompileError, error, warning
  from .Symtab import ModuleScope
  from ..None import Utils
  from .None import Options
  from .None import Version
label_desc: Use image node_id 7 for calling a global function with example usage: search_include_directories(dirs, qualified_name, suffix, pos, include) and returns: None, path, path, path