Changeset 107153 in webkit
- Timestamp:
- Feb 8, 2012, 4:32:08 PM (15 years ago)
- Location:
- trunk/Tools
- Files:
-
- 2 edited
-
ChangeLog (modified) (1 diff)
-
Scripts/webkitpy/layout_tests/models/test_configuration.py (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Tools/ChangeLog
r107151 r107153 1 2012-02-08 Adam Barth <abarth@webkit.org> 2 3 test_configuration.py shouldn't re-implement itertools 4 https://bugs.webkit.org/show_bug.cgi?id=78178 5 6 Reviewed by Eric Seidel. 7 8 * Scripts/webkitpy/layout_tests/models/test_configuration.py: 9 (TestConfigurationConverter.to_specifiers_list): 10 (TestConfigurationConverter.to_specifiers_list.try_collapsing): 11 (TestConfigurationConverter.to_specifiers_list.try_abbreviating): 12 (TestConfigurationConverter): 13 1 14 2012-02-08 Adam Barth <abarth@webkit.org> 2 15 -
trunk/Tools/Scripts/webkitpy/layout_tests/models/test_configuration.py
r103289 r107153 26 26 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 27 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 """Representation of a layout test configuration.""" 29 28 29 import itertools 30 30 31 31 class TestConfiguration(object): … … 190 190 specifiers_list.append(frozenset(values)) 191 191 192 # FIXME: Replace with iteritools.combinations when we obsolete Python 2.5.193 def combinations(iterable, r):194 """This function is borrowed verbatim from http://docs.python.org/library/itertools.html#itertools.combinations."""195 pool = tuple(iterable)196 n = len(pool)197 if r > n:198 return199 indices = range(r)200 yield tuple(pool[i] for i in indices)201 while True:202 for i in reversed(range(r)):203 if indices[i] != i + n - r:204 break205 else:206 return207 indices[i] += 1208 for j in range(i + 1, r):209 indices[j] = indices[j - 1] + 1210 yield tuple(pool[i] for i in indices)211 212 192 def intersect_combination(combination): 213 193 return reduce(set.intersection, [set(specifiers) for specifiers in combination]) … … 219 199 if len(specifiers_list) < size: 220 200 return False 221 for combination in combinations(specifiers_list, size):201 for combination in itertools.combinations(specifiers_list, size): 222 202 if symmetric_difference(combination) in collapsing_sets: 223 203 for item in combination: … … 236 216 if len(specifiers_list) < 2: 237 217 return False 238 for combination in combinations(specifiers_list, 2):218 for combination in itertools.combinations(specifiers_list, 2): 239 219 for collapsing_set in collapsing_sets: 240 220 diff = symmetric_difference(combination)
Note:
See TracChangeset
for help on using the changeset viewer.