     'hours':        ['%Hh', '%H:%M']
     'days':         ['%m/%d', '%a%d']
     'months':       ['%m/%Y', '%b%y']
-    # TODO: the functions here currently aren't serializable
-    # and so can't be set from the python client. Although,
-    # I'm not at all sure what purpose these functions have.
-    'years':        ['%Y', _two_digit_year, _four_digit_year]
+    'years':        ['%Y']
   }
 
   # Whether or not to strip the leading zeros on tick labels.

          break
        if resol in ["minsec", "hourmin"] and not hybrid_handled
          if (resol == "minsec" and tm[4] == 0 and tm[5] != 0) or (resol == "hourmin" and tm[3] == 0 and tm[4] != 0)
            next_format = @formats[@format_order[resol_ndx-1]][1][0]
            s = _strftime(t, next_format)
            break
          else
            hybrid_handled = true

        next_format = @formats[@format_order[next_ndx]][1][0]
        s = _strftime(t, next_format)

      # TODO: should expose this in api. %H, %d, etc use leading zeros and

  type: 'DatetimeTickFormatter'

  @define {
    formats: [ p.Any, {} ] # TODO (bev)
  }

  # Labels of time units, from finest to coarsest.
  format_order: [
