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