3131 NB_SESSION_OCID ,
3232 PIPELINE_RUN_COMPARTMENT_OCID ,
3333 PROJECT_OCID ,
34+ TMPDIR ,
3435)
3536from ads .evaluations import EvaluatorMixin
3637from ads .feature_engineering import ADSImage
@@ -183,7 +184,7 @@ def _prepare_artifact_dir(artifact_dir: str = None) -> str:
183184 if artifact_dir and isinstance (artifact_dir , str ):
184185 return os .path .abspath (os .path .expanduser (artifact_dir ))
185186
186- artifact_dir = tempfile .mkdtemp ()
187+ artifact_dir = TMPDIR or tempfile .mkdtemp ()
187188 logger .info (
188189 f"The `artifact_dir` was not provided and "
189190 f"automatically set to: { artifact_dir } "
@@ -965,17 +966,20 @@ def prepare(
965966 auth = self .auth ,
966967 local_copy_dir = self .local_copy_dir ,
967968 )
968- self .runtime_info = self .model_artifact .prepare_runtime_yaml (
969- inference_conda_env = self .properties .inference_conda_env ,
970- inference_python_version = self .properties .inference_python_version ,
971- training_conda_env = self .properties .training_conda_env ,
972- training_python_version = self .properties .training_python_version ,
973- force_overwrite = force_overwrite ,
974- namespace = namespace ,
975- bucketname = DEFAULT_CONDA_BUCKET_NAME ,
976- auth = self .auth ,
977- ignore_conda_error = self .ignore_conda_error ,
978- )
969+ try :
970+ self .runtime_info = self .model_artifact .prepare_runtime_yaml (
971+ inference_conda_env = self .properties .inference_conda_env ,
972+ inference_python_version = self .properties .inference_python_version ,
973+ training_conda_env = self .properties .training_conda_env ,
974+ training_python_version = self .properties .training_python_version ,
975+ force_overwrite = force_overwrite ,
976+ namespace = namespace ,
977+ bucketname = DEFAULT_CONDA_BUCKET_NAME ,
978+ auth = self .auth ,
979+ ignore_conda_error = self .ignore_conda_error ,
980+ )
981+ except ValueError as e :
982+ raise e
979983
980984 self ._summary_status .update_status (
981985 detail = "Generated runtime.yaml" , status = ModelState .DONE .value
@@ -1348,13 +1352,15 @@ def from_model_artifact(
13481352 properties .with_dict (local_vars )
13491353 auth = auth or authutil .default_signer ()
13501354 artifact_dir = _prepare_artifact_dir (artifact_dir )
1355+ reload = kwargs .pop ("reload" , False )
13511356 model_artifact = ModelArtifact .from_uri (
13521357 uri = uri ,
13531358 artifact_dir = artifact_dir ,
1354- model_file_name = model_file_name ,
1355- force_overwrite = force_overwrite ,
13561359 auth = auth ,
1360+ force_overwrite = force_overwrite ,
13571361 ignore_conda_error = ignore_conda_error ,
1362+ model_file_name = model_file_name ,
1363+ reload = reload ,
13581364 )
13591365 model = cls (
13601366 estimator = model_artifact .model ,
@@ -1367,22 +1373,33 @@ def from_model_artifact(
13671373 model .local_copy_dir = model_artifact .local_copy_dir
13681374 model .model_artifact = model_artifact
13691375 model .ignore_conda_error = ignore_conda_error
1370- model .reload_runtime_info ()
1376+
1377+ if reload :
1378+ model .reload_runtime_info ()
1379+ model ._summary_status .update_action (
1380+ detail = "Populated metadata(Custom, Taxonomy and Provenance)" ,
1381+ action = "Call .populate_metadata() to populate metadata." ,
1382+ )
1383+
13711384 model ._summary_status .update_status (
13721385 detail = "Generated score.py" ,
1373- status = ModelState .DONE .value ,
1386+ status = ModelState .NOTAPPLICABLE .value ,
13741387 )
13751388 model ._summary_status .update_status (
13761389 detail = "Generated runtime.yaml" ,
1377- status = ModelState .DONE .value ,
1390+ status = ModelState .NOTAPPLICABLE .value ,
13781391 )
13791392 model ._summary_status .update_status (
1380- detail = "Serialized model" , status = ModelState .DONE .value
1393+ detail = "Serialized model" ,
1394+ status = ModelState .NOTAPPLICABLE .value ,
13811395 )
1382- model ._summary_status .update_action (
1396+ model ._summary_status .update_status (
13831397 detail = "Populated metadata(Custom, Taxonomy and Provenance)" ,
1384- action = f"Call .populate_metadata() to populate metadata." ,
1398+ status = ModelState .AVAILABLE .value
1399+ if reload
1400+ else ModelState .NOTAPPLICABLE .value ,
13851401 )
1402+
13861403 return model
13871404
13881405 @classmethod
@@ -3033,6 +3050,7 @@ class ModelState(Enum):
30333050 AVAILABLE = "Available"
30343051 NOTAVAILABLE = "Not Available"
30353052 NEEDSACTION = "Needs Action"
3053+ NOTAPPLICABLE = "Not Applicable"
30363054
30373055
30383056class SummaryStatus :
0 commit comments