| Index: platform_tools/android/gyp_gen/vars_dict_lib.py
|
| diff --git a/platform_tools/android/gyp_gen/vars_dict_lib.py b/platform_tools/android/gyp_gen/vars_dict_lib.py
|
| index a4ef67e8b78f44c8f03224e75ae64dd776cbe02f..6be2402a04828015610ab56e86edaa501fed3d07 100644
|
| --- a/platform_tools/android/gyp_gen/vars_dict_lib.py
|
| +++ b/platform_tools/android/gyp_gen/vars_dict_lib.py
|
| @@ -13,59 +13,76 @@ import types
|
| # we want to make sure the image decoders are in a particular order. See
|
| # images.gyp for more information.
|
| class OrderedSet(object):
|
| - """
|
| - Ordered set of unique items that supports addition and removal.
|
| + """Ordered set of unique items that supports addition and removal.
|
| +
|
| + Retains the order in which items are inserted.
|
| """
|
|
|
| def __init__(self):
|
| - self.__li = []
|
| + self.__ordered_set = []
|
|
|
| def add(self, item):
|
| + """Add item, if it is not already in the set.
|
| +
|
| + item is appended to the end if it is not already in the set.
|
| +
|
| + Args:
|
| + item: The item to add.
|
| """
|
| - Add item, if it is not already in the set.
|
| - @param item The item to add.
|
| - """
|
| - if item not in self.__li:
|
| - self.__li.append(item)
|
| + if item not in self.__ordered_set:
|
| + self.__ordered_set.append(item)
|
|
|
| def __contains__(self, item):
|
| + """Whether the set contains item.
|
| +
|
| + Args:
|
| + item: The item to search for in the set.
|
| +
|
| + Returns:
|
| + bool: Whether the item is in the set.
|
| """
|
| - Whether the set contains item.
|
| - @param item The item to search for in the set.
|
| - @return bool Whether the item is in the set.
|
| - """
|
| - return item in self.__li
|
| + return item in self.__ordered_set
|
|
|
| def __iter__(self):
|
| + """Iterator for the set.
|
| """
|
| - Iterator for the set.
|
| - """
|
| - return self.__li.__iter__()
|
| + return self.__ordered_set.__iter__()
|
|
|
| def remove(self, item):
|
| """
|
| Remove item from the set.
|
| - @param item Item to be removed.
|
| +
|
| + Args:
|
| + item: Item to be removed.
|
| +
|
| + Raises:
|
| + ValueError if item is not in the set.
|
| """
|
| - return self.__li.remove(item)
|
| + self.__ordered_set.remove(item)
|
|
|
| def __len__(self):
|
| + """Number of items in the set.
|
| """
|
| - Number of items in the set.
|
| - """
|
| - return len(self.__li)
|
| + return len(self.__ordered_set)
|
|
|
| def __getitem__(self, index):
|
| + """Return item at index.
|
| """
|
| - Return item at index.
|
| - """
|
| - return self.__li[index]
|
| + return self.__ordered_set[index]
|
|
|
| def reset(self):
|
| + """Reset to empty.
|
| """
|
| - Reset to empty.
|
| + self.__ordered_set = []
|
| +
|
| + def set(self, other):
|
| + """Replace this ordered set with another.
|
| +
|
| + Args:
|
| + other: OrderedSet to replace this one. After this call, this OrderedSet
|
| + will contain exactly the same elements as other.
|
| """
|
| - self.__li = []
|
| + self.__ordered_set = list(other.__ordered_set)
|
|
|
| VAR_NAMES = ['LOCAL_CFLAGS',
|
| 'LOCAL_CPPFLAGS',
|
| @@ -75,12 +92,15 @@ VAR_NAMES = ['LOCAL_CFLAGS',
|
| 'LOCAL_C_INCLUDES',
|
| 'LOCAL_EXPORT_C_INCLUDE_DIRS',
|
| 'DEFINES',
|
| - 'KNOWN_TARGETS']
|
| + 'KNOWN_TARGETS',
|
| + # These are not parsed by gyp, but set manually.
|
| + 'LOCAL_MODULE_TAGS',
|
| + 'LOCAL_MODULE']
|
|
|
| class VarsDict(collections.namedtuple('VarsDict', VAR_NAMES)):
|
| - """
|
| - Custom class for storing the arguments to Android.mk variables. Can be
|
| - treated as a dictionary with fixed keys.
|
| + """Custom class for storing the arguments to Android.mk variables.
|
| +
|
| + Can also be treated as a dictionary with fixed keys.
|
| """
|
|
|
| __slots__ = ()
|
| @@ -93,14 +113,12 @@ class VarsDict(collections.namedtuple('VarsDict', VAR_NAMES)):
|
| return tuple.__new__(cls, lists)
|
|
|
| def keys(self):
|
| - """
|
| - Return the field names as strings.
|
| + """Return the field names as strings.
|
| """
|
| return self._fields
|
|
|
| def __getitem__(self, index):
|
| - """
|
| - Return an item, indexed by a number or a string.
|
| + """Return an item, indexed by a number or a string.
|
| """
|
| if type(index) == types.IntType:
|
| # Treat the index as an array index into a tuple.
|
| @@ -112,13 +130,17 @@ class VarsDict(collections.namedtuple('VarsDict', VAR_NAMES)):
|
|
|
|
|
| def intersect(var_dict_list):
|
| - """
|
| + """Compute intersection of VarsDicts.
|
| +
|
| Find the intersection of a list of VarsDicts and trim each input to its
|
| unique entries.
|
| - @param var_dict_list list of VarsDicts. WARNING: each VarsDict will be
|
| - modified in place, to remove the common elements!
|
| - @return VarsDict containing list entries common to all VarsDicts in
|
| - var_dict_list
|
| +
|
| + Args:
|
| + var_dict_list: list of VarsDicts. WARNING: each VarsDict will be
|
| + modified in place, to remove the common elements!
|
| + Returns:
|
| + VarsDict containing list entries common to all VarsDicts in
|
| + var_dict_list
|
| """
|
| intersection = VarsDict()
|
| # First VarsDict
|
|
|