docplex.mp.publish module

class docplex.mp.publish.PublishResultAsDf[source]

Bases: object

Mixin for classes publishing a result as data frame

write_output_table(df, context, output_property_name=None, output_name=None)[source]

Publishes the output df.

The context is used to control the output name:

  • If context.solver.auto_publish is true, the df is written using output_name.
  • If context.solver.auto_publish is false, This method does nothing.
  • If context.solver.auto_publish.output_property_name is true, then df is written using output_name.
  • If context.solver.auto_publish.output_propert_name is None or False, this method does nothing.
  • If context.solver.auto_publish.output_propert_name is a string, it is used as a name to publish the df

Example

A solver can be defined as publishing a result as data frame:

class SomeSolver(PublishResultAsDf)
   def __init__(self, output_customizer):
      # output something if context.solver.autopublish.somesolver_output is set
      self.output_table_property_name = 'somesolver_output'
      # output filename unless specified by somesolver_output:
      self.default_output_table_name = 'somesolver.csv'
      # customizer if users wants one
      self.output_table_customizer = output_customizer
      # uses pandas.DataFrame if possible, otherwise will use namedtuples
      self.output_table_using_df = True

    def solve(self):
        # do something here and return a result as a df
        result = pandas.DataFrame(columns=['A','B','C'])
        return result

Example usage:

solver = SomeSolver()
results = solver.solve()
solver.write_output_table(results)