From d8d1f75605fdc1679890837395af4a80d16beee1 Mon Sep 17 00:00:00 2001 From: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com> Date: Tue, 10 Oct 2023 19:32:30 -0700 Subject: [PATCH] Use group_by_keys helper for library stats --- plexpy/datafactory.py | 3 +-- plexpy/helpers.py | 4 +++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/plexpy/datafactory.py b/plexpy/datafactory.py index bd5a7c31..0937480d 100644 --- a/plexpy/datafactory.py +++ b/plexpy/datafactory.py @@ -22,7 +22,6 @@ from future.builtins import str from future.builtins import object import json -from itertools import groupby import plexpy if plexpy.PYTHON2: @@ -1187,7 +1186,7 @@ class DataFactory(object): library_stats.append(library) library_stats = session.mask_session_info(library_stats) - library_stats = {k: list(v) for k, v in groupby(library_stats, key=lambda x: x['section_type'])} + library_stats = helpers.group_by_keys(library_stats, 'section_type') return library_stats diff --git a/plexpy/helpers.py b/plexpy/helpers.py index e8056eb4..25850a16 100644 --- a/plexpy/helpers.py +++ b/plexpy/helpers.py @@ -1244,8 +1244,10 @@ def grouper(iterable, n, fillvalue=None): def group_by_keys(iterable, keys): - key_function = operator.itemgetter(*keys) + if not isinstance(keys, (list, tuple)): + keys = [keys] + key_function = operator.itemgetter(*keys) sorted_iterable = sorted(iterable, key=key_function) return {key: list(group) for key, group in groupby(sorted_iterable, key_function)}