'tick_loc, tick_angle, tick_label, (optionally) tick_label'

def get_tick_iterators(self, axes):

    grid_finder = self.grid_helper.grid_finder
    (lat_levs, lat_n, lat_factor) = self.grid_info[u'lat_info']
    lat_levs = np.asarray(lat_levs)
    if (lat_factor is not None):
        yy0 = (lat_levs / lat_factor)
        dy = (0.01 / lat_factor)
    else:
        yy0 = lat_levs
        dy = 0.01
    (lon_levs, lon_n, lon_factor) = self.grid_info[u'lon_info']
    lon_levs = np.asarray(lon_levs)
    if (lon_factor is not None):
        xx0 = (lon_levs / lon_factor)
        dx = (0.01 / lon_factor)
    else:
        xx0 = lon_levs
        dx = 0.01
    if (None in self._extremes):
        (e0, e1) = self._extremes
    else:
        (e0, e1) = sorted(self._extremes)
    if (e0 is None):
        e0 = (- np.inf)
    if (e1 is None):
        e1 = np.inf
    if (self.nth_coord == 0):
        mask = ((e0 <= yy0) & (yy0 <= e1))
        yy0 = yy0[mask]
    elif (self.nth_coord == 1):
        mask = ((e0 <= xx0) & (xx0 <= e1))
        xx0 = xx0[mask]
    def transform_xy(x, y):
        (x1, y1) = grid_finder.transform_xy(x, y)
        x2y2 = axes.transData.transform(np.array([x1, y1]).transpose())
        (x2, y2) = x2y2.transpose()
        return (x2, y2)
    if (self.nth_coord == 0):
        xx0 = np.empty_like(yy0)
        xx0.fill(self.value)
        (xx1, yy1) = transform_xy(xx0, yy0)
        xx00 = xx0.copy()
        xx00[((xx0 + dx) > e1)] -= dx
        (xx1a, yy1a) = transform_xy(xx00, yy0)
        (xx1b, yy1b) = transform_xy((xx00 + dx), yy0)
        (xx2a, yy2a) = transform_xy(xx0, yy0)
        (xx2b, yy2b) = transform_xy(xx0, (yy0 + dy))
        labels = self.grid_info[u'lat_labels']
        labels = [l for (l, m) in zip(labels, mask) if m]
    elif (self.nth_coord == 1):
        yy0 = np.empty_like(xx0)
        yy0.fill(self.value)
        (xx1, yy1) = transform_xy(xx0, yy0)
        (xx1a, yy1a) = transform_xy(xx0, yy0)
        (xx1b, yy1b) = transform_xy(xx0, (yy0 + dy))
        xx00 = xx0.copy()
        xx00[((xx0 + dx) > e1)] -= dx
        (xx2a, yy2a) = transform_xy(xx00, yy0)
        (xx2b, yy2b) = transform_xy((xx00 + dx), yy0)
        labels = self.grid_info[u'lon_labels']
        labels = [l for (l, m) in zip(labels, mask) if m]
    def f1():
        dd = np.arctan2((yy1b - yy1a), (xx1b - xx1a))
        dd2 = np.arctan2((yy2b - yy2a), (xx2b - xx2a))
        mm = (((yy1b - yy1a) == 0.0) & ((xx1b - xx1a) == 0.0))
        dd[mm] = (dd2[mm] + (np.pi / 2))
        trans_tick = self.get_tick_transform(axes)
        tr2ax = (trans_tick + axes.transAxes.inverted())
        for (x, y, d, d2, lab) in zip(xx1, yy1, dd, dd2, labels):
            c2 = tr2ax.transform_point((x, y))
            delta = 1e-05
            if (((0.0 - delta) <= c2[0] <= (1.0 + delta)) and ((0.0 - delta) <= c2[1] <= (1.0 + delta))):
                d1 = ((d / 3.14159) * 180.0)
                d2 = ((d2 / 3.14159) * 180.0)
                (yield ([x, y], d1, d2, lab))
    return (f1(), iter([]))
