code: def to_python_index(self, length, check_bounds=True, circular=False):
          
          if not self.is_unitless:
              raise ValueError("Index cannot have units: {0!r}".format(self))
  
          ret = int(self.value)
          if ret != self.value:
              raise ValueError("Index must be an integer: {0!r}".format(ret))
  
          if ret == 0:
              raise ValueError("Index cannot be zero")
  
          if check_bounds and not circular and abs(ret) > length:
              raise ValueError("Index {0!r} out of bounds for length {1}".format(ret, length))
  
          if ret > 0:
              ret -= 1
  
          if circular:
              ret = ret % length
  
          return ret
docs: Return a plain Python integer appropriate for indexing a sequence of
          the given length.  Raise if this is impossible for any reason
          whatsoever.