Skip to content

Commit 9d5abc9

Browse files
committed
perf: Convert attributes that call findItem to cached data properties
1 parent c31f7c6 commit 9d5abc9

File tree

3 files changed

+12
-3
lines changed

3 files changed

+12
-3
lines changed

plexapi/audio.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -403,7 +403,6 @@ def _loadData(self, data):
403403
self.parentTitle = data.attrib.get('parentTitle')
404404
self.rating = utils.cast(float, data.attrib.get('rating'))
405405
self.studio = data.attrib.get('studio')
406-
self.ultraBlurColors = self.findItem(data, media.UltraBlurColors)
407406
self.viewedLeafCount = utils.cast(int, data.attrib.get('viewedLeafCount'))
408407
self.year = utils.cast(int, data.attrib.get('year'))
409408

@@ -435,6 +434,10 @@ def styles(self):
435434
def subformats(self):
436435
return self.findItems(self._data, media.Subformat)
437436

437+
@cached_data_property
438+
def ultraBlurColors(self):
439+
return self.findItem(self._data, media.UltraBlurColors)
440+
438441
def __iter__(self):
439442
for track in self.tracks():
440443
yield track

plexapi/collection.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,6 @@ def _loadData(self, data):
102102
self.title = data.attrib.get('title')
103103
self.titleSort = data.attrib.get('titleSort', self.title)
104104
self.type = data.attrib.get('type')
105-
self.ultraBlurColors = self.findItem(data, media.UltraBlurColors)
106105
self.updatedAt = utils.toDatetime(data.attrib.get('updatedAt'))
107106
self.userRating = utils.cast(float, data.attrib.get('userRating'))
108107
self._items = None # cache for self.items
@@ -121,6 +120,10 @@ def images(self):
121120
def labels(self):
122121
return self.findItems(self._data, media.Label)
123122

123+
@cached_data_property
124+
def ultraBlurColors(self):
125+
return self.findItem(self._data, media.UltraBlurColors)
126+
124127
def __len__(self): # pragma: no cover
125128
return len(self.items())
126129

plexapi/video.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -1055,7 +1055,6 @@ def _loadData(self, data):
10551055
self.rating = utils.cast(float, data.attrib.get('rating'))
10561056
self.skipParent = utils.cast(bool, data.attrib.get('skipParent', '0'))
10571057
self.sourceURI = data.attrib.get('source') # remote playlist item
1058-
self.ultraBlurColors = self.findItem(data, media.UltraBlurColors)
10591058
self.viewOffset = utils.cast(int, data.attrib.get('viewOffset', 0))
10601059
self.year = utils.cast(int, data.attrib.get('year'))
10611060

@@ -1110,6 +1109,10 @@ def roles(self):
11101109
def writers(self):
11111110
return self.findItems(self._data, media.Writer)
11121111

1112+
@cached_data_property
1113+
def ultraBlurColors(self):
1114+
return self.findItem(self._data, media.UltraBlurColors)
1115+
11131116
@cached_property
11141117
def parentKey(self):
11151118
""" Returns the parentKey. Refer to the Episode attributes. """

0 commit comments

Comments
 (0)