@@ -152,7 +152,7 @@ class RezProcessEnv(ProcessEnv):
152152 """
153153 """
154154
155- REZ_DELIMITER_PATTERN = re .compile (r"( -|==|>=|>|<=|<) " )
155+ REZ_DELIMITER_PATTERN = re .compile (r"-|==|>=|>|<=|<" )
156156
157157 def __init__ (self , folder : str , configEnv : dict [str : str ], uri : str = "" ):
158158 if not uri :
@@ -167,35 +167,39 @@ def resolveRezSubrequires(self) -> list[str]:
167167 environment (if this package is defined).
168168 """
169169 subrequires = os .environ .get (f"{ self .uri .upper ()} _SUBREQUIRES" , "" ).split (os .pathsep )
170- packages = []
170+ if not subrequires :
171+ return []
171172
173+ packages = []
172174 # Packages that are resolved in the current environment
173175 currentEnvPackages = []
174176 resolvedVersions = {}
175- if "REZ_REQUEST " in os .environ :
176- resolvedPackages = os .getenv ("REZ_RESOLVE " , "" ).split ()
177+ if "REZ_USED_RESOLVE " in os .environ :
178+ resolvedPackages = os .getenv ("REZ_USED_RESOLVE " , "" ).split ()
177179 for package in resolvedPackages :
178180 if package .startswith ("~" ):
179181 continue
180182 currentEnvPackages .append (package )
181- version = package .split ("-" )
182- if len (version ) == 2 :
183- resolvedVersions [version [0 ]] = version [1 ]
184- elif len (version ) > 2 : # Handle case with multiple hyphen-minus
185- resolvedVersions [version [0 ]] = "-" .join (version [1 :])
183+ name , version = self .REZ_DELIMITER_PATTERN .split (package , maxsplit = 1 )
184+ resolvedVersions [name ] = version
186185 logging .debug ("Packages in the current environment: " + ", " .join (currentEnvPackages ))
187186
188187 # Take packages with the set versions for those which have one, and try to take packages in the current
189188 # environment (if they are resolved in it)
190189 for package in subrequires :
191- if self .REZ_DELIMITER_PATTERN .findall (package ): # The subrequires ask for a specific version
192- packages .append (package )
193- else :
194- packageName = self .REZ_DELIMITER_PATTERN .split (package )[0 ]
195- resolvedVersion = resolvedVersions .get (packageName )
196- if (resolvedVersion != None ) and (resolvedVersion != "" ):
197- packages .append (packageName + "==" + resolvedVersion )
198- else :
190+ packageTuple = self .REZ_DELIMITER_PATTERN .split (package , maxsplit = 1 )
191+ match len (packageTuple ):
192+ case 1 :
193+ # Only the package name in the subrequires.
194+ # Search for a corresponding version in the parent environment.
195+ packageName = packageTuple [0 ]
196+ parentResolvedVersion = resolvedVersions .get (packageName )
197+ if parentResolvedVersion :
198+ packages .append (f"{ packageName } =={ parentResolvedVersion } " )
199+ else :
200+ packages .append (package )
201+ case 2 :
202+ # The subrequires ask for a specific version
199203 packages .append (package )
200204
201205 logging .debug ("Packages for the execution environment: " + ", " .join (packages ))
0 commit comments