Skip to content

Add copy/__copy__ methods to CVXOPT, PPL, InteractiveLP backends, and __deepcopy__ to MixedIntegerLinearProgram and backends #20414

@mkoeppe

Description

@mkoeppe

The COIN, CPLEX, GLPK, and Gurobi backends supply a copy method.
But it's not documented as a backend interface method in GenericBackend, and the CVXOPT, PPL, InteractiveLP backends do not implement it.
It is used by MixedIntegerLinearProgram.__copy__.

The backend method should actually probably be called __copy__ as well -- see https://docs.python.org/2/library/copy.html

The branch on the ticket does this.

We also add __deepcopy__ methods to MixedIntegerLinearProgram and the backends.
This fixes #15159, though the semantics of copy and deepcopy of a MixedIntegerLinearProgram remains questionable due to its interaction with MIPVariable; see #15159 and #19523.

See also #20323 (in which copying a backend could be the basis for more diverse tests).

CC: @videlec @vbraun @dimpase

Component: numerical

Author: Matthias Koeppe

Branch/Commit: 3117b01

Reviewer: Dima Pasechnik

Issue created by migration from https://trac.sagemath.org/ticket/20414

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions