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,41 @@ 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 } [validators]{ 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+ raise
300+ except Exception as e :
301+ logger .error (
302+ "An unexpected exception occurred while "
303+ f"installing { validator_id } : " ,
304+ e ,
305+ )
306+ raise
0 commit comments