|  | """ This module represents an abstraction of an lldb target / host platform. """ | 
|  |  | 
|  | from __future__ import absolute_import | 
|  |  | 
|  | # System modules | 
|  | import itertools | 
|  |  | 
|  | # Third-party modules | 
|  | import six | 
|  |  | 
|  | # LLDB modules | 
|  | import use_lldb_suite | 
|  | import lldb | 
|  |  | 
|  | windows, linux, macosx, darwin, ios, tvos, watchos, bridgeos, darwin_all, darwin_embedded, freebsd, netbsd, bsd_all, android = range( | 
|  | 14) | 
|  |  | 
|  | __name_lookup = { | 
|  | windows: ["windows"], | 
|  | linux: ["linux"], | 
|  | macosx: ["macosx"], | 
|  | darwin: ["darwin"], | 
|  | ios: ["ios"], | 
|  | tvos: ["tvos"], | 
|  | watchos: ["watchos"], | 
|  | bridgeos: ["bridgeos"], | 
|  | darwin_all: ["macosx", "darwin", "ios", "tvos", "watchos", "bridgeos"], | 
|  | darwin_embedded: ["ios", "tvos", "watchos", "bridgeos"], | 
|  | freebsd: ["freebsd"], | 
|  | netbsd: ["netbsd"], | 
|  | bsd_all: ["freebsd", "netbsd"], | 
|  | android: ["android"] | 
|  | } | 
|  |  | 
|  |  | 
|  | def translate(values): | 
|  |  | 
|  | if isinstance(values, six.integer_types): | 
|  | # This is a value from the platform enumeration, translate it. | 
|  | return __name_lookup[values] | 
|  | elif isinstance(values, six.string_types): | 
|  | # This is a raw string, return it. | 
|  | return [values] | 
|  | elif hasattr(values, "__iter__"): | 
|  | # This is an iterable, convert each item. | 
|  | result = [translate(x) for x in values] | 
|  | result = list(itertools.chain(*result)) | 
|  | return result | 
|  | return values |