fix: Fail gracefully if could not import `rpc_status` module (#680)
* fix: Fail gracefully if could not import rpc_status module
* revert
---------
Co-authored-by: Anthonios Partheniou <partheniou@google.com>
diff --git a/google/api_core/exceptions.py b/google/api_core/exceptions.py
index d4cb997..74f46ef 100644
--- a/google/api_core/exceptions.py
+++ b/google/api_core/exceptions.py
@@ -28,16 +28,21 @@
from google.rpc import error_details_pb2
+
+def _warn_could_not_import_grpcio_status():
+ warnings.warn(
+ "Please install grpcio-status to obtain helpful grpc error messages.",
+ ImportWarning,
+ ) # pragma: NO COVER
+
+
try:
import grpc
try:
from grpc_status import rpc_status
except ImportError: # pragma: NO COVER
- warnings.warn(
- "Please install grpcio-status to obtain helpful grpc error messages.",
- ImportWarning,
- )
+ _warn_could_not_import_grpcio_status()
rpc_status = None
except ImportError: # pragma: NO COVER
grpc = None
@@ -560,6 +565,9 @@
def _parse_grpc_error_details(rpc_exc):
+ if not rpc_status: # pragma: NO COVER
+ _warn_could_not_import_grpcio_status()
+ return [], None
try:
status = rpc_status.from_call(rpc_exc)
except NotImplementedError: # workaround