Source code for ayx_python_sdk.core.input_anchor_base
# Copyright (C) 2022 Alteryx, Inc. All rights reserved.
#
# Licensed under the ALTERYX SDK AND API LICENSE AGREEMENT;
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#    https://www.alteryx.com/alteryx-sdk-and-api-license-agreement
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Input Anchor Interface class definition."""
from abc import ABC, abstractmethod
from typing import Any, List
from ayx_python_sdk.core.input_connection_base import InputConnectionBase
[docs]class InputAnchorBase(ABC):
    """Input Anchor Interface class definition."""
    @property
    @abstractmethod
    def name(self) -> str:
        """
        Get the name of the input anchor.
        Returns
        -------
        str
            The name of the input anchor.
        """
        raise NotImplementedError()
    @property
    @abstractmethod
    def allow_multiple(self) -> bool:
        """
        Get the status that indicates if multiple connections are allowed.
        Returns
        -------
        bool
            Boolean value that indicates if multiple connections are allowed.
        """
        raise NotImplementedError()
    @property
    @abstractmethod
    def optional(self) -> bool:
        """
        Get the status that indicates if the input anchor is optional.
        Returns
        -------
        bool
            Boolean value that indicates if input anchor is optional.
        """
        raise NotImplementedError()
    @property
    @abstractmethod
    def connections(self) -> List[InputConnectionBase]:
        """
        Get the anchor connections.
        Returns
        -------
        List[InputConnectionBase]
            List of all the connections associated with the anchor.
        """
        raise NotImplementedError()
    def __eq__(self, other: Any) -> bool:
        """Implement equivalence check to compare 2 Input Anchor objects."""
        if isinstance(other, InputAnchorBase):
            return (
                self.name == other.name
                and self.allow_multiple == other.allow_multiple
                and self.optional == other.optional
                and self.connections == other.connections
            )
        else:
            return NotImplemented