Source code for airflow_pydantic.utils.pool
from typing import Optional
from pydantic import (
Field,
model_validator,
)
from ..airflow import Pool as BasePool
from ..core import BaseModel
__all__ = ("Pool",)
[docs]
class Pool(BaseModel):
pool: str = Field(
description="Pool name",
)
slots: Optional[int] = Field(
default=None,
description="Number of slots in the pool",
)
description: Optional[str] = Field(default="", description="Pool description")
include_deferred: Optional[bool] = Field(default=False, description="Whether to include deferred tasks in the pool")
@model_validator(mode="before")
@classmethod
def _validate_pool(cls, v):
if isinstance(v, str):
v = {"pool": v}
elif isinstance(v, BasePool):
v = dict(pool=v.pool, slots=v.slots, description=v.description, include_deferred=v.include_deferred)
return v