diff --git a/plexapi/collection.py b/plexapi/collection.py index 75d76445d..adb621d93 100644 --- a/plexapi/collection.py +++ b/plexapi/collection.py @@ -11,7 +11,6 @@ ArtMixin, LogoMixin, PosterMixin, SquareArtMixin, ThemeMixin, CollectionEditMixins ) -from plexapi.utils import deprecated @utils.registerPlexObject @@ -166,11 +165,6 @@ def isPhoto(self): """ Returns True if this is a photo collection. """ return self.subtype in {'photoalbum', 'photo'} - @property - @deprecated('use "items" instead', stacklevel=3) - def children(self): - return self.items() - @cached_data_property def _filters(self): """ Cache for filters. """ @@ -422,33 +416,6 @@ def updateFilters(self, libtype=None, limit=None, sort=None, filters=None, **kwa self._server.query(key, method=self._server._session.put) return self - @deprecated('use editTitle, editSortTitle, editContentRating, and editSummary instead') - def edit(self, title=None, titleSort=None, contentRating=None, summary=None, **kwargs): - """ Edit the collection. - - Parameters: - title (str, optional): The title of the collection. - titleSort (str, optional): The sort title of the collection. - contentRating (str, optional): The summary of the collection. - summary (str, optional): The summary of the collection. - """ - args = {} - if title is not None: - args['title.value'] = title - args['title.locked'] = 1 - if titleSort is not None: - args['titleSort.value'] = titleSort - args['titleSort.locked'] = 1 - if contentRating is not None: - args['contentRating.value'] = contentRating - args['contentRating.locked'] = 1 - if summary is not None: - args['summary.value'] = summary - args['summary.locked'] = 1 - - args.update(kwargs) - self._edit(**args) - def delete(self): """ Delete the collection. """ super(Collection, self).delete() diff --git a/plexapi/library.py b/plexapi/library.py index 5d54b6a8b..cf0847268 100644 --- a/plexapi/library.py +++ b/plexapi/library.py @@ -16,7 +16,6 @@ ArtistEditMixins, AlbumEditMixins, TrackEditMixins, PhotoalbumEditMixins, PhotoEditMixins ) from plexapi.settings import Setting -from plexapi.utils import deprecated if TYPE_CHECKING: @@ -1688,14 +1687,6 @@ def playlists(self, sort=None, **kwargs): return self._server.playlists( playlistType=self.CONTENT_TYPE, sectionId=self.key, sort=sort, **kwargs) - @deprecated('use "listFields" instead') - def filterFields(self, mediaType=None): - return self.listFields(libtype=mediaType) - - @deprecated('use "listFilterChoices" instead') - def listChoices(self, category, libtype=None, **kwargs): - return self.listFilterChoices(field=category, libtype=libtype) - def getWebURL(self, base=None, tab=None, key=None): """ Returns the Plex Web URL for the library. diff --git a/plexapi/media.py b/plexapi/media.py index ad8ab45b5..484f30d9f 100644 --- a/plexapi/media.py +++ b/plexapi/media.py @@ -6,7 +6,6 @@ from plexapi import log, settings, utils from plexapi.base import PlexObject, cached_data_property from plexapi.exceptions import BadRequest -from plexapi.utils import deprecated @utils.registerPlexObject @@ -231,18 +230,6 @@ def resetSelectedSubtitleStream(self): self._server.query(key, method=self._server._session.put, params=params) return self - @deprecated('Use "setSelectedAudioStream" instead.') - def setDefaultAudioStream(self, stream): - return self.setSelectedAudioStream(stream) - - @deprecated('Use "setSelectedSubtitleStream" instead.') - def setDefaultSubtitleStream(self, stream): - return self.setSelectedSubtitleStream(stream) - - @deprecated('Use "resetSelectedSubtitleStream" instead.') - def resetDefaultSubtitleStream(self): - return self.resetSelectedSubtitleStream() - class MediaPartStream(PlexObject): """ Base class for media streams. These consist of video, audio, subtitles, and lyrics. @@ -444,10 +431,6 @@ def levels(self, subSample=128): params = {'subsample': subSample} return self.fetchItems(key, params=params) - @deprecated('Use "setSelected" instead.') - def setDefault(self): - return self.setSelected() - @utils.registerPlexObject class SubtitleStream(MediaPartStream): @@ -494,10 +477,6 @@ def setSelected(self): """ return self._parent().setSelectedSubtitleStream(self) - @deprecated('Use "setSelected" instead.') - def setDefault(self): - return self.setSelected() - @utils.registerPlexObject class LyricStream(MediaPartStream): @@ -1281,20 +1260,11 @@ def mediaTypes(self): return self.findItems(self._data, cls=AgentMediaType) return [] - @property - @deprecated('use "languageCodes" instead') - def languageCode(self): - return self.languageCodes - def settings(self): key = f'/:/plugins/{self.identifier}/prefs' data = self._server.query(key) return self.findItems(data, cls=settings.Setting) - @deprecated('use "settings" instead') - def _settings(self): - return self.settings() - class AgentMediaType(Agent): """ Represents a single Agent MediaType. @@ -1317,11 +1287,6 @@ def _loadData(self, data): def languageCodes(self): return self.listAttrs(self._data, 'code', etag='Language') - @property - @deprecated('use "languageCodes" instead') - def languageCode(self): - return self.languageCodes - @utils.registerPlexObject class Availability(PlexObject): diff --git a/plexapi/mixins.py b/plexapi/mixins.py index f27ab71ec..f978626eb 100644 --- a/plexapi/mixins.py +++ b/plexapi/mixins.py @@ -6,7 +6,7 @@ from plexapi import media, settings, utils from plexapi.exceptions import BadRequest, NotFound -from plexapi.utils import deprecated, openOrRead +from plexapi.utils import openOrRead class AdvancedSettingsMixin: @@ -937,10 +937,6 @@ def editUserRating(self, userRating, locked=True): class EditTagsMixin: """ Mixin for editing Plex object tags. """ - @deprecated('use "editTags" instead') - def _edit_tags(self, tag, items, locked=True, remove=False): - return self.editTags(tag, items, locked, remove) - def editTags(self, tag, items, locked=True, remove=False, **kwargs): """ Edit the tags of a Plex object. All tag editing methods can be chained together. Also see :func:`~plexapi.base.PlexPartialObject.batchEdits` for batch editing tags. diff --git a/plexapi/playlist.py b/plexapi/playlist.py index 8fe0625c6..b9deed0eb 100644 --- a/plexapi/playlist.py +++ b/plexapi/playlist.py @@ -9,7 +9,6 @@ from plexapi.exceptions import BadRequest, NotFound, Unsupported from plexapi.library import LibrarySection, MusicSection from plexapi.mixins import SmartFilterMixin, ArtMixin, LogoMixin, PosterMixin, SquareArtMixin, PlaylistEditMixins -from plexapi.utils import deprecated @utils.registerPlexObject @@ -253,10 +252,6 @@ def addItems(self, items): return self - @deprecated('use "removeItems" instead') - def removeItem(self, item): - self.removeItems(item) - def removeItems(self, items): """ Remove items from the playlist. @@ -345,21 +340,6 @@ def _edit(self, **kwargs): self._server.query(key, method=self._server._session.put) return self - @deprecated('use "editTitle" and "editSummary" instead') - def edit(self, title=None, summary=None): - """ Edit the playlist. - - Parameters: - title (str, optional): The title of the playlist. - summary (str, optional): The summary of the playlist. - """ - args = {} - if title: - args['title'] = title - if summary: - args['summary'] = summary - return self._edit(**args) - def delete(self): """ Delete the playlist. """ self._server.query(self.key, method=self._server._session.delete) diff --git a/plexapi/server.py b/plexapi/server.py index 239036c41..4787dca64 100644 --- a/plexapi/server.py +++ b/plexapi/server.py @@ -16,7 +16,6 @@ from plexapi.playlist import Playlist from plexapi.playqueue import PlayQueue from plexapi.settings import Settings -from plexapi.utils import deprecated from requests.status_codes import _codes as codes # Need these imports to populate utils.PLEXOBJECTS @@ -613,10 +612,6 @@ def runButlerTask(self, task): self.query(f'/butler/{task}', method=self._session.post) return self - @deprecated('use "checkForUpdate" instead') - def check_for_update(self, force=True, download=False): - return self.checkForUpdate(force=force, download=download) - def checkForUpdate(self, force=True, download=False): """ Returns a :class:`~plexapi.server.Release` object containing release info if an update is available or None if no update is available. @@ -728,15 +723,6 @@ def optimizedItems(self, removeAll=None): backgroundProcessing = self.fetchItem('/playlists?type=42') return self.fetchItems(f'{backgroundProcessing.key}/items', cls=Optimized) - @deprecated('use "plexapi.media.Optimized.items()" instead') - def optimizedItem(self, optimizedID): - """ Returns single queued optimized item :class:`~plexapi.media.Video` object. - Allows for using optimized item ID to connect back to source item. - """ - - backgroundProcessing = self.fetchItem('/playlists?type=42') - return self.fetchItem(f'{backgroundProcessing.key}/items/{optimizedID}/items') - def conversions(self, pause=None): """ Returns list of all :class:`~plexapi.media.Conversion` objects connected to server. """ if pause is True: