@@ -317,15 +317,17 @@ def is_required_version_on_pypi(package_name, spec):
317317def get_package_from_repo (pkg_name : str , repo_root : Optional [str ] = None ) -> Optional [ParsedSetup ]:
318318 root_dir = discover_repo_root (repo_root )
319319
320- glob_path = os .path .join (root_dir , "sdk" , "*" , pkg_name , "setup.py" )
321- paths = glob .glob (glob_path )
320+ paths = discover_targeted_packages (pkg_name , root_dir , filter_type = "Build" , include_inactive = True )
322321
323- if paths :
324- setup_py_path = paths [ 0 ]
325- parsed_setup = ParsedSetup . from_path ( setup_py_path )
326- return parsed_setup
322+ if len ( paths ) >= 2 :
323+ raise RuntimeError (
324+ f"Multiple packages found for { pkg_name } within { root_dir } , please specify a more specific glob."
325+ )
327326
328- return None
327+ if paths and len (paths ) == 1 :
328+ return ParsedSetup .from_path (paths [0 ])
329+
330+ raise RuntimeError (f"Package { pkg_name } not found in repo { root_dir } ." )
329331
330332
331333def get_package_from_repo_or_folder (req : str , prebuilt_wheel_dir : Optional [str ] = None ) -> Optional [str ]:
@@ -363,26 +365,21 @@ def get_version_from_repo(pkg_name: str, repo_root: Optional[str] = None) -> str
363365 if version_obj .pre :
364366 if version_obj .pre [0 ] == DEV_BUILD_IDENTIFIER :
365367 return version_obj .base_version
366-
367368 return str (version_obj )
368369 else :
369- logging .error ("setup.py is not found for package {} to identify current version" .format (pkg_name ))
370- exit (1 )
370+ raise RuntimeError (f"setup.py is not found for package { pkg_name } to identify current version" )
371371
372372
373373def get_base_version (pkg_name : str ) -> str :
374374 root_dir = discover_repo_root ()
375- # find version for the package from source. This logic should be revisited to find version from devops feed
376- glob_path = os .path .join (root_dir , "sdk" , "*" , pkg_name , "setup.py" )
377- paths = glob .glob (glob_path )
378- if paths :
379- setup_py_path = paths [0 ]
380- parsed_setup = ParsedSetup .from_path (setup_py_path )
375+
376+ parsed_setup = get_package_from_repo (pkg_name , root_dir )
377+
378+ if parsed_setup :
381379 version_obj = Version (parsed_setup .version )
382380 return version_obj .base_version
383381 else :
384- logging .error ("setup.py is not found for package {} to identify current version" .format (pkg_name ))
385- exit (1 )
382+ raise RuntimeError ("setup.py is not found for package {} to identify current version" .format (pkg_name ))
386383
387384
388385def process_requires (setup_py_path : str , is_dev_build : bool = False ):
0 commit comments