dependency service: Cache dependency data.

Cache the dependency data to avoid repeated depgraph generation
on successive calls.

BUG=chromium:1086714
TEST=run_pytest

Change-Id: Id4747cab1f639ce76a92c805289c00edfdf9a05f
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/2411176
Tested-by: Alex Klein <saklein@chromium.org>
Reviewed-by: Chris McDonald <cjmcdonald@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Commit-Queue: Alex Klein <saklein@chromium.org>
diff --git a/api/controller/dependency.py b/api/controller/dependency.py
index fcf9750..338cfac 100644
--- a/api/controller/dependency.py
+++ b/api/controller/dependency.py
@@ -86,7 +86,8 @@
     board = input_proto.build_target.name
     sysroot_path = cros_build_lib.GetSysroot(board or None)
 
-  packages = [controller_util.PackageInfoToCPV(x) for x in input_proto.packages]
+  packages = tuple(
+      controller_util.PackageInfoToCPV(x) for x in input_proto.packages)
 
   json_map, sdk_json_map = dependency.GetBuildDependency(sysroot_path, board,
                                                          packages)