Skip to content
This repository was archived by the owner on Feb 23, 2026. It is now read-only.

Commit 670ba62

Browse files
committed
allow providing a recommended version
Sometimes the version we recommend is newer than the next non-deprecated version, so we want to inform users eagerly to reduce their toil
1 parent eebbe61 commit 670ba62

File tree

1 file changed

+15
-6
lines changed

1 file changed

+15
-6
lines changed

google/api_core/_python_package_support.py

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ def warn_deprecation_for_versions_less_than(
6666
dependent_import_package: str,
6767
dependency_import_package: str,
6868
next_supported_version: str,
69+
recommended_version: Optional[str] = None,
6970
message_template: Optional[str] = None,
7071
):
7172
"""Issue any needed deprecation warnings for `dependency_import_package`.
@@ -84,6 +85,8 @@ def warn_deprecation_for_versions_less_than(
8485
dependency_import_package: The import name of the dependency to check.
8586
next_supported_version: The dependency_import_package version number
8687
below which a deprecation warning will be logged.
88+
recommended_version: If provided, the recommended next version, which
89+
could be higher than `next_supported_version`.
8790
message_template: A custom default message template to replace
8891
the default. This `message_template` is treated as an
8992
f-string, where the following variables are defined:
@@ -118,17 +121,22 @@ def warn_deprecation_for_versions_less_than(
118121
dependent_package,
119122
dependent_distribution_package,
120123
) = _get_distribution_and_import_packages(dependent_import_package)
124+
125+
recommendation = (
126+
" (we recommend {recommended_version})" if recommended_version else ""
127+
)
121128
message_template = message_template or _flatten_message(
122129
"""
123130
DEPRECATION: Package {dependent_package} depends on
124131
{dependency_package}, currently installed at version
125132
{version_used_string}. Future updates to
126133
{dependent_package} will require {dependency_package} at
127-
version {next_supported_version} or higher. Please ensure
128-
that either (a) your Python environment doesn't pin the
129-
version of {dependency_package}, so that updates to
130-
{dependent_package} can require the higher version, or
131-
(b) you manually update your Python environment to use at
134+
version {next_supported_version} or
135+
higher{recommendation}. Please ensure that either (a) your
136+
Python environment doesn't pin the version of
137+
{dependency_package}, so that updates to
138+
{dependent_package} can require the higher version, or (b)
139+
you manually update your Python environment to use at
132140
least version {next_supported_version} of
133141
{dependency_package}.
134142
"""
@@ -142,6 +150,7 @@ def warn_deprecation_for_versions_less_than(
142150
dependency_package=dependency_package,
143151
dependent_package=dependent_package,
144152
next_supported_version=next_supported_version,
153+
recommendation=recommendation,
145154
version_used=version_used,
146155
version_used_string=version_used_string,
147156
),
@@ -162,5 +171,5 @@ def check_dependency_versions(dependent_import_package: str):
162171
163172
"""
164173
warn_deprecation_for_versions_less_than(
165-
dependent_import_package, "google.protobuf", "4.25.8"
174+
dependent_import_package, "google.protobuf", "4.25.8", recommended_version="6.x"
166175
)

0 commit comments

Comments
 (0)