Hello! I've been the main driver of duplicity's python3 support.
The old branch you see is probably one of my attempts to fix up the unicode vs byte literal issue. Duplicity needs to treat filenames as bytes, but it has so many places where it mixes filenames with unicode strings. So it's a bit of a bear to fix all at once. And trunk keeps changing under the branch. About once a year I dust it off, try to update it with trunk, then give up shortly after. This bytes/string mismatch is the biggest chunk of work for a python3 port.
The other big issue with python3 is getting the various backends to work. They have some exotic imports, not all of which have python3 versions. It's OK to have a python3 duplicity that doesn't support all backends, of course. But it'd be nice to have them.
-mt