1212from  guardrails .logger  import  logger  as  guardrails_logger 
1313
1414
15- from  guardrails .cli .hub .utils  import  pip_process 
15+ from  guardrails .cli .hub .utils  import  PipProcessError ,  pip_process_with_custom_exception 
1616from  guardrails_hub_types  import  Manifest 
1717from  guardrails .cli .server .hub_client  import  get_validator_manifest 
1818from  guardrails .settings  import  settings 
@@ -251,7 +251,6 @@ def install_hub_module(
251251            validator_id 
252252        )
253253        validator_version  =  validator_version  if  validator_version  else  "" 
254-         full_package_name  =  f"{ pep_503_package_name } { validator_version }  
255254
256255        guardrails_token  =  settings .rc .token 
257256
@@ -267,8 +266,39 @@ def install_hub_module(
267266            pip_flags .append ("-q" )
268267
269268        # Install from guardrails hub pypi server with public pypi index as fallback 
270-         download_output  =  pip_process (
271-             "install" , full_package_name , pip_flags , quiet = quiet 
272-         )
273-         if  not  quiet :
274-             logger .info (download_output )
269+ 
270+         try :
271+             full_package_name  =  f"{ pep_503_package_name } { validator_version }  
272+             download_output  =  pip_process_with_custom_exception (
273+                 "install" , full_package_name , pip_flags , quiet = quiet 
274+             )
275+             if  not  quiet :
276+                 logger .info (download_output )
277+         except  PipProcessError :
278+             try :
279+                 full_package_name  =  f"{ pep_503_package_name } { validator_version }  
280+                 download_output  =  pip_process_with_custom_exception (
281+                     "install" , full_package_name , pip_flags , quiet = quiet 
282+                 )
283+                 if  not  quiet :
284+                     logger .info (download_output )
285+             except  PipProcessError  as  e :
286+                 action  =  e .action 
287+                 package  =  e .package 
288+                 stderr  =  e .stderr 
289+                 stdout  =  e .stdout 
290+                 returncode  =  e .returncode 
291+                 logger .error (
292+                     (
293+                         f"Failed to { action } { package } \n " 
294+                         f"Exit code: { returncode } \n " 
295+                         f"stderr: { (stderr  or  '' ).strip ()} \n " 
296+                         f"stdout: { (stdout  or  '' ).strip ()}  
297+                     )
298+                 )
299+             except  Exception  as  e :
300+                 logger .error (
301+                     "An unexpected exception occurred while " 
302+                     f"installing { validator_id }  ,
303+                     e ,
304+                 )
0 commit comments