nvflare.apis.fl_constant module
- class AdminCommandNames[source]
Bases:
object- ABORT = 'abort'
- ABORT_JOB = 'abort_job'
- ABORT_TASK = 'abort_task'
- ADD_STUDY_SITE = 'add_study_site'
- ADD_STUDY_USER = 'add_study_user'
- ADMIN_CHECK_STATUS = 'admin_check_status'
- APP_COMMAND = 'app_command'
- AUX_COMMAND = 'aux_command'
- CALL = 'call'
- CHECK_RESOURCES = 'check_resources'
- CHECK_STATUS = 'check_status'
- CLONE_JOB = 'clone_job'
- CONFIGURE_JOB_LOG = 'configure_job_log'
- CONFIGURE_SITE_LOG = 'configure_site_log'
- DELETE_JOB = 'delete_job'
- DELETE_WORKSPACE = 'delete_workspace'
- DEPLOY_APP = 'deploy_app'
- DISABLE_CLIENT = 'disable_client'
- DOWNLOAD_JOB = 'download_job'
- DOWNLOAD_JOB_COMPONENTS = 'download_job_components'
- ENABLE_CLIENT = 'enable_client'
- GET_JOB_LOG = 'get_job_log'
- GET_JOB_META = 'get_job_meta'
- LIST_JOB = 'list_job'
- LIST_JOBS = 'list_jobs'
- LIST_STUDIES = 'list_studies'
- REGISTER_STUDY = 'register_study'
- REMOVE_CLIENT = 'remove_client'
- REMOVE_STUDY = 'remove_study'
- REMOVE_STUDY_SITE = 'remove_study_site'
- REMOVE_STUDY_USER = 'remove_study_user'
- REPORT_ENV = 'report_env'
- REPORT_RESOURCES = 'report_resources'
- REPORT_VERSION = 'report_version'
- RESET_ERRORS = 'reset_errors'
- RESTART = 'restart'
- SET_TIMEOUT = 'set_timeout'
- SHELL_CAT = 'cat'
- SHELL_GREP = 'grep'
- SHELL_HEAD = 'head'
- SHELL_LS = 'ls'
- SHELL_PWD = 'pwd'
- SHELL_TAIL = 'tail'
- SHOW_ERRORS = 'show_errors'
- SHOW_SCOPES = 'show_scopes'
- SHOW_STATS = 'show_stats'
- SHOW_STUDY = 'show_study'
- SHUTDOWN = 'shutdown'
- SUBMIT_JOB = 'submit_job'
- SYS_INFO = 'sys_info'
- class CellMessageAuthHeaderKey[source]
Bases:
object- CLIENT_NAME = 'client_name'
- SSID = 'ssid'
- TOKEN = '__token__'
- TOKEN_SIGNATURE = '__token_signature__'
- class ConfigVarName[source]
Bases:
object- CELL_WAIT_TIMEOUT = 'cell_wait_timeout'
- DEAD_CLIENT_CHECK_LEAD_TIME = 'dead_client_check_lead_time'
- DEAD_CLIENT_GRACE_PERIOD = 'dead_client_grace_period'
- DECOMPOSER_MODULE = 'nvflare_decomposers'
- DOWNLOAD_CHUNK_SIZE = 'download_chunk_size'
- END_RUN_READINESS_CHECK_INTERVAL = 'end_run_readiness_check_interval'
- END_RUN_READINESS_TIMEOUT = 'end_run_readiness_timeout'
- GET_TASK_TIMEOUT = 'get_task_timeout'
- JOB_HEARTBEAT_INTERVAL = 'job_heartbeat_interval'
- MAX_REG_DURATION = 'max_reg_duration'
- MAX_RUNNER_SYNC_TIMEOUT = 'max_runner_sync_timeout'
- MIN_DOWNLOAD_TIMEOUT = 'min_download_timeout'
- MIN_FILE_SIZE_FOR_STREAMING = 'min_file_size_for_streaming'
- NOTIFY_CP_MSG_TIMEOUT = 'notify_cp_msg_timeout'
- NOTIFY_CP_RETRY_TIMEOUT = 'notify_cp_retry_timeout'
- RM_MAX_REQUEST_WORKERS = 'rm_max_request_workers'
- RM_QUERY_INTERVAL = 'rm_query_interval'
- RUNNER_SYNC_TIMEOUT = 'runner_sync_timeout'
- STREAMING_PER_REQUEST_TIMEOUT = 'streaming_per_request_timeout'
- STRICT_START_JOB_REPLY_CHECK = 'strict_start_job_reply_check'
- SUBMIT_TASK_RESULT_TIMEOUT = 'submit_task_result_timeout'
- SYNC_CLIENT_JOBS_REQUIRE_PREVIOUS_REPORT = 'sync_client_jobs_require_previous_report'
- TASK_CHECK_INTERVAL = 'task_check_interval'
- TASK_CHECK_TIMEOUT = 'task_check_timeout'
- class ConnPropKey[source]
Bases:
object- ADDRESS = 'address'
- CONNECTION_SECURITY = 'connection_security'
- CP_CONN_PROPS = 'cp_conn_props'
- FQCN = 'fqcn'
- RELAY_CONFIG = 'relay_config'
- RELAY_CONN_PROPS = 'relay_conn_props'
- ROOT_CONN_PROPS = 'root_conn_props'
- SCHEME = 'scheme'
- URL = 'url'
- class FLContextKey[source]
Bases:
object- APP_ROOT = '__app_root__'
- ARGS = '__args__'
- AUTHORIZATION_REASON = '_authorization_reason'
- AUTHORIZATION_RESULT = '_authorization_result'
- CELL_MESSAGE = '__cell_message__'
- CLIENT_CONFIG = '__client_config__'
- CLIENT_HIERARCHY = '__client_hierarchy__'
- CLIENT_NAME = '__client_name__'
- CLIENT_REGISTER_DATA = '_client_register_data'
- CLIENT_RESOURCE_SPECS = '__client_resource_specs'
- CLIENT_SITE_CONFIG = '__client_site_config__'
- CLIENT_TOKEN = '__client_token'
- CLIENT_TYPE = '__client_type__'
- COMMAND_NAME = '_command_name'
- COMMUNICATION_ERROR = 'Flare_communication_error__'
- COMPONENT_BUILD_ERROR = '__component_build_error__'
- COMPONENT_CONFIG = '__component_config__'
- COMPONENT_NODE = '__component_node__'
- CONFIG_CTX = '__config_ctx__'
- CURRENT_JOB_ID = '__current_job_id__'
- CURRENT_RUN = '__run_num__'
- CUSTOM_PROPS = '__custom_props__'
- DISCONNECTED_CLIENT_NAME = '_disconnected_client_name'
- EFFECTIVE_JOB_SCOPE_NAME = '__effective_job_scope_name__'
- EVENT_DATA = '__event_data__'
- EVENT_ID = '__event_id__'
- EVENT_ORIGIN = '__event_origin__'
- EVENT_ORIGIN_SITE = '__event_origin_site__'
- EVENT_PROCESSED = '__event_processed__'
- EVENT_SCOPE = '__event_scope__'
- EXCEPTIONS = '__exceptions__'
- FATAL_SYSTEM_ERROR = '__fatal_system_error__'
- FILTER_DIRECTION = '__filter_dir__'
- FROM_RANK_NUMBER = '__from_rank_number__'
- IS_CLIENT_TASK_RESEND = '__is_resend__'
- JOB_BLOCK_REASON = '__job_block_reason'
- JOB_DEPLOY_DETAIL = '__job_deploy_detail__'
- JOB_INFO = '__job_info__'
- JOB_LAUNCHER = '_job_launcher'
- JOB_META = '__job_meta__'
- JOB_PARTICIPANTS = '__job_participants'
- JOB_PROCESS_ARGS = '__job_process_args__'
- JOB_RUN_NUMBER = '__job_run_number__'
- JOB_SCOPE_NAME = '__job_scope_name__'
- MIN_GET_TASK_TIMEOUT = '__min_get_task_timeout__'
- NOT_READY_TO_END_RUN = 'not_ready_to_end_run__'
- NUM_OF_PROCESSES = '__num_of_processes__'
- PEER_CONTEXT = '__peer_ctx__'
- PROCESS_TYPE = '__process_type__'
- RANK_NUMBER = '__rank_number__'
- RECONNECTED_CLIENT_NAME = '_reconnected_client_name'
- REPLY = '__reply__'
- RESOURCE_CHECK_RESULT = '__resource_check_result'
- ROOT_URL = '__root_url__'
- RUNNER = '__runner__'
- RUN_ABORT_SIGNAL = '__run_abort_signal__'
- SCOPE_OBJECT = '__scope_object__'
- SCOPE_PROPERTIES = '__scope_props__'
- SECURE_MODE = '__secure_mode__'
- SECURITY_ITEMS = '_security_items'
- SERVER_CONFIG = '__server_config__'
- SERVER_HOST_NAME = '__server_host_name__'
- SHAREABLE = '__shareable__'
- SIMULATE_MODE = '__simulate_mode__'
- SITE_NAME = '__site_name'
- SITE_OBJ = '_site_obj_'
- SNAPSHOT = 'job_snapshot'
- SSID = '__ssid__'
- SUBMITTER_NAME = '_submitterName'
- SUBMITTER_ORG = '_submitterOrg'
- SUBMITTER_ROLE = '_submitterRole'
- TASK_DATA = '__task_data__'
- TASK_ID = '__task_id__'
- TASK_NAME = '__task_name__'
- TASK_RESULT = '__task_result__'
- UNAUTHENTICATED = 'Flare_unauthenticated__'
- USER_NAME = '__user_name'
- USER_ORG = '__user_org'
- USER_ROLE = '__user_role'
- WORKFLOW = '__workflow__'
- WORKSPACE_OBJECT = '__workspace_object__'
- WORKSPACE_ROOT = '__workspace_root__'
- class FLMetaKey[source]
Bases:
object- AUTH_TOKEN = 'auth_token'
- AUTH_TOKEN_SIGNATURE = 'auth_token_signature'
- CONFIGS = 'configs'
- CURRENT_ROUND = 'current_round'
- FILTER_HISTORY = 'filter_history'
- INITIAL_METRICS = 'initial_metrics'
- JOB_ID = 'job_id'
- NUM_STEPS_CURRENT_ROUND = 'NUM_STEPS_CURRENT_ROUND'
- PROCESSED_ALGORITHM = 'PROCESSED_ALGORITHM'
- PROCESSED_KEYS = 'PROCESSED_KEYS'
- PROCESS_RC_FILE = '_process_rc.txt'
- SITE_NAME = 'site_name'
- START_ROUND = 'start_round'
- SUBMIT_MODEL_NAME = 'submit_model_name'
- TOTAL_ROUNDS = 'total_rounds'
- VALIDATE_TYPE = 'validate_type'
- class FedEventHeader[source]
Bases:
object- DIRECTION = '_direction'
- EVENT_TYPE = '_event_type'
- ORIGIN = '_origin'
- TARGETS = '_targets'
- TIMESTAMP = '_timestamp'
- class JobConstants[source]
Bases:
object- CLIENT_JOB_CONFIG = 'config_fed_client.json'
- JOB_ID = 'job_id'
- JOB_IMAGE = 'image'
- JOB_LAUNCHER = 'job_launcher'
- META = 'meta'
- META_FILE = 'meta.json'
- SERVER_JOB_CONFIG = 'config_fed_server.json'
- SITES = 'sites'
- class LogMessageTag[source]
Bases:
object- CRITICAL = 'log/critical'
- DEBUG = 'log/debug'
- ERROR = 'log/error'
- EXCEPTION = 'log/exception'
- INFO = 'log/info'
- LOG_RECORD = 'log_record'
- WARNING = 'log/warning'
- class MachineStatus(value)[source]
Bases:
EnumConstants for machine status.
- Status Lifecycle
STOPPED <-> STARTING -> STARTED -> STOPPING -> STOPPED
- STARTED = 'started'
- STARTING = 'starting'
- STOPPED = 'stopped'
- STOPPING = 'stopping'
- class NonSerializableKeys[source]
Bases:
object- KEYS = ['__engine__', '__manager__', '__runner__', '__scope_props__', '__scope_object__', '__workspace_object__', '__task_data__', '__shareable__']
- class ProcessType[source]
Bases:
object- CLIENT_JOB = 'CJ'
- CLIENT_PARENT = 'CP'
- SERVER_JOB = 'SJ'
- SERVER_PARENT = 'SP'
- class ReservedKey[source]
Bases:
object- APP_ROOT = '__app_root__'
- ARGS = '__args__'
- AUDIT_EVENT_ID = '__audit_event_id__'
- AUX_RUNNER = '__aux_runner__'
- CLIENT_NAME = '__client_name__'
- CLIENT_TYPE = '__client_type__'
- COOKIE_JAR = '__cookie_jar__'
- CURRENT_JOB_ID = '__current_job_id__'
- CUSTOM_PROPS = '__custom_props__'
- ENGINE = '__engine__'
- EVENT_DATA = '__event_data__'
- EVENT_ID = '__event_id__'
- EVENT_ORIGIN = '__event_origin__'
- EVENT_ORIGIN_SITE = '__event_origin_site__'
- EVENT_SCOPE = '__event_scope__'
- EXCEPTIONS = '__exceptions__'
- FATAL_SYSTEM_ERROR = '__fatal_system_error__'
- FQSN = '__fqsn__'
- FROM_RANK_NUMBER = '__from_rank_number__'
- IDENTITY_NAME = '__identity_name__'
- IS_LEAF = '__is_leaf__'
- IS_RESEND = '__is_resend__'
- JOB_DEPLOY_DETAIL = '__job_deploy_detail__'
- JOB_INFO = '__job_info__'
- JOB_IS_UNSAFE = '__job_is_unsafe__'
- JOB_META = '__job_meta__'
- JOB_PROCESS_ARGS = '__job_process_args__'
- JOB_RUN_NUMBER = '__job_run_number__'
- MANAGER = '__manager__'
- NUM_OF_PROCESSES = '__num_of_processes__'
- PEER_CTX = '__peer_ctx__'
- PROCESS_TYPE = '__process_type__'
- RANK_NUMBER = '__rank_number__'
- RC = '__rc__'
- REPLY = '__reply__'
- RUNNER = '__runner__'
- RUN_ABORT_SIGNAL = '__run_abort_signal__'
- RUN_NUM = '__run_num__'
- SECURE_MODE = '__secure_mode__'
- SHAREABLE = '__shareable__'
- SHARED_FL_CONTEXT = '__shared_fl_context__'
- SIMULATE_MODE = '__simulate_mode__'
- TASK_DATA = '__task_data__'
- TASK_ID = '__task_id__'
- TASK_IS_READY = '__task_is_ready__'
- TASK_NAME = '__task_name__'
- TASK_RESULT = '__task_result__'
- WORKFLOW = '__workflow__'
- WORKSPACE_OBJECT = '__workspace_object__'
- WORKSPACE_ROOT = '__workspace_root__'
- class ReservedTopic[source]
Bases:
object- ABORT_ASK = '__abort_task__'
- APP_METRICS = '__app_metrics__'
- AUX_COMMAND = '__aux_command__'
- DO_TASK = '__do_task__'
- END_RUN = '__end_run__'
- JOB_HEART_BEAT = '__job_heartbeat__'
- MSG_ROOT_DELETED = '__msg_root_deleted__'
- STOP_CELLNET = '__stop_cellnet__'
- SYNC_RUNNER = '__sync_runner__'
- TASK_CHECK = '__task_check__'
- class ReturnCode[source]
Bases:
object- BAD_PEER_CONTEXT = 'BAD_PEER_CONTEXT'
- BAD_REQUEST_DATA = 'BAD_REQUEST_DATA'
- BAD_TASK_DATA = 'BAD_TASK_DATA'
- COMMUNICATION_ERROR = 'COMMUNICATION_ERROR'
- EARLY_TERMINATION = 'EARLY_TERMINATION'
- EMPTY_RESULT = 'EMPTY_RESULT'
- ERROR = 'ERROR'
- EXECUTION_EXCEPTION = 'EXECUTION_EXCEPTION'
- EXECUTION_RESULT_ERROR = 'EXECUTION_RESULT_ERROR'
- HANDLER_EXCEPTION = 'HANDLER_EXCEPTION'
- MISSING_PEER_CONTEXT = 'MISSING_PEER_CONTEXT'
- MODEL_UNRECOGNIZED = 'MODEL_UNRECOGNIZED'
- OK = 'OK'
- RUN_MISMATCH = 'RUN_MISMATCH'
- SERVER_NOT_READY = 'SERVER_NOT_READY'
- SERVICE_UNAVAILABLE = 'SERVICE_UNAVAILABLE'
- TASK_ABORTED = 'TASK_ABORTED'
- TASK_DATA_FILTER_ERROR = 'TASK_DATA_FILTER_ERROR'
- TASK_RESULT_FILTER_ERROR = 'TASK_RESULT_FILTER_ERROR'
- TASK_UNKNOWN = 'TASK_UNKNOWN'
- TASK_UNSUPPORTED = 'TASK_UNSUPPORTED'
- TIMEOUT = 'TIMEOUT'
- TOPIC_UNKNOWN = 'TOPIC_UNKNOWN'
- UNSAFE_JOB = 'UNSAFE_JOB'
- VALIDATE_TYPE_UNKNOWN = 'VALIDATE_TYPE_UNKNOWN'
- class RunProcessKey[source]
Bases:
object- CONNECTION = '_conn'
- JOB_HANDLE = '_job_launcher'
- JOB_ID = '_job_id'
- LISTEN_PORT = '_listen_port'
- PARTICIPANTS = '_participants'
- PROCESS_EXE_ERROR = '_process_exe_error'
- PROCESS_FINISHED = '_process_finished'
- PROCESS_RETURN_CODE = '_process_return_code'
- STATUS = '_status'
- class RunnerTask[source]
Bases:
object- END_RUN = 'end_run'
- INIT = 'init'
- TASK_EXEC = 'task_exec'
- class SecureTrainConst[source]
Bases:
object- PRIVATE_KEY = 'ssl_private_key'
- SSL_CERT = 'ssl_cert'
- SSL_ROOT_CERT = 'ssl_root_cert'
- class ServerCommandKey[source]
Bases:
object- AUX_REPLY = 'aux_reply'
- CLIENTS = 'clients'
- COLLECTOR = 'collector'
- COMMAND = 'command'
- DATA = 'data'
- FL_CLIENT = 'fl_client'
- FL_CONTEXT = 'fl_context'
- JOB_ID = 'job_id'
- LAST_TASK_ID = 'last_task_id'
- MIN_GET_TASK_TIMEOUT = 'min_get_task_timeout'
- PEER_FL_CONTEXT = '__peer_ctx__'
- REASON = 'reason'
- SHAREABLE = 'shareable'
- TASK_ID = 'task_id'
- TASK_NAME = 'task_name'
- TOPIC = 'topic'
- TURN_TO_COLD = '__turn_to_cold__'
- class ServerCommandNames[source]
Bases:
object- APP_COMMAND = 'app_command'
- AUX_COMMUNICATE = 'aux_communicate'
- AUX_SEND = 'aux_send'
- GET_CLIENTS = 'get_clients'
- GET_ERRORS = 'get_errors'
- GET_RUN_INFO = 'get_run_info'
- GET_TASK = 'get_task'
- HANDLE_DEAD_JOB = 'handle_dead_job'
- HEARTBEAT = 'heartbeat'
- RESET_ERRORS = 'reset_errors'
- SERVER_STATE = 'server_state'
- SHOW_STATS = 'show_stats'
- SUBMIT_UPDATE = 'submit_update'
- UPDATE_RUN_STATUS = 'update_run_status'
- class SiteType[source]
Bases:
object- ALL = '@ALL'
- CLIENT = 'client'
- SERVER = 'server'
- SERVER_PARENT = 'server_parent'
- class SnapshotKey[source]
Bases:
object- FL_CONTEXT = 'fl_context'
- JOB_CLIENTS = '_job_clients'
- JOB_ID = '_job_id'
- JOB_INFO = '_job_info'
- SERVER_RUNNER = '_Server_Runner'
- WORKSPACE = '_workspace'
- class StreamCtxKey[source]
Bases:
object- CLIENT_NAME = 'client_name'
- JOB_ID = 'job_id'
- LOG_TYPE = 'log_type'
- class SystemComponents[source]
Bases:
object- APP_DEPLOYER = 'app_deployer'
- CANCEL_RESOURCE_PROCESSOR = 'cancel_resource_processor'
- CHECK_RESOURCE_PROCESSOR = 'check_resource_processor'
- CLIENT_RUNNER = 'client_runner'
- DEFAULT_APP_DEPLOYER = 'default_app_deployer'
- FED_CLIENT = 'fed_client'
- JOB_MANAGER = 'job_manager'
- JOB_META_VALIDATOR = 'job_meta_validator'
- JOB_RUNNER = 'job_runner'
- JOB_SCHEDULER = 'job_scheduler'
- RESOURCE_CONSUMER = 'resource_consumer'
- RESOURCE_MANAGER = 'resource_manager'
- RUN_MANAGER = 'run_manager'
- SERVER_RUNNER = 'server_runner'
- class SystemConfigs[source]
Bases:
object- APPLICATION_CONF = 'application_config'
- RESOURCES_CONF = 'resources_config'
- STARTUP_CONF = 'start_config'
- class SystemVarName[source]
Bases:
objectThese vars are automatically generated by FLARE and can be referenced in job config (config_fed_client and config_fed_server). For example, you can reference SITE_NAME as “{SITE_NAME}” in your config.
To avoid potential conflict with user-defined var names, these var names are in UPPER CASE.
- CP_URL = 'CP_URL'
- JOB_CONFIG_DIR = 'JOB_CONFIG_DIR'
- JOB_CUSTOM_DIR = 'JOB_CUSTOM_DIR'
- JOB_ID = 'JOB_ID'
- PYTHONPATH = 'PYTHONPATH'
- RELAY_URL = 'RELAY_URL'
- ROOT_URL = 'ROOT_URL'
- SECURE_MODE = 'SECURE_MODE'
- SITE_NAME = 'SITE_NAME'
- WORKSPACE = 'WORKSPACE'
- class WorkspaceConstants[source]
Bases:
objecthard coded file names inside the workspace folder.
- ADMIN_STARTUP_CONFIG = 'fed_admin.json'
- APP_PREFIX = 'app_'
- AUDIT_LOG = 'audit.log'
- AUTHORIZATION_CONFIG = 'authorization.json'
- CLIENT_APP_CONFIG = 'config_fed_client.json'
- CLIENT_STARTUP_CONFIG = 'fed_client.json'
- CUSTOM_FOLDER_NAME = 'custom'
- DEFAULT_AUTHORIZATION_CONFIG = 'authorization.json.default'
- DEFAULT_LOGGING_CONFIG = 'log_config.json.default'
- DEFAULT_RESOURCES_CONFIG = 'resources.json.default'
- ENV_VAR_AUDIT_ROOT = 'NVFL_AUDIT_ROOT'
- ENV_VAR_LOG_ROOT = 'NVFL_LOG_ROOT'
- ENV_VAR_RESULT_ROOT = 'NVFL_RESULT_ROOT'
- ERROR_LOG_FILE_NAME = 'error_log.txt'
- JOB_META_FILE = 'meta.json'
- JOB_RESOURCES_CONFIG = 'job_resources.json'
- JOB_RESOURCE_FILE_NAME_PATTERN = '*__j_resources.json'
- LOGGING_CONFIG = 'log_config.json'
- LOG_FILE_NAME = 'log.txt'
- PARENT_RESOURCE_FILE_NAME_PATTERN = '*__p_resources.json'
- PRIVACY_CONFIG = 'privacy.json'
- RESOURCES_CONFIG = 'resources.json'
- RESOURCE_FILE_NAME_PATTERN = '*__resources.json'
- RESTART_FILE = 'restart.fl'
- SAMPLE_PRIVACY_CONFIG = 'privacy.json.sample'
- SERVER_APP_CONFIG = 'config_fed_server.json'
- SERVER_STARTUP_CONFIG = 'fed_server.json'
- SHUTDOWN_FILE = 'shutdown.fl'
- SITE_FOLDER_NAME = 'local'
- STARTUP_FOLDER_NAME = 'startup'
- STATS_POOL_RECORDS_FILE_NAME = 'stats_pool_records.csv'
- STATS_POOL_SUMMARY_FILE_NAME = 'stats_pool_summary.json'
- WORKSPACE_PREFIX = ''