code: def _copytree_impl(src, select, followlinks, ignore, copy_handler):
      if select.disabled:
          return
      ignore = set(ignore or [])
      for root, dirs, files in os.walk(src, followlinks=followlinks):
          dirs.sort()
          relroot = _relpath(root, src)
          pruned = select.prune_dirs(src, relroot, dirs)
          for name in pruned:
              relpath = os.path.join(relroot, name)
              copy_handler.ignore(relpath, [])
          for name in sorted(files):
              relpath = os.path.join(relroot, name)
              selected, results = _select_file_to_copy(
                  src, relpath, select, ignore
              )
              if selected:
                  copy_handler.copy(relpath, results)
              else:
                  copy_handler.ignore(relpath, results)
  
imports: import fnmatch
  import glob
  import logging
  import os
  import re
  import shutil
  from guild import util
label_desc: Use image node_id 10 for calling a global function with example usage: _copytree_impl(src, select, followlinks, ignore, copy_handler) without return types