*: 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: