<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_task(self, task, source_patterns=None):
 """Walk source and initiate spell check."""


        # Perform spell check
        self.log('Running Task: %s...' % task.get('name', ''), 1)

        # Setup filters and variables for the spell check
        self.default_encoding = task.get('default_encoding', '')
        options = self.setup_spellchecker(task)
        personal_dict = self.setup_dictionary(task)
        glob_flags = self._to_flags(task.get('glob_flags', "N|B|G"))
        self._build_pipeline(task)

        if not source_patterns:
            source_patterns = task.get('sources', [])

        for sources in self._walk_src(source_patterns, glob_flags, self.pipeline_steps):

            if self.pipeline_steps is not None:
                yield from self._spelling_pipeline(sources, options, personal_dict)
            else:
                yield from self.spell_check_no_pipeline(sources, options, personal_dict)