An irregular update:
I haven’t undertaken much pathlib work lately, because by the beginning of the year I’d already made quite a lot of changes in 3.13, and didn’t want to overload users. The What’s New in Python 3.13 doc has all the public-facing stuff, and plenty has changed under the hood, too. Folks should find that pathlib is faster in 3.13 beta 1 than in earlier versions for a variety of common operations and scenarios. I’d love to see some independent confirmation of this (and only slightly less happy to see it refuted, if I get new optimisation targets).
With 3.13 beta freeze a few days away, I’m now thinking about what we could do for 3.14. My current plans are as follows:
Bootstrapping the ecosystem: I plan to release a few new PyPI packages that provide concrete implementations of various filesystems atop pathlib-abc
. Not only will these be useful in and of themselves, they’ll also serve as templates that users can copy, adapt for other virtual filesystem backends, and perhaps release.
Flat filesystems: some virtual filesystems (tar and zip files, s3, git…) provide fast access to a list of all files (perhaps under a prefix), rather than direct children of a directory; in some cases, directories can only be inferred from file paths, and not directly recorded. I’m hoping to add a pathlib_abc.FlatPathBase
class with efficient algorithms for these sorts of filesystems, and to steal all of @jaraco’s ideas from zipfile.Path
! 
File transfers: for Python 3.14, I’m planning to add copy()
, copytree()
, rmtree()
and move()
methods to PathBase
and Path
, fulfilling GH-73991. The implementations in PathBase
will be generic, and so it will be possible to write something like:
source = TarPath('images', archive=tarfile.open(...))
target = FTPPath('public_html', 'images', ftp=ftplib.FTP(...))
source.copytree(target)
Backporting local paths: once the copy()
etc methods are in, users of pathlib-abc
in earlier versions of Python will want to use them, and so I’ll need to backport 3.14’s pathlib.PurePath
, Path
, etc, for earlier versions. Maybe another new PyPI package.
Collaborating with package maintainers: with all the above in place, I’ll try to convince maintainers of pathlib-y packages of the merits of using pathlib-abc
, and make PRs if they agree.
That’s all! My apologies to everyone who hates thread necromancy! 