mirror of
https://github.com/meeb/tubesync.git
synced 2025-06-20 20:16:35 +00:00
Upgrade multi_key_sort
Use the Python 3.8 argument list. Accept `key_func` to allow customization.
This commit is contained in:
parent
b535f1324e
commit
c090453931
@ -2,7 +2,7 @@ import os
|
||||
import re
|
||||
import math
|
||||
from copy import deepcopy
|
||||
from operator import itemgetter
|
||||
from operator import attrgetter, itemgetter
|
||||
from pathlib import Path
|
||||
from tempfile import NamedTemporaryFile
|
||||
import requests
|
||||
@ -179,10 +179,16 @@ def seconds_to_timestr(seconds):
|
||||
return '{:02d}:{:02d}:{:02d}'.format(hour, minutes, seconds)
|
||||
|
||||
|
||||
def multi_key_sort(sort_dict, specs, use_reversed=False):
|
||||
result = list(sort_dict)
|
||||
def multi_key_sort(iterable, specs, /, use_reversed=False, *, item=False, attr=False, key_func=None):
|
||||
result = list(iterable)
|
||||
if key_func is None:
|
||||
# itemgetter is the default
|
||||
if item or not (item or attr):
|
||||
key_func = itemgetter
|
||||
elif attr:
|
||||
key_func = attrgetter
|
||||
for key, reverse in reversed(specs):
|
||||
result = sorted(result, key=itemgetter(key), reverse=reverse)
|
||||
result.sort(key=key_func(key), reverse=reverse)
|
||||
if use_reversed:
|
||||
return list(reversed(result))
|
||||
return result
|
||||
|
Loading…
Reference in New Issue
Block a user