@@ -136,41 +136,6 @@ def register_model(model, name, project, repository=None, input=None,
136136 # If version not specified, default to creating a new version
137137 version = version or 'new'
138138
139- # If replacing an existing version, make sure the model version exists
140- if str (version ).lower () != 'new' :
141- model_obj = mr .get_model (name )
142- if model_obj is None :
143- raise ValueError ("Unable to update version '%s' of model '%s%. "
144- "Model not found." % (version , name ))
145- model_versions = request_link (model_obj , 'modelVersions' )
146- assert isinstance (model_versions , list )
147-
148- # Use 'new' to create a new version if one doesn't exist yet.
149- if len (model_versions ) == 0 :
150- raise ValueError ("No existing version of model '%s' to update."
151- % name )
152-
153- # Help function for extracting version number of REST response
154- def get_version (x ):
155- return float (x .get ('modelVersionName' , 0 ))
156-
157- if str (version ).isnumeric ():
158- match = [x for x in model_versions if float (version ) ==
159- get_version (x )]
160- assert len (match ) <= 1
161-
162- match = match [0 ] if len (match ) else None
163- elif str (version ).lower () == 'latest' :
164- # Sort by version number and get first
165- match = sorted (model_versions , key = get_version )[0 ]
166- else :
167- raise ValueError ("Unrecognized version '%s'." % version )
168-
169- # TODO: get ID of correct model version
170- # if version != new, get existing model
171- # get model (modelVersions) rel
172- # -> returns list w/ id, modelVersionName, etc
173-
174139 files = files or []
175140
176141 # Find the project if it already exists
@@ -340,7 +305,18 @@ def get_version(x):
340305 project ['eventProbabilityVariable' ] = prediction_variable
341306 mr .update_project (project )
342307
343- model = mr .create_model (model , project )
308+ # If replacing an existing version, make sure the model version exists
309+ if str (version ).lower () != 'new' :
310+ #Update an existing model with new files
311+ model_obj = mr .get_model (name )
312+ if model_obj is None :
313+ raise ValueError ("Unable to update version '%s' of model '%s%. "
314+ "Model not found." % (version , name ))
315+ model = mr .create_model_version (name )
316+ mr .delete_model_contents (model )
317+ else :
318+ #Assume new model to create
319+ model = mr .create_model (model , project )
344320
345321 assert isinstance (model , RestObj )
346322
0 commit comments