# Copyright 2018 The Cirq Developers
#
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#
# Unless required by applicable law or agreed to in writing, software
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
from typing import TYPE_CHECKING

import abc

if TYPE_CHECKING:

[docs]class LinePlacementStrategy(metaclass=abc.ABCMeta):
"""Choice and options for the line placement calculation method.

Currently two methods are available: cirq.line.GreedySequenceSearchMethod
and cirq.line.AnnealSequenceSearchMethod.
"""

[docs]    @abc.abstractmethod
def place_line(self,