Source code for airflow_pydantic.operators.empty
from logging import getLogger
from pydantic import Field, field_validator
from ..core import Task, TaskArgs
from ..utils import ImportPath
__all__ = (
"EmptyOperator",
"EmptyOperatorArgs",
"EmptyTask",
)
_log = getLogger(__name__)
class EmptyTaskArgs(TaskArgs): ...
EmptyOperatorArgs = EmptyTaskArgs
[docs]
class EmptyTask(Task, EmptyTaskArgs):
operator: ImportPath = Field(default="airflow_pydantic.airflow.EmptyOperator", description="airflow operator path", validate_default=True)
@field_validator("operator")
@classmethod
def validate_operator(cls, v: type) -> ImportPath:
from airflow_pydantic.airflow import EmptyOperator, _AirflowPydanticMarker
if not isinstance(v, type):
raise TypeError(f"operator must be 'airflow.providers.standard.operators.empty.EmptyOperator', got: {v}")
if issubclass(v, _AirflowPydanticMarker):
_log.info("EmptyOperator is a marker class, returning as is")
return v
if not issubclass(v, EmptyOperator):
raise TypeError(f"operator must be 'airflow.providers.standard.operators.empty.EmptyOperator', got: {v}")
return v
# Alias
EmptyOperator = EmptyTask