<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def execute(self):
 """"Run Checkstyle on all found non-synthetic source files."""

    python_tgts = self.context.targets(
      lambda tgt: isinstance(tgt, (PythonTarget))
    )
    if not python_tgts:
      return 0
    interpreter_cache = PythonInterpreterCache.global_instance()
    with self.invalidated(self.get_targets(self._is_checked)) as invalidation_check:
      failure_count = 0
      tgts_by_compatibility, _ = interpreter_cache.partition_targets_by_compatibility(
        [vt.target for vt in invalidation_check.invalid_vts]
      )
      for filters, targets in tgts_by_compatibility.items():
        sources = self.calculate_sources([tgt for tgt in targets])
        if sources:
          allowed_interpreters = set(interpreter_cache.setup(filters=filters))
          if not allowed_interpreters:
            raise TaskError('No valid interpreters found for targets: {}\n(filters: {})'
                            .format(targets, filters))
          interpreter = min(allowed_interpreters)
          failure_count += self.checkstyle(interpreter, sources)
      if failure_count > 0 and self.get_options().fail:
        raise TaskError('{} Python Style issues found. You may try `./pants fmt <targets>`'
                        .format(failure_count))
      return failure_count