Mercurial > public > mercurial-scm > hg
comparison mercurial/formatter.py @ 29324:b501579147f1
py3: conditionalize cPickle import by adding in util
The cPickle is renamed to _pickle in python3 and this C extension is available
in pickle which was not included in earlier versions. So imports are conditionalized
to import cPickle in py2 and pickle in py3. Moreover the use of pickle in py2 is
switched to cPickle as the C extension is faster. The hack is added in util.py and
the modules import util.pickle
author | Pulkit Goyal <7895pulkit@gmail.com> |
---|---|
date | Sat, 04 Jun 2016 14:38:00 +0530 |
parents | d813132ea361 |
children | c3a9cd78b151 |
comparison
equal
deleted
inserted
replaced
29321:de4a80a2b45c | 29324:b501579147f1 |
---|---|
5 # This software may be used and distributed according to the terms of the | 5 # This software may be used and distributed according to the terms of the |
6 # GNU General Public License version 2 or any later version. | 6 # GNU General Public License version 2 or any later version. |
7 | 7 |
8 from __future__ import absolute_import | 8 from __future__ import absolute_import |
9 | 9 |
10 import cPickle | |
11 import os | 10 import os |
12 | 11 |
13 from .i18n import _ | 12 from .i18n import _ |
14 from .node import ( | 13 from .node import ( |
15 hex, | 14 hex, |
18 | 17 |
19 from . import ( | 18 from . import ( |
20 encoding, | 19 encoding, |
21 error, | 20 error, |
22 templater, | 21 templater, |
22 util, | |
23 ) | 23 ) |
24 | |
25 pickle = util.pickle | |
24 | 26 |
25 class baseformatter(object): | 27 class baseformatter(object): |
26 def __init__(self, ui, topic, opts): | 28 def __init__(self, ui, topic, opts): |
27 self._ui = ui | 29 self._ui = ui |
28 self._topic = topic | 30 self._topic = topic |
105 self._data = [] | 107 self._data = [] |
106 def _showitem(self): | 108 def _showitem(self): |
107 self._data.append(self._item) | 109 self._data.append(self._item) |
108 def end(self): | 110 def end(self): |
109 baseformatter.end(self) | 111 baseformatter.end(self) |
110 self._ui.write(cPickle.dumps(self._data)) | 112 self._ui.write(pickle.dumps(self._data)) |
111 | 113 |
112 def _jsonifyobj(v): | 114 def _jsonifyobj(v): |
113 if isinstance(v, tuple): | 115 if isinstance(v, tuple): |
114 return '[' + ', '.join(_jsonifyobj(e) for e in v) + ']' | 116 return '[' + ', '.join(_jsonifyobj(e) for e in v) + ']' |
115 elif v is None: | 117 elif v is None: |