diff options
author | Jelle van der Waa <jelle@vdwaa.nl> | 2018-02-16 22:08:35 +0100 |
---|---|---|
committer | Jelle van der Waa <jelle@vdwaa.nl> | 2019-01-21 21:19:58 +0100 |
commit | c612b1931415ca5e6a7265b4e06cd045e851e07e (patch) | |
tree | 89527c2290c58721042a063d26b59cd135a1b12f | |
parent | 7742430a261f36a834b93d2b8242cf847d25caa3 (diff) | |
download | archweb-c612b1931415ca5e6a7265b4e06cd045e851e07e.tar.gz archweb-c612b1931415ca5e6a7265b4e06cd045e851e07e.zip |
main: run 2to3
-rw-r--r-- | devel/forms.py | 2 | ||||
-rw-r--r-- | devel/management/commands/pgp_import.py | 4 | ||||
-rw-r--r-- | devel/management/commands/rematch_developers.py | 4 | ||||
-rw-r--r-- | devel/management/commands/reporead.py | 10 | ||||
-rw-r--r-- | devel/management/commands/reporead_inotify.py | 2 | ||||
-rw-r--r-- | devel/models.py | 4 | ||||
-rw-r--r-- | main/migrations/0001_initial.py | 2 | ||||
-rw-r--r-- | main/models.py | 12 | ||||
-rw-r--r-- | main/templatetags/attributes.py | 2 | ||||
-rw-r--r-- | main/templatetags/details_link.py | 6 | ||||
-rw-r--r-- | main/templatetags/flags.py | 2 | ||||
-rw-r--r-- | main/templatetags/pgp.py | 10 | ||||
-rw-r--r-- | main/tests/test_templatetags_pgp.py | 4 | ||||
-rw-r--r-- | main/utils.py | 2 | ||||
-rw-r--r-- | mirrors/views/api.py | 6 | ||||
-rw-r--r-- | packages/alpm.py | 6 | ||||
-rw-r--r-- | packages/models.py | 42 | ||||
-rw-r--r-- | packages/templatetags/package_extras.py | 2 | ||||
-rw-r--r-- | packages/tests.py | 2 | ||||
-rw-r--r-- | packages/utils.py | 18 | ||||
-rw-r--r-- | packages/views/signoff.py | 2 | ||||
-rw-r--r-- | public/utils.py | 2 | ||||
-rw-r--r-- | todolists/views.py | 2 | ||||
-rw-r--r-- | visualize/views.py | 4 |
24 files changed, 76 insertions, 76 deletions
diff --git a/devel/forms.py b/devel/forms.py index db4428fa..e6ccf68b 100644 --- a/devel/forms.py +++ b/devel/forms.py @@ -59,7 +59,7 @@ class NewUserForm(forms.ModelForm): 'alias', 'public_email') for key in keys: self.fields[key] = old[key] - for key, _ in old.items(): + for key, _ in list(old.items()): if key not in keys: self.fields[key] = old[key] diff --git a/devel/management/commands/pgp_import.py b/devel/management/commands/pgp_import.py index 2188de3c..455bbe69 100644 --- a/devel/management/commands/pgp_import.py +++ b/devel/management/commands/pgp_import.py @@ -141,7 +141,7 @@ def import_keys(keyring): finder = UserFinder() # we are dependent on parents coming before children; parse_keydata # uses an OrderedDict to ensure this is the case. - for data in keydata.values(): + for data in list(keydata.values()): parent_id = None if data.parent: parent_data = keydata.get(data.parent, None) @@ -161,7 +161,7 @@ def import_keys(keyring): if created: created_ct += 1 else: - for k, v in other.items(): + for k, v in list(other.items()): if getattr(dkey, k) != v: setattr(dkey, k, v) needs_save = True diff --git a/devel/management/commands/rematch_developers.py b/devel/management/commands/rematch_developers.py index 7178d1d8..9fd7acf1 100644 --- a/devel/management/commands/rematch_developers.py +++ b/devel/management/commands/rematch_developers.py @@ -62,7 +62,7 @@ def match_packager(finder): logger.debug(" found user %s", user.username) matched_count += 1 - for packager_str, user in mapping.items(): + for packager_str, user in list(mapping.items()): package_count += Package.objects.filter(packager__isnull=True, packager_str=packager_str).update(packager=user) @@ -88,7 +88,7 @@ def match_flagrequest(finder): logger.debug(" found user %s", user.username) matched_count += 1 - for user_email, user in mapping.items(): + for user_email, user in list(mapping.items()): req_count += FlagRequest.objects.filter(user__isnull=True, user_email=user_email).update(user=user) diff --git a/devel/management/commands/reporead.py b/devel/management/commands/reporead.py index 37ba10d8..e2f6cb48 100644 --- a/devel/management/commands/reporead.py +++ b/devel/management/commands/reporead.py @@ -107,12 +107,12 @@ class RepoPackage(object): self.files = None def populate(self, values): - for k, v in values.iteritems(): + for k, v in values.items(): # ensure we stay under our DB character limit if k in self.bare: setattr(self, k, v[0][:254]) elif k in self.number: - setattr(self, k, long(v[0])) + setattr(self, k, int(v[0])) elif k in ('desc', 'pgpsig'): # do NOT prune these values at all setattr(self, k, v[0]) @@ -145,8 +145,8 @@ class RepoPackage(object): def full_version(self): '''Very similar to the main.models.Package method.''' if self.epoch > 0: - return u'%d:%s-%s' % (self.epoch, self.ver, self.rel) - return u'%s-%s' % (self.ver, self.rel) + return '%d:%s-%s' % (self.epoch, self.ver, self.rel) + return '%s-%s' % (self.ver, self.rel) DEPEND_RE = re.compile(r"^(.+?)((>=|<=|=|>|<)(.+))?$") @@ -573,7 +573,7 @@ def parse_repo(repopath): repodb.close() logger.info("Finished repo parsing, %d total packages", len(pkgs)) - return (reponame, pkgs.values()) + return (reponame, list(pkgs.values())) def locate_arch(arch): "Check if arch is valid." diff --git a/devel/management/commands/reporead_inotify.py b/devel/management/commands/reporead_inotify.py index fadcb881..eb183060 100644 --- a/devel/management/commands/reporead_inotify.py +++ b/devel/management/commands/reporead_inotify.py @@ -187,7 +187,7 @@ class EventHandler(pyinotify.ProcessEvent): # we really want a single path to arch mapping, so massage the data arch_paths = kwargs['arch_paths'] - for arch, paths in arch_paths.items(): + for arch, paths in list(arch_paths.items()): self.arch_lookup.update((path.rstrip('/'), arch) for path in paths) def process_default(self, event): diff --git a/devel/models.py b/devel/models.py index 4322df06..b5300d07 100644 --- a/devel/models.py +++ b/devel/models.py @@ -95,7 +95,7 @@ class MasterKey(models.Model): get_latest_by = 'created' def __unicode__(self): - return u'%s, created %s' % ( + return '%s, created %s' % ( self.owner.get_full_name(), self.created) @@ -128,7 +128,7 @@ class PGPSignature(models.Model): verbose_name = 'PGP signature' def __unicode__(self): - return u'%s → %s' % (self.signer, self.signee) + return '%s → %s' % (self.signer, self.signee) pre_save.connect(set_created_field, sender=UserProfile, diff --git a/main/migrations/0001_initial.py b/main/migrations/0001_initial.py index 8349d4b9..6c87bf7e 100644 --- a/main/migrations/0001_initial.py +++ b/main/migrations/0001_initial.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -from __future__ import unicode_literals + from django.db import models, migrations import main.fields diff --git a/main/models.py b/main/models.py index 476ee017..446c33ea 100644 --- a/main/models.py +++ b/main/models.py @@ -124,8 +124,8 @@ class Package(models.Model): @property def full_version(self): if self.epoch > 0: - return u'%d:%s-%s' % (self.epoch, self.pkgver, self.pkgrel) - return u'%s-%s' % (self.pkgver, self.pkgrel) + return '%d:%s-%s' % (self.epoch, self.pkgver, self.pkgrel) + return '%s-%s' % (self.pkgver, self.pkgrel) def get_absolute_url(self): return '/packages/%s/%s/%s/' % (self.repo.name.lower(), @@ -417,13 +417,13 @@ class Package(models.Model): '''attempt to locate this package anywhere else, regardless of architecture or repository. Excludes this package from the list.''' names = [self.pkgname] - if self.pkgname.startswith(u'lib32-'): + if self.pkgname.startswith('lib32-'): names.append(self.pkgname[6:]) - elif self.pkgname.endswith(u'-multilib'): + elif self.pkgname.endswith('-multilib'): names.append(self.pkgname[:-9]) else: - names.append(u'lib32-' + self.pkgname) - names.append(self.pkgname + u'-multilib') + names.append('lib32-' + self.pkgname) + names.append(self.pkgname + '-multilib') return Package.objects.normal().filter( pkgname__in=names).exclude(id=self.id).order_by( 'arch__name', 'repo__name') diff --git a/main/templatetags/attributes.py b/main/templatetags/attributes.py index bd4ccf3d..ab09b63e 100644 --- a/main/templatetags/attributes.py +++ b/main/templatetags/attributes.py @@ -9,7 +9,7 @@ def attribute(value, arg): """Gets an attribute of an object dynamically from a string name""" if hasattr(value, str(arg)): return getattr(value, arg) - elif hasattr(value, 'has_key') and value.has_key(arg): + elif hasattr(value, 'has_key') and arg in value: return value[arg] elif numeric_test.match(str(arg)) and len(value) > int(arg): return value[int(arg)] diff --git a/main/templatetags/details_link.py b/main/templatetags/details_link.py index c9c0521a..582ffa1b 100644 --- a/main/templatetags/details_link.py +++ b/main/templatetags/details_link.py @@ -1,4 +1,4 @@ -from urllib import urlencode, quote as urlquote, unquote +from urllib.parse import urlencode, quote as urlquote, unquote from django import template from main.templatetags import pgp @@ -8,7 +8,7 @@ register = template.Library() def link_encode(url, query): # massage the data into all utf-8 encoded strings first, so urlencode # doesn't barf at the data we pass it - query = {k: unicode(v).encode('utf-8') for k, v in query.items()} + query = {k: str(v).encode('utf-8') for k, v in list(query.items())} data = urlencode(query) return "%s?%s" % (url, data) @@ -70,7 +70,7 @@ def pgp_key_link(key_id, link_text=None): def url_unquote(original_url): try: url = original_url - if isinstance(url, unicode): + if isinstance(url, str): url = url.encode('ascii') url = unquote(url).decode('utf-8') return url diff --git a/main/templatetags/flags.py b/main/templatetags/flags.py index fafcb5aa..d47ee707 100644 --- a/main/templatetags/flags.py +++ b/main/templatetags/flags.py @@ -9,7 +9,7 @@ def country_flag(country): if not country: return '' return format_html('<span class="fam-flag fam-flag-%s" title="%s"></span> ' % ( - unicode(country.code).lower(), unicode(country.name))) + str(country.code).lower(), str(country.name))) # vim: set ts=4 sw=4 et: diff --git a/main/templatetags/pgp.py b/main/templatetags/pgp.py index f8c99574..4597e10b 100644 --- a/main/templatetags/pgp.py +++ b/main/templatetags/pgp.py @@ -9,19 +9,19 @@ register = template.Library() def format_key(key_id): if len(key_id) in (8, 20): - return u'0x%s' % key_id + return '0x%s' % key_id elif len(key_id) == 40: # normal display format is 5 groups of 4 hex chars seperated by spaces, # double space, then 5 more groups of 4 hex chars split = tuple(key_id[i:i+4] for i in range(0, 40, 4)) - return u'%s\u00a0 %s' % (' '.join(split[0:5]), ' '.join(split[5:10])) - return u'0x%s' % key_id + return '%s\u00a0 %s' % (' '.join(split[0:5]), ' '.join(split[5:10])) + return '0x%s' % key_id @register.simple_tag def pgp_key_link(key_id, link_text=None): if not key_id: return "Unknown" - if isinstance(key_id, (int, long)): + if isinstance(key_id, int): key_id = '%X' % key_id # zero-fill to nearest 8, 16, or 40 chars if necessary if len(key_id) <= 8: @@ -57,7 +57,7 @@ def user_pgp_key_link(dev_keys, key_id): @register.filter def pgp_fingerprint(key_id): if not key_id: - return u'' + return '' return mark_safe(format_key(conditional_escape(key_id))) diff --git a/main/tests/test_templatetags_pgp.py b/main/tests/test_templatetags_pgp.py index 240de3cb..39ace88b 100644 --- a/main/tests/test_templatetags_pgp.py +++ b/main/tests/test_templatetags_pgp.py @@ -13,7 +13,7 @@ class PGPTemplateTest(TestCase): pgp_key_len = len(pgp_key) output = format_key(pgp_key) - spaces = output.count(' ') + output.count(u'\xa0') # nbsp + spaces = output.count(' ') + output.count('\xa0') # nbsp self.assertEqual(pgp_key_len + spaces, len(output)) # 21 - 39 len case @@ -68,7 +68,7 @@ class PGPTemplateTest(TestCase): self.assertNotIn("https", pgp_key_link(pgp_key)) def test_pgp_fingerprint(self): - self.assertEqual(pgp_fingerprint(None), u"") + self.assertEqual(pgp_fingerprint(None), "") keyid = '423423fD9004FB063E2C81117BFB1108D234DAFZ' fingerprint = pgp_fingerprint(keyid) self.assertTrue(len(fingerprint) > len(keyid)) diff --git a/main/utils.py b/main/utils.py index ff976f51..f0b10ef5 100644 --- a/main/utils.py +++ b/main/utils.py @@ -1,5 +1,5 @@ try: - import cPickle as pickle + import pickle as pickle except ImportError: import pickle diff --git a/mirrors/views/api.py b/mirrors/views/api.py index 857b1d1d..268bf330 100644 --- a/mirrors/views/api.py +++ b/mirrors/views/api.py @@ -24,7 +24,7 @@ class MirrorStatusJSONEncoder(DjangoJSONEncoder): if isinstance(obj, MirrorUrl): data = {attr: getattr(obj, attr) for attr in self.url_attributes} country = obj.country - data['country'] = unicode(country.name) + data['country'] = str(country.name) data['country_code'] = country.code data['isos'] = obj.mirror.isos data['ipv4'] = obj.has_ipv4 @@ -32,7 +32,7 @@ class MirrorStatusJSONEncoder(DjangoJSONEncoder): data['details'] = obj.get_full_url() return data if isinstance(obj, MirrorProtocol): - return unicode(obj) + return str(obj) return super(MirrorStatusJSONEncoder, self).default(obj) @@ -64,7 +64,7 @@ class LocationJSONEncoder(DjangoJSONEncoder): 'id': obj.pk, 'hostname': obj.hostname, 'source_ip': obj.source_ip, - 'country': unicode(obj.country.name), + 'country': str(obj.country.name), 'country_code': obj.country.code, 'ip_version': obj.ip_version, } diff --git a/packages/alpm.py b/packages/alpm.py index 027fadc9..7be096c7 100644 --- a/packages/alpm.py +++ b/packages/alpm.py @@ -64,9 +64,9 @@ class AlpmAPI(object): def main(): # pragma: no cover api = AlpmAPI() - print(api.version()) - print(api.vercmp(1, 2)) - print(api.compare_versions(1, '<', 2)) + print((api.version())) + print((api.vercmp(1, 2))) + print((api.compare_versions(1, '<', 2))) if __name__ == '__main__': # pragma: no cover diff --git a/packages/models.py b/packages/models.py index 04ad7adb..10808faa 100644 --- a/packages/models.py +++ b/packages/models.py @@ -42,7 +42,7 @@ class PackageRelation(models.Model): return Update.objects.filter(pkgbase=self.pkgbase).latest() def __unicode__(self): - return u'%s: %s (%s)' % ( + return '%s: %s (%s)' % ( self.pkgbase, self.user, self.get_type_display()) @@ -94,11 +94,11 @@ class SignoffSpecification(models.Model): @property def full_version(self): if self.epoch > 0: - return u'%d:%s-%s' % (self.epoch, self.pkgver, self.pkgrel) - return u'%s-%s' % (self.pkgver, self.pkgrel) + return '%d:%s-%s' % (self.epoch, self.pkgver, self.pkgrel) + return '%s-%s' % (self.pkgver, self.pkgrel) def __unicode__(self): - return u'%s-%s' % (self.pkgbase, self.full_version) + return '%s-%s' % (self.pkgbase, self.full_version) # Fake signoff specs for when we don't have persisted ones in the database. @@ -109,7 +109,7 @@ FakeSignoffSpecification = namedtuple('FakeSignoffSpecification', def fake_signoff_spec(arch): - return FakeSignoffSpecification(arch.required_signoffs, True, False, u'') + return FakeSignoffSpecification(arch.required_signoffs, True, False, '') class SignoffManager(models.Manager): @@ -163,14 +163,14 @@ class Signoff(models.Model): @property def full_version(self): if self.epoch > 0: - return u'%d:%s-%s' % (self.epoch, self.pkgver, self.pkgrel) - return u'%s-%s' % (self.pkgver, self.pkgrel) + return '%d:%s-%s' % (self.epoch, self.pkgver, self.pkgrel) + return '%s-%s' % (self.pkgver, self.pkgrel) def __unicode__(self): - revoked = u'' + revoked = '' if self.revoked: - revoked = u' (revoked)' - return u'%s-%s: %s%s' % ( + revoked = ' (revoked)' + return '%s-%s: %s%s' % ( self.pkgbase, self.full_version, self.user, revoked) @@ -208,10 +208,10 @@ class FlagRequest(models.Model): # handle the case of pkgver and pkgrel being null as this table didn't # originally have version columns. if self.pkgver == '' and self.pkgrel == '': - return u'' + return '' if self.epoch > 0: - return u'%d:%s-%s' % (self.epoch, self.pkgver, self.pkgrel) - return u'%s-%s' % (self.pkgver, self.pkgrel) + return '%d:%s-%s' % (self.epoch, self.pkgver, self.pkgrel) + return '%s-%s' % (self.pkgver, self.pkgrel) def get_associated_packages(self): return Package.objects.normal().filter( @@ -221,7 +221,7 @@ class FlagRequest(models.Model): 'pkgname', 'repo__name', 'arch__name') def __unicode__(self): - return u'%s from %s on %s' % (self.pkgbase, self.who(), self.created) + return '%s from %s on %s' % (self.pkgbase, self.who(), self.created) class UpdateManager(models.Manager): @@ -313,16 +313,16 @@ class Update(models.Model): if self.action_flag == ADDITION: return None if self.old_epoch > 0: - return u'%d:%s-%s' % (self.old_epoch, self.old_pkgver, self.old_pkgrel) - return u'%s-%s' % (self.old_pkgver, self.old_pkgrel) + return '%d:%s-%s' % (self.old_epoch, self.old_pkgver, self.old_pkgrel) + return '%s-%s' % (self.old_pkgver, self.old_pkgrel) @property def new_version(self): if self.action_flag == DELETION: return None if self.new_epoch > 0: - return u'%d:%s-%s' % (self.new_epoch, self.new_pkgver, self.new_pkgrel) - return u'%s-%s' % (self.new_pkgver, self.new_pkgrel) + return '%d:%s-%s' % (self.new_epoch, self.new_pkgver, self.new_pkgrel) + return '%s-%s' % (self.new_pkgver, self.new_pkgrel) def elsewhere(self): return Package.objects.normal().filter( @@ -343,7 +343,7 @@ class Update(models.Model): self.arch.name, self.pkgname) def __unicode__(self): - return u'%s of %s on %s' % (self.get_action_flag_display(), + return '%s of %s on %s' % (self.get_action_flag_display(), self.pkgname, self.created) @@ -457,7 +457,7 @@ class RelatedToBase(models.Model): def __unicode__(self): if self.version: - return u'%s%s%s' % (self.name, self.comparison, self.version) + return '%s%s%s' % (self.name, self.comparison, self.version) return self.name class Meta: @@ -483,7 +483,7 @@ class Depend(RelatedToBase): '''For depends, we may also have a description and a modifier.''' to_str = super(Depend, self).__unicode__() if self.description: - return u'%s: %s' % (to_str, self.description) + return '%s: %s' % (to_str, self.description) return to_str diff --git a/packages/templatetags/package_extras.py b/packages/templatetags/package_extras.py index bc66390e..1cccc2bd 100644 --- a/packages/templatetags/package_extras.py +++ b/packages/templatetags/package_extras.py @@ -19,7 +19,7 @@ class BuildQueryStringNode(template.Node): # have simply u'\u2603' or a byte string of the UTF-8 value. Force the # keys and list of values to be byte strings only. qs = {k.encode('latin-1'): [v.encode('latin-1') for v in vals] - for k, vals in qs.items()} + for k, vals in list(qs.items())} if 'sort' in qs and self.sortfield in qs['sort']: if self.sortfield.startswith('-'): qs['sort'] = [self.sortfield[1:]] diff --git a/packages/tests.py b/packages/tests.py index c41db99a..fe47f24b 100644 --- a/packages/tests.py +++ b/packages/tests.py @@ -80,7 +80,7 @@ class PackageSearchJson(TestCase): self.assertEqual(response.status_code, 200) data = response.json() self.assertEqual(len(data['results']), 5) - self.assertEqual(set(map(lambda r: r['pkgname'], data['results'])), + self.assertEqual(set([r['pkgname'] for r in data['results']]), {"coreutils", "glibc", "linux", "pacman", "systemd"}) def test_packagename(self): diff --git a/packages/utils.py b/packages/utils.py index dbf8b90c..c1f328f3 100644 --- a/packages/utils.py +++ b/packages/utils.py @@ -50,8 +50,8 @@ def get_group_info(include_arches=None): if 'any' in group_mapping: any_groups = group_mapping['any'] del group_mapping['any'] - for arch, arch_groups in group_mapping.iteritems(): - for grp in any_groups.itervalues(): + for arch, arch_groups in group_mapping.items(): + for grp in any_groups.values(): if grp['name'] in arch_groups: found = arch_groups[grp['name']] found['count'] += grp['count'] @@ -66,9 +66,9 @@ def get_group_info(include_arches=None): # now transform it back into a sorted list, including only the specified # architectures if we got a list groups = [] - for key, val in group_mapping.iteritems(): + for key, val in group_mapping.items(): if not include_arches or key in include_arches: - groups.extend(val.itervalues()) + groups.extend(iter(val.values())) return sorted(groups, key=itemgetter('name', 'arch')) @@ -318,7 +318,7 @@ class PackageSignoffGroup(object): return user in (s.user for s in self.signoffs if not s.revoked) def __unicode__(self): - return u'%s-%s (%s): %d' % ( + return '%s-%s (%s): %d' % ( self.pkgbase, self.version, self.arch, len(self.signoffs)) @@ -352,14 +352,14 @@ SELECT DISTINCT s.id def get_current_signoffs(repos): '''Returns a list of signoff objects for the given repos.''' to_fetch = signoffs_id_query(Signoff, repos) - return Signoff.objects.select_related('user').in_bulk(to_fetch).values() + return list(Signoff.objects.select_related('user').in_bulk(to_fetch).values()) def get_current_specifications(repos): '''Returns a list of signoff specification objects for the given repos.''' to_fetch = signoffs_id_query(SignoffSpecification, repos) - return SignoffSpecification.objects.select_related('arch').in_bulk( - to_fetch).values() + return list(SignoffSpecification.objects.select_related('arch').in_bulk( + to_fetch).values()) def get_target_repo_map(repos): @@ -450,7 +450,7 @@ class PackageJSONEncoder(DjangoJSONEncoder): if isinstance(obj, (PackageGroup, License)): return obj.name if isinstance(obj, (Depend, Conflict, Provision, Replacement)): - return unicode(obj) + return str(obj) elif isinstance(obj, User): return obj.username return super(PackageJSONEncoder, self).default(obj) diff --git a/packages/views/signoff.py b/packages/views/signoff.py index 8596fa9f..db20f697 100644 --- a/packages/views/signoff.py +++ b/packages/views/signoff.py @@ -166,7 +166,7 @@ class SignoffJSONEncoder(DjangoJSONEncoder): elif isinstance(obj, Signoff): return {attr: getattr(obj, attr) for attr in self.signoff_attrs} elif isinstance(obj, Arch) or isinstance(obj, Repo): - return unicode(obj) + return str(obj) elif isinstance(obj, User): return obj.username elif isinstance(obj, set): diff --git a/public/utils.py b/public/utils.py index 248bd7d8..cf768129 100644 --- a/public/utils.py +++ b/public/utils.py @@ -48,7 +48,7 @@ class RecentUpdate(object): by_arch = defaultdict(list) for package in self.others: by_arch[package.arch].append(package) - for _, packages in by_arch.items(): + for _, packages in list(by_arch.items()): if len(packages) == 1: yield packages[0] else: diff --git a/todolists/views.py b/todolists/views.py index 85539b7f..740d1155 100644 --- a/todolists/views.py +++ b/todolists/views.py @@ -218,7 +218,7 @@ def send_todolist_emails(todo_list, new_packages): for maint in maints: maint_packages.setdefault(maint, []).append(todo_package) - for maint, packages in maint_packages.iteritems(): + for maint, packages in maint_packages.items(): packages = sorted(packages, key=attrgetter('pkgname', 'arch')) ctx = { 'todo_packages': packages, diff --git a/visualize/views.py b/visualize/views.py index 9c537c20..27b2e03f 100644 --- a/visualize/views.py +++ b/visualize/views.py @@ -52,8 +52,8 @@ def arch_repo_data(): repo_groups[repo]['data'].append(values) data = { - 'by_arch': { 'name': 'Architectures', 'data': arch_groups.values() }, - 'by_repo': { 'name': 'Repositories', 'data': repo_groups.values() }, + 'by_arch': { 'name': 'Architectures', 'data': list(arch_groups.values()) }, + 'by_repo': { 'name': 'Repositories', 'data': list(repo_groups.values()) }, } return data |