@@ -24,7 +24,7 @@ class _MatlabFinder(build_py):
2424 MATLAB_REL = 'R2021b'
2525
2626 # MUST_BE_UPDATED_EACH_RELEASE (Search repo for this string)
27- MATLAB_VER = '9.11.8 '
27+ MATLAB_VER = '9.11.9 '
2828
2929 # MUST_BE_UPDATED_EACH_RELEASE (Search repo for this string)
3030 SUPPORTED_PYTHON_VERSIONS = set (['3.7' , '3.8' , '3.9' ])
@@ -174,7 +174,7 @@ def _find_matlab_key_from_windows_registry(self, key):
174174 found_vers .append (sub_key )
175175 # Example: the version in the registry could be "9.13.1" whereas our version is "9.13"
176176 # we still want to allow this
177- if sub_key . startswith ( self .MATLAB_VER ):
177+ if self ._check_matlab_release_against_engine ( sub_key )
178178 key_value = sub_key
179179 break
180180
@@ -187,6 +187,22 @@ def _find_matlab_key_from_windows_registry(self, key):
187187
188188 return key_value
189189
190+ def _check_matlab_release_against_engine (self , matlab_release ):
191+ re_major_minor = "^(\d+)\.(\d+)"
192+ matlab_release_match = re .match (re_major_minor , matlab_release )
193+ if not matlab_release_match :
194+ raise RuntimeError (f"{ self .invalid_version_from_matlab_release .format (ver = matlab_release )} " )
195+ eng_match = re .match (re_major_minor , self .MATLAB_REL )
196+ if not eng_match :
197+ raise RuntimeError (f"{ self .invalid_version_from_eng .format (ver = self .MATLAB_REL )} " )
198+
199+ matlab_release_major_minor = (matlab_release_match .group (1 ), matlab_release_match .group (2 ))
200+ eng_major_minor = (eng_match .group (1 ), eng_match .group (2 ))
201+
202+ if matlab_release_major_minor != eng_major_minor :
203+ return False
204+ return True
205+
190206 def verify_matlab_release (self , root ):
191207 """
192208 Parses VersionInfo.xml to verify the MATLAB release matches the supported release
@@ -205,21 +221,7 @@ def verify_matlab_release(self, root):
205221 if child .tag == 'release' :
206222 matlab_release = self .found_matlab = child .text
207223 break
208-
209- re_major_minor = "^(\d+)\.(\d+)"
210- matlab_release_match = re .match (re_major_minor , matlab_release )
211- if not matlab_release_match :
212- raise RuntimeError (f"{ self .invalid_version_from_matlab_release .format (ver = matlab_release )} " )
213- eng_match = re .match (re_major_minor , self .MATLAB_REL )
214- if not eng_match :
215- raise RuntimeError (f"{ self .invalid_version_from_eng .format (ver = self .MATLAB_REL )} " )
216-
217- matlab_release_major_minor = (matlab_release_match .group (1 ), matlab_release_match .group (2 ))
218- eng_major_minor = (eng_match .group (1 ), eng_match .group (2 ))
219-
220- if matlab_release_major_minor != eng_major_minor :
221- return False
222- return True
224+ return self ._check_matlab_release_against_engine (matlab_release )
223225
224226 def search_path_for_directory_unix (self ):
225227 """
0 commit comments