parameters: (input_api, parent_directories, excluded_actions, accepted_endings)
return_statement: return affected_files
docstring: Return absolute file paths of affected files (not due to an excluded action)
         under a parent directory with an accepted file ending.
docstring_summary: Return absolute file paths of affected files (not due to an excluded action)
         under a parent directory with an accepted file ending.
docstring_tokens: Return absolute file paths of affected files ( not due to an excluded action ) under a parent directory with an accepted file ending .
function: def _getAffectedFiles(input_api, parent_directories, excluded_actions, accepted_endings):  # pylint: disable=invalid-name
      """Return absolute file paths of affected files (not due to an excluded action)
         under a parent directory with an accepted file ending.
      """
      local_paths = [
          f.AbsoluteLocalPath() for f in input_api.AffectedFiles() if all(f.Action() != action for action in excluded_actions)
      ]
      affected_files = [
          file_name for file_name in local_paths
          if any(parent_directory in file_name
                 for parent_directory in parent_directories) and (
                     len(accepted_endings) == 0 or any(
                         file_name.endswith(accepted_ending)
                         for accepted_ending in accepted_endings))
      ]
      return affected_files
function_tokens: def _getAffectedFiles ( input_api , parent_directories , excluded_actions , accepted_endings ) : # pylint: disable=invalid-name local_paths = [ f . AbsoluteLocalPath ( ) for f in input_api . AffectedFiles ( ) if all ( f . Action ( ) != action for action in excluded_actions ) ] affected_files = [ file_name for file_name in local_paths if any ( parent_directory in file_name for parent_directory in parent_directories ) and ( len ( accepted_endings ) == 0 or any ( file_name . endswith ( accepted_ending ) for accepted_ending in accepted_endings ) ) ] return affected_files