I'm hearing more noise about deprecating Python 2, so decided I can't keep ignoring Python 3. Getting pynfs working on Python 3 is a bigger project than I expected. Keeping it working under Python 2 looks like another project. So, I'm planning a flag day after which pynfs will require Python 3. That isn't the way I'd prefer to do it, but there's only so much time I want to spend on this. I've mostly got the 4.0 server tests working under python 3. I hope a few more days will be enough to get the 4.1 tests working as well. When I switch over, I'm afraid a few things will be left broken: any tests that I don't personally run may still have minor python 3 bugs, and I haven't touched the python server code that's used for client testing. If you stumble across something broken, and you can give me a simple reproducer, feel free to share it with me and I'll take a look. But for anything complicated, I'll probably need patches. Again, I apologize for any extra work that creates for anyone, but for now this seems like the best compromise to keep things mostly working without it becoming a bigger time sink for me. Work so far is in the "python3" branch at git://linux-nfs.org/~bfields/pynfs.git The history will probably be cleaned up an rewritten before it's done. I'm hoping that'll be in the next week. It's mostly just a matter of separating out unicode strings and byte arrays. Protocol data is all the latter (even if the protocol prefers some field to be UTF8, pynfs still needs to be able to handle non-UTF8). But some things have to be unicode strings. --b.