28 lines
929 B
Python
28 lines
929 B
Python
#
|
|
# Copyright (c) 2023 Airbyte, Inc., all rights reserved.
|
|
#
|
|
|
|
from abc import ABC, abstractmethod
|
|
from typing import Optional
|
|
|
|
from airbyte_cdk.sources.declarative.types import Config
|
|
|
|
|
|
class Interpolation(ABC):
|
|
"""
|
|
Strategy for evaluating the interpolated value of a string at runtime using Jinja.
|
|
"""
|
|
|
|
@abstractmethod
|
|
def eval(self, input_str: str, config: Config, default: Optional[str] = None, **additional_options):
|
|
"""
|
|
Interpolates the input string using the config, and additional options passed as parameter.
|
|
|
|
:param input_str: The string to interpolate
|
|
:param config: The user-provided configuration as specified by the source's spec
|
|
:param default: Default value to return if the evaluation returns an empty string
|
|
:param additional_options: Optional parameters used for interpolation
|
|
:return: The interpolated string
|
|
"""
|
|
pass
|