<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_cycle_time(self, issue_or_start_or_key):
 """ Provided an issue or a start datetime, will return the cycle time since the start or progress """

        if isinstance(issue_or_start_or_key, basestring):
            issue_or_start_or_key = self.get_issue(issue_or_start_or_key)

        if isinstance(issue_or_start_or_key, jira.resources.Issue):
            progress_started = self.get_datetime_issue_in_progress(issue_or_start_or_key)
        elif isinstance(issue_or_start_or_key, datetime.datetime):
            progress_started = issue_or_start_or_key

        curr_time = datetime.datetime.now(dateutil.tz.tzlocal())
        return utils.working_cycletime(progress_started, curr_time)