Skip to content

Commit f5a1d7e

Browse files
authored
Refactor and consolidate mixins (#1564)
* Refactor mixins * Fix filtersDict type hint * Refactor all mixins into separate module and files * Remove file encoding Ref.: #1576
1 parent e7e9b8c commit f5a1d7e

17 files changed

Lines changed: 1602 additions & 1487 deletions

plexapi/audio.py

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,7 @@
99
from plexapi import media, utils
1010
from plexapi.base import Playable, PlexPartialObject, PlexHistory, PlexSession, cached_data_property
1111
from plexapi.exceptions import BadRequest
12-
from plexapi.mixins import (
13-
AdvancedSettingsMixin, SplitMergeMixin, UnmatchMatchMixin, ExtrasMixin, HubsMixin, PlayedUnplayedMixin, RatingMixin,
14-
ArtUrlMixin, ArtMixin, LogoMixin, LogoUrlMixin, PosterUrlMixin, PosterMixin, SquareArtMixin, SquareArtUrlMixin,
15-
ThemeMixin, ThemeUrlMixin,
16-
ArtistEditMixins, AlbumEditMixins, TrackEditMixins
17-
)
12+
from plexapi.mixins import ArtistMixins, AlbumMixins, TrackMixins, PlayedUnplayedMixin
1813
from plexapi.playlist import Playlist
1914

2015

@@ -179,10 +174,7 @@ def sonicallySimilar(
179174

180175
@utils.registerPlexObject
181176
class Artist(
182-
Audio,
183-
AdvancedSettingsMixin, SplitMergeMixin, UnmatchMatchMixin, ExtrasMixin, HubsMixin, RatingMixin,
184-
ArtMixin, LogoMixin, PosterMixin, SquareArtMixin, ThemeMixin,
185-
ArtistEditMixins
177+
Audio, ArtistMixins
186178
):
187179
""" Represents a single Artist.
188180
@@ -349,10 +341,7 @@ def metadataDirectory(self):
349341

350342
@utils.registerPlexObject
351343
class Album(
352-
Audio,
353-
SplitMergeMixin, UnmatchMatchMixin, RatingMixin,
354-
ArtMixin, LogoMixin, PosterMixin, SquareArtMixin, ThemeUrlMixin,
355-
AlbumEditMixins
344+
Audio, AlbumMixins
356345
):
357346
""" Represents a single Album.
358347
@@ -502,10 +491,7 @@ def metadataDirectory(self):
502491

503492
@utils.registerPlexObject
504493
class Track(
505-
Audio, Playable,
506-
ExtrasMixin, RatingMixin,
507-
ArtUrlMixin, LogoUrlMixin, PosterUrlMixin, SquareArtUrlMixin, ThemeUrlMixin,
508-
TrackEditMixins
494+
Audio, Playable, TrackMixins
509495
):
510496
""" Represents a single Track.
511497

plexapi/collection.py

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,13 @@
55
from plexapi.base import PlexPartialObject, cached_data_property
66
from plexapi.exceptions import BadRequest, NotFound, Unsupported
77
from plexapi.library import LibrarySection, ManagedHub
8-
from plexapi.mixins import (
9-
AdvancedSettingsMixin, SmartFilterMixin, HubsMixin, RatingMixin,
10-
ArtMixin, LogoMixin, PosterMixin, SquareArtMixin, ThemeMixin,
11-
CollectionEditMixins
12-
)
8+
from plexapi.mixins import CollectionMixins
139
from plexapi.utils import deprecated
1410

1511

1612
@utils.registerPlexObject
1713
class Collection(
18-
PlexPartialObject,
19-
AdvancedSettingsMixin, SmartFilterMixin, HubsMixin, RatingMixin,
20-
ArtMixin, LogoMixin, PosterMixin, SquareArtMixin, ThemeMixin,
21-
CollectionEditMixins
14+
PlexPartialObject, CollectionMixins
2215
):
2316
""" Represents a single Collection.
2417

0 commit comments

Comments
 (0)