import os
import logging

from typing import override
from kedro.runner import ParallelRunner

logger = logging.getLogger(__name__)


class MaxWorkerRunner(ParallelRunner):

    @override
    def __init__(self, is_async=False):
        max_workers = os.getenv("KEDRO_MAX_WORKERS")

        if max_workers is not None:
            max_workers = int(max_workers)
            logger.info(f"setting max_workers to {max_workers}")

        super().__init__(max_workers, is_async)
