Skip to content

Commit 14b8d0e

Browse files
authored
Replace format strings with explicit call to format() for backward compatibility (fixes #576) (#577)
1 parent 737401b commit 14b8d0e

File tree

3 files changed

+26
-22
lines changed

3 files changed

+26
-22
lines changed

plexapi/playqueue.py

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -88,10 +88,10 @@ def getQueueItem(self, item):
8888
return matches[0]
8989
elif len(matches) > 1:
9090
raise BadRequest(
91-
f"{item} occurs multiple times in this PlayQueue, provide exact item"
91+
"{item} occurs multiple times in this PlayQueue, provide exact item".format(item=item)
9292
)
9393
else:
94-
raise BadRequest(f"{item} not valid for this PlayQueue")
94+
raise BadRequest("{item} not valid for this PlayQueue".format(item=item))
9595

9696
@classmethod
9797
def create(
@@ -130,21 +130,21 @@ def create(
130130

131131
if isinstance(items, list):
132132
item_keys = ",".join([str(x.ratingKey) for x in items])
133-
uri_args = quote_plus(f"/library/metadata/{item_keys}")
134-
args["uri"] = f"library:///directory/{uri_args}"
133+
uri_args = quote_plus("/library/metadata/{item_keys}".format(item_keys=item_keys))
134+
args["uri"] = "library:///directory/{uri_args}".format(uri_args=uri_args)
135135
args["type"] = items[0].listType
136136
elif items.type == "playlist":
137137
args["playlistID"] = items.ratingKey
138138
args["type"] = items.playlistType
139139
else:
140140
uuid = items.section().uuid
141141
args["type"] = items.listType
142-
args["uri"] = f"library://{uuid}/item/{items.key}"
142+
args["uri"] = "library://{uuid}/item/{key}".format(uuid=uuid, key=items.key)
143143

144144
if startItem:
145145
args["key"] = startItem.key
146146

147-
path = f"/playQueues{utils.joinArgs(args)}"
147+
path = "/playQueues{args}".format(args=utils.joinArgs(args))
148148
data = server.query(path, method=server._session.post)
149149
c = cls(server, data, initpath=path)
150150
c.playQueueType = args["type"]
@@ -174,15 +174,15 @@ def addItem(self, item, playNext=False, refresh=True):
174174
else:
175175
uuid = item.section().uuid
176176
itemType = item.listType
177-
args["uri"] = f"library://{uuid}/item{item.key}"
177+
args["uri"] = "library://{uuid}/item{key}".format(uuid=uuid, key=item.key)
178178

179179
if itemType != self.playQueueType:
180180
raise Unsupported("Item type does not match PlayQueue type")
181181

182182
if playNext:
183183
args["next"] = 1
184184

185-
path = f"/playQueues/{self.playQueueID}{utils.joinArgs(args)}"
185+
path = "/playQueues/{playQueueID}{args}".format(playQueueID=self.playQueueID, args=utils.joinArgs(args))
186186
data = self._server.query(path, method=self._server._session.put)
187187
self._loadData(data)
188188

@@ -210,7 +210,9 @@ def moveItem(self, item, after=None, refresh=True):
210210
after = self.getQueueItem(after)
211211
args["after"] = after.playQueueItemID
212212

213-
path = f"/playQueues/{self.playQueueID}/items/{item.playQueueItemID}/move{utils.joinArgs(args)}"
213+
path = "/playQueues/{playQueueID}/items/{playQueueItemID}/move{args}".format(
214+
playQueueID=self.playQueueID, playQueueItemID=item.playQueueItemID, args=utils.joinArgs(args)
215+
)
214216
data = self._server.query(path, method=self._server._session.put)
215217
self._loadData(data)
216218

@@ -227,18 +229,20 @@ def removeItem(self, item, refresh=True):
227229
if item not in self:
228230
item = self.getQueueItem(item)
229231

230-
path = f"/playQueues/{self.playQueueID}/items/{item.playQueueItemID}"
232+
path = "/playQueues/{playQueueID}/items/{playQueueItemID}".format(
233+
playQueueID=self.playQueueID, playQueueItemID=item.playQueueItemID
234+
)
231235
data = self._server.query(path, method=self._server._session.delete)
232236
self._loadData(data)
233237

234238
def clear(self):
235239
"""Remove all items from the PlayQueue."""
236-
path = f"/playQueues/{self.playQueueID}/items"
240+
path = "/playQueues/{playQueueID}/items".format(playQueueID=self.playQueueID)
237241
data = self._server.query(path, method=self._server._session.delete)
238242
self._loadData(data)
239243

240244
def refresh(self):
241245
"""Refresh the PlayQueue from the Plex server."""
242-
path = f"/playQueues/{self.playQueueID}"
246+
path = "/playQueues/{playQueueID}".format(playQueueID=self.playQueueID)
243247
data = self._server.query(path, method=self._server._session.get)
244248
self._loadData(data)

tests/test__prepare.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ def wait_for_idle_server(server):
1010
"""Wait for PMS activities to complete with a timeout."""
1111
attempts = 0
1212
while server.activities and attempts < MAX_ATTEMPTS:
13-
print(f"Waiting for activities to finish: {server.activities}")
13+
print("Waiting for activities to finish: {activities}".format(activities=server.activities))
1414
time.sleep(1)
1515
attempts += 1
16-
assert attempts < MAX_ATTEMPTS, f"Server still busy after {MAX_ATTEMPTS}s"
16+
assert attempts < MAX_ATTEMPTS, "Server still busy after {MAX_ATTEMPTS}s".format(MAX_ATTEMPTS=MAX_ATTEMPTS)
1717

1818

1919
def wait_for_metadata_processing(server):
@@ -26,12 +26,12 @@ def wait_for_metadata_processing(server):
2626
tl = section.timeline()
2727
if tl.updateQueueSize > 0:
2828
busy = True
29-
print(f"{section.title}: {tl.updateQueueSize} items left")
29+
print("{title}: {updateQueueSize} items left".format(title=section.title, updateQueueSize=tl.updateQueueSize))
3030
if not busy or attempts > MAX_ATTEMPTS:
3131
break
3232
time.sleep(1)
3333
attempts += 1
34-
assert attempts < MAX_ATTEMPTS, f"Metadata still processing after {MAX_ATTEMPTS}s"
34+
assert attempts < MAX_ATTEMPTS, "Metadata still processing after {MAX_ATTEMPTS}s".format(MAX_ATTEMPTS=MAX_ATTEMPTS)
3535

3636

3737
def test_ensure_activities_completed(plex):

tools/plex-markwatched.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ def _has_markwatched_tag(item):
2626

2727
def _get_title(item):
2828
if item.type == 'episode':
29-
return f'{item.grandparentTitle} {item.seasonEpisode}'
29+
return '{title} {episode}'.format(title=item.grandparentTitle, episode=item.seasonEpisode)
3030
return item.title
3131

3232

@@ -41,17 +41,17 @@ def _iter_items(search):
4141

4242
if __name__ == '__main__':
4343
datestr = lambda: datetime.now().strftime('%Y-%m-%d %H:%M:%S') # noqa
44-
print(f'{datestr()} Starting plex-markwatched script..')
44+
print('{datestr} Starting plex-markwatched script..'.format(datestr=datestr()))
4545
plex = PlexServer()
4646
for section in plex.library.sections():
47-
print(f'{datestr()} Checking {section.title} for unwatched items..')
47+
print('{datestr} Checking {section.title} for unwatched items..'.format(datestr=datestr()))
4848
for item in _iter_items(section.search(collection='markwatched')):
4949
if not item.isWatched:
50-
print(f'{datestr()} Marking {_get_title(item)} watched.')
50+
print('{datestr} Marking {_get_title(item)} watched.'.format(datestr=datestr()))
5151
item.markWatched()
5252
# Check all OnDeck items
53-
print(f'{datestr()} Checking OnDeck for unwatched items..')
53+
print('{datestr} Checking OnDeck for unwatched items..'.format(datestr=datestr()))
5454
for item in plex.library.onDeck():
5555
if not item.isWatched and _has_markwatched_tag(item):
56-
print(f'{datestr()} Marking {_get_title(item)} watched.')
56+
print('{datestr} Marking {_get_title(item)} watched.'.format(datestr=datestr()))
5757
item.markWatched()

0 commit comments

Comments
 (0)