
Hello all, as part of my work on porting Twisted to Python 3, I have considered using the six library[1] to help with some issues. six is basically a compatibility library - same idea as our twisted.python.compat module. Now, one approach is to add six as a dependency of Twisted - it is a very small library so hardly a problem; on the other hand, it is an additional dependency. The other approach would be to copy the required code over to the t.p.compat module (six' license[2] is basically "do what you want with this code"), but this is additional work and we might miss out on the eventual bugfix (though there has only been a couple since the project started). In general, I have heard good things about six. As a note, currently, I would need at least the reraise and exec_ functions from six; additionally, a lot of the things from the six.moves package are useful. And, of course, there might be other compatibility functions which I'd need, I just haven't encountered yet (I do only use these if absolutely required, though). What do you all think? In the end, it boils down to "additional dependency" vs. "less code to maintain". Personally, I could go either way - using six makes things slightly easier, but I could just copy over the code we need and be done with it. [1] http://packages.python.org/six/ [2] https://bitbucket.org/gutworth/six/src/d81f633c45dd/LICENSE -- Vladimir Perić