Skip to content

Commit f13887d

Browse files
committed
Removed superfluous iter() and fixed instances where sorted() had to compare None and int.
- Legacy-Id: 16352
1 parent 942fc7f commit f13887d

1 file changed

Lines changed: 23 additions & 24 deletions

File tree

ietf/stats/views.py

Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ def add_url_to_choices(choices, url_builder):
8686

8787
def put_into_bin(value, bin_size):
8888
if value is None:
89-
return (value, value)
89+
return (0, '')
9090

9191
v = (value // bin_size) * bin_size
9292
return (v, "{} - {}".format(v, v + bin_size - 1))
@@ -114,7 +114,7 @@ def add_labeled_top_series_from_bins(chart_data, bins, limit):
114114

115115
xs = list(sorted(xs))
116116

117-
sorted_bins = sorted(iter(aggregated_bins.items()), key=lambda t: len(t[1]), reverse=True)
117+
sorted_bins = sorted(aggregated_bins.items(), key=lambda t: len(t[1]), reverse=True)
118118
top = [ label for label, names in list(sorted_bins)[:limit]]
119119

120120
for label in top:
@@ -238,8 +238,8 @@ def build_document_stats_url(stats_type_override=Ellipsis, get_overrides={}):
238238

239239
total_docs = docalias_qs.values_list("docs__name").distinct().count()
240240

241-
def generate_canonical_names(docalias_qs):
242-
for doc_id, ts in itertools.groupby(docalias_qs.order_by("docs__name"), lambda t: t[0]):
241+
def generate_canonical_names(values):
242+
for doc_id, ts in itertools.groupby(values.order_by("docs__name"), lambda a: a[0]):
243243
chosen = None
244244
for t in ts:
245245
if chosen is None:
@@ -249,7 +249,6 @@ def generate_canonical_names(docalias_qs):
249249
chosen = t
250250
elif t[1].startswith("draft") and not chosen[1].startswith("rfc"):
251251
chosen = t
252-
253252
yield chosen
254253

255254
if stats_type == "authors":
@@ -258,10 +257,10 @@ def generate_canonical_names(docalias_qs):
258257
bins = defaultdict(set)
259258

260259
for name, canonical_name, author_count in generate_canonical_names(docalias_qs.values_list("docs__name", "name").annotate(Count("docs__documentauthor"))):
261-
bins[author_count].add(canonical_name)
260+
bins[author_count or 0].add(canonical_name)
262261

263262
series_data = []
264-
for author_count, names in sorted(iter(bins.items()), key=lambda t: t[0]):
263+
for author_count, names in sorted(bins.items(), key=lambda t: t[0]):
265264
percentage = len(names) * 100.0 / (total_docs or 1)
266265
series_data.append((author_count, percentage))
267266
table_data.append((author_count, percentage, len(names), list(names)[:names_limit]))
@@ -274,10 +273,10 @@ def generate_canonical_names(docalias_qs):
274273
bins = defaultdict(set)
275274

276275
for name, canonical_name, pages in generate_canonical_names(docalias_qs.values_list("docs__name", "name", "docs__pages")):
277-
bins[pages].add(canonical_name)
276+
bins[pages or 0].add(canonical_name)
278277

279278
series_data = []
280-
for pages, names in sorted(iter(bins.items()), key=lambda t: t[0]):
279+
for pages, names in sorted(bins.items(), key=lambda t: t[0]):
281280
percentage = len(names) * 100.0 / (total_docs or 1)
282281
if pages is not None:
283282
series_data.append((pages, len(names)))
@@ -296,7 +295,7 @@ def generate_canonical_names(docalias_qs):
296295
bins[put_into_bin(words, bin_size)].add(canonical_name)
297296

298297
series_data = []
299-
for (value, words), names in sorted(iter(bins.items()), key=lambda t: t[0][0]):
298+
for (value, words), names in sorted(bins.items(), key=lambda t: t[0][0]):
300299
percentage = len(names) * 100.0 / (total_docs or 1)
301300
if words is not None:
302301
series_data.append((value, len(names)))
@@ -349,7 +348,7 @@ def generate_canonical_names(docalias_qs):
349348
bins[ext.upper()].add(canonical_name)
350349

351350
series_data = []
352-
for fmt, names in sorted(iter(bins.items()), key=lambda t: t[0]):
351+
for fmt, names in sorted(bins.items(), key=lambda t: t[0]):
353352
percentage = len(names) * 100.0 / (total_docs or 1)
354353
series_data.append((fmt, len(names)))
355354

@@ -366,7 +365,7 @@ def generate_canonical_names(docalias_qs):
366365
bins[formal_language_name].add(canonical_name)
367366

368367
series_data = []
369-
for formal_language, names in sorted(iter(bins.items()), key=lambda t: t[0]):
368+
for formal_language, names in sorted(bins.items(), key=lambda t: t[0]):
370369
percentage = len(names) * 100.0 / (total_docs or 1)
371370
if formal_language is not None:
372371
series_data.append((formal_language, len(names)))
@@ -412,12 +411,12 @@ def generate_canonical_names(docalias_qs):
412411
person_qs = Person.objects.filter(person_filters)
413412

414413
for name, document_count in person_qs.values_list("name").annotate(Count("documentauthor")):
415-
bins[document_count].add(name)
414+
bins[document_count or 0].add(name)
416415

417416
total_persons = count_bins(bins)
418417

419418
series_data = []
420-
for document_count, names in sorted(iter(bins.items()), key=lambda t: t[0]):
419+
for document_count, names in sorted(bins.items(), key=lambda t: t[0]):
421420
percentage = len(names) * 100.0 / (total_persons or 1)
422421
series_data.append((document_count, percentage))
423422
plain_names = [ plain_name(n) for n in names ]
@@ -450,7 +449,7 @@ def generate_canonical_names(docalias_qs):
450449
total_persons = count_bins(bins)
451450

452451
series_data = []
453-
for affiliation, names in sorted(iter(bins.items()), key=lambda t: t[0].lower()):
452+
for affiliation, names in sorted(bins.items(), key=lambda t: t[0].lower()):
454453
percentage = len(names) * 100.0 / (total_persons or 1)
455454
if affiliation:
456455
series_data.append((affiliation, len(names)))
@@ -462,7 +461,7 @@ def generate_canonical_names(docalias_qs):
462461

463462
chart_data.append({ "data": series_data })
464463

465-
for alias, name in sorted(iter(aliases.items()), key=lambda t: t[1]):
464+
for alias, name in sorted(aliases.items(), key=lambda t: t[1]):
466465
alias_data.append((name, alias))
467466

468467
elif stats_type == "author/country":
@@ -499,7 +498,7 @@ def generate_canonical_names(docalias_qs):
499498
total_persons = count_bins(bins)
500499

501500
series_data = []
502-
for country, names in sorted(iter(bins.items()), key=lambda t: t[0].lower()):
501+
for country, names in sorted(bins.items(), key=lambda t: t[0].lower()):
503502
percentage = len(names) * 100.0 / (total_persons or 1)
504503
if country:
505504
series_data.append((country, len(names)))
@@ -541,7 +540,7 @@ def generate_canonical_names(docalias_qs):
541540
total_persons = count_bins(bins)
542541

543542
series_data = []
544-
for continent, names in sorted(iter(bins.items()), key=lambda t: t[0].lower()):
543+
for continent, names in sorted(bins.items(), key=lambda t: t[0].lower()):
545544
percentage = len(names) * 100.0 / (total_persons or 1)
546545
if continent:
547546
series_data.append((continent, len(names)))
@@ -563,12 +562,12 @@ def generate_canonical_names(docalias_qs):
563562
person_qs = Person.objects.filter(person_filters)
564563

565564
for name, citations in person_qs.values_list("name").annotate(Count("documentauthor__document__docalias__relateddocument")):
566-
bins[citations].add(name)
565+
bins[citations or 0].add(name)
567566

568567
total_persons = count_bins(bins)
569568

570569
series_data = []
571-
for citations, names in sorted(iter(bins.items()), key=lambda t: t[0], reverse=True):
570+
for citations, names in sorted(bins.items(), key=lambda t: t[0], reverse=True):
572571
percentage = len(names) * 100.0 / (total_persons or 1)
573572
series_data.append((citations, percentage))
574573
plain_names = [ plain_name(n) for n in names ]
@@ -589,12 +588,12 @@ def generate_canonical_names(docalias_qs):
589588
values = person_qs.values_list("name", "documentauthor__document").annotate(Count("documentauthor__document__docalias__relateddocument"))
590589
for name, ts in itertools.groupby(values.order_by("name"), key=lambda t: t[0]):
591590
h_index = compute_hirsch_index([citations for _, document, citations in ts])
592-
bins[h_index].add(name)
591+
bins[h_index or 0].add(name)
593592

594593
total_persons = count_bins(bins)
595594

596595
series_data = []
597-
for citations, names in sorted(iter(bins.items()), key=lambda t: t[0], reverse=True):
596+
for citations, names in sorted(bins.items(), key=lambda t: t[0], reverse=True):
598597
percentage = len(names) * 100.0 / (total_persons or 1)
599598
series_data.append((citations, percentage))
600599
plain_names = [ plain_name(n) for n in names ]
@@ -835,7 +834,7 @@ def reg_name(r):
835834
total_attendees = count_bins(bins)
836835

837836
series_data = []
838-
for country, names in sorted(iter(bins.items()), key=lambda t: t[0].lower()):
837+
for country, names in sorted(bins.items(), key=lambda t: t[0].lower()):
839838
percentage = len(names) * 100.0 / (total_attendees or 1)
840839
if country:
841840
series_data.append((country, len(names)))
@@ -869,7 +868,7 @@ def reg_name(r):
869868
total_attendees = count_bins(bins)
870869

871870
series_data = []
872-
for continent, names in sorted(iter(bins.items()), key=lambda t: t[0].lower()):
871+
for continent, names in sorted(bins.items(), key=lambda t: t[0].lower()):
873872
percentage = len(names) * 100.0 / (total_attendees or 1)
874873
if continent:
875874
series_data.append((continent, len(names)))

0 commit comments

Comments
 (0)