dissect.target icon indicating copy to clipboard operation
dissect.target copied to clipboard

Cannot run Dissect with CPython 3.14 due to changes in Globber

Open Aevyz opened this issue 2 months ago • 3 comments

To Quote path_313.py:

https://github.com/fox-it/dissect.target/blob/9cd19465c2f9133711740e065c5a82b380e740c2/dissect/target/helpers/compat/path_313.py#L10

It appears that CPython 3.14 has changed the behavior of Globber. That is they removed Globber, and made it abstract. https://github.com/python/cpython/commit/242c7498e5a889b47847fb6f0f133ce461fa7e24#diff-aca8a30d5728898dc8623ab33adb548567e7a0092079954afa1b594b7f83c828L331-R332

If I understand the change logs correctly, you will need to extend this class instead of Globber starting 3.14 (Note in regards to change log above: at some later point they renamed pathlib._abc to pathlib.types, this is why you can't find _abc anywhere in the current main branch)

https://github.com/python/cpython/blob/3416e7c8dc004773d814b6f9ec9562434ed961cd/Lib/pathlib/types.py#L64

Aevyz avatar Oct 27 '25 09:10 Aevyz

We need to add a new path_314.py to be compatible with Python 3.14. I just created a new ticket for that: https://github.com/fox-it/dissect.target/issues/1376

This will probably be a little more involved that just subclassing Globber. I hope to have some time soon to look into this.

Schamper avatar Oct 27 '25 10:10 Schamper

Yeah I just saw, should I close this issue then in light of yours? Good luck with trying to resolve it.

Aevyz avatar Oct 27 '25 10:10 Aevyz

It's fine to keep it open for now, I'll close it when Dissect can actually run on CPython 3.14 😉.

Schamper avatar Oct 27 '25 10:10 Schamper