diff --git a/nvflare/fuel/utils/class_utils.py b/nvflare/fuel/utils/class_utils.py index 42b9eac909..7b0bd18050 100644 --- a/nvflare/fuel/utils/class_utils.py +++ b/nvflare/fuel/utils/class_utils.py @@ -18,6 +18,8 @@ import pkgutil from typing import Dict, List, Optional +from nvflare.apis.fl_component import FLComponent +from nvflare.fuel.common.excepts import ConfigError from nvflare.fuel.utils.components_utils import create_classes_table_static from nvflare.security.logging import secure_format_exception @@ -61,17 +63,6 @@ def instantiate_class(class_path, init_params): return instance -class _ModuleScanResult: - """Data class for ModuleScanner.""" - - def __init__(self, class_name: str, module_name: str): - self.class_name = class_name - self.module_name = module_name - - def __str__(self): - return f"{self.class_name}:{self.module_name}" - - class ModuleScanner: def __init__(self, base_pkgs: List[str], module_names: List[str], exclude_libs=True): """Loads specified modules from base packages and then constructs a class to module name mapping. @@ -90,7 +81,6 @@ def __init__(self, base_pkgs: List[str], module_names: List[str], exclude_libs=T def create_classes_table(self): class_table: Dict[str, str] = {} - scan_result_table = {} for base in self.base_pkgs: package = importlib.import_module(base) @@ -108,18 +98,12 @@ def create_classes_table(self): not name.startswith("_") and inspect.isclass(obj) and obj.__module__ == module_name + and issubclass(obj, FLComponent) ): - # same class name exists in multiple modules - if name in scan_result_table: - scan_result = scan_result_table[name] - if name in class_table: - class_table.pop(name) - class_table[f"{scan_result.module_name}.{name}"] = module_name - class_table[f"{module_name}.{name}"] = module_name + if name in class_table: + class_table[name].append(module_name) else: - scan_result = _ModuleScanResult(class_name=name, module_name=module_name) - scan_result_table[name] = scan_result - class_table[name] = module_name + class_table[name] = [module_name] except (ModuleNotFoundError, RuntimeError, AttributeError) as e: self._logger.debug( f"Try to import module {module_name}, but failed: {secure_format_exception(e)}. " @@ -137,7 +121,14 @@ def get_module_name(self, class_name) -> Optional[str]: Returns: The module name if found. """ - return self._class_table.get(class_name, None) + if class_name not in self._class_table: + return None + + modules = self._class_table.get(class_name, None) + if modules and len(modules) > 1: + raise ConfigError(f"There are multiple modules with the class_name:{class_name}, modules are: {modules}") + else: + return modules[0] def _retrieve_parameters(class__, parameters): diff --git a/nvflare/fuel/utils/component_classes.json b/nvflare/fuel/utils/component_classes.json index ca51b1f2ce..0ac7901ebe 100644 --- a/nvflare/fuel/utils/component_classes.json +++ b/nvflare/fuel/utils/component_classes.json @@ -1 +1,572 @@ -{"AnalyticsData": "nvflare.apis.analytix", "AnalyticsDataType": "nvflare.apis.analytix", "AppDeployerSpec": "nvflare.apis.app_deployer_spec", "AppValidationKey": "nvflare.apis.app_validation", "AppValidator": "nvflare.apis.app_validation", "MessageSendStatus": "nvflare.apis.aux_spec", "Client": "nvflare.apis.client", "ClientEngineSpec": "nvflare.apis.client_engine_spec", "ClientTask": "nvflare.apis.controller_spec", "ControllerSpec": "nvflare.apis.controller_spec", "OperatorConfigKey": "nvflare.apis.controller_spec", "OperatorMethod": "nvflare.apis.controller_spec", "SendOrder": "nvflare.apis.controller_spec", "Task": "nvflare.apis.controller_spec", "TaskCompletionStatus": "nvflare.apis.controller_spec", "TaskOperatorKey": "nvflare.apis.controller_spec", "DXO": "nvflare.apis.dxo", "DataKind": "nvflare.apis.dxo", "DXOFilter": "nvflare.apis.dxo_filter", "EngineSpec": "nvflare.apis.engine_spec", "EventType": "nvflare.apis.event_type", "Executor": "nvflare.apis.executor", "ContentBlockedException": "nvflare.apis.filter", "Filter": "nvflare.apis.filter", "FilterChainType": "nvflare.apis.filter", "FilterContextKey": "nvflare.apis.filter", "FilterSource": "nvflare.apis.filter", "FLComponent": "nvflare.apis.fl_component", "AdminCommandNames": "nvflare.apis.fl_constant", "ConfigVarName": "nvflare.apis.fl_constant", "EventScope": "nvflare.apis.fl_constant", "FLContextKey": "nvflare.apis.fl_constant", "FLMetaKey": "nvflare.apis.fl_constant", "FedEventHeader": "nvflare.apis.fl_constant", "FilterKey": "nvflare.apis.fl_constant", "JobConstants": "nvflare.apis.fl_constant", "LogMessageTag": "nvflare.apis.fl_constant", "MachineStatus": "nvflare.apis.fl_constant", "NonSerializableKeys": "nvflare.apis.fl_constant", "ReservedKey": "nvflare.apis.fl_constant", "ReservedTopic": "nvflare.apis.fl_constant", "ReturnCode": "nvflare.apis.fl_constant", "RunProcessKey": "nvflare.apis.fl_constant", "RunnerTask": "nvflare.apis.fl_constant", "SecureTrainConst": "nvflare.apis.fl_constant", "ServerCommandKey": "nvflare.apis.fl_constant", "ServerCommandNames": "nvflare.apis.fl_constant", "SiteType": "nvflare.apis.fl_constant", "SnapshotKey": "nvflare.apis.fl_constant", "SystemComponents": "nvflare.apis.fl_constant", "SystemConfigs": "nvflare.apis.fl_constant", "SystemVarName": "nvflare.apis.fl_constant", "WorkspaceConstants": "nvflare.apis.fl_constant", "FLContext": "nvflare.apis.fl_context", "FLContextManager": "nvflare.apis.fl_context", "FLCommunicationError": "nvflare.apis.fl_exception", "NotAuthenticated": "nvflare.apis.fl_exception", "NotAuthorized": "nvflare.apis.fl_exception", "NotReadyToEndRun": "nvflare.apis.fl_exception", "TaskExecutionError": "nvflare.apis.fl_exception", "UnsafeComponentError": "nvflare.apis.fl_exception", "UnsafeJobError": "nvflare.apis.fl_exception", "FLSnapshot": "nvflare.apis.fl_snapshot", "RunSnapshot": "nvflare.apis.fl_snapshot", "AnyRelayTaskManager": "nvflare.apis.impl.any_relay_manager", "BcastForeverTaskManager": "nvflare.apis.impl.bcast_manager", "BcastTaskManager": "nvflare.apis.impl.bcast_manager", "Controller": "nvflare.apis.impl.controller", "JobInfo": "nvflare.apis.impl.job_def_manager", "SimpleJobDefManager": "nvflare.apis.impl.job_def_manager", "SendTaskManager": "nvflare.apis.impl.send_manager", "SequentialRelayTaskManager": "nvflare.apis.impl.seq_relay_manager", "TaskController": "nvflare.apis.impl.task_controller", "TaskCheckStatus": "nvflare.apis.impl.task_manager", "TaskManager": "nvflare.apis.impl.task_manager", "WFCommClient": "nvflare.apis.impl.wf_comm_client", "WFCommServer": "nvflare.apis.impl.wf_comm_server", "Job": "nvflare.apis.job_def", "JobDataKey": "nvflare.apis.job_def", "JobMetaKey": "nvflare.apis.job_def", "RunStatus": "nvflare.apis.job_def", "TopDir": "nvflare.apis.job_def", "JobDefManagerSpec": "nvflare.apis.job_def_manager_spec", "JobMetaValidatorSpec": "nvflare.apis.job_meta_validator_spec", "DispatchInfo": "nvflare.apis.job_scheduler_spec", "JobSchedulerSpec": "nvflare.apis.job_scheduler_spec", "OperatorSpec": "nvflare.apis.operator_spec", "OverseerAgent": "nvflare.apis.overseer_spec", "SP": "nvflare.apis.overseer_spec", "StatePersistable": "nvflare.apis.persistable", "ResourceConsumerSpec": "nvflare.apis.resource_manager_spec", "ResourceManagerSpec": "nvflare.apis.resource_manager_spec", "ServerEngineSpec": "nvflare.apis.server_engine_spec", "ReservedHeaderKey": "nvflare.apis.shareable", "Shareable": "nvflare.apis.shareable", "Signal": "nvflare.apis.signal", "StatePersistor": "nvflare.apis.state_persistor", "StorageException": "nvflare.apis.storage", "StorageSpec": "nvflare.apis.storage", "ContextDecomposer": "nvflare.apis.utils.decomposers.flare_decomposers", "DXODecomposer": "nvflare.apis.utils.decomposers.flare_decomposers", "WorkspaceDecomposer": "nvflare.apis.utils.decomposers.flare_decomposers", "ReliableMessage": "nvflare.apis.utils.reliable_message", "WFCommSpec": "nvflare.apis.wf_comm_spec", "Workspace": "nvflare.apis.workspace", "FLModel": "nvflare.app_common.abstract.fl_model", "FLModelConst": "nvflare.app_common.abstract.fl_model", "nvflare.apis.dxo.MetaKey": "nvflare.app_common.abstract.fl_model", "nvflare.app_common.abstract.fl_model.MetaKey": "nvflare.app_common.abstract.fl_model", "ParamsType": "nvflare.app_common.abstract.fl_model", "Formatter": "nvflare.app_common.abstract.formatter", "InitFinalArgsComponent": "nvflare.app_common.abstract.init_final_component", "InitFinalComponent": "nvflare.app_common.abstract.init_final_component", "Launcher": "nvflare.app_common.abstract.launcher", "LauncherRunStatus": "nvflare.app_common.abstract.launcher", "Learnable": "nvflare.app_common.abstract.learnable", "LearnablePersistor": "nvflare.app_common.abstract.learnable_persistor", "Learner": "nvflare.app_common.abstract.learner_spec", "MetricComparator": "nvflare.app_common.abstract.metric_comparator", "ModelLearnable": "nvflare.app_common.abstract.model", "ModelLearnableKey": "nvflare.app_common.abstract.model", "ModelLearner": "nvflare.app_common.abstract.model_learner", "ModelLocator": "nvflare.app_common.abstract.model_locator", "ModelPersistor": "nvflare.app_common.abstract.model_persistor", "ModelProcessor": "nvflare.app_common.abstract.model_processor", "ParamsConverter": "nvflare.app_common.abstract.params_converter", "PersistorFilter": "nvflare.app_common.abstract.persistor_filter", "ResponseProcessor": "nvflare.app_common.abstract.response_processor", "ShareableGenerator": "nvflare.app_common.abstract.shareable_generator", "Bin": "nvflare.app_common.abstract.statistics_spec", "BinRange": "nvflare.app_common.abstract.statistics_spec", "DataType": "nvflare.app_common.abstract.statistics_spec", "Feature": "nvflare.app_common.abstract.statistics_spec", "Histogram": "nvflare.app_common.abstract.statistics_spec", "HistogramType": "nvflare.app_common.abstract.statistics_spec", "StatisticConfig": "nvflare.app_common.abstract.statistics_spec", "Statistics": "nvflare.app_common.abstract.statistics_spec", "StatisticsWriter": "nvflare.app_common.abstract.statistics_writer", "TaskHandler": "nvflare.app_common.abstract.task_handler", "Assembler": "nvflare.app_common.aggregators.assembler", "CollectAndAssembleAggregator": "nvflare.app_common.aggregators.collect_and_assemble_aggregator", "DXOAggregator": "nvflare.app_common.aggregators.dxo_aggregator", "DXOCollector": "nvflare.app_common.aggregators.dxo_collector", "InTimeAccumulateWeightedAggregator": "nvflare.app_common.aggregators.intime_accumulate_model_aggregator", "WeightedAggregationHelper": "nvflare.app_common.aggregators.weighted_aggregation_helper", "AlgorithmConstants": "nvflare.app_common.app_constant", "AppConstants": "nvflare.app_common.app_constant", "DefaultCheckpointFileName": "nvflare.app_common.app_constant", "EnvironmentKey": "nvflare.app_common.app_constant", "ExecutorTasks": "nvflare.app_common.app_constant", "ModelFormat": "nvflare.app_common.app_constant", "ModelName": "nvflare.app_common.app_constant", "PSIConst": "nvflare.app_common.app_constant", "StatisticsConstants": "nvflare.app_common.app_constant", "ValidateType": "nvflare.app_common.app_constant", "AppDefinedAggregator": "nvflare.app_common.app_defined.aggregator", "ComponentBase": "nvflare.app_common.app_defined.component_base", "AppDefinedModelPersistor": "nvflare.app_common.app_defined.model_persistor", "AppDefinedShareableGenerator": "nvflare.app_common.app_defined.shareable_generator", "AppEventType": "nvflare.app_common.app_event_type", "CCWFJob": "nvflare.app_common.ccwf.ccwf_job", "CrossSiteEvalConfig": "nvflare.app_common.ccwf.ccwf_job", "CyclicClientConfig": "nvflare.app_common.ccwf.ccwf_job", "CyclicServerConfig": "nvflare.app_common.ccwf.ccwf_job", "SwarmClientConfig": "nvflare.app_common.ccwf.ccwf_job", "SwarmServerConfig": "nvflare.app_common.ccwf.ccwf_job", "ClientControllerExecutor": "nvflare.app_common.ccwf.client_controller_executor", "ClientSideController": "nvflare.app_common.ccwf.client_ctl", "CyclicOrder": "nvflare.app_common.ccwf.common", "ModelType": "nvflare.app_common.ccwf.common", "NumberMetricComparator": "nvflare.app_common.ccwf.common", "ResultType": "nvflare.app_common.ccwf.common", "StatusReport": "nvflare.app_common.ccwf.common", "CWEResultPrinter": "nvflare.app_common.ccwf.comps.cwe_result_printer", "NPFileModelPersistor": "nvflare.app_common.ccwf.comps.np_file_model_persistor", "SimpleIntimeModelSelector": "nvflare.app_common.ccwf.comps.simple_intime_model_selector", "SimpleModelShareableGenerator": "nvflare.app_common.ccwf.comps.simple_model_shareable_generator", "CrossSiteEvalClientController": "nvflare.app_common.ccwf.cse_client_ctl", "CrossSiteEvalServerController": "nvflare.app_common.ccwf.cse_server_ctl", "CyclicClientController": "nvflare.app_common.ccwf.cyclic_client_ctl", "CyclicServerController": "nvflare.app_common.ccwf.cyclic_server_ctl", "ServerSideController": "nvflare.app_common.ccwf.server_ctl", "Gatherer": "nvflare.app_common.ccwf.swarm_client_ctl", "SwarmClientController": "nvflare.app_common.ccwf.swarm_client_ctl", "SwarmServerController": "nvflare.app_common.ccwf.swarm_server_ctl", "EvalResultManager": "nvflare.app_common.ccwf.val_result_manager", "FLModelDecomposer": "nvflare.app_common.decomposers.common_decomposers", "Float32ScalarDecomposer": "nvflare.app_common.decomposers.numpy_decomposers", "Float64ScalarDecomposer": "nvflare.app_common.decomposers.numpy_decomposers", "Int32ScalarDecomposer": "nvflare.app_common.decomposers.numpy_decomposers", "Int64ScalarDecomposer": "nvflare.app_common.decomposers.numpy_decomposers", "NumpyArrayDecomposer": "nvflare.app_common.decomposers.numpy_decomposers", "NumpyScalarDecomposer": "nvflare.app_common.decomposers.numpy_decomposers", "ClientAPILauncherExecutor": "nvflare.app_common.executors.client_api_launcher_executor", "ErrorHandlingExecutor": "nvflare.app_common.executors.error_handling_executor", "InProcessClientAPIExecutor": "nvflare.app_common.executors.in_process_client_api_executor", "IPCExchanger": "nvflare.app_common.executors.ipc_exchanger", "LauncherExecutor": "nvflare.app_common.executors.launcher_executor", "LearnerExecutor": "nvflare.app_common.executors.learner_executor", "ModelLearnerExecutor": "nvflare.app_common.executors.model_learner_executor", "MultiProcessExecutor": "nvflare.app_common.executors.multi_process_executor", "WorkerComponentBuilder": "nvflare.app_common.executors.multi_process_executor", "SplitNNLearnerExecutor": "nvflare.app_common.executors.splitnn_learner_executor", "StatisticsExecutor": "nvflare.app_common.executors.statistics.statistics_executor", "StatisticExecutorException": "nvflare.app_common.executors.statistics.statistics_executor_exception", "StatisticsTaskHandler": "nvflare.app_common.executors.statistics.statistics_task_handler", "TaskExchanger": "nvflare.app_common.executors.task_exchanger", "TaskScriptRunner": "nvflare.app_common.executors.task_script_runner", "ConvertWeights": "nvflare.app_common.filters.convert_weights", "DXOBlocker": "nvflare.app_common.filters.dxo_blocker", "ExcludeVars": "nvflare.app_common.filters.exclude_vars", "PercentilePrivacy": "nvflare.app_common.filters.percentile_privacy", "StatisticsPrivacyFilter": "nvflare.app_common.filters.statistics_privacy_filter", "SVTPrivacy": "nvflare.app_common.filters.svt_privacy", "HubAppDeployer": "nvflare.app_common.hub.hub_app_deployer", "BcastOperator": "nvflare.app_common.hub.hub_controller", "HubController": "nvflare.app_common.hub.hub_controller", "RelayOperator": "nvflare.app_common.hub.hub_controller", "HubExecutor": "nvflare.app_common.hub.hub_executor", "DefaultJobScheduler": "nvflare.app_common.job_schedulers.job_scheduler", "SubprocessLauncher": "nvflare.app_common.launchers.subprocess_launcher", "MetricsSender": "nvflare.app_common.metrics_exchange.metrics_sender", "ModelDescriptor": "nvflare.app_common.model_desc", "ListModelLocator": "nvflare.app_common.model_locator.list_model_locator", "NPConstants": "nvflare.app_common.np.constants", "NPFormatter": "nvflare.app_common.np.np_formatter", "NPModelLocator": "nvflare.app_common.np.np_model_locator", "NPModelPersistor": "nvflare.app_common.np.np_model_persistor", "nvflare.app_common.ccwf.comps.np_trainer.NPTrainer": "nvflare.app_common.np.np_trainer", "nvflare.app_common.np.np_trainer.NPTrainer": "nvflare.app_common.np.np_trainer", "NPValidator": "nvflare.app_common.np.np_validator", "DhPSIController": "nvflare.app_common.psi.dh_psi.dh_psi_controller", "DhPSIWorkFlow": "nvflare.app_common.psi.dh_psi.dh_psi_workflow", "SiteSize": "nvflare.app_common.psi.dh_psi.dh_psi_workflow", "FilePSIWriter": "nvflare.app_common.psi.file_psi_writer", "PSIController": "nvflare.app_common.psi.psi_controller", "PSIExecutor": "nvflare.app_common.psi.psi_executor", "PSI": "nvflare.app_common.psi.psi_spec", "PSIWorkflow": "nvflare.app_common.psi.psi_workflow_spec", "PSIWriter": "nvflare.app_common.psi.psi_writer_spec", "GPUResourceConsumer": "nvflare.app_common.resource_consumers.gpu_resource_consumer", "ListResourceConsumer": "nvflare.app_common.resource_consumers.list_resource_consumer", "AutoCleanResourceManager": "nvflare.app_common.resource_managers.auto_clean_resource_manager", "GPUResource": "nvflare.app_common.resource_managers.gpu_resource_manager", "GPUResourceManager": "nvflare.app_common.resource_managers.gpu_resource_manager", "ListResourceManager": "nvflare.app_common.resource_managers.list_resource_manager", "GlobalWeightsInitializer": "nvflare.app_common.response_processors.global_weights_initializer", "WeightMethod": "nvflare.app_common.response_processors.global_weights_initializer", "FullModelShareableGenerator": "nvflare.app_common.shareablegenerators.full_model_shareable_generator", "StorageStatePersistor": "nvflare.app_common.state_persistors.storage_state_persistor", "HistogramBinsCleanser": "nvflare.app_common.statistics.histogram_bins_cleanser", "JsonStatsFileWriter": "nvflare.app_common.statistics.json_stats_file_persistor", "MinCountCleanser": "nvflare.app_common.statistics.min_count_cleanser", "AddNoiseToMinMax": "nvflare.app_common.statistics.min_max_cleanser", "NpEncoder": "nvflare.app_common.statistics.numpy_utils", "BinDecomposer": "nvflare.app_common.statistics.statisitcs_objects_decomposer", "BinRangeDecomposer": "nvflare.app_common.statistics.statisitcs_objects_decomposer", "DataTypeDecomposer": "nvflare.app_common.statistics.statisitcs_objects_decomposer", "FeatureDecomposer": "nvflare.app_common.statistics.statisitcs_objects_decomposer", "HistogramDecomposer": "nvflare.app_common.statistics.statisitcs_objects_decomposer", "HistogramTypeDecomposer": "nvflare.app_common.statistics.statisitcs_objects_decomposer", "StatisticConfigDecomposer": "nvflare.app_common.statistics.statisitcs_objects_decomposer", "StatisticsPrivacyCleanser": "nvflare.app_common.statistics.statistics_privacy_cleanser", "FilesystemStorage": "nvflare.app_common.storages.filesystem_storage", "Applet": "nvflare.app_common.tie.applet", "CLIApplet": "nvflare.app_common.tie.cli_applet", "Connector": "nvflare.app_common.tie.connector", "TieController": "nvflare.app_common.tie.controller", "nvflare.app_common.ccwf.common.Constant": "nvflare.app_common.tie.defs", "nvflare.app_common.tie.defs.Constant": "nvflare.app_common.tie.defs", "TieExecutor": "nvflare.app_common.tie.executor", "CommandDescriptor": "nvflare.app_common.tie.process_mgr", "ProcessManager": "nvflare.app_common.tie.process_mgr", "PyApplet": "nvflare.app_common.tie.py_applet", "PyRunner": "nvflare.app_common.tie.py_applet", "LogWriter": "nvflare.app_common.tracking.log_writer", "ExpTrackingException": "nvflare.app_common.tracking.track_exception", "LogWriterName": "nvflare.app_common.tracking.tracker_types", "TrackConst": "nvflare.app_common.tracking.tracker_types", "FLComponentWrapper": "nvflare.app_common.utils.fl_component_wrapper", "FLModelUtils": "nvflare.app_common.utils.fl_model_utils", "ObjectEncoder": "nvflare.app_common.utils.json_utils", "ConvertToFedEvent": "nvflare.app_common.widgets.convert_to_fed_event", "ClientEventRecorder": "nvflare.app_common.widgets.event_recorder", "EventRecorder": "nvflare.app_common.widgets.event_recorder", "ServerEventRecorder": "nvflare.app_common.widgets.event_recorder", "ExternalConfigurator": "nvflare.app_common.widgets.external_configurator", "IntimeModelSelectionHandler": "nvflare.app_common.widgets.intime_model_selector", "IntimeModelSelector": "nvflare.app_common.widgets.intime_model_selector", "MetricRelay": "nvflare.app_common.widgets.metric_relay", "AnalyticsReceiver": "nvflare.app_common.widgets.streaming", "AnalyticsSender": "nvflare.app_common.widgets.streaming", "ValidationJsonGenerator": "nvflare.app_common.widgets.validation_json_generator", "BaseFedAvg": "nvflare.app_common.workflows.base_fedavg", "BaseModelController": "nvflare.app_common.workflows.base_model_controller", "BroadcastAndProcess": "nvflare.app_common.workflows.broadcast_and_process", "BroadcastAndWait": "nvflare.app_common.workflows.broadcast_operator", "CrossSiteEval": "nvflare.app_common.workflows.cross_site_eval", "CrossSiteModelEval": "nvflare.app_common.workflows.cross_site_model_eval", "Cyclic": "nvflare.app_common.workflows.cyclic", "CyclicController": "nvflare.app_common.workflows.cyclic_ctl", "RelayOrder": "nvflare.app_common.workflows.cyclic_ctl", "ErrorHandlingController": "nvflare.app_common.workflows.error_handling_controller", "FedAvg": "nvflare.app_common.workflows.fedavg", "GlobalModelEval": "nvflare.app_common.workflows.global_model_eval", "HierarchicalStatisticsController": "nvflare.app_common.workflows.hierarchical_statistics_controller", "InitializeGlobalWeights": "nvflare.app_common.workflows.initialize_global_weights", "ModelController": "nvflare.app_common.workflows.model_controller", "Scaffold": "nvflare.app_common.workflows.scaffold", "ScatterAndGather": "nvflare.app_common.workflows.scatter_and_gather", "ScatterAndGatherScaffold": "nvflare.app_common.workflows.scatter_and_gather_scaffold", "SplitNNConstants": "nvflare.app_common.workflows.splitnn_workflow", "SplitNNController": "nvflare.app_common.workflows.splitnn_workflow", "SplitNNDataKind": "nvflare.app_common.workflows.splitnn_workflow", "StatisticsController": "nvflare.app_common.workflows.statistics_controller", "CCAuthorizer": "nvflare.app_opt.confidential_computing.cc_authorizer", "CCTokenGenerateError": "nvflare.app_opt.confidential_computing.cc_authorizer", "CCTokenVerifyError": "nvflare.app_opt.confidential_computing.cc_authorizer", "CCManager": "nvflare.app_opt.confidential_computing.cc_manager", "GPUAuthorizer": "nvflare.app_opt.confidential_computing.gpu_authorizer", "TDXAuthorizer": "nvflare.app_opt.confidential_computing.tdx_authorizer", "FlowerClientApplet": "nvflare.app_opt.flower.applet", "FlowerServerApplet": "nvflare.app_opt.flower.applet", "FlowerClientConnector": "nvflare.app_opt.flower.connectors.flower_connector", "FlowerServerConnector": "nvflare.app_opt.flower.connectors.flower_connector", "nvflare.app_opt.flower.defs.Constant": "nvflare.app_opt.flower.defs", "HECrossSiteModelEval": "nvflare.app_opt.he.cross_site_model_eval", "CKKSVectorDecomposer": "nvflare.app_opt.he.decomposers", "HEInTimeAccumulateWeightedAggregator": "nvflare.app_opt.he.intime_accumulate_model_aggregator", "HEModelDecryptor": "nvflare.app_opt.he.model_decryptor", "HEModelEncryptor": "nvflare.app_opt.he.model_encryptor", "HEModelSerializeFilter": "nvflare.app_opt.he.model_serialize_filter", "HEModelShareableGenerator": "nvflare.app_opt.he.model_shareable_generator", "FLCallback": "nvflare.app_opt.lightning.api", "RestoreState": "nvflare.app_opt.lightning.callbacks", "PTClientAPILauncherExecutor": "nvflare.app_opt.pt.client_api_launcher_executor", "TensorDecomposer": "nvflare.app_opt.pt.decomposers", "PTDittoHelper": "nvflare.app_opt.pt.ditto", "PTFedAvgEarlyStopping": "nvflare.app_opt.pt.fedavg_early_stopping", "PTFedOptModelShareableGenerator": "nvflare.app_opt.pt.fedopt", "PTFedProxLoss": "nvflare.app_opt.pt.fedproxloss", "PTFileModelLocator": "nvflare.app_opt.pt.file_model_locator", "PTFileModelPersistor": "nvflare.app_opt.pt.file_model_persistor", "HEPTModelReaderWriter": "nvflare.app_opt.pt.he_model_reader_writer", "PTInProcessClientAPIExecutor": "nvflare.app_opt.pt.in_process_client_api_executor", "PTModel": "nvflare.app_opt.pt.job_config.model", "PTModelPersistenceFormatManager": "nvflare.app_opt.pt.model_persistence_format_manager", "PTModelReaderWriter": "nvflare.app_opt.pt.model_reader_writer", "PTMultiProcessExecutor": "nvflare.app_opt.pt.multi_process_executor", "NumpyToPTParamsConverter": "nvflare.app_opt.pt.params_converter", "PTToNumpyParamsConverter": "nvflare.app_opt.pt.params_converter", "PTScaffoldHelper": "nvflare.app_opt.pt.scaffold", "JoblibModelParamPersistor": "nvflare.app_opt.sklearn.joblib_model_param_persistor", "SKLearnExecutor": "nvflare.app_opt.sklearn.sklearn_executor", "Visualization": "nvflare.app_opt.statistics.visualization.statistics_visualization", "TFClientAPILauncherExecutor": "nvflare.app_opt.tf.client_api_launcher_executor", "nvflare.app_opt.pt.fedopt_ctl.FedOpt": "nvflare.app_opt.tf.fedopt_ctl", "nvflare.app_opt.tf.fedopt_ctl.FedOpt": "nvflare.app_opt.tf.fedopt_ctl", "TFFedProxLoss": "nvflare.app_opt.tf.fedprox_loss", "TFInProcessClientAPIExecutor": "nvflare.app_opt.tf.in_process_client_api_executor", "nvflare.app_opt.pt.job_config.fed_avg.FedAvgJob": "nvflare.app_opt.tf.job_config.fed_avg", "nvflare.app_opt.tf.job_config.fed_avg.FedAvgJob": "nvflare.app_opt.tf.job_config.fed_avg", "TFModel": "nvflare.app_opt.tf.job_config.model", "TFModelPersistor": "nvflare.app_opt.tf.model_persistor", "KerasModelToNumpyParamsConverter": "nvflare.app_opt.tf.params_converter", "NumpyToKerasModelParamsConverter": "nvflare.app_opt.tf.params_converter", "ScaffoldCallback": "nvflare.app_opt.tf.scaffold", "TFScaffoldHelper": "nvflare.app_opt.tf.scaffold", "MLflowReceiver": "nvflare.app_opt.tracking.mlflow.mlflow_receiver", "MlflowConstants": "nvflare.app_opt.tracking.mlflow.mlflow_receiver", "MLflowWriter": "nvflare.app_opt.tracking.mlflow.mlflow_writer", "TBAnalyticsReceiver": "nvflare.app_opt.tracking.tb.tb_receiver", "TBWriter": "nvflare.app_opt.tracking.tb.tb_writer", "WandBReceiver": "nvflare.app_opt.tracking.wandb.wandb_receiver", "WandBTask": "nvflare.app_opt.tracking.wandb.wandb_receiver", "WandBWriter": "nvflare.app_opt.tracking.wandb.wandb_writer", "XGBShareableHeader": "nvflare.app_opt.xgboost.histogram_based.constants", "AppAdaptor": "nvflare.app_opt.xgboost.histogram_based_v2.adaptors.adaptor", "GrpcClientAdaptor": "nvflare.app_opt.xgboost.histogram_based_v2.adaptors.grpc_client_adaptor", "GrpcServerAdaptor": "nvflare.app_opt.xgboost.histogram_based_v2.adaptors.grpc_server_adaptor", "XGBClientAdaptor": "nvflare.app_opt.xgboost.histogram_based_v2.adaptors.xgb_adaptor", "XGBServerAdaptor": "nvflare.app_opt.xgboost.histogram_based_v2.adaptors.xgb_adaptor", "nvflare.app_common.abstract.aggregator.Aggregator": "nvflare.app_opt.xgboost.histogram_based_v2.aggr", "nvflare.app_opt.xgboost.histogram_based_v2.aggr.Aggregator": "nvflare.app_opt.xgboost.histogram_based_v2.aggr", "nvflare.app_common.ccwf.server_ctl.ClientStatus": "nvflare.app_opt.xgboost.histogram_based_v2.controller", "nvflare.app_opt.xgboost.histogram_based_v2.controller.ClientStatus": "nvflare.app_opt.xgboost.histogram_based_v2.controller", "XGBController": "nvflare.app_opt.xgboost.histogram_based_v2.controller", "nvflare.app_opt.xgboost.histogram_based_v2.defs.Constant": "nvflare.app_opt.xgboost.histogram_based_v2.defs", "XGBExecutor": "nvflare.app_opt.xgboost.histogram_based_v2.executor", "nvflare.app_opt.xgboost.histogram_based.controller.XGBFedController": "nvflare.app_opt.xgboost.histogram_based_v2.fed_controller", "nvflare.app_opt.xgboost.histogram_based_v2.fed_controller.XGBFedController": "nvflare.app_opt.xgboost.histogram_based_v2.fed_controller", "GrpcClient": "nvflare.app_opt.xgboost.histogram_based_v2.grpc_client", "GrpcServer": "nvflare.app_opt.xgboost.histogram_based_v2.grpc_server", "AggrServicer": "nvflare.app_opt.xgboost.histogram_based_v2.mock.aggr_servicer", "ReqWaiter": "nvflare.app_opt.xgboost.histogram_based_v2.mock.aggr_servicer", "MockClientRunner": "nvflare.app_opt.xgboost.histogram_based_v2.mock.mock_client_runner", "MockXGBController": "nvflare.app_opt.xgboost.histogram_based_v2.mock.mock_controller", "MockDataConverter": "nvflare.app_opt.xgboost.histogram_based_v2.mock.mock_data_converter", "TupleAggregator": "nvflare.app_opt.xgboost.histogram_based_v2.mock.mock_data_converter", "MockXGBExecutor": "nvflare.app_opt.xgboost.histogram_based_v2.mock.mock_executor", "MockSecureClientRunner": "nvflare.app_opt.xgboost.histogram_based_v2.mock.mock_secure_client_runner", "MockSecureXGBExecutor": "nvflare.app_opt.xgboost.histogram_based_v2.mock.mock_secure_executor", "MockServerRunner": "nvflare.app_opt.xgboost.histogram_based_v2.mock.mock_server_runner", "Federated": "nvflare.app_opt.xgboost.histogram_based_v2.proto.federated_pb2_grpc", "FederatedServicer": "nvflare.app_opt.xgboost.histogram_based_v2.proto.federated_pb2_grpc", "FederatedStub": "nvflare.app_opt.xgboost.histogram_based_v2.proto.federated_pb2_grpc", "AppRunner": "nvflare.app_opt.xgboost.histogram_based_v2.runners.xgb_runner", "XGBServerRunner": "nvflare.app_opt.xgboost.histogram_based_v2.runners.xgb_server_runner", "ClientSecurityHandler": "nvflare.app_opt.xgboost.histogram_based_v2.sec.client_handler", "DamDecoder": "nvflare.app_opt.xgboost.histogram_based_v2.sec.dam", "DamEncoder": "nvflare.app_opt.xgboost.histogram_based_v2.sec.dam", "AggregationContext": "nvflare.app_opt.xgboost.histogram_based_v2.sec.data_converter", "DataConverter": "nvflare.app_opt.xgboost.histogram_based_v2.sec.data_converter", "FeatureAggregationResult": "nvflare.app_opt.xgboost.histogram_based_v2.sec.data_converter", "FeatureContext": "nvflare.app_opt.xgboost.histogram_based_v2.sec.data_converter", "Adder": "nvflare.app_opt.xgboost.histogram_based_v2.sec.partial_he.adder", "Decrypter": "nvflare.app_opt.xgboost.histogram_based_v2.sec.partial_he.decrypter", "Encryptor": "nvflare.app_opt.xgboost.histogram_based_v2.sec.partial_he.encryptor", "ProcessorDataConverter": "nvflare.app_opt.xgboost.histogram_based_v2.sec.processor_data_converter", "SecurityHandler": "nvflare.app_opt.xgboost.histogram_based_v2.sec.sec_handler", "ServerSecurityHandler": "nvflare.app_opt.xgboost.histogram_based_v2.sec.server_handler", "MetricsCallback": "nvflare.app_opt.xgboost.metrics_cb", "XGBBaggingAggregator": "nvflare.app_opt.xgboost.tree_based.bagging_aggregator", "XGBModelPersistor": "nvflare.app_opt.xgboost.tree_based.model_persistor", "XGBModelShareableGenerator": "nvflare.app_opt.xgboost.tree_based.shareable_generator", "CallInfo": "nvflare.widgets.comp_caller", "ComponentCaller": "nvflare.widgets.comp_caller", "ClientFedEventRunner": "nvflare.widgets.fed_event", "FedEventRunner": "nvflare.widgets.fed_event", "ServerFedEventRunner": "nvflare.widgets.fed_event", "GroupInfoCollector": "nvflare.widgets.info_collector", "InfoCollector": "nvflare.widgets.info_collector", "Widget": "nvflare.widgets.widget", "WidgetID": "nvflare.widgets.widget"} \ No newline at end of file +{ + "DXOFilter": [ + "nvflare.apis.dxo_filter" + ], + "Executor": [ + "nvflare.apis.executor" + ], + "Filter": [ + "nvflare.apis.filter" + ], + "FLComponent": [ + "nvflare.apis.fl_component" + ], + "Controller": [ + "nvflare.apis.impl.controller" + ], + "SimpleJobDefManager": [ + "nvflare.apis.impl.job_def_manager" + ], + "TaskController": [ + "nvflare.apis.impl.task_controller" + ], + "WFCommClient": [ + "nvflare.apis.impl.wf_comm_client" + ], + "WFCommServer": [ + "nvflare.apis.impl.wf_comm_server" + ], + "JobDefManagerSpec": [ + "nvflare.apis.job_def_manager_spec" + ], + "Aggregator": [ + "nvflare.app_common.abstract.aggregator" + ], + "Formatter": [ + "nvflare.app_common.abstract.formatter" + ], + "InitFinalArgsComponent": [ + "nvflare.app_common.abstract.init_final_component" + ], + "InitFinalComponent": [ + "nvflare.app_common.abstract.init_final_component" + ], + "LearnablePersistor": [ + "nvflare.app_common.abstract.learnable_persistor" + ], + "Learner": [ + "nvflare.app_common.abstract.learner_spec" + ], + "ModelLearner": [ + "nvflare.app_common.abstract.model_learner" + ], + "ModelLocator": [ + "nvflare.app_common.abstract.model_locator" + ], + "ModelPersistor": [ + "nvflare.app_common.abstract.model_persistor" + ], + "PersistorFilter": [ + "nvflare.app_common.abstract.persistor_filter" + ], + "ResponseProcessor": [ + "nvflare.app_common.abstract.response_processor" + ], + "ShareableGenerator": [ + "nvflare.app_common.abstract.shareable_generator" + ], + "Statistics": [ + "nvflare.app_common.abstract.statistics_spec" + ], + "StatisticsWriter": [ + "nvflare.app_common.abstract.statistics_writer" + ], + "TaskHandler": [ + "nvflare.app_common.abstract.task_handler" + ], + "Assembler": [ + "nvflare.app_common.aggregators.assembler" + ], + "CollectAndAssembleAggregator": [ + "nvflare.app_common.aggregators.collect_and_assemble_aggregator" + ], + "DXOAggregator": [ + "nvflare.app_common.aggregators.dxo_aggregator" + ], + "DXOCollector": [ + "nvflare.app_common.aggregators.dxo_collector" + ], + "InTimeAccumulateWeightedAggregator": [ + "nvflare.app_common.aggregators.intime_accumulate_model_aggregator" + ], + "AppDefinedAggregator": [ + "nvflare.app_common.app_defined.aggregator" + ], + "ComponentBase": [ + "nvflare.app_common.app_defined.component_base" + ], + "AppDefinedModelPersistor": [ + "nvflare.app_common.app_defined.model_persistor" + ], + "AppDefinedShareableGenerator": [ + "nvflare.app_common.app_defined.shareable_generator" + ], + "ClientControllerExecutor": [ + "nvflare.app_common.ccwf.client_controller_executor" + ], + "ClientSideController": [ + "nvflare.app_common.ccwf.client_ctl" + ], + "CWEResultPrinter": [ + "nvflare.app_common.ccwf.comps.cwe_result_printer" + ], + "NPFileModelPersistor": [ + "nvflare.app_common.ccwf.comps.np_file_model_persistor" + ], + "NPTrainer": [ + "nvflare.app_common.ccwf.comps.np_trainer", + "nvflare.app_common.np.np_trainer" + ], + "SimpleIntimeModelSelector": [ + "nvflare.app_common.ccwf.comps.simple_intime_model_selector" + ], + "SimpleModelShareableGenerator": [ + "nvflare.app_common.ccwf.comps.simple_model_shareable_generator" + ], + "CrossSiteEvalClientController": [ + "nvflare.app_common.ccwf.cse_client_ctl" + ], + "CrossSiteEvalServerController": [ + "nvflare.app_common.ccwf.cse_server_ctl" + ], + "CyclicClientController": [ + "nvflare.app_common.ccwf.cyclic_client_ctl" + ], + "CyclicServerController": [ + "nvflare.app_common.ccwf.cyclic_server_ctl" + ], + "ServerSideController": [ + "nvflare.app_common.ccwf.server_ctl" + ], + "Gatherer": [ + "nvflare.app_common.ccwf.swarm_client_ctl" + ], + "SwarmClientController": [ + "nvflare.app_common.ccwf.swarm_client_ctl" + ], + "SwarmServerController": [ + "nvflare.app_common.ccwf.swarm_server_ctl" + ], + "ClientAPILauncherExecutor": [ + "nvflare.app_common.executors.client_api_launcher_executor" + ], + "ErrorHandlingExecutor": [ + "nvflare.app_common.executors.error_handling_executor" + ], + "InProcessClientAPIExecutor": [ + "nvflare.app_common.executors.in_process_client_api_executor" + ], + "IPCExchanger": [ + "nvflare.app_common.executors.ipc_exchanger" + ], + "LauncherExecutor": [ + "nvflare.app_common.executors.launcher_executor" + ], + "LearnerExecutor": [ + "nvflare.app_common.executors.learner_executor" + ], + "ModelLearnerExecutor": [ + "nvflare.app_common.executors.model_learner_executor" + ], + "MultiProcessExecutor": [ + "nvflare.app_common.executors.multi_process_executor" + ], + "SplitNNLearnerExecutor": [ + "nvflare.app_common.executors.splitnn_learner_executor" + ], + "StatisticsExecutor": [ + "nvflare.app_common.executors.statistics.statistics_executor" + ], + "StatisticsTaskHandler": [ + "nvflare.app_common.executors.statistics.statistics_task_handler" + ], + "TaskExchanger": [ + "nvflare.app_common.executors.task_exchanger" + ], + "ConvertWeights": [ + "nvflare.app_common.filters.convert_weights" + ], + "DXOBlocker": [ + "nvflare.app_common.filters.dxo_blocker" + ], + "ExcludeVars": [ + "nvflare.app_common.filters.exclude_vars" + ], + "PercentilePrivacy": [ + "nvflare.app_common.filters.percentile_privacy" + ], + "StatisticsPrivacyFilter": [ + "nvflare.app_common.filters.statistics_privacy_filter" + ], + "SVTPrivacy": [ + "nvflare.app_common.filters.svt_privacy" + ], + "HubAppDeployer": [ + "nvflare.app_common.hub.hub_app_deployer" + ], + "BcastOperator": [ + "nvflare.app_common.hub.hub_controller" + ], + "HubController": [ + "nvflare.app_common.hub.hub_controller" + ], + "RelayOperator": [ + "nvflare.app_common.hub.hub_controller" + ], + "HubExecutor": [ + "nvflare.app_common.hub.hub_executor" + ], + "DefaultJobScheduler": [ + "nvflare.app_common.job_schedulers.job_scheduler" + ], + "MetricsSender": [ + "nvflare.app_common.metrics_exchange.metrics_sender" + ], + "ListModelLocator": [ + "nvflare.app_common.model_locator.list_model_locator" + ], + "NPFormatter": [ + "nvflare.app_common.np.np_formatter" + ], + "NPModelLocator": [ + "nvflare.app_common.np.np_model_locator" + ], + "NPModelPersistor": [ + "nvflare.app_common.np.np_model_persistor" + ], + "NPValidator": [ + "nvflare.app_common.np.np_validator" + ], + "DhPSIController": [ + "nvflare.app_common.psi.dh_psi.dh_psi_controller" + ], + "DhPSIWorkFlow": [ + "nvflare.app_common.psi.dh_psi.dh_psi_workflow" + ], + "FilePSIWriter": [ + "nvflare.app_common.psi.file_psi_writer" + ], + "PSIController": [ + "nvflare.app_common.psi.psi_controller" + ], + "PSIExecutor": [ + "nvflare.app_common.psi.psi_executor" + ], + "PSI": [ + "nvflare.app_common.psi.psi_spec" + ], + "PSIWorkflow": [ + "nvflare.app_common.psi.psi_workflow_spec" + ], + "PSIWriter": [ + "nvflare.app_common.psi.psi_writer_spec" + ], + "AutoCleanResourceManager": [ + "nvflare.app_common.resource_managers.auto_clean_resource_manager" + ], + "GPUResourceManager": [ + "nvflare.app_common.resource_managers.gpu_resource_manager" + ], + "ListResourceManager": [ + "nvflare.app_common.resource_managers.list_resource_manager" + ], + "GlobalWeightsInitializer": [ + "nvflare.app_common.response_processors.global_weights_initializer" + ], + "FullModelShareableGenerator": [ + "nvflare.app_common.shareablegenerators.full_model_shareable_generator" + ], + "HistogramBinsCleanser": [ + "nvflare.app_common.statistics.histogram_bins_cleanser" + ], + "JsonStatsFileWriter": [ + "nvflare.app_common.statistics.json_stats_file_persistor" + ], + "MinCountCleanser": [ + "nvflare.app_common.statistics.min_count_cleanser" + ], + "AddNoiseToMinMax": [ + "nvflare.app_common.statistics.min_max_cleanser" + ], + "Applet": [ + "nvflare.app_common.tie.applet" + ], + "CLIApplet": [ + "nvflare.app_common.tie.cli_applet" + ], + "Connector": [ + "nvflare.app_common.tie.connector" + ], + "TieController": [ + "nvflare.app_common.tie.controller" + ], + "TieExecutor": [ + "nvflare.app_common.tie.executor" + ], + "PyApplet": [ + "nvflare.app_common.tie.py_applet" + ], + "LogWriter": [ + "nvflare.app_common.tracking.log_writer" + ], + "FLComponentWrapper": [ + "nvflare.app_common.utils.fl_component_wrapper" + ], + "ConvertToFedEvent": [ + "nvflare.app_common.widgets.convert_to_fed_event" + ], + "ClientEventRecorder": [ + "nvflare.app_common.widgets.event_recorder" + ], + "EventRecorder": [ + "nvflare.app_common.widgets.event_recorder" + ], + "ServerEventRecorder": [ + "nvflare.app_common.widgets.event_recorder" + ], + "ExternalConfigurator": [ + "nvflare.app_common.widgets.external_configurator" + ], + "IntimeModelSelectionHandler": [ + "nvflare.app_common.widgets.intime_model_selector" + ], + "IntimeModelSelector": [ + "nvflare.app_common.widgets.intime_model_selector" + ], + "MetricRelay": [ + "nvflare.app_common.widgets.metric_relay" + ], + "AnalyticsReceiver": [ + "nvflare.app_common.widgets.streaming" + ], + "AnalyticsSender": [ + "nvflare.app_common.widgets.streaming" + ], + "ValidationJsonGenerator": [ + "nvflare.app_common.widgets.validation_json_generator" + ], + "BaseFedAvg": [ + "nvflare.app_common.workflows.base_fedavg" + ], + "BaseModelController": [ + "nvflare.app_common.workflows.base_model_controller" + ], + "BroadcastAndProcess": [ + "nvflare.app_common.workflows.broadcast_and_process" + ], + "BroadcastAndWait": [ + "nvflare.app_common.workflows.broadcast_operator" + ], + "CrossSiteEval": [ + "nvflare.app_common.workflows.cross_site_eval" + ], + "CrossSiteModelEval": [ + "nvflare.app_common.workflows.cross_site_model_eval" + ], + "Cyclic": [ + "nvflare.app_common.workflows.cyclic" + ], + "CyclicController": [ + "nvflare.app_common.workflows.cyclic_ctl" + ], + "ErrorHandlingController": [ + "nvflare.app_common.workflows.error_handling_controller" + ], + "FedAvg": [ + "nvflare.app_common.workflows.fedavg" + ], + "GlobalModelEval": [ + "nvflare.app_common.workflows.global_model_eval" + ], + "HierarchicalStatisticsController": [ + "nvflare.app_common.workflows.hierarchical_statistics_controller" + ], + "InitializeGlobalWeights": [ + "nvflare.app_common.workflows.initialize_global_weights" + ], + "ModelController": [ + "nvflare.app_common.workflows.model_controller" + ], + "Scaffold": [ + "nvflare.app_common.workflows.scaffold" + ], + "ScatterAndGather": [ + "nvflare.app_common.workflows.scatter_and_gather" + ], + "ScatterAndGatherScaffold": [ + "nvflare.app_common.workflows.scatter_and_gather_scaffold" + ], + "SplitNNController": [ + "nvflare.app_common.workflows.splitnn_workflow" + ], + "StatisticsController": [ + "nvflare.app_common.workflows.statistics_controller" + ], + "CCManager": [ + "nvflare.app_opt.confidential_computing.cc_manager" + ], + "FlowerClientApplet": [ + "nvflare.app_opt.flower.applet" + ], + "FlowerServerApplet": [ + "nvflare.app_opt.flower.applet" + ], + "FlowerClientConnector": [ + "nvflare.app_opt.flower.connectors.flower_connector" + ], + "FlowerServerConnector": [ + "nvflare.app_opt.flower.connectors.flower_connector" + ], + "HECrossSiteModelEval": [ + "nvflare.app_opt.he.cross_site_model_eval" + ], + "HEInTimeAccumulateWeightedAggregator": [ + "nvflare.app_opt.he.intime_accumulate_model_aggregator" + ], + "HEModelDecryptor": [ + "nvflare.app_opt.he.model_decryptor" + ], + "HEModelEncryptor": [ + "nvflare.app_opt.he.model_encryptor" + ], + "HEModelSerializeFilter": [ + "nvflare.app_opt.he.model_serialize_filter" + ], + "HEModelShareableGenerator": [ + "nvflare.app_opt.he.model_shareable_generator" + ], + "PTClientAPILauncherExecutor": [ + "nvflare.app_opt.pt.client_api_launcher_executor" + ], + "PTFedAvgEarlyStopping": [ + "nvflare.app_opt.pt.fedavg_early_stopping" + ], + "PTFedOptModelShareableGenerator": [ + "nvflare.app_opt.pt.fedopt" + ], + "FedOpt": [ + "nvflare.app_opt.pt.fedopt_ctl", + "nvflare.app_opt.tf.fedopt_ctl" + ], + "PTFileModelLocator": [ + "nvflare.app_opt.pt.file_model_locator" + ], + "PTFileModelPersistor": [ + "nvflare.app_opt.pt.file_model_persistor" + ], + "PTInProcessClientAPIExecutor": [ + "nvflare.app_opt.pt.in_process_client_api_executor" + ], + "PTMultiProcessExecutor": [ + "nvflare.app_opt.pt.multi_process_executor" + ], + "JoblibModelParamPersistor": [ + "nvflare.app_opt.sklearn.joblib_model_param_persistor" + ], + "SKLearnExecutor": [ + "nvflare.app_opt.sklearn.sklearn_executor" + ], + "TFClientAPILauncherExecutor": [ + "nvflare.app_opt.tf.client_api_launcher_executor" + ], + "TFInProcessClientAPIExecutor": [ + "nvflare.app_opt.tf.in_process_client_api_executor" + ], + "TFModelPersistor": [ + "nvflare.app_opt.tf.model_persistor" + ], + "MLflowReceiver": [ + "nvflare.app_opt.tracking.mlflow.mlflow_receiver" + ], + "MLflowWriter": [ + "nvflare.app_opt.tracking.mlflow.mlflow_writer" + ], + "TBAnalyticsReceiver": [ + "nvflare.app_opt.tracking.tb.tb_receiver" + ], + "TBWriter": [ + "nvflare.app_opt.tracking.tb.tb_writer" + ], + "WandBReceiver": [ + "nvflare.app_opt.tracking.wandb.wandb_receiver" + ], + "WandBWriter": [ + "nvflare.app_opt.tracking.wandb.wandb_writer" + ], + "XGBFedController": [ + "nvflare.app_opt.xgboost.histogram_based.controller", + "nvflare.app_opt.xgboost.histogram_based_v2.fed_controller" + ], + "AppAdaptor": [ + "nvflare.app_opt.xgboost.histogram_based_v2.adaptors.adaptor" + ], + "GrpcClientAdaptor": [ + "nvflare.app_opt.xgboost.histogram_based_v2.adaptors.grpc_client_adaptor" + ], + "GrpcServerAdaptor": [ + "nvflare.app_opt.xgboost.histogram_based_v2.adaptors.grpc_server_adaptor" + ], + "XGBClientAdaptor": [ + "nvflare.app_opt.xgboost.histogram_based_v2.adaptors.xgb_adaptor" + ], + "XGBServerAdaptor": [ + "nvflare.app_opt.xgboost.histogram_based_v2.adaptors.xgb_adaptor" + ], + "XGBController": [ + "nvflare.app_opt.xgboost.histogram_based_v2.controller" + ], + "XGBExecutor": [ + "nvflare.app_opt.xgboost.histogram_based_v2.executor" + ], + "MockClientRunner": [ + "nvflare.app_opt.xgboost.histogram_based_v2.mock.mock_client_runner" + ], + "MockXGBController": [ + "nvflare.app_opt.xgboost.histogram_based_v2.mock.mock_controller" + ], + "MockXGBExecutor": [ + "nvflare.app_opt.xgboost.histogram_based_v2.mock.mock_executor" + ], + "MockSecureClientRunner": [ + "nvflare.app_opt.xgboost.histogram_based_v2.mock.mock_secure_client_runner" + ], + "MockSecureXGBExecutor": [ + "nvflare.app_opt.xgboost.histogram_based_v2.mock.mock_secure_executor" + ], + "ClientSecurityHandler": [ + "nvflare.app_opt.xgboost.histogram_based_v2.sec.client_handler" + ], + "SecurityHandler": [ + "nvflare.app_opt.xgboost.histogram_based_v2.sec.sec_handler" + ], + "ServerSecurityHandler": [ + "nvflare.app_opt.xgboost.histogram_based_v2.sec.server_handler" + ], + "XGBBaggingAggregator": [ + "nvflare.app_opt.xgboost.tree_based.bagging_aggregator" + ], + "XGBModelPersistor": [ + "nvflare.app_opt.xgboost.tree_based.model_persistor" + ], + "XGBModelShareableGenerator": [ + "nvflare.app_opt.xgboost.tree_based.shareable_generator" + ], + "ComponentCaller": [ + "nvflare.widgets.comp_caller" + ], + "ClientFedEventRunner": [ + "nvflare.widgets.fed_event" + ], + "FedEventRunner": [ + "nvflare.widgets.fed_event" + ], + "ServerFedEventRunner": [ + "nvflare.widgets.fed_event" + ], + "InfoCollector": [ + "nvflare.widgets.info_collector" + ], + "Widget": [ + "nvflare.widgets.widget" + ] +} \ No newline at end of file diff --git a/nvflare/fuel/utils/components_utils.py b/nvflare/fuel/utils/components_utils.py index 62834f15b5..370d577ee5 100644 --- a/nvflare/fuel/utils/components_utils.py +++ b/nvflare/fuel/utils/components_utils.py @@ -38,6 +38,6 @@ def create_classes_table_static(): class_table = module_scanner.create_classes_table() file = os.path.join(os.path.dirname(__file__), COMPONENT_CLASS_FILE) - json_object = json.dumps(class_table) + json_object = json.dumps(class_table, indent=4) with open(file, "w") as f: f.write(json_object)