class_docstr: Generates the ticks which appear in a specific zoom level 
class_docstr_tok: ["Generates","the","ticks","which","appear","in","a","specific","zoom","level"]
code: def tickValues(self, minVal, maxVal, minSpc):
      # return tick values for this format in the range minVal, maxVal
      # the return value is a list of tuples (<avg spacing>, [tick positions])
      # minSpc indicates the minimum spacing (in seconds) between two ticks
      # to fullfill the maxTicksPerPt constraint of the DateAxisItem at the
      # current zoom level. This is used for auto skipping ticks.
      allTicks = np.array([])
      valueSpecs = []
      # back-project (minVal maxVal) to UTC, compute ticks then offset to
      # back to local time again
      utcMin = minVal - self.utcOffset
      utcMax = maxVal - self.utcOffset
      for spec in self.tickSpecs:
          ticks, skipFactor = spec.makeTicks(utcMin, utcMax, minSpc)
          # reposition tick labels to local time coordinates
          ticks += self.utcOffset
          # remove any ticks that were present in higher levels
          # we assume here that if the difference between a tick value and a previously seen tick value
          # is less than min-spacing/100, then they are 'equal' and we can ignore the new tick.
          close = np.any(
              np.isclose(
                  allTicks,
                  ticks[:, np.newaxis],
                  rtol=0,
                  atol=minSpc * 0.01,
              ),
              axis=-1,
          )
          ticks = ticks[~close]
          allTicks = np.concatenate([allTicks, ticks])
          valueSpecs.append((spec.spacing, ticks.tolist()))
          # if we're skipping ticks on the current level there's no point in
          # producing lower level ticks
          if skipFactor > 1:
              break
      return valueSpecs
  
imports: import sys
  import time
  from collections import OrderedDict
  from datetime import datetime, timedelta, timezone
  import numpy
  from .AxisItem import AxisItem
label_desc: Use image node_id 2 for calling the ZoomLevel obj's underlying member method code with example usage: obj.tickValues(minVal, maxVal, minSpc) and returns: valueSpecs