Merge remote-tracking branch 'origin/master'

pull/2984/merge
Philipp Hagemeister 2014-08-21 18:01:33 +02:00
commit cab317a680
1 changed files with 14 additions and 8 deletions

View File

@ -233,18 +233,24 @@ else:
def write_json_file(obj, fn):
""" Encode obj as JSON and write it to fn, atomically """
args = {
'suffix': '.tmp',
'prefix': os.path.basename(fn) + '.',
'dir': os.path.dirname(fn),
'delete': False,
}
# In Python 2.x, json.dump expects a bytestream.
# In Python 3.x, it writes to a character stream
if sys.version_info < (3, 0):
mode = 'wb'
encoding = None
args['mode'] = 'wb'
else:
mode = 'w'
encoding = 'utf-8'
tf = tempfile.NamedTemporaryFile(
suffix='.tmp', prefix=os.path.basename(fn) + '.',
dir=os.path.dirname(fn),
delete=False)
args.update({
'mode': 'w',
'encoding': 'utf-8',
})
tf = tempfile.NamedTemporaryFile(**args)
try:
with tf: