diff options
author | say <say@yandex-team.com> | 2023-02-14 17:24:43 +0300 |
---|---|---|
committer | say <say@yandex-team.com> | 2023-02-14 17:24:43 +0300 |
commit | e0094c4ad6964e11564777bc0d859c68d8aa9de2 (patch) | |
tree | 5d2ad1a4df88da1f74385888891a2a5f9fbbc3ef /library/python/json/__init__.py | |
parent | 65a08c9fdece8dba50da8beb4d7c81447211dd45 (diff) | |
download | ydb-e0094c4ad6964e11564777bc0d859c68d8aa9de2.tar.gz |
Migrate black linter on custom_lint pipeline
Diffstat (limited to 'library/python/json/__init__.py')
-rw-r--r-- | library/python/json/__init__.py | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/library/python/json/__init__.py b/library/python/json/__init__.py new file mode 100644 index 0000000000..c6420d5e6d --- /dev/null +++ b/library/python/json/__init__.py @@ -0,0 +1,44 @@ +from library.python.json.loads import loads as _loads +from simplejson import loads as _sj_loads + + +def loads(*args, **kwargs): + try: + return _loads(*args, **kwargs) + except Exception as e: + if 'invalid syntax at token' in str(e): + kwargs.pop('intern_keys', None) + kwargs.pop('intern_vals', None) + kwargs.pop('may_unicode', None) + return _sj_loads(*args, **kwargs) + + raise + + +from simplejson import load, dump, dumps # noqa + + +def read_file(file_name, **kwargs): + """ + Read file and return its parsed json contents. + + All kwargs will be proxied to `json.load` method as is. + + :param file_name: file with json contents + :return: parsed json contents + """ + with open(file_name) as f: + return load(f, **kwargs) + + +def write_file(file_name, contents, **kwargs): + """ + Dump json data to file. + + All kwargs will be proxied to `json.dump` method as is. + + :param file_name: file to dump to + :param contents: JSON-serializable object + """ + with open(file_name, "w") as f: + dump(contents, f, **kwargs) |