You can subclass the concrete implementation, so this works:
class Path(type(pathlib.Path())):
Here’s what I did with this:
import pathlib
class Path(type(pathlib.Path())):
def open(self, mode="r", buffering=-1, encoding=None, errors=None, newline=None):
if encoding is None and 'b' not in mode:
encoding = 'utf-8'
return super().open(mode, buffering, encoding, errors, newline)
Path('/tmp/a.txt').write_text("я")