Refactor and consolidate mixins by JonnyWong16 · Pull Request #1564 · pushingkarmaorg/python-plexapi

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR refactors the mixin architecture by introducing consolidated mixin classes for each media type (MovieMixins, ShowMixins, etc.), significantly reducing import complexity across the codebase while maintaining identical functionality.

Key changes:

  • Created 12 new consolidated mixin classes in plexapi/mixins.py (MovieMixins, ShowMixins, SeasonMixins, EpisodeMixins, ClipMixins, ArtistMixins, AlbumMixins, TrackMixins, PhotoalbumMixins, PhotoMixins, CollectionMixins, PlaylistMixins)
  • Updated all media type class definitions to use consolidated mixins instead of listing individual mixins
  • Enhanced type annotation in _parseQueryFeed method

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated no comments.

Show a summary per file
File Description
plexapi/mixins.py Adds 12 new consolidated mixin classes and improves type annotation for filtersDict
plexapi/video.py Updates Movie, Show, Season, Episode, and Clip classes to use consolidated mixins
plexapi/audio.py Updates Artist, Album, and Track classes to use consolidated mixins
plexapi/photo.py Updates Photoalbum and Photo classes to use consolidated mixins
plexapi/collection.py Updates Collection class to use consolidated mixins
plexapi/playlist.py Updates Playlist class to use consolidated mixins

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.