Update sdk/platform-tools to version 26.0.0.
[android_tools.git] / sdk / platform-tools / systrace / catapult / devil / devil / android / tools / script_common.py
blobf91ad5eea0b41386f3fb64d11169092af216fed1
1 # Copyright 2015 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
5 from devil.android import device_blacklist
6 from devil.android import device_errors
7 from devil.android import device_utils
10 def GetDevices(requested_devices, blacklist_file):
11 if not isinstance(blacklist_file, device_blacklist.Blacklist):
12 blacklist_file = (device_blacklist.Blacklist(blacklist_file)
13 if blacklist_file
14 else None)
16 devices = device_utils.DeviceUtils.HealthyDevices(blacklist_file)
17 if not devices:
18 raise device_errors.NoDevicesError()
19 elif requested_devices:
20 requested = set(requested_devices)
21 available = set(str(d) for d in devices)
22 missing = requested.difference(available)
23 if missing:
24 raise device_errors.DeviceUnreachableError(next(iter(missing)))
25 return sorted(device_utils.DeviceUtils(d)
26 for d in available.intersection(requested))
27 else:
28 return devices