code: def get_unignored_file_paths(ignore_list=None, whitelist=None):
      
      unignored_files = []
      if ignore_list is None:
          ignore_list = []
      if whitelist is None:
          whitelist = []
  
      for root, dirs, files in os.walk("."):
          floyd_logger.debug("Root:%s, Dirs:%s", root, dirs)
  
          if ignore_path(unix_style_path(root), ignore_list, whitelist):
              # Reset dirs to avoid going further down this directory.
              # Then continue to the next iteration of os.walk, which causes
              # everything in this directory to be ignored.
              #
              # Note that whitelisted files that are within directories that are
              # ignored will not be whitelisted. This follows the expected
              # behavior established by .gitignore logic:
              # "It is not possible to re-include a file if a parent directory of
              # that file is excluded."
              # https://git-scm.com/docs/gitignore#_pattern_format
              dirs[:] = []
              floyd_logger.debug("Ignoring directory : %s", root)
              continue
  
          for file_name in files:
              file_path = unix_style_path(os.path.join(root, file_name))
              if ignore_path(file_path, ignore_list, whitelist):
                  floyd_logger.debug("Ignoring file : %s", file_name)
                  continue
  
              unignored_files.append(os.path.join(root, file_name))
  
      return unignored_files
docs: Given an ignore_list and a whitelist of glob patterns, returns the list of
      unignored file paths in the current directory and its subdirectories