From 7c4c48d9a4344a6f1c9859ae178ed78408ba2777 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Thu, 22 Mar 2012 14:36:36 -0700 Subject: [PATCH] mtimedb: enable JSON write support JSON read support has been available since portage-2.1.10.49. --- pym/portage/util/mtimedb.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/pym/portage/util/mtimedb.py b/pym/portage/util/mtimedb.py index 4ccea2438..736e314d5 100644 --- a/pym/portage/util/mtimedb.py +++ b/pym/portage/util/mtimedb.py @@ -24,8 +24,8 @@ from portage.util import apply_secpass_permissions, atomic_ofstream, writemsg class MtimeDB(dict): - # Enable this after JSON read has been supported for some time. - _json_write = False + # JSON read support has been available since portage-2.1.10.49. + _json_write = True _json_write_opts = { "ensure_ascii": False, @@ -60,19 +60,19 @@ class MtimeDB(dict): d = None if content: try: - mypickle = pickle.Unpickler(io.BytesIO(content)) - try: - mypickle.find_global = None - except AttributeError: - # TODO: If py3k, override Unpickler.find_class(). - pass - d = mypickle.load() + d = json.loads(_unicode_decode(content, + encoding=_encodings['repo.content'], errors='strict')) except SystemExit: raise except Exception as e: try: - d = json.loads(_unicode_decode(content, - encoding=_encodings['repo.content'], errors='strict')) + mypickle = pickle.Unpickler(io.BytesIO(content)) + try: + mypickle.find_global = None + except AttributeError: + # Python >=3 + pass + d = mypickle.load() except SystemExit: raise except Exception: -- 2.26.2