From ff96cf5e3c5198935f9f83525359a02c28f6daa6 Mon Sep 17 00:00:00 2001 From: William Deegan Date: Sun, 26 Feb 2017 14:20:20 -0800 Subject: implement __getitem__ on NodeList to allow calling methods/properties on underlying object. With py3, UserList[slice] is returning a list --- src/engine/SCons/Util.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/engine/SCons/Util.py b/src/engine/SCons/Util.py index 4519c34..a98ce08 100644 --- a/src/engine/SCons/Util.py +++ b/src/engine/SCons/Util.py @@ -151,6 +151,17 @@ class NodeList(UserList): result = [getattr(x, name) for x in self.data] return self.__class__(result) + def __getitem__(self, index): + """ + This comes for free on py2, + but py3 slices of NodeList are returning a list + breaking slicing nodelist and refering to + properties and methods on contained object + """ + return self.__class__(self.data[index]) + + + _get_env_var = re.compile(r'^\$([_a-zA-Z]\w*|{[_a-zA-Z]\w*})$') -- cgit v0.12