Skip to content

Commit ad49d51

Browse files
committed
fix: Make warnings module optional in __del__ to handle python 3.8
1 parent 4fbde52 commit ad49d51

File tree

1 file changed

+10
-10
lines changed
  • spannerlib/wrappers/spannerlib-python/spannerlib-python/google/cloud/spannerlib/internal

1 file changed

+10
-10
lines changed

spannerlib/wrappers/spannerlib-python/spannerlib-python/google/cloud/spannerlib/internal/message.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ def release(self) -> None:
154154
logger.error("Unexpected error during release: %s", e)
155155
# We do not re-raise here to ensure __exit__ completes cleanly
156156

157-
def __del__(self) -> None:
157+
def __del__(self, _warnings=warnings) -> None:
158158
"""Finalizer: The Safety Net.
159159
160160
Checks if the resource was leaked. If so, issues a ResourceWarning
@@ -164,15 +164,15 @@ def __del__(self) -> None:
164164
if getattr(self, "pinner_id", 0) != 0 and not getattr(
165165
self, "_is_released", False
166166
):
167-
try:
168-
warnings.warn(
169-
"Unclosed SpannerLib Message"
170-
f"(pinner_id={self.pinner_id})",
171-
ResourceWarning,
172-
source=self,
173-
)
174-
except Exception:
175-
pass
167+
if _warnings is not None:
168+
try:
169+
_warnings.warn(
170+
"Unclosed SpannerLib Message"
171+
f"(pinner_id={self.pinner_id})",
172+
ResourceWarning,
173+
)
174+
except Exception:
175+
pass
176176

177177
try:
178178
self.release()

0 commit comments

Comments
 (0)