def _handle_aggregator()

in scripts/old_config_converter.py [0:0]


def _handle_aggregator(trainer):  # noqa
    is_async_trainer = "async" in trainer["_base_"]
    if "aggregator" not in trainer:
        return

    aggregator = trainer["aggregator"]
    if "type" not in aggregator:
        pass
    elif "default" == aggregator["type"].lower() and not is_async_trainer:
        aggregator["_base_"] = "base_fed_avg_sync_aggregator"
    elif "fedavg" == aggregator["type"].lower() and not is_async_trainer:
        aggregator["_base_"] = "base_fed_avg_sync_aggregator"
    elif "fedavgwithlr" == aggregator["type"].lower() and not is_async_trainer:
        aggregator["_base_"] = "base_fed_avg_with_lr_sync_aggregator"
    elif "fedadam" == aggregator["type"].lower() and not is_async_trainer:
        aggregator["_base_"] = "base_fed_adam_sync_aggregator"
    elif "fedlars" == aggregator["type"].lower() and not is_async_trainer:
        aggregator["_base_"] = "base_fed_lars_sync_aggregator"
    elif "fedlamb" == aggregator["type"].lower() and not is_async_trainer:
        aggregator["_base_"] = "base_fed_lamb_sync_aggregator"
    elif "fedavgwithlr" == aggregator["type"].lower() and is_async_trainer:
        aggregator["_base_"] = "base_fed_avg_with_lr_async_aggregator"
    elif "fedadam" == aggregator["type"].lower() and is_async_trainer:
        aggregator["_base_"] = "base_fed_adam_async_aggregator"
    elif (
        "asyncfedavgwithlrmithmomentum" == aggregator["type"].lower()
        and is_async_trainer
    ):
        aggregator["_base_"] = "base_fed_avg_with_lr_with_momentum_async_aggregator"
    elif "hybridfedavgwithlr" == aggregator["type"].lower() and is_async_trainer:
        aggregator["_base_"] = "base_fed_avg_with_lr_hybrid_aggregator"
    elif "hybridfedadam" == aggregator["type"].lower() and is_async_trainer:
        aggregator["_base_"] = "base_fed_adam_hybrid_aggregator"
    aggregator.pop("type", None)

    _handle_aggregator_reducer(aggregator)