Folks- I'm submitting a patch of a refactoring of the emerge code in 2.1_pre9-r5. This patch adds no features per se. But I believe it makes the code much more readable. This only addresses the /usr/lib/portage/bin/emerge file. It does the following: * attempts to remove all global variables (with the exception of the spinner animation) * breaks up the heinous 900 lines of code at the bottom of the file into: * a __main__ section that calls out to * do_SOMETHING where something is (depclean, search, info, config, etc) * removes any code that was dangling at the leftmost side of my editor and puts it under the __main__ section * removes an olddbapi variable that isn't used I've tested it with the sync, remove, search, update and it appears to work. Any feedback is welcome. I hope that this gets in for a few reasons. I'm helping out with doing some work on the PREFIX branch, having the code unstructured makes it really hard to follow (hopefully it can get into trunk so I don't need to patch prefix, everytime it's updated). One of my coworkers just started adding some functionality to emerge (he'll send his patches in soon), but this is really his first week using python, and I don't want this to leave a bad taste in his mouth.... ;) -matt