def tick_values(self, vmin, vmax):
    delta = relativedelta(vmax, vmin)
    try:
        start = (vmin - delta)
    except ValueError:
        start = _from_ordinalf(1.0)
    try:
        stop = (vmax + delta)
    except ValueError:
        stop = _from_ordinalf(3652059.9999999)
    self.rule.set(dtstart=start, until=stop, count=(self.MAXTICKS + 1))
    (nmax, nmin) = date2num((vmax, vmin))
    estimate = ((nmax - nmin) / (self._get_unit() * self._get_interval()))
    if (estimate > (self.MAXTICKS * 2)):
        raise RuntimeError(('RRuleLocator estimated to generate %d ticks from %s to %s: exceeds Locator.MAXTICKS * 2 (%d) ' % (estimate, vmin, vmax, (self.MAXTICKS * 2))))
    dates = self.rule.between(vmin, vmax, True)
    if (len(dates) == 0):
        return date2num([vmin, vmax])
    return self.raise_if_exceeds(date2num(dates))
def tick_values(self, vmin, vmax):
    delta = relativedelta(vmax, vmin)
    try:
        start = (vmin - delta)
    except ValueError:
        start = _from_ordinalf(1.0)
    try:
        stop = (vmax + delta)
    except ValueError:
        stop = _from_ordinalf(3652059.9999999)
    self.rule.set(dtstart=start, until=stop, count=(self.MAXTICKS + 1))
    (nmax, nmin) = date2num((vmax, vmin))
    estimate = ((nmax - nmin) / (self._get_unit() * self._get_interval()))
    if (estimate > (self.MAXTICKS * 2)):
        raise RuntimeError(('RRuleLocator estimated to generate %d ticks from %s to %s: exceeds Locator.MAXTICKS * 2 (%d) ' % (estimate, vmin, vmax, (self.MAXTICKS * 2))))
    dates = self.rule.between(vmin, vmax, True)
    if (len(dates) == 0):
        return date2num([vmin, vmax])
    return self.raise_if_exceeds(date2num(dates))