docs: def has_bounds(self):
          """return True, if any variable is bounded"""
          bounds = self.bounds
          if bounds in (None, [None, None]):
              return False
          for ib, bound in enumerate(bounds):
              if bound is not None:
                  sign_ = 2 * ib - 1
                  for bound_i in bound:
                      if bound_i is not None and sign_ * bound_i < np.inf:
                          return True
          return False