in code/workflow/implementations/autopilot/bp_init_stage.py [0:0]
def get_config(cls, event):
if cls._instance is None:
cls._instance = cls.__new__(cls)
config_uri = event["Input"]["config_uri"]
config = get_json_from_s3(config_uri)
if config :
cls.dict = config
if "s3_bucket" in config["workspace-config"] :
cls.w_bucket = config["workspace-config"]["s3_bucket"]
else :
cls.w_bucket = event["default_workspace"]
cls.dict["workspace-config"]["s3_bucket"] = event["default_workspace"]
cls.w_prefix = config["workspace-config"]["s3_prefix"]
now = strftime("%Y-%m-%d-%H-%M-%S", gmtime())
if "s3_bucket" in config["data-config"] :
cls.d_bucket = config["data-config"]["s3_bucket"]
else :
cls.d_bucket = event["default_workspace"]
cls.dict["data-config"]["s3_bucket"] = event["default_workspace"]
cls.raw_in_prefix = config["data-config"]["raw_in_prefix"]
cls.prepped_out_prefix = config["data-config"]["prepped_out_prefix"]
cls.flow_name = config["dataprep-config"]["definition_file"]
cls.output_node_id = config["dataprep-config"]["output_node_id"]
cls.dp_instance_type = config["dataprep-config"]["instance_type"]
cls.dp_instance_count = int(config["dataprep-config"]["instance_count"])
cls.dp_data_version = config["dataprep-config"]["data_version"]
cls.automl_base_job_name = config["automl-config"]["job_base_name"]
cls.automl_job_name = f"{cls.automl_base_job_name}-{now}"
cls.automl_max_candidates = int(config["automl-config"]["max_candidates"])
cls.automl_target_name = config["automl-config"]["target_name"]
cls.automl_problem_type = config["automl-config"]["problem_type"]
cls.automl_metric_name = config["automl-config"]["metric_name"]
if "iam_role" in config["security-config"] :
cls.iam_role = config["security-config"]["iam_role"]
else :
cls.iam_role = event["sm_execution_role"]
cls.dict["security-config"]["iam_role"] = event["sm_execution_role"]
cls.model_base_name = config["model-config"]["model_base_name"]
cls.bias_base_name = config["bias-analysis-config"]["job_base_name"]
cls.xai_base_name = config["xai-config"]["job_base_name"]
cls.error_base_name = config["error-analysis-config"]["job_base_name"]
##resource names are initialized here
cls.dict["automl-config"]["job_name"] = cls.automl_job_name
cls.dict["model-config"]["model_name"] = f"{cls.model_base_name}-{now}"
cls.dict["bias-analysis-config"]["job_name"] = f"{cls.bias_base_name}-{now}"
cls.dict["xai-config"]["job_name"] = f"{cls.xai_base_name}-{now}"
cls.dict["error-analysis-config"]["job_name"] = f"{cls.error_base_name}-{now}"
else :
raise Exception("Failed to read config.json.")
return cls._instance