python3: remove deprecated use of contextlib.nested

Using `with Foo() as a, Bar() as b:` is introduced in python 2.7 and
deprecates the use of nested(), which is removed entirely in python3
This commit is contained in:
Eli Schwartz 2019-03-25 10:36:48 -04:00
parent d7410fe7b3
commit 92c621c718
No known key found for this signature in database
GPG Key ID: CEB167EFB5722BD6

View File

@ -9,7 +9,7 @@ __docformat__ = "restructuredtext en"
import os, time, traceback, re, sys, io import os, time, traceback, re, sys, io
from collections import defaultdict from collections import defaultdict
from contextlib import nested, closing from contextlib import closing
from calibre import (browser, __appname__, iswindows, force_unicode, from calibre import (browser, __appname__, iswindows, force_unicode,
@ -1097,7 +1097,7 @@ class BasicNewsRecipe(Recipe):
if bn: if bn:
img = os.path.join(imgdir, 'feed_image_%d%s'%(self.image_counter, os.path.splitext(bn))) img = os.path.join(imgdir, 'feed_image_%d%s'%(self.image_counter, os.path.splitext(bn)))
try: try:
with nested(open(img, 'wb'), closing(self.browser.open(feed.image_url))) as (fi, r): with open(img, 'wb') as fi, closing(self.browser.open(feed.image_url)) as r:
fi.write(r.read()) fi.write(r.read())
self.image_counter += 1 self.image_counter += 1
feed.image_url = img feed.image_url = img
@ -1346,7 +1346,7 @@ class BasicNewsRecipe(Recipe):
with open(mpath, 'wb') as mfile: with open(mpath, 'wb') as mfile:
mfile.write(open(mu, 'rb').read()) mfile.write(open(mu, 'rb').read())
else: else:
with nested(open(mpath, 'wb'), closing(self.browser.open(mu))) as (mfile, r): with open(mpath, 'wb') as mfile, closing(self.browser.open(mu)) as r:
mfile.write(r.read()) mfile.write(r.read())
self.report_progress(1, _('Masthead image downloaded')) self.report_progress(1, _('Masthead image downloaded'))
self.prepare_masthead_image(mpath, outfile) self.prepare_masthead_image(mpath, outfile)
@ -1564,7 +1564,7 @@ class BasicNewsRecipe(Recipe):
opf.create_spine(entries) opf.create_spine(entries)
opf.set_toc(toc) opf.set_toc(toc)
with nested(open(opf_path, 'wb'), open(ncx_path, 'wb')) as (opf_file, ncx_file): with open(opf_path, 'wb') as opf_file, open(ncx_path, 'wb') as ncx_file:
opf.render(opf_file, ncx_file) opf.render(opf_file, ncx_file)
def article_downloaded(self, request, result): def article_downloaded(self, request, result):