Skip to content

Commit d5aa363

Browse files
committed
PYTHON-5169 - Deprecate Hedged Reads option
1 parent 1145c9d commit d5aa363

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

pymongo/read_preferences.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
from __future__ import annotations
2121

22+
import warnings
2223
from collections import abc
2324
from typing import TYPE_CHECKING, Any, Mapping, Optional, Sequence
2425

@@ -103,6 +104,11 @@ def _validate_hedge(hedge: Optional[_Hedge]) -> Optional[_Hedge]:
103104
if not isinstance(hedge, dict):
104105
raise TypeError(f"hedge must be a dictionary, not {hedge!r}")
105106

107+
warnings.warn(
108+
"Hedged reads are deprecated starting in server version 8.0.",
109+
DeprecationWarning,
110+
stacklevel=2,
111+
)
106112
return hedge
107113

108114

@@ -143,6 +149,11 @@ def document(self) -> dict[str, Any]:
143149
if self.__max_staleness != -1:
144150
doc["maxStalenessSeconds"] = self.__max_staleness
145151
if self.__hedge not in (None, {}):
152+
warnings.warn(
153+
"Hedged reads are deprecated starting in server version 8.0.",
154+
DeprecationWarning,
155+
stacklevel=2,
156+
)
146157
doc["hedge"] = self.__hedge
147158
return doc
148159

@@ -203,6 +214,12 @@ def hedge(self) -> Optional[_Hedge]:
203214
204215
.. versionadded:: 3.11
205216
"""
217+
if self.__hedge is not None:
218+
warnings.warn(
219+
"Hedged reads are deprecated starting in server version 8.0.",
220+
DeprecationWarning,
221+
stacklevel=2,
222+
)
206223
return self.__hedge
207224

208225
@property

pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ filterwarnings = [
119119
"module:please use dns.resolver.Resolver.resolve:DeprecationWarning",
120120
# https://github.com/dateutil/dateutil/issues/1314
121121
"module:datetime.datetime.utc:DeprecationWarning",
122+
"module:Hedged reads are deprecated:DeprecationWarning",
122123
]
123124
markers = [
124125
"auth_aws: tests that rely on pymongo-auth-aws",

0 commit comments

Comments
 (0)