The PermissionError bug you found is already reportedI committed this fix.
I also added a .path attribute to pathlib.*Path objects, so that p.path == str(p). You can now use the idiom getattr(arg, 'path', arg) to extract the path from a pathlib.Path object, or from an os.DirEntry object, or fall back to a plain string, without using str(arg), which would turn *any* object into a string, which is never what you want to happen by default.
These changes will be released in Python 3.4.5, 3.5.2 and 3.6.