def processDepends(self):
        """Go through dependencies of widget.
        If the dependency has no dependency itself, then update the
        axis with the widget or vice versa

        Algorithm:
          Iterate over dependencies for widget.

          If the widget has a dependency on a widget which doesn't
          have a dependency itself, update range from that
          widget. Then delete that depency from the dependency list.
        """

        # get ordered list, breaking cycles
        while True:
            ordered, cyclic = utils.topological_sort(self.pairs)
            if not cyclic:
                break
            self.breakCycles(cyclic)

        # iterate over widgets in order
        for dep in ordered:
            self.processWidgetDeps(dep)

            # process deps for any axis functions
            while dep[0] in self.axis_to_axislinked:
                dep = (self.axis_to_axislinked[dep[0]], None)
                self.processWidgetDeps(dep)