diff --git a/contrib/boobot.py b/contrib/boobot.py
index e0e3211eda43b70c0a90b689acec9631a79ebee6..8c432a61d1e666d199a5cf322c90895e973cd615 100755
--- a/contrib/boobot.py
+++ b/contrib/boobot.py
@@ -159,7 +159,7 @@ def __init__(self, bot):
self.bot.set_weboob(self.weboob)
def run(self):
- for ev in self.bot.joined.itervalues():
+ for ev in self.bot.joined.values():
ev.wait()
self.weboob.repeat(5, self.check_tasks)
diff --git a/contrib/videoob_web/videoob_web/templates/index.mako b/contrib/videoob_web/videoob_web/templates/index.mako
index a0a1f1353b73f9a4a56597e5e0abd7751cfe9548..c52ed2a966d3ebc64a8478199e6bc6c9260d644a 100644
--- a/contrib/videoob_web/videoob_web/templates/index.mako
+++ b/contrib/videoob_web/videoob_web/templates/index.mako
@@ -32,7 +32,7 @@
${video_item(item)}
% endfor
% else:
- % for backend, items in sorted(results.iteritems()):
+ % for backend, items in sorted(results.items()):
${backend}
% for item in items:
${video_item(item)}
diff --git a/scripts/weboob b/scripts/weboob
index 9bd955ef888f42b87393473a7b1212fc29568727..c7cb92834e2c8cd24c9dab18640750cb23e32d29 100755
--- a/scripts/weboob
+++ b/scripts/weboob
@@ -143,7 +143,7 @@ class Weboob(ConsoleApplication):
else:
capApplicationDict[capability] = [application]
- return OrderedDict([(k, v) for k, v in sorted(capApplicationDict.iteritems())])
+ return OrderedDict([(k, v) for k, v in sorted(capApplicationDict.items())])
def get_application_capabilities(self, application):
if hasattr(application, 'CAPS') and application.CAPS:
diff --git a/tools/make_man.py b/tools/make_man.py
index a62274925bea90e7a97812e9cb5d6022c0fcc69e..718d7ec41ec7efa1c54849ed4699a483bcc9d129 100755
--- a/tools/make_man.py
+++ b/tools/make_man.py
@@ -70,7 +70,7 @@ def format_description(self, description):
self.app.weboob.modules_loader.load_all()
caps = self.app.CAPS if isinstance(self.app.CAPS, tuple) else (self.app.CAPS,)
modules = []
- for name, module in self.app.weboob.modules_loader.loaded.iteritems():
+ for name, module in self.app.weboob.modules_loader.loaded.items():
if module.has_caps(*caps):
modules.append(u'* %s (%s)' % (name, module.description))
if len(modules) > 0:
@@ -80,7 +80,7 @@ def format_description(self, description):
def format_commands(self, commands):
s = u''
- for section, cmds in commands.iteritems():
+ for section, cmds in commands.items():
if len(cmds) == 0:
continue
s += '.SH %s COMMANDS\n' % section.upper()
@@ -130,7 +130,7 @@ def main():
else:
print("Loaded %s" % fname)
# Find the applications we can handle
- for klass in script.__dict__.itervalues():
+ for klass in script.__dict__.values():
if inspect.isclass(klass) and issubclass(klass, Application) and klass.VERSION:
analyze_application(klass, fname)
finally:
diff --git a/tools/weboob_lint.py b/tools/weboob_lint.py
index 4ec44417e581f6460879550e3891a303d003cb81..8cdf6ec183952f039df5513e1d4bae089d4974e4 100755
--- a/tools/weboob_lint.py
+++ b/tools/weboob_lint.py
@@ -16,7 +16,7 @@
backends_without_icons = []
backends_using_deprecated = []
-for name, backend in weboob.modules_loader.loaded.iteritems():
+for name, backend in weboob.modules_loader.loaded.items():
path = backend.package.__path__[0]
if not os.path.exists(os.path.join(path, 'test.py')):
backends_without_tests.append(name)
diff --git a/weboob/applications/boobank/boobank.py b/weboob/applications/boobank/boobank.py
index f1839db50d911e6a1b70d7d441a327a28fd9023c..15fead6486fcd9fc3c2e71ba3d670440eaf4ffb2 100644
--- a/weboob/applications/boobank/boobank.py
+++ b/weboob/applications/boobank/boobank.py
@@ -376,7 +376,7 @@ def format_obj(self, obj, alias):
def flush(self):
self.output(u'------------------------------------------%s+----------+----------' % (('-' * 15) if not self.interactive else ''))
- for currency, currency_totals in sorted(self.totals.iteritems(), key=lambda k_v: (k_v[1],k_v[0])):
+ for currency, currency_totals in sorted(self.totals.items(), key=lambda k_v: (k_v[1],k_v[0])):
balance = currency_totals['balance']
coming = currency_totals['coming']
diff --git a/weboob/applications/boobathon/boobathon.py b/weboob/applications/boobathon/boobathon.py
index ab0dc1dcaf21d605f11bd26b5a2349d365cd9d47..1096904f5463ab56cd6d1092c50c600a6b45dc32 100644
--- a/weboob/applications/boobathon/boobathon.py
+++ b/weboob/applications/boobathon/boobathon.py
@@ -233,7 +233,7 @@ def save(self, message):
self.format_duration() or '_Unknown_',
self.location or '_Unknown_')
- for member in self.members.itervalues():
+ for member in self.members.values():
if self.date:
availabilities = ''
else:
@@ -355,7 +355,7 @@ def do_progress(self, line):
Display progress of members.
"""
self.event.load()
- for member in self.event.members.itervalues():
+ for member in self.event.members.values():
if member.is_me and member is self.event.winner:
status = '\o/ ->'
elif member.is_me:
@@ -421,7 +421,7 @@ def do_tasks(self, line):
if i >= 0 and i%2:
# second line of task, see if we'll stop
stop = True
- for mem in self.event.members.itervalues():
+ for mem in self.event.members.values():
if len(mem.tasks) > (i/2+1):
# there are more tasks, don't stop now
stop = False
@@ -455,7 +455,7 @@ def complete_close(self, text, line, *ignored):
args = line.split(' ')
if len(args) == 2:
self.event.load()
- return [member.name for member in self.event.members.itervalues()]
+ return [member.name for member in self.event.members.values()]
def do_close(self, name):
"""
@@ -465,7 +465,7 @@ def do_close(self, name):
"""
self.event.load()
- for member in self.event.members.itervalues():
+ for member in self.event.members.values():
if member.name == name:
self.event.winner = member
if self.save_event('Close event'):
@@ -533,7 +533,7 @@ def do_members(self, line):
Display members information.
"""
self.event.load()
- for member in self.event.members.itervalues():
+ for member in self.event.members.values():
print(member.name)
print('-' * len(member.name))
print('Repository:', member.repository)
diff --git a/weboob/applications/boobmsg/boobmsg.py b/weboob/applications/boobmsg/boobmsg.py
index 2a25bf2b96fd0ec2f6d65aa769afaf714753890a..2a89357a96e676bc02314624363c2dcb24c949b1 100644
--- a/weboob/applications/boobmsg/boobmsg.py
+++ b/weboob/applications/boobmsg/boobmsg.py
@@ -289,7 +289,7 @@ def do_status(self, line):
else:
results[field.backend] = [field]
- for name, fields in results.iteritems():
+ for name, fields in results.items():
print(':: %s ::' % name)
for f in fields:
if f.flags & f.FIELD_HTML:
diff --git a/weboob/applications/boobtracker/boobtracker.py b/weboob/applications/boobtracker/boobtracker.py
index 2ce190594e9570f3d2369e5b834a6a1ac4b76e10..b7404b0c95179781cb8f1bb4821f8893c3c36a38 100644
--- a/weboob/applications/boobtracker/boobtracker.py
+++ b/weboob/applications/boobtracker/boobtracker.py
@@ -72,7 +72,7 @@ def format_obj(self, obj, alias):
result += self.format_attr(obj, 'category')
result += self.format_attr(obj, 'assignee')
if hasattr(obj, 'fields') and not empty(obj.fields):
- for key, value in obj.fields.iteritems():
+ for key, value in obj.fields.items():
result += self.format_key(key.capitalize(), value)
if hasattr(obj, 'attachments') and obj.attachments:
result += '\n%s\n' % self.colored('Attachments:', 'green')
@@ -310,7 +310,7 @@ def issue2text(self, issue, backend=None):
for o in objects_list])
output += 'X-Available-%s: %s\n' % (self.sanitize_key(key), availables)
- for key, value in issue.fields.iteritems():
+ for key, value in issue.fields.items():
output += '%s: %s\n' % (self.sanitize_key(key), value or '')
# TODO: Add X-Available-* for lists
diff --git a/weboob/applications/flatboob/flatboob.py b/weboob/applications/flatboob/flatboob.py
index b9fb038586e4035ea4b70986d8fb7fc0c6cb80d1..97f34c73755f9388b43d04085bfd3529b0510efe 100644
--- a/weboob/applications/flatboob/flatboob.py
+++ b/weboob/applications/flatboob/flatboob.py
@@ -66,7 +66,7 @@ def format_obj(self, obj, alias):
if hasattr(obj, 'details') and obj.details:
result += '\n\n%sDetails%s\n' % (self.BOLD, self.NC)
- for key, value in obj.details.iteritems():
+ for key, value in obj.details.items():
result += ' %s: %s\n' % (key, value)
return result
diff --git a/weboob/applications/havedate/havedate.py b/weboob/applications/havedate/havedate.py
index 3cd126a97739dc5383d6cef12a0ab64327cbec50..e5779456553251b38ab7b516ecbeb257b810d76d 100644
--- a/weboob/applications/havedate/havedate.py
+++ b/weboob/applications/havedate/havedate.py
@@ -74,7 +74,7 @@ def main(self, argv):
self.bcall_errors_handler(e)
optimizations = self.storage.get('optims')
- for optim, backends in optimizations.iteritems():
+ for optim, backends in optimizations.items():
self.optims('start', backends, optim, store=False)
return ReplApplication.main(self, argv)
@@ -100,7 +100,7 @@ def edit_optims(self, backend_names, optims_names, stop=False):
for optim in self.do('get_optimization', optim_name, backends=backend_names):
if optim:
backends_optims[optim.backend] = optim
- for backend_name, optim in backends_optims.iteritems():
+ for backend_name, optim in backends_optims.items():
if len(optim.CONFIG) == 0:
print('%s.%s does not require configuration.' % (backend_name, optim_name))
continue
@@ -114,7 +114,7 @@ def edit_optims(self, backend_names, optims_names, stop=False):
params = {}
print('Configuration of %s.%s' % (backend_name, optim_name))
print('-----------------%s-%s' % ('-' * len(backend_name), '-' * len(optim_name)))
- for key, value in optim.CONFIG.iteritems():
+ for key, value in optim.CONFIG.items():
params[key] = self.ask(value, default=params[key] if (key in params) else value.default)
optim.set_config(params)
@@ -236,7 +236,7 @@ def do_optim(self, line):
backends.add(optim.backend)
backends = sorted(backends)
- for name, backends_status in optims.iteritems():
+ for name, backends_status in optims.items():
line = [('name', name)]
for b in backends:
try:
diff --git a/weboob/applications/pastoob/pastoob.py b/weboob/applications/pastoob/pastoob.py
index 29a303533249cd221f016c7013666100b26498f5..e939f428bd72ac695a54fccb984ab377d71b77f6 100644
--- a/weboob/applications/pastoob/pastoob.py
+++ b/weboob/applications/pastoob/pastoob.py
@@ -198,7 +198,7 @@ def str_to_duration(self, s):
seconds = 0
for number, unit in parts:
- for rx, secs in argsmap.iteritems():
+ for rx, secs in argsmap.items():
if re.match('^(%s)$' % rx, unit):
seconds += float(number) * float(secs)
diff --git a/weboob/applications/qflatboob/main_window.py b/weboob/applications/qflatboob/main_window.py
index b2434037dbfdf3d940f5623c7efe286f9f41fa97..3680f5d17694d4e05c9456c0f9e76625112fb25b 100644
--- a/weboob/applications/qflatboob/main_window.py
+++ b/weboob/applications/qflatboob/main_window.py
@@ -345,7 +345,7 @@ def setHousing(self, housing, nottext='Loading...'):
child.widget().deleteLater()
if housing.details:
- for key, value in housing.details.iteritems():
+ for key, value in housing.details.items():
if empty(value):
continue
label = QLabel(value)
diff --git a/weboob/applications/qhavedate/contacts.py b/weboob/applications/qhavedate/contacts.py
index 023bb22dd167b081bc656f14c7b04588032f1860..0276f7db639bef8d986eb4070a628b62169582b3 100644
--- a/weboob/applications/qhavedate/contacts.py
+++ b/weboob/applications/qhavedate/contacts.py
@@ -256,7 +256,7 @@ def gotProfile(self, contact):
missing_fields.add('profile')
elif not self.loaded_profile:
self.loaded_profile = True
- for head in contact.profile.itervalues():
+ for head in contact.profile.values():
if head.flags & head.HEAD:
widget = self.ui.headWidget
else:
@@ -271,7 +271,7 @@ def process_node(self, node, widget):
if node.flags & node.SECTION:
value = QWidget()
value.setLayout(QFormLayout())
- for sub in node.value.itervalues():
+ for sub in node.value.values():
self.process_node(sub, value)
elif isinstance(node.value, list):
value = QLabel('
'.join(unicode(s) for s in node.value))
@@ -491,7 +491,7 @@ def setPhoto(self, contact, item):
pass
img = None
- for photo in contact.photos.itervalues():
+ for photo in contact.photos.values():
if photo.thumbnail_data:
img = QImage.fromData(photo.thumbnail_data)
break
diff --git a/weboob/applications/qhavedate/events.py b/weboob/applications/qhavedate/events.py
index 602c298581a6fb20db2c52f14add39689fca387e..0b09c9c326278d0a2b76973c8043392544e1979d 100644
--- a/weboob/applications/qhavedate/events.py
+++ b/weboob/applications/qhavedate/events.py
@@ -90,7 +90,7 @@ def setPhoto(self, contact, item):
pass
img = None
- for photo in contact.photos.itervalues():
+ for photo in contact.photos.values():
if photo.thumbnail_data:
img = QImage.fromData(photo.thumbnail_data)
break
diff --git a/weboob/applications/webcontentedit/webcontentedit.py b/weboob/applications/webcontentedit/webcontentedit.py
index d2e8214d7bf24a6517b38da6df8264f95f9ed22d..ac36190dc46b2bb522a607a6b8bf3f50c59f71c7 100644
--- a/weboob/applications/webcontentedit/webcontentedit.py
+++ b/weboob/applications/webcontentedit/webcontentedit.py
@@ -81,7 +81,7 @@ def do_edit(self, line):
params = '-p'
os.system("%s %s %s" % (editor, params, ' '.join('"%s"' % path.replace('"', '\\"') for path in paths)))
- for path, content in paths.iteritems():
+ for path, content in paths.items():
with open(path, 'r') as f:
data = f.read()
try:
@@ -106,7 +106,7 @@ def do_edit(self, line):
errors = CallErrors([])
for content in contents:
- path = [path for path, c in paths.iteritems() if c == content][0]
+ path = [path for path, c in paths.items() if c == content][0]
self.stdout.write('Pushing %s...' % content.id.encode('utf-8'))
self.stdout.flush()
try:
diff --git a/weboob/applications/weboobcfg/weboobcfg.py b/weboob/applications/weboobcfg/weboobcfg.py
index 2f6bfc3df0a350f74436d3ff07a76ac798c609c2..fa27af32b9771cb8f777f85a36de8935ec72343c 100644
--- a/weboob/applications/weboobcfg/weboobcfg.py
+++ b/weboob/applications/weboobcfg/weboobcfg.py
@@ -59,7 +59,7 @@ def format_dict(self, minfo):
result += '| Location | %s\n' % minfo['location']
if 'config' in minfo:
first = True
- for key, field in minfo['config'].iteritems():
+ for key, field in minfo['config'].items():
label = field['label']
if field['default'] is not None:
label += ' (default: %s)' % field['default']
@@ -186,7 +186,7 @@ def do_list(self, line):
('Configuration', ', '.join(
'%s=%s' % (key, ('*****' if key in module.config and module.config[key].masked
else value))
- for key, value in params.iteritems())),
+ for key, value in params.items())),
])
self.format(row)
@@ -243,7 +243,7 @@ def do_modules(self, line):
Show available modules.
"""
caps = line.split()
- for name, info in sorted(self.weboob.repositories.get_all_modules_info(caps).iteritems()):
+ for name, info in sorted(self.weboob.repositories.get_all_modules_info(caps).items()):
row = OrderedDict([('Name', name),
('Capabilities', CapabilitiesWrapper(info.capabilities)),
('Description', info.description),
@@ -287,7 +287,7 @@ def create_minfo_dict(self, minfo, module):
module_info['location'] = '%s' % (minfo.url or os.path.join(minfo.path, minfo.name))
if module:
module_info['config'] = {}
- for key, field in module.config.iteritems():
+ for key, field in module.config.items():
module_info['config'][key] = {'label': field.label,
'default': field.default,
'description': field.description,
diff --git a/weboob/applications/weboobdebug/weboobdebug.py b/weboob/applications/weboobdebug/weboobdebug.py
index 357abff0b2ac61c22c6e8df570447210afb1cde1..dc998d10ccb80f270e0581bd4b2d88228f3762f9 100644
--- a/weboob/applications/weboobdebug/weboobdebug.py
+++ b/weboob/applications/weboobdebug/weboobdebug.py
@@ -59,7 +59,7 @@ def main(self, argv):
locs = dict(backend=backend, browser=backend.browser, application=self, weboob=self.weboob)
banner = 'Weboob debug shell\nBackend "%s" loaded.\nAvailable variables:\n' % backend_name \
- + '\n'.join([' %s: %s' % (k, v) for k, v in locs.iteritems()])
+ + '\n'.join([' %s: %s' % (k, v) for k, v in locs.items()])
if self.options.bpython:
funcs = [self.bpython, self.ipython, self.python]
diff --git a/weboob/applications/weboobrepos/weboobrepos.py b/weboob/applications/weboobrepos/weboobrepos.py
index c7da460388d8bb729fbdd82cc90762148e730c60..dad821362b5bbe1265f7705ed73d0ce1f13aa580 100644
--- a/weboob/applications/weboobrepos/weboobrepos.py
+++ b/weboob/applications/weboobrepos/weboobrepos.py
@@ -137,7 +137,7 @@ def do_build(self, line):
else:
print('Keyring is up to date')
- for name, module in r.modules.iteritems():
+ for name, module in r.modules.items():
tarname = os.path.join(repo_path, '%s.tar.gz' % name)
if r.signed:
sigfiles.append(os.path.basename(tarname))
diff --git a/weboob/browser/browsers.py b/weboob/browser/browsers.py
index 258886f8f29db0c4251ebc55b2adc4357080f8e2..d7de961162a46f2136fbf1d726f8193d917823d0 100644
--- a/weboob/browser/browsers.py
+++ b/weboob/browser/browsers.py
@@ -159,7 +159,7 @@ def save_response(self, response, warning=False, **kwargs):
request = response.request
with open(response_filepath + '-request.txt', 'w') as f:
f.write('%s %s\n\n\n' % (request.method, request.url))
- for key, value in request.headers.iteritems():
+ for key, value in request.headers.items():
f.write('%s: %s\n' % (key, value))
if request.body is not None: # separate '' from None
f.write('\n\n\n%s' % request.body)
@@ -167,7 +167,7 @@ def save_response(self, response, warning=False, **kwargs):
if hasattr(response.elapsed, 'total_seconds'):
f.write('Time: %3.3fs\n' % response.elapsed.total_seconds())
f.write('%s %s\n\n\n' % (response.status_code, response.reason))
- for key, value in response.headers.iteritems():
+ for key, value in response.headers.items():
f.write('%s: %s\n' % (key, value))
match_filepath = os.path.join(self.responses_dirname, 'url_response_match.txt')
@@ -397,7 +397,7 @@ def build_request(self, url, referrer=None, data_encoding=None, **kwargs):
req.data = req.data.encode(data_encoding)
if isinstance(req.data, dict) and data_encoding:
req.data = OrderedDict([(k, v.encode(data_encoding) if isinstance(v, unicode) else v)
- for k, v in req.data.iteritems()])
+ for k, v in req.data.items()])
if referrer is None:
referrer = self.get_referrer(self.url, url)
@@ -658,7 +658,7 @@ def __init__(self, *args, **kwargs):
self.page = None
self._urls = deepcopy(self._urls)
- for url in self._urls.itervalues():
+ for url in self._urls.values():
url.browser = self
def open(self, *args, **kwargs):
@@ -677,7 +677,7 @@ def open(self, *args, **kwargs):
def internal_callback(response):
# Try to handle the response page with an URL instance.
response.page = None
- for url in self._urls.itervalues():
+ for url in self._urls.values():
page = url.handle(response)
if page is not None:
self.logger.debug('Handle %s with %s' % (response.url, page.__class__.__name__))
diff --git a/weboob/browser/elements.py b/weboob/browser/elements.py
index 06d583be85b7669e17642fc7f7b1067eefa1b8a1..496c3214873db399b001f46b2933fbfa12b48c41 100644
--- a/weboob/browser/elements.py
+++ b/weboob/browser/elements.py
@@ -125,7 +125,7 @@ def __init__(self, *args, **kwargs):
self.objects = OrderedDict()
def __call__(self, *args, **kwargs):
- for key, value in kwargs.iteritems():
+ for key, value in kwargs.items():
self.env[key] = value
return self.__iter__()
@@ -173,7 +173,7 @@ def __iter__(self):
self.check_next_page()
def flush(self):
- for obj in self.objects.itervalues():
+ for obj in self.objects.values():
yield obj
def check_next_page(self):
@@ -352,7 +352,7 @@ def __init__(self, *args, **kwargs):
colnum = 0
for el in self.el.xpath(self.head_xpath):
title = self.cleaner.clean(el)
- for name, titles in columns.iteritems():
+ for name, titles in columns.items():
if name in self._cols:
continue
if title.lower() in [s for s in titles if isinstance(s, (str, unicode))] or \
diff --git a/weboob/browser/filters/javascript.py b/weboob/browser/filters/javascript.py
index 7c03ff777415ffbeb359d8dc6445ba9645751431..29e0abd86be3929a052e790b9667884918232ffd 100644
--- a/weboob/browser/filters/javascript.py
+++ b/weboob/browser/filters/javascript.py
@@ -94,7 +94,7 @@ class JSValue(Regexp):
def to_python(self, m):
"Convert MatchObject to python value"
values = m.groupdict()
- for t, v in values.iteritems():
+ for t, v in values.items():
if v is not None:
break
if self.need_type and t != self.need_type:
diff --git a/weboob/browser/filters/standard.py b/weboob/browser/filters/standard.py
index ad639fcc78638d330ce871231731859605c11ad2..3ee9b4a44bc5f51de8a8a25a441daa6602feb61e 100644
--- a/weboob/browser/filters/standard.py
+++ b/weboob/browser/filters/standard.py
@@ -740,7 +740,7 @@ def filter(self, txt):
m = self._regexp.search(txt)
if m:
kwargs = {}
- for key, index in self.kwargs.iteritems():
+ for key, index in self.kwargs.items():
kwargs[key] = int(m.groupdict()[index] or 0)
return self.klass(**kwargs)
diff --git a/weboob/browser/url.py b/weboob/browser/url.py
index 6d61cd563ad36c773dc86ad560873b313b0df7d6..0994145b168a5ef34f3f45d14bf5cb01c4838984 100644
--- a/weboob/browser/url.py
+++ b/weboob/browser/url.py
@@ -74,7 +74,7 @@ def is_here(self, **kwargs):
# XXX use unquote on current params values because if there are spaces
# or special characters in them, it is encoded only in but not in kwargs.
return self.browser.page and isinstance(self.browser.page, self.klass) \
- and (params is None or params == dict([(k,unquote(v)) for k,v in self.browser.page.params.iteritems()]))
+ and (params is None or params == dict([(k,unquote(v)) for k,v in self.browser.page.params.items()]))
def stay_or_go(self, **kwargs):
"""
diff --git a/weboob/capabilities/base.py b/weboob/capabilities/base.py
index d68631bc3f3865ab50a369446fb685a5984a09d7..c3336a42e2f1681eef8c13639cdf6858faa15c97 100644
--- a/weboob/capabilities/base.py
+++ b/weboob/capabilities/base.py
@@ -68,7 +68,7 @@ def find_object(mylist, error=None, **kwargs):
"""
for a in mylist:
found = True
- for key, value in kwargs.iteritems():
+ for key, value in kwargs.items():
if getattr(a, key) != value:
found = False
break
@@ -407,7 +407,7 @@ def iter_fields(self):
if hasattr(self, 'id') and self.id is not None:
yield 'id', self.id
- for name, field in self._fields.iteritems():
+ for name, field in self._fields.items():
yield name, field.value
def __eq__(self, obj):
@@ -566,7 +566,7 @@ def get_currency(klass, text):
"""
curtexts = klass.EXTRACTOR.sub(' ', text.upper()).split()
for curtext in curtexts:
- for currency, symbols in klass.CURRENCIES.iteritems():
+ for currency, symbols in klass.CURRENCIES.items():
if curtext in currency:
return currency
for symbol in symbols:
diff --git a/weboob/capabilities/contact.py b/weboob/capabilities/contact.py
index e327da51ddf114f3ac6bcc2e979f29713ccccc94..63f4d4d2a78eaa206df63e7a827ceb63073a556b 100644
--- a/weboob/capabilities/contact.py
+++ b/weboob/capabilities/contact.py
@@ -124,7 +124,7 @@ def set_photo(self, name, **kwargs):
self.photos[name] = ContactPhoto(name)
photo = self.photos[name]
- for key, value in kwargs.iteritems():
+ for key, value in kwargs.items():
setattr(photo, key, value)
def get_text(self):
@@ -132,7 +132,7 @@ def print_node(node, level=1):
result = u''
if node.flags & node.SECTION:
result += u'\t' * level + node.label + '\n'
- for sub in node.value.itervalues():
+ for sub in node.value.values():
result += print_node(sub, level + 1)
else:
if isinstance(node.value, (tuple, list)):
@@ -156,10 +156,10 @@ def print_node(node, level=1):
result += u'Status: %s (%s)\n' % (s, self.status_msg)
result += u'URL: %s\n' % self.url
result += u'Photos:\n'
- for name, photo in self.photos.iteritems():
+ for name, photo in self.photos.items():
result += u'\t%s%s\n' % (photo, ' (hidden)' if photo.hidden else '')
result += u'\nProfile:\n'
- for head in self.profile.itervalues():
+ for head in self.profile.values():
result += print_node(head)
result += u'Description:\n'
for s in self.summary.split('\n'):
diff --git a/weboob/core/backendscfg.py b/weboob/core/backendscfg.py
index 36dc2f67ade7c66955a77aca3082eaacde110b42..f5addf0c510bb6ddee43a7b285ce99282b709195 100644
--- a/weboob/core/backendscfg.py
+++ b/weboob/core/backendscfg.py
@@ -146,7 +146,7 @@ def add_backend(self, backend_name, module_name, params, edit=False):
except DuplicateSectionError:
raise BackendAlreadyExists(backend_name)
config.set(backend_name, '_module', module_name)
- for key, value in params.iteritems():
+ for key, value in params.items():
config.set(backend_name, key, value)
self._write_config(config)
diff --git a/weboob/core/ouiboube.py b/weboob/core/ouiboube.py
index cffe8f630ec59d2c2d93190b5d8e537dba7c559c..437c11adefb3beaef7a2661b45683d866aa30310 100644
--- a/weboob/core/ouiboube.py
+++ b/weboob/core/ouiboube.py
@@ -211,7 +211,7 @@ def iter_backends(self, caps=None, module=None):
:type module: :class:`basestring`
:rtype: iter[:class:`weboob.tools.backend.Module`]
"""
- for _, backend in sorted(self.backend_instances.iteritems()):
+ for _, backend in sorted(self.backend_instances.items()):
if (caps is None or backend.has_caps(caps)) and \
(module is None or backend.NAME == module):
with backend:
diff --git a/weboob/core/repositories.py b/weboob/core/repositories.py
index c3899d8b31a53ac0cda84de1d5eee28f137d63bd..bb829421d491866f5a23cfa6e539c5ea5e32e6ae 100644
--- a/weboob/core/repositories.py
+++ b/weboob/core/repositories.py
@@ -334,7 +334,7 @@ def save(self, filename, private=False):
if private:
config.set(DEFAULTSECT, 'url', self.url)
- for module in self.modules.itervalues():
+ for module in self.modules.values():
config.add_section(module.name)
for key, value in module.dump():
config.set(module.name, key, to_unicode(value).encode('utf-8'))
@@ -370,7 +370,7 @@ def set(self, name, version):
def save(self):
config = RawConfigParser()
- for name, version in self.versions.iteritems():
+ for name, version in self.versions.items():
config.set(DEFAULTSECT, name, version)
with open(os.path.join(self.path, self.VERSIONS_LIST), 'wb') as fp:
config.write(fp)
@@ -490,7 +490,7 @@ def get_all_modules_info(self, caps=None):
"""
modules = {}
for repos in reversed(self.repositories):
- for name, info in repos.modules.iteritems():
+ for name, info in repos.modules.items():
if name not in modules and (not caps or info.has_caps(caps)):
modules[name] = self._extend_module_info(repos, info)
return modules
@@ -621,7 +621,7 @@ def update(self, progress=PrintProgress()):
self.update_repositories(progress)
to_update = []
- for name, info in self.get_all_modules_info().iteritems():
+ for name, info in self.get_all_modules_info().items():
if not info.is_local() and info.is_installed():
if self.versions.get(name) != info.version:
to_update.append(info)
diff --git a/weboob/core/scheduler.py b/weboob/core/scheduler.py
index 1f49a25db0ab10ac93390162a9e03a80adbd5843..687d94fe14fdce1d603aa0619024e97f97e5cc54 100644
--- a/weboob/core/scheduler.py
+++ b/weboob/core/scheduler.py
@@ -152,7 +152,7 @@ def cancel(self, ev):
def _wait_to_stop(self):
self.want_stop()
with self.mutex:
- for e in self.queue.itervalues():
+ for e in self.queue.values():
e.cancel()
e.join()
self.queue = {}
@@ -171,7 +171,7 @@ def run(self):
def want_stop(self):
self.stop_event.set()
with self.mutex:
- for t in self.queue.itervalues():
+ for t in self.queue.values():
t.cancel()
# Contrary to _wait_to_stop(), don't call t.join
# because want_stop() have to be non-blocking.
diff --git a/weboob/tools/application/console.py b/weboob/tools/application/console.py
index c9f30ba9f49dd7bae163cfe96f04515f71f2a3b5..9e69c07e5b19d614c652b9999c83b7a5d6de2a61 100644
--- a/weboob/tools/application/console.py
+++ b/weboob/tools/application/console.py
@@ -107,7 +107,7 @@ def login_cb(self, backend_name, value):
def unload_backends(self, *args, **kwargs):
unloaded = self.weboob.unload_backends(*args, **kwargs)
- for backend in unloaded.itervalues():
+ for backend in unloaded.values():
try:
self.enabled_backends.remove(backend)
except KeyError:
@@ -130,7 +130,7 @@ def load_backends(self, *args, **kwargs):
self.edit_backend(err.backend_name)
self.load_backends(names=[err.backend_name])
- for name, backend in ret.iteritems():
+ for name, backend in ret.items():
self.enabled_backends.add(backend)
self.check_loaded_backends()
@@ -152,7 +152,7 @@ def prompt_create_backends(self, default_config=None):
while r != 'q':
modules = []
print('\nAvailable modules:')
- for name, info in sorted(self.weboob.repositories.get_all_modules_info().iteritems()):
+ for name, info in sorted(self.weboob.repositories.get_all_modules_info().items()):
if not self.is_module_loadable(info):
continue
modules.append(name)
@@ -277,7 +277,7 @@ def register_backend(self, name, ask_add=True):
website = 'with backend %s' % backend.name
while True:
asked_config = False
- for key, prop in backend.klass.ACCOUNT_REGISTER_PROPERTIES.iteritems():
+ for key, prop in backend.klass.ACCOUNT_REGISTER_PROPERTIES.items():
if not asked_config:
asked_config = True
print('Configuration of new account %s' % website)
@@ -298,7 +298,7 @@ def register_backend(self, name, ask_add=True):
else:
break
backend_config = {}
- for key, value in account.properties.iteritems():
+ for key, value in account.properties.items():
if key in backend.config:
backend_config[key] = value.get()
@@ -348,7 +348,7 @@ def add_backend(self, module_name, backend_name, params=None, edit=False, ask_re
# ask for params non-specified on command-line arguments
asked_config = False
- for key, value in config.iteritems():
+ for key, value in config.items():
if not asked_config:
asked_config = True
print('')
@@ -373,7 +373,7 @@ def add_backend(self, module_name, backend_name, params=None, edit=False, ask_re
try:
config = config.load(self.weboob, module.name, backend_name, params, nofail=True)
- for key, value in params.iteritems():
+ for key, value in params.items():
if key not in config:
continue
config[key].set(value)
@@ -477,10 +477,10 @@ def ask(self, question, default=None, masked=None, regexp=None, choices=None, ti
for s in v.choices:
if s == v.default:
aliases[s.upper()] = s
- for key, value in v.choices.iteritems():
+ for key, value in v.choices.items():
print(' %s%s%s: %s' % (self.BOLD, key, self.NC, value))
else:
- for n, (key, value) in enumerate(v.choices.iteritems()):
+ for n, (key, value) in enumerate(v.choices.items()):
print(' %s%2d)%s %s' % (self.BOLD, n + 1, self.NC,
value.encode(self.encoding)))
aliases[str(n + 1)] = key
diff --git a/weboob/tools/application/formatters/csv.py b/weboob/tools/application/formatters/csv.py
index 83395e7683adb7b6b39be0f6bf190fdf5a99039f..1a5d290020161d72f8da04abdb947a2ae9fb5065 100644
--- a/weboob/tools/application/formatters/csv.py
+++ b/weboob/tools/application/formatters/csv.py
@@ -49,4 +49,4 @@ def write_dict(self, item, fp):
writer.writerow([unicode(v).encode('utf-8') for v in item.keys()])
self.started = True
- writer.writerow([unicode(v).encode('utf-8') for v in item.itervalues()])
+ writer.writerow([unicode(v).encode('utf-8') for v in item.values()])
diff --git a/weboob/tools/application/formatters/iformatter.py b/weboob/tools/application/formatters/iformatter.py
index 23cd43ba87b23f123fede79237b5732e2cd61555..6ab42b694d5405e5b06f06080cb182c9754e1bcc 100644
--- a/weboob/tools/application/formatters/iformatter.py
+++ b/weboob/tools/application/formatters/iformatter.py
@@ -190,7 +190,7 @@ def format(self, obj, selected_fields=None, alias=None):
if selected_fields:
obj = obj.copy()
- for name, value in obj.iteritems():
+ for name, value in obj.items():
if name not in selected_fields:
obj.pop(name)
diff --git a/weboob/tools/application/formatters/multiline.py b/weboob/tools/application/formatters/multiline.py
index 9fc0a0d8579507403008aa86ede458e871504d67..340422cec028f40c7ecd513d131a2d246207f0ee 100644
--- a/weboob/tools/application/formatters/multiline.py
+++ b/weboob/tools/application/formatters/multiline.py
@@ -37,7 +37,7 @@ def flush(self):
def format_dict(self, item):
result = u'\n'.join(u'%s%s' % (
(u'%s%s' % (k, self.key_value_separator) if self.display_keys else ''), v)
- for k, v in item.iteritems() if (v is not NotLoaded and v is not NotAvailable))
+ for k, v in item.items() if (v is not NotLoaded and v is not NotAvailable))
if len(item) > 1:
result += self.after_item
return result
diff --git a/weboob/tools/application/formatters/simple.py b/weboob/tools/application/formatters/simple.py
index d4de31e2e3c425a080d6a3c5beaf54085ba9a549..c8255acb2c3df6b13c1582d88a49662e2e57cd49 100644
--- a/weboob/tools/application/formatters/simple.py
+++ b/weboob/tools/application/formatters/simple.py
@@ -33,4 +33,4 @@ def __init__(self, field_separator=u'\t', key_value_separator=u'='):
def format_dict(self, item):
return self.field_separator.join(u'%s%s' % (
(u'%s%s' % (k, self.key_value_separator) if self.display_keys else ''), v)
- for k, v in item.iteritems())
+ for k, v in item.items())
diff --git a/weboob/tools/application/qt5/backendcfg.py b/weboob/tools/application/qt5/backendcfg.py
index cd3f2346bb67ce2c19da1f12cb07be855019111f..e5af408d0cc589bc168bd82a5cad245859a26817 100644
--- a/weboob/tools/application/qt5/backendcfg.py
+++ b/weboob/tools/application/qt5/backendcfg.py
@@ -200,7 +200,7 @@ def editRepositories(self):
def loadModules(self):
self.ui.modulesList.clear()
- for name, module in sorted(self.weboob.repositories.get_all_modules_info(self.caps).iteritems()):
+ for name, module in sorted(self.weboob.repositories.get_all_modules_info(self.caps).items()):
item = QListWidgetItem(name.capitalize())
self.set_icon(item, module)
self.ui.modulesList.addItem(item)
@@ -328,7 +328,7 @@ def editBackend(self, backend_name=None):
info = self.weboob.repositories.get_module_info(module_name)
if info and (info.is_installed() or self.installModule(info)):
module = self.weboob.modules_loader.get_or_load_module(module_name)
- for key, value in module.config.load(self.weboob, module_name, backend_name, params, nofail=True).iteritems():
+ for key, value in module.config.load(self.weboob, module_name, backend_name, params, nofail=True).items():
try:
l, widget = self.config_widgets[key]
except KeyError:
@@ -348,7 +348,7 @@ def editBackend(self, backend_name=None):
@Slot()
def moduleSelectionChanged(self):
- for key, (label, value) in self.config_widgets.iteritems():
+ for key, (label, value) in self.config_widgets.items():
label.hide()
value.hide()
self.ui.configLayout.removeWidget(label)
@@ -406,7 +406,7 @@ def moduleSelectionChanged(self):
else:
self.ui.registerButton.hide()
- for key, field in module.config.iteritems():
+ for key, field in module.config.items():
label = QLabel(u'%s:' % field.label)
qvalue = QtValue(field)
self.ui.configLayout.addRow(label, qvalue)
@@ -459,7 +459,7 @@ def acceptBackend(self):
return
config = module.config.load(self.weboob, module.name, backend_name, {}, nofail=True)
- for key, field in config.iteritems():
+ for key, field in config.items():
label, qtvalue = self.config_widgets[key]
try:
@@ -510,7 +510,7 @@ def registerEvent(self):
vbox.addWidget(QLabel('To create an account %s, please provide this information:' % website))
formlayout = QFormLayout()
props_widgets = OrderedDict()
- for key, prop in module.klass.ACCOUNT_REGISTER_PROPERTIES.iteritems():
+ for key, prop in module.klass.ACCOUNT_REGISTER_PROPERTIES.items():
widget = QtValue(prop)
formlayout.addRow(QLabel(u'%s:' % prop.label), widget)
props_widgets[prop.id] = widget
@@ -528,7 +528,7 @@ def registerEvent(self):
if dialog.exec_():
account = Account()
account.properties = {}
- for key, widget in props_widgets.iteritems():
+ for key, widget in props_widgets.items():
try:
v = widget.get_value()
except ValueError as e:
@@ -546,7 +546,7 @@ def registerEvent(self):
self.tr('Unable to register account %s:
%s') % (website, e))
end = False
else:
- for key, value in account.properties.iteritems():
+ for key, value in account.properties.items():
if key in self.config_widgets:
self.config_widgets[key][1].set_value(value)
diff --git a/weboob/tools/application/qt5/qt.py b/weboob/tools/application/qt5/qt.py
index 3e6f414e4cbb9f785605c950d1777cc450085a9e..b720e02e06d8b9a090348083ef8b3389f21141b6 100644
--- a/weboob/tools/application/qt5/qt.py
+++ b/weboob/tools/application/qt5/qt.py
@@ -402,7 +402,7 @@ class _QtValueChoices(QComboBox):
def __init__(self, value):
QComboBox.__init__(self)
self._value = value
- for k, l in value.choices.iteritems():
+ for k, l in value.choices.items():
self.addItem(l, QVariant(k))
if value.default == k:
self.setCurrentIndex(self.count()-1)
diff --git a/weboob/tools/application/repl.py b/weboob/tools/application/repl.py
index e6369aaa84e4169503fc7cda0705e10625fe9044..53dcbf8965e815ea4ff79ce74ebed19688e8dcc7 100644
--- a/weboob/tools/application/repl.py
+++ b/weboob/tools/application/repl.py
@@ -60,7 +60,7 @@ def format_option_help(self, formatter=None):
class ReplOptionFormatter(IndentedHelpFormatter):
def format_commands(self, commands):
s = u''
- for section, cmds in commands.iteritems():
+ for section, cmds in commands.items():
if len(cmds) == 0:
continue
if len(s) > 0:
@@ -128,7 +128,7 @@ def __init__(self):
'',
))
self.formatters_loader = FormattersLoader()
- for key, klass in self.EXTRA_FORMATTERS.iteritems():
+ for key, klass in self.EXTRA_FORMATTERS.items():
self.formatters_loader.register_formatter(key, klass)
self.formatter = None
self.commands_formatters = self.COMMANDS_FORMATTERS.copy()
@@ -634,7 +634,7 @@ def complete_backends(self, text, line, begidx, endidx):
elif args[1] == 'disable':
choices = sorted(enabled_backends_names)
elif args[1] in ('add', 'register') and len(args) == 3:
- for name, module in sorted(self.weboob.repositories.get_all_modules_info(self.CAPS).iteritems()):
+ for name, module in sorted(self.weboob.repositories.get_all_modules_info(self.CAPS).items()):
choices.append(name)
elif args[1] == 'edit':
choices = sorted(available_backends_names)
@@ -725,7 +725,7 @@ def do_backends(self, line):
enabled = backend in self.enabled_backends
self.unload_backends(names=[backend.name])
self.edit_backend(backend.name)
- for newb in self.load_backends(names=[backend.name]).itervalues():
+ for newb in self.load_backends(names=[backend.name]).values():
if not enabled:
self.enabled_backends.remove(newb)
elif action == 'remove':
@@ -735,7 +735,7 @@ def do_backends(self, line):
elif action == 'list-modules':
modules = []
print('Modules list:')
- for name, info in sorted(self.weboob.repositories.get_all_modules_info().iteritems()):
+ for name, info in sorted(self.weboob.repositories.get_all_modules_info().items()):
if not self.is_module_loadable(info):
continue
modules.append(name)
@@ -933,7 +933,7 @@ def do_formatter(self, line):
return 1
else:
print('Default formatter: %s' % self.DEFAULT_FORMATTER)
- for key, klass in self.commands_formatters.iteritems():
+ for key, klass in self.commands_formatters.items():
print('Command "%s": %s' % (key, klass))
def do_select(self, line):
diff --git a/weboob/tools/backend.py b/weboob/tools/backend.py
index a05291be8cfc4d29c8ce9f2a99970150e4c8ae24..62bd4deec7fdf611afa62cecfad10a91a96e74df 100644
--- a/weboob/tools/backend.py
+++ b/weboob/tools/backend.py
@@ -153,7 +153,7 @@ def load(self, weboob, modname, instname, config, nofail=False):
cfg.modname = modname
cfg.instname = instname
cfg.weboob = weboob
- for name, field in self.iteritems():
+ for name, field in self.items():
value = config.get(name, None)
if value is None:
@@ -180,7 +180,7 @@ def dump(self):
:rtype: :class:`dict`
"""
settings = {}
- for name, value in self.iteritems():
+ for name, value in self.items():
settings[name] = value.dump()
return settings
@@ -274,7 +274,7 @@ def __init__(self, weboob, name, config=None, storage=None, logger=None, nofail=
config = {}
# Private fields (which start with '_')
- self._private_config = dict((key, value) for key, value in config.iteritems() if key.startswith('_'))
+ self._private_config = dict((key, value) for key, value in config.items() if key.startswith('_'))
# Load configuration of backend.
self.config = self.CONFIG.load(weboob, self.NAME, self.name, config, nofail)
@@ -430,7 +430,7 @@ def filter_missing_fields(obj, fields, check_cb):
missing = False
if hasattr(value, '__iter__'):
- for v in (value.itervalues() if isinstance(value, dict) else value):
+ for v in (value.values() if isinstance(value, dict) else value):
if not_loaded(v):
missing = True
break
@@ -450,7 +450,7 @@ def filter_missing_fields(obj, fields, check_cb):
if not missing_fields:
return obj
- for key, value in self.OBJECTS.iteritems():
+ for key, value in self.OBJECTS.items():
if isinstance(obj, key):
self.logger.debug(u'Fill %r with fields: %s' % (obj, missing_fields))
obj = value(self, obj, missing_fields) or obj
diff --git a/weboob/tools/config/iniconfig.py b/weboob/tools/config/iniconfig.py
index c26d910954425fe9c96fa25ace35fbd278cabe6b..466d96827355ff61110b7d8c51597823dfe8135d 100644
--- a/weboob/tools/config/iniconfig.py
+++ b/weboob/tools/config/iniconfig.py
@@ -74,7 +74,7 @@ def load(self, default={}):
def save(self):
def save_section(values, root_section=self.ROOTSECT):
- for k, v in values.iteritems():
+ for k, v in values.items():
if isinstance(v, (int, Decimal, float, basestring)):
if not self.config.has_section(root_section):
self.config.add_section(root_section)
diff --git a/weboob/tools/pdf.py b/weboob/tools/pdf.py
index 57093c6c5238079d5ae27106c556ac487cae785f..446b18ea62c380da9404a5f6a81fa93b862d43d6 100644
--- a/weboob/tools/pdf.py
+++ b/weboob/tools/pdf.py
@@ -207,7 +207,7 @@ def build_rows(lines):
plines[a].append(line)
boxes = ApproxVecDict()
- for plines in points.itervalues():
+ for plines in points.values():
if not (plines[ANGLE_HORIZONTAL] and plines[ANGLE_VERTICAL]):
continue
for hline in plines[ANGLE_HORIZONTAL]: