Bug report
There is the indent parameter in plistlib._PlistWriter, which is b'\t' by default. write_bytes() calculates the width of the indentation, but doe it incorrect if the indentation is a mix of tabs and spaces.
Now, there is no public API to specify indent. it is always b'\t', for which an incorrect code works correctly. But if someone uses private plistlib._PlistWriter, they can encounter that bug.
Linked PRs