Lose the confusing list slicing

Slicing was to avoid duplicate items in the list. A more idomatic way
to avoid duplicate items in a list is to use a `set` instead.

The order of the list doesn’t really matter, but it’s a lot easier to
test for if the order is consistent.
This commit is contained in:
Chris Hill-Scott
2016-08-05 10:59:36 +01:00
parent 01bb2ada0a
commit b85b929b11

View File

@@ -2,6 +2,7 @@
import ago import ago
import time import time
import dateutil import dateutil
from orderedset import OrderedSet
from datetime import datetime, timedelta, timezone from datetime import datetime, timedelta, timezone
from itertools import chain from itertools import chain
@@ -51,12 +52,11 @@ def _set_status_filters(filter_args):
status_filters = filter_args.get('status', []) status_filters = filter_args.get('status', [])
all_failure_statuses = ['failed', 'temporary-failure', 'permanent-failure', 'technical-failure'] all_failure_statuses = ['failed', 'temporary-failure', 'permanent-failure', 'technical-failure']
all_sending_statuses = ['created', 'sending'] all_sending_statuses = ['created', 'sending']
all_statuses = all_sending_statuses + ['delivered'] + all_failure_statuses return list(OrderedSet(chain(
return list(chain( (status_filters or all_sending_statuses + ['delivered'] + all_failure_statuses),
(status_filters or all_statuses), all_sending_statuses if 'sending' in status_filters else [],
all_sending_statuses[:1] if 'sending' in status_filters else [], all_failure_statuses if 'failed' in status_filters else []
all_failure_statuses[1:] if 'failed' in status_filters else [] )))
))
@main.route("/services/<service_id>/jobs") @main.route("/services/<service_id>/jobs")