New submission from Serhiy Storchaka: The json module functions have too many positional parameters:
dump() -- 11 dumps() -- 10 load() -- 9 loads() -- 8 In most time only small part of these options is specified so users call these functions with keyword arguments for all parameters except mandatory ones. Even worse, the simplejson module (an ancestor and an alternative to standard json module) have a very similar interface but with difference sequences of parameters (the second parameter of loads() and the ninth parameter of dumps() in simplejson is encoding). So in any case portable application should specify all but basic arguments as keyword arguments. If json will incorporate some features from simplejson in future positions of new parameters will be different. I propose to deprecate specifying all but mandatory parameters of json functions as positional arguments in 3.4 and then forbid it in 3.5. I.e. dumps() should be implemented in 3.4 as: def dumps(obj, *args, **kwargs): if args: warnings.warn("The positional arguments are deprecated.", DeprecationWarning, stacklevel=2) return _dumps(obj, *args, **kwargs) def _dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kwargs): ... and in 3.5 as: def dumps(obj, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kwargs): ... ---------- components: Library (Lib) messages: 195068 nosy: bob.ippolito, ezio.melotti, pitrou, rhettinger, serhiy.storchaka priority: normal severity: normal status: open title: json functions have too many positional parameters type: enhancement versions: Python 3.4 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue18726> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com