android: switch to typing module

Converting Python docstring annotations to typing.

BUG=b:196895668
TEST=./run_tests api/controller/android_unittest.py

Change-Id: I9659b53bc2f0195a5d1cc724a90e09f16cfb4a96
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/3106805
Tested-by: Eric Lin <ericth@google.com>
Auto-Submit: Eric Lin <ericth@google.com>
Reviewed-by: Eric Lin <ericth@google.com>
Reviewed-by: Chris McDonald <cjmcdonald@chromium.org>
Reviewed-by: Alex Klein <saklein@chromium.org>
Commit-Queue: Alex Klein <saklein@chromium.org>
diff --git a/api/controller/android.py b/api/controller/android.py
index 68dd959..f003420 100644
--- a/api/controller/android.py
+++ b/api/controller/android.py
@@ -5,6 +5,7 @@
 """Android operations."""
 
 import os
+from typing import TYPE_CHECKING
 
 from chromite.api import faux
 from chromite.api import validate
@@ -16,6 +17,9 @@
 from chromite.service import android
 from chromite.service import packages
 
+if TYPE_CHECKING:
+  from chromite.api import api_config
+
 
 ANDROIDPIN_MASK_PATH = os.path.join(constants.SOURCE_ROOT,
                                     constants.CHROMIUMOS_OVERLAY_DIR,
@@ -51,7 +55,9 @@
 @faux.empty_error
 @validate.require('package_name')
 @validate.validation_complete
-def MarkStable(input_proto, output_proto, _config):
+def MarkStable(input_proto: android_pb2.MarkStableRequest,
+               output_proto: android_pb2.MarkStableResponse,
+               _config: 'api_config.ApiConfig') -> None:
   """Uprev Android, if able.
 
   Uprev Android, verify that the newly uprevved package can be emerged, and
@@ -60,9 +66,9 @@
   See AndroidService documentation in api/proto/android.proto.
 
   Args:
-    input_proto (MarkStableRequest): The input proto.
-    output_proto (MarkStableResponse): The output proto.
-    _config (api_config.ApiConfig): The call config.
+    input_proto: The input proto.
+    output_proto: The output proto.
+    _config: The call config.
   """
   chroot = controller_util.ParseChroot(input_proto.chroot)
   build_targets = controller_util.ParseBuildTargets(input_proto.build_targets)
@@ -99,14 +105,16 @@
 # We don't use @faux.success for UnpinVersion because output_proto is unused.
 @faux.all_empty
 @validate.validation_complete
-def UnpinVersion(_input_proto, _output_proto, _config):
+def UnpinVersion(_input_proto: android_pb2.UnpinVersionRequest,
+                 _output_proto: android_pb2.UnpinVersionResponse,
+                 _config: 'api_config.ApiConfig') -> None:
   """Unpin the Android version.
 
   See AndroidService documentation in api/proto/android.proto.
 
   Args:
-    _input_proto (UnpinVersionRequest): The input proto. (not used.)
-    _output_proto (UnpinVersionResponse): The output proto. (not used.)
-    _config (api_config.ApiConfig): The call config.
+    _input_proto: The input proto. (not used.)
+    _output_proto: The output proto. (not used.)
+    _config: The call config.
   """
   osutils.SafeUnlink(ANDROIDPIN_MASK_PATH)