Source code for qiskit_optimization.problems.quadratic_program_element
# This code is part of a Qiskit project.
#
# (C) Copyright IBM 2019, 2023.
#
# This code is licensed under the Apache License, Version 2.0. You may
# obtain a copy of this license in the LICENSE.txt file in the root directory
# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0.
#
# Any modifications or derivative works of this code must retain this
# copyright notice, and modified files need to carry a notice indicating
# that they have been altered from the originals.
"""Interface for all objects that have a parent QuadraticProgram."""
# We import `problems` module not `QuadraticProgram` class
# to resolve the circular import issue of sphinx.
# See https://github.com/agronholm/sphinx-autodoc-typehints#dealing-with-circular-imports
from qiskit_optimization import problems  # pylint: disable=unused-import, cyclic-import
[docs]class QuadraticProgramElement:
    """Interface class for all objects that have a parent QuadraticProgram."""
    def __init__(self, quadratic_program: "problems.QuadraticProgram") -> None:
        """Initialize object with parent QuadraticProgram.
        Args:
            quadratic_program: The parent QuadraticProgram.
        Raises:
            TypeError: QuadraticProgram instance expected.
        """
        # pylint: disable=cyclic-import
        from .quadratic_program import QuadraticProgram
        if not isinstance(quadratic_program, QuadraticProgram):
            raise TypeError("QuadraticProgram instance expected")
        self._quadratic_program = quadratic_program
    @property
    def quadratic_program(self) -> "problems.QuadraticProgram":
        """Returns the parent QuadraticProgram.
        Returns:
            The parent QuadraticProgram.
        """
        return self._quadratic_program
    @quadratic_program.setter
    def quadratic_program(self, quadratic_program: "problems.QuadraticProgram") -> None:
        """Sets the parent QuadraticProgram.
        Args:
            quadratic_program: The parent QuadraticProgram.
        Raises:
            TypeError: QuadraticProgram instance expected.
        """
        # pylint: disable=cyclic-import
        from .quadratic_program import QuadraticProgram
        if not isinstance(quadratic_program, QuadraticProgram):
            raise TypeError("QuadraticProgram instance expected")
        self._quadratic_program = quadratic_program