Repository: googleapis/python-api-core

Issue:
continue exposing some retry imports for backwards compatibility
For backwards compatibility, we need to expose some imports that were removed in #495. These include at least `google.api_core.datetime_helpers`, but other diffs in the imports that we may want to restore are  `api_core.exceptions`, `datetime`, and `logging`

Discussion:

Patch:
diff --git a/google/api_core/retry/__init__.py b/google/api_core/retry/__init__.py
index 7942841..1724fdb 100644
--- a/google/api_core/retry/__init__.py
+++ b/google/api_core/retry/__init__.py
@@ -1,5 +1,4 @@
 # Copyright 2017 Google LLC
-
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -29,6 +28,13 @@ from .retry_streaming import retry_target_stream
 from .retry_streaming_async import AsyncStreamingRetry
 from .retry_streaming_async import retry_target_stream as retry_target_stream_async
 
+# The following imports are for backwards compatibility with https://github.com/googleapis/python-api-core/blob/4d7d2edee2c108d43deb151e6e0fdceb56b73275/google/api_core/retry.py
+#
+# TODO: Revert these imports on the next major version release (https://github.com/googleapis/python-api-core/issues/576)
+from google.api_core import datetime_helpers  # noqa: F401
+from google.api_core import exceptions  # noqa: F401
+from google.auth import exceptions as auth_exceptions  # noqa: F401
+
 __all__ = (
     "exponential_sleep_generator",
     "if_exception_type",


Test patch:
diff --git a/tests/unit/retry/test_retry_imports.py b/tests/unit/retry/test_retry_imports.py
new file mode 100644
index 0000000..5d035be
--- /dev/null
+++ b/tests/unit/retry/test_retry_imports.py
@@ -0,0 +1,29 @@
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+def test_legacy_imports_retry_unary_sync():
+    # TODO: Delete this test when when we revert these imports on the
+    #       next major version release
+    #       (https://github.com/googleapis/python-api-core/issues/576)
+    from google.api_core.retry import datetime_helpers  # noqa: F401
+    from google.api_core.retry import exceptions  # noqa: F401
+    from google.api_core.retry import auth_exceptions  # noqa: F401
+
+
+def test_legacy_imports_retry_unary_async():
+    # TODO: Delete this test when when we revert these imports on the
+    #       next major version release
+    #       (https://github.com/googleapis/python-api-core/issues/576)
+    from google.api_core import retry_async  # noqa: F401