On Sat, Sep 12, 2020 at 1:40 AM Serhiy Storchaka <storch...@gmail.com>
wrote:

> Second, the resulting function would have monstrous interface. open()
> takes 8 arguments,


well, maybe not -- this would not need to support the entire open()
interface:

* No one is suggesting getting rid of the current load() function, so if
you need to do something less common, you can always open the file yourself.

* Many of the options to open() should be always the same when
reading/writing json. In fact, that's (IMHO) the most compelling reason to
have this built in -- the defaults may be not ideal for JSON, and other
specs may be downright wrong. Here they are all eight parameters.

mode='r' : this should be either 'r' or 'w' depending on loading or saving,
I don't think there's any other (certainly not common) use case for any
other mode.

buffering=-1 : This seems very reasonable to put in control of the JSON
encoder/decoder

encoding=None: this is the important one -- json is always UTF-8 yes?

errors=None: This also is good ot be in control of the JSON encoder/decoding

newline=None: also in control of the encoder

closefd=True: I think this is irrelevant to this use case.

opener=None: Also does not need to be supported

If I have this right, then none of the optional arguments to open() would
need to be passed through.

> they should be combined. And thank that open() does not accept arbitrary

> var-keyword arguments as json.load(), resolving this conflict would be
> impossible.
>

see above -- there is no conflict to resolve.


> Third, this combination is not so common as you think.


agreed -- but still fairly common. And most of the use cases that aren't
file-on-disk are strings anyway. I know I use file-on-disk most of the time
I use .load()/dump(), even if I use .loads()/dumps() more frequently.

-CHB


-- 
Christopher Barker, PhD

Python Language Consulting
  - Teaching
  - Scientific Software Development
  - Desktop GUI and Web Development
  - wxPython, numpy, scipy, Cython
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/VVBF7PRFOZTDBBANGQZBBDSQH5BCJMTR/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to