in scripts/register_azureml.py [0:0]
def process_directory(directory: Path, ml_client: MLClient, version: int) -> None:
_logger.info("Processing: {0}".format(directory))
assert directory.is_absolute()
registration_file = directory / REG_CONFIG_FILENAME
reg_config = read_json_path(registration_file.resolve())
replacements = {"VERSION_REPLACEMENT_STRING": str(version)}
_logger.info("Changing directory")
os.chdir(directory)
if ENV_KEY in reg_config.keys():
for e in reg_config[ENV_KEY]:
_logger.info("Registering environment: {0}".format(e))
processed_file = e + ".processed"
process_file(e, processed_file, replacements)
curr_env: Environment = load_environment(processed_file)
ml_client.environments.create_or_update(curr_env)
_logger.info("Registered {0}".format(curr_env.name))
else:
_logger.info("No key for environments")
if COMP_KEY in reg_config.keys():
for c in reg_config[COMP_KEY]:
_logger.info("Registering component: {0}".format(c))
processed_file = c + ".processed"
process_file(c, processed_file, replacements)
curr_component = load_component(source=processed_file)
ml_client.components.create_or_update(curr_component)
_logger.info("Registered {0}".format(curr_component.name))
else:
_logger.info("No key for components")
if DATA_KEY in reg_config.keys():
_logger.info("Working through data entries")
for data_info in reg_config[DATA_KEY]:
script_file = data_info["script"]
_logger.info("Running script {0}".format(script_file))
subprocess.run(["python", script_file], check=True)
for d in data_info["data_yamls"]:
_logger.info("Processing {0}".format(d))
processed_file = d + ".processed"
process_file(d, processed_file, replacements)
curr_dataset: Data = load_data(processed_file)
ml_client.data.create_or_update(curr_dataset)
_logger.info("Registered {0}".format(curr_dataset.name))
else:
_logger.info("No key for datasets")
if SUBDIR_KEY in reg_config.keys():
_logger.info("Working through nested directories")
for d in reg_config[SUBDIR_KEY]:
next_dir = directory / d
process_directory(next_dir.resolve(), ml_client, version)
os.chdir(directory)
else:
_logger.info("No subdirectories found for {0}".format(directory))