I am starting a project in Python 3.x, (I'm quite new to Python) and there exists the possibility that I will need to use say Thrift or any other library that is not yet ported to Python 3.x.

I don't mind about devoting some (substantial) amount of time to convert an external library to Python 3.x if with that others can benefit from that, but I'm curious if there's any preferred way in the Open Source community to deal with this problem.

I have been reading here and there in the python.org site and in some other websites, but I haven't found anything conclusive. The only thing that I found is that this is a chicken-and-egg problem.

It's out of the question (unless there's no other option) that I ship a dump of a library with my own modifications just to make it 3.x compliant.

Should I...

1. prepare all the code with \_\_future imports and change here and there appropriately and leave it ready to work with both 2.x and 3.x? Am I going to find any problem with this, other than the natural resistance of upstream to integrate such amount of changes?
2. create another branch of the code? That, to me, should be quite useless, as nobody will maintain that branch except me, probably, and it's a huge duplication effort.
3. use some type of wrapper that I am not aware of to use those libraries as-is (like using some intermediate bindings in another language) and just create the glue in my code?

Many thanks!