FS-TFP/federatedscope/core/auxiliaries/feat_engr_builder.py

36 lines
999 B
Python

import logging
from importlib import import_module
logger = logging.getLogger(__name__)
def dummy_wrapper(worker):
return worker
def get_feat_engr_wrapper(config):
"""
Args:
config: configurations for FL, see ``federatedscope.core.configs``
Returns:
wrapper for client and wrapper for server.
"""
if config.feat_engr.type == '':
return dummy_wrapper, dummy_wrapper
logger.info(f'Feature engineering only works on tabular data, please '
f'check your `data.type` {config.data.type}.')
wrap_client = \
getattr(import_module(f'federatedscope.core.feature.'
f'{config.feat_engr.scenario}'),
f'wrap_{config.feat_engr.type}_client')
wrap_server = \
getattr(import_module(f'federatedscope.core.feature.'
f'{config.feat_engr.scenario}'),
f'wrap_{config.feat_engr.type}_server')
return wrap_client, wrap_server