in trending_deploy/deploy.py [0:0]
def deploy_selected_models(models: List[Model]) -> dict[Literal["deployed_success", "deployed_failed", "undeployed_success", "undeployed_failed"], List[str]]:
"""
Deploy the selected models.
Args:
models (list[Model]): A list of selected models to deploy.
Returns:
dict: A dictionary containing lists of successfully and unsuccessfully deployed and undeployed models.
"""
to_deploy_models = {model.model_info.id: model for model in models}
deployed_model_names = set(load_deployed_models())
deployed_success = []
deployed_failed = []
for model_id in set(to_deploy_models.keys()) - deployed_model_names:
success = deploy_model(to_deploy_models[model_id])
if success:
deployed_success.append(model_id)
else:
deployed_failed.append(model_id)
undeployed_success = []
undeployed_failed = []
for model_to_undeploy in deployed_model_names - set(to_deploy_models.keys()):
success = undeploy_model(model_to_undeploy)
if success:
undeployed_success.append(model_to_undeploy)
else:
undeployed_failed.append(model_to_undeploy)
return {
"deployed_success": deployed_success,
"deployed_failed": deployed_failed,
"undeployed_success": undeployed_success,
"undeployed_failed": undeployed_failed,
}