<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def run(self, env: env_tools.PreparedEnv, verbose: bool, previous_failures: Set['Check']) -> CheckResult: """Evaluates this check. Args: env: The prepared python environment to run the check in. verbose: When set, more progress output is produced. previous_failures: Checks that have already run and failed. Returns: A CheckResult instance. """


        # Skip if a dependency failed.
        if previous_failures.intersection(self.dependencies):
            print(shell_tools.highlight(
                'Skipped ' + self.command_line_switch(),
                shell_tools.YELLOW))
            return CheckResult(
                self, False, 'Skipped due to dependency failing.', None)

        print(shell_tools.highlight(
            'Running ' + self.command_line_switch(),
            shell_tools.GREEN))
        try:
            success, message = self.perform_check(env, verbose=verbose)
            result = CheckResult(self, success, message, None)
        except Exception as ex:
            result = CheckResult(self, False, 'Unexpected error.', ex)

        print(shell_tools.highlight(
            'Finished ' + self.command_line_switch(),
            shell_tools.GREEN if result.success else shell_tools.RED))
        if verbose:
            print(result)

        return result