@@ -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