Open
Description
Hi there, I'm currently working on personal l10n system that can use different JSON parsing implementations.
It looks something like this:
import json
from types import ModuleType
class L10n:
def __init__(json_impl: ModuleType = json)
self.json_impl = json_impl
def load(file):
self.json_impl.load(file, indent=2, ensure_ascii=False)
def dump(data, file):
self.json_impl.dump(data, file, indent=2, ensure_ascii=False)
Of course, we are expecting the same interface as builtin json
have.
Because pyjson5.dump(...)
and other encode functions have supply_bytes=True
, it throws an error:
File "C:\Users\User\PycharmProjects\l10n\sl10n\process.py", line 93, in apply_postmodifiers
self.json_impl.dump(data, f, indent=2, ensure_ascii=False)
File "src/_legacy.pyx", line 100, in pyjson5.pyjson5.dump
File "src/_exports.pyx", line 562, in pyjson5.pyjson5.encode_io
File "src/_encoder.pyx", line 439, in pyjson5.pyjson5._encode_callback_bytes
File "src/_encoder.pyx", line 422, in pyjson5.pyjson5._encode
File "src/_encoder.pyx", line 381, in pyjson5.pyjson5._encode_other
File "src/_encoder.pyx", line 232, in pyjson5.pyjson5._encode_mapping
File "src/_writer_callback.pyx", line 9, in pyjson5.pyjson5._WriterCbBytes_append_c
TypeError: write() argument must be str, not bytes
I know that changing defaults would break old code, so is there any way we can fix this?
Metadata
Metadata
Assignees
Labels
No labels