code: def iter_source_code(paths: Iterable[str], config: MutableMapping[str, Any], skipped: List[str]) -> Iterator[str]:
      
      if 'not_skip' in config:
          config['skip'] = list(set(config['skip']).difference(config['not_skip']))
  
      for path in paths:
          if os.path.isdir(path):
              for dirpath, dirnames, filenames in os.walk(path, topdown=True, followlinks=True):
                  for dirname in list(dirnames):
                      if file_should_be_skipped(dirname, config, dirpath):
                          skipped.append(dirname)
                          dirnames.remove(dirname)
                  for filename in filenames:
                      filepath = os.path.join(dirpath, filename)
                      if is_python_file(filepath):
                          relative_file = os.path.relpath(filepath, path)
                          if file_should_be_skipped(relative_file, config, path):
                              skipped.append(filename)
                          else:
                              yield filepath
          else:
              yield path
docs: Iterate over all Python source files defined in paths.