code: def glob(dirs, patterns, exclude_patterns=None):
      """Returns the list of files matching the given pattern in the
      specified directory.  Both directories and patterns are
      supplied as portable paths. Each pattern should be non-absolute
      path, and can't contain '.' or '..' elements. Each slash separated
      element of pattern can contain the following special characters:
      -  '?', which match any character
      -  '*', which matches arbitrary number of characters.
      A file $(d)/e1/e2/e3 (where 'd' is in $(dirs)) matches pattern p1/p2/p3
      if and only if e1 matches p1, e2 matches p2 and so on.
      For example:
          [ glob . : *.cpp ]
          [ glob . : */build/Jamfile ]
      """
  
      assert isinstance(patterns, list)
      assert isinstance(dirs, list)
  
      if not exclude_patterns:
          exclude_patterns = []
      else:
          assert isinstance(exclude_patterns, list)
  
      real_patterns = [
          os.path.join(d, p) for p in patterns for d in dirs
      ]
      real_exclude_patterns = [
          os.path.join(d, p) for p in exclude_patterns for d in dirs
      ]
  
      inc = [
          os.path.normpath(name)
          for p in real_patterns
          for name in builtin_glob(p)
      ]
      exc = [
          os.path.normpath(name)
          for p in real_exclude_patterns
          for name in builtin_glob(p)
      ]
      return [x for x in inc if x not in exc]
  
imports: import os.path
  from utility import to_seq
  from glob import glob
  from b2.util import bjam_signature
label_desc: Use image node_id 13 for calling a global function with example usage: glob(dirs, patterns, exclude_patterns) and returns: unknown