*: Conditionally import annotations

Conditionally import annotations in most cases. In some cases this
doesn't actually affect anything, like with a subsequent import from the
typing module, but it still leaves an obvious place to put future
annotation-only imports.

Change-Id: I6b678e2923729affa37c06f3dceba9397e25f5ec
Reviewed-on: https://pigweed-review.googlesource.com/c/infra/recipes/+/229321
Pigweed-Auto-Submit: Rob Mohr <mohrr@google.com>
Commit-Queue: Auto-Submit <auto-submit@pigweed-service-accounts.iam.gserviceaccount.com>
Reviewed-by: Wyatt Hepler <hepler@google.com>
Lint: Lint 🤖 <android-build-ayeaye@system.gserviceaccount.com>
diff --git a/recipe_modules/util/api.py b/recipe_modules/util/api.py
index 8c09ccc..0f88aa4 100644
--- a/recipe_modules/util/api.py
+++ b/recipe_modules/util/api.py
@@ -17,16 +17,19 @@
 
 import json
 import re
-from typing import Any, Sequence
+from typing import TYPE_CHECKING
 
 import attrs
 from google.protobuf import json_format
-from PB.go.chromium.org.luci.buildbucket.proto import (
-    build as build_pb2,
-    common as common_pb2,
-)
 from recipe_engine import recipe_api
 
+if TYPE_CHECKING:  # pragma: no cover
+    from typing import Any, Sequence
+    from PB.go.chromium.org.luci.buildbucket.proto import (
+        build as build_pb2,
+        common as common_pb2,
+    )
+
 
 @attrs.define
 class ChangeWithComments: