$ python -c $'import portage\ndef reduce_atom(atom, eapi, is_valid_flag): return None\nprint(portage.dep.use_reduce("a/a b/b"))' ['a/a', 'b/b'] $ python -c $'import portage\ndef reduce_atom(atom, eapi, is_valid_flag): return None\nprint(portage.dep.use_reduce("a/a b/b", token_class=reduce_atom))' [None, None] $ python -c $'import portage\ndef reduce_atom(atom, eapi, is_valid_flag): return None\nprint(portage.dep.use_reduce("a/a ( b/b )"))' ['a/a', 'b/b'] $ python -c $'import portage\ndef reduce_atom(atom, eapi, is_valid_flag): return None\nprint(portage.dep.use_reduce("a/a ( b/b )", token_class=reduce_atom))' Traceback (most recent call last): File "<string>", line 3, in <module> File "/usr/lib64/python3.4/site-packages/portage/dep/__init__.py", line 565, in use_reduce elif stack[level][-1][-1] == "?": TypeError: 'NoneType' object is not subscriptable
There's a patch in the following branch: https://github.com/zmedico/portage/tree/bug_541198 I've posted it for review here: http://thread.gmane.org/gmane.linux.gentoo.portage.devel/5272
This is in the master branch now: https://github.com/gentoo/portage/commit/0887d95d288226c52c1d5610b514d41a624eadb7
Released in portage-2.2.18