def new_kpi(self, kpi_arg, name_arg): # make a name if name_arg: publish_name = name_arg elif hasattr(kpi_arg, 'name') and kpi_arg.name: publish_name = kpi_arg.name else: publish_name = str_maxed(kpi_arg, maxlen=32) new_kpi = KPI.new_kpi(self._model, kpi_arg, publish_name) return new_kpi
def __repr__(self): if self.has_objective(): s_obj = "obj={0:g}".format(self.objective_value) else: s_obj = "obj=N/A" s_values = ",".join([ "{0!s}:{1:g}".format(var, val) for var, val in iteritems(self._var_value_map) ]) r = "docplex.mp.solution.SolveSolution({0},values={{{1}}})".format( s_obj, s_values) return str_maxed(r, maxlen=72)
def display(self): """ Displays all conflicts. """ print('conflict(s): {0}'.format(self.number_of_conflicts)) for conflict in self.iter_conflicts(): st = conflict.status elt = conflict.element if hasattr(conflict.element, 'as_constraint'): ct = conflict.element.as_constraint() label = elt.short_typename else: ct = elt label = ct.__class__.__name__ print(" - status: {1}, {0}: {2!s}".format(label, st.name, str_maxed(ct, maxlen=40)))
def new_constraint_status_var(self, ct): # INTERNAL model = self._model binary_vartype = model.binary_vartype status_var_fmt = self.status_var_fmt if model.ignore_names or status_var_fmt is None: varname = None else: # use name if any else use truncated ct string representation base_varname = self.status_var_fmt.format( ct.name or str_maxed(ct, maxlen=20)) # if name is already taken, use unique index at end to disambiguate varname = model._get_non_ambiguous_varname(base_varname) return self._make_new_var(binary_vartype, 0, 1, varname, origin=ct)
def trim_field(element): return str_maxed(element, maxlen=50)
def truncated_str(self): return str_maxed(self, maxlen=self._model._max_repr_len)
def __repr__(self): return "{0}(name={1},expr={2!s})".format(self.__class__.__name__, self.name, str_maxed(self._expr, maxlen=64))