<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def help(self, topic=None):
 """ Returns the formatted, colored help """

        if not topic:
            topic = 'workbench'

        # It's possible to ask for help on something that doesn't exist
        # so we'll catch the exception and push back an object that
        # indicates we didn't find what they were asking for
        try:
            return self.work_request('help_formatter', topic)['help_formatter']['help']
        except WorkBench.DataNotFound as e:

            # Okay this is a bit tricky we want to give the user a nice error
            # message that has both the md5 of what they were looking for and
            # a nice informative message that explains what might have happened
            sample_md5 = e.args[0]
            return '%s%s\n\t%s%s%s' % (color.Yellow, sample_md5, color.Green, e.message(), color.Normal)