diff --git a/ditto/core/templatetags/ditto_core.py b/ditto/core/templatetags/ditto_core.py index 7e9b26c..cb18eae 100644 --- a/ditto/core/templatetags/ditto_core.py +++ b/ditto/core/templatetags/ditto_core.py @@ -160,8 +160,7 @@ def current_url_name(context): """ url_name = False if context.request.resolver_match: - url_name = "{}:{}".format( - context.request.resolver_match.namespace, - context.request.resolver_match.url_name, - ) + namespace = context.request.resolver_match.namespace + name = context.request.resolver_match.url_name + url_name = f"{namespace}:{name}" return url_name diff --git a/ditto/core/views.py b/ditto/core/views.py index 3b5de04..7dd6a03 100644 --- a/ditto/core/views.py +++ b/ditto/core/views.py @@ -240,8 +240,9 @@ def set_app_and_variety(self, **kwargs): app_slug, variety_slug ) elif variety_slug: - msg = "'{}' is not a valid variety slug for the '{}' app slug.".format( - variety_slug, app_slug + msg = ( + f"'{variety_slug}' is not a valid variety slug for " + f"the '{app_slug}' app slug." ) raise Http404(msg) elif app_slug: diff --git a/ditto/flickr/admin.py b/ditto/flickr/admin.py index d3d7152..12a3fc2 100644 --- a/ditto/flickr/admin.py +++ b/ditto/flickr/admin.py @@ -441,20 +441,18 @@ class PhotoAdmin(DittoItemModelAdmin): def show_thumb(self, instance): return mark_safe( - ''.format( - instance.thumbnail_url, - instance.thumbnail_width, - instance.thumbnail_height, - ) + f'' ) show_thumb.short_description = "Thumbnail" def show_image(self, instance): return mark_safe( - ''.format( - instance.small_url, instance.small_width, instance.small_height - ) + f'' ) show_image.short_description = "Small image" diff --git a/ditto/flickr/fetch/fetchers.py b/ditto/flickr/fetch/fetchers.py index 8078849..1c0e6e6 100644 --- a/ditto/flickr/fetch/fetchers.py +++ b/ditto/flickr/fetch/fetchers.py @@ -551,8 +551,9 @@ def _fetch_photos_in_photoset(self, photoset_id): page=page_number, ) except FlickrError as err: - msg = "Error when fetching photos in photoset {} (page {}): {}".format( - photoset_id, page_number, err + msg = ( + f"Error when fetching photos in photoset {photoset_id} " + f"(page {page_number}): {err}" ) raise FetchError(msg) from err diff --git a/ditto/flickr/models.py b/ditto/flickr/models.py index be95140..e403eb3 100644 --- a/ditto/flickr/models.py +++ b/ditto/flickr/models.py @@ -495,6 +495,9 @@ def upload_path(self, filename): class Meta: ordering = ("-post_time",) + def __str__(self): + return super().__str_(self) + def save(self, *args, **kwargs): if self.taken_time: self.taken_year = self.taken_time.year @@ -681,12 +684,9 @@ def _remote_image_url(self, size): # Medium size doesn't have a letter suffix. if self.PHOTO_SIZES[size]["suffix"]: size_ext = "_{}".format(self.PHOTO_SIZES[size]["suffix"]) - return "https://farm{}.static.flickr.com/{}/{}_{}{}.jpg".format( - self.farm, - self.server, - self.flickr_id, - self.secret, - size_ext, + return ( + f"https://farm{self.farm}.static.flickr.com/{self.server}/" + f"{self.flickr_id}_{self.secret}{size_ext}.jpg" ) def _video_url(self, size): @@ -912,10 +912,9 @@ def avatar_url(self): def original_icon_url(self): """URL of the avatar/profile pic at Flickr.""" if self.iconserver: - return "https://farm{}.staticflickr.com/{}/buddyicons/{}.jpg".format( - self.iconfarm, - self.iconserver, - self.nsid, + return ( + f"https://farm{self.iconfarm}.staticflickr.com/{self.iconserver}" + f"/buddyicons/{self.nsid}.jpg" ) else: return "https://www.flickr.com/images/buddyicon.gif" diff --git a/ditto/flickr/templatetags/ditto_flickr.py b/ditto/flickr/templatetags/ditto_flickr.py index 4fe8554..4007717 100644 --- a/ditto/flickr/templatetags/ditto_flickr.py +++ b/ditto/flickr/templatetags/ditto_flickr.py @@ -85,9 +85,8 @@ def photo_license(n): if n in licenses: if n in Photo.LICENSE_URLS and Photo.LICENSE_URLS[n] != "": return format_html( - '{}'.format( - Photo.LICENSE_URLS[n], licenses[n] - ) + f'' + f"{licenses[n]}" ) else: return licenses[n] diff --git a/ditto/lastfm/models.py b/ditto/lastfm/models.py index cb8144e..c47e4d3 100644 --- a/ditto/lastfm/models.py +++ b/ditto/lastfm/models.py @@ -111,10 +111,8 @@ def get_absolute_url(self): @property def permalink(self): "The Album's URL at Last.fm." - return "{}/music/{}/{}".format( - LASTFM_URL_ROOT, - self.artist.original_slug, - self.original_slug, + return ( + f"{LASTFM_URL_ROOT}/music/{self.artist.original_slug}/{self.original_slug}" ) @property @@ -339,10 +337,9 @@ def get_absolute_url(self): @property def permalink(self): "The Track's URL at Last.fm." - return "{}/music/{}/_/{}".format( - LASTFM_URL_ROOT, - self.artist.original_slug, - self.original_slug, + return ( + f"{LASTFM_URL_ROOT}/music/{self.artist.original_slug}/_/" + f"{self.original_slug}" ) @property diff --git a/ditto/twitter/admin.py b/ditto/twitter/admin.py index 089cb29..2ea2ef8 100644 --- a/ditto/twitter/admin.py +++ b/ditto/twitter/admin.py @@ -155,29 +155,24 @@ class MediaAdmin(admin.ModelAdmin): def show_thumb(self, instance): return mark_safe( - ''.format( - instance.thumbnail_url, - instance.thumbnail_w, - instance.thumbnail_h, - ) + f'' ) show_thumb.short_description = "" def show_image(self, instance): if instance.media_type == "photo": - html = ''.format( - instance.small_url, - instance.small_w, - instance.small_h, + html = ( + f'' ) else: - html = ''.format( # noqa: E501 - instance.small_w, - instance.small_h, - instance.small_url, - instance.video_url, - instance.video_mime_type, + html = ( + f'" ) return mark_safe(html) diff --git a/ditto/twitter/models.py b/ditto/twitter/models.py index 0153c9c..f173c71 100644 --- a/ditto/twitter/models.py +++ b/ditto/twitter/models.py @@ -607,9 +607,9 @@ def is_reply(self): def in_reply_to_url(self): "If it's a reply, the link to the tweet replied to." if self.is_reply: - return "https://twitter.com/{}/status/{}".format( - self.in_reply_to_screen_name, - self.in_reply_to_status_id, + return ( + f"https://twitter.com/{self.in_reply_to_screen_name}/" + f"status/{self.in_reply_to_status_id}" ) else: return "" diff --git a/tests/pinboard/test_fetch.py b/tests/pinboard/test_fetch.py index d8d4c55..8d2a491 100644 --- a/tests/pinboard/test_fetch.py +++ b/tests/pinboard/test_fetch.py @@ -74,10 +74,9 @@ def make_success_body( if method == "all": return posts_json else: - return '{{"date":"{}T09:48:31Z","user":"{}","posts":{}}}\t\n'.format( - post_date, - username, - posts_json, + return ( + f'{{"date":"{post_date}T09:48:31Z","user":"{username}",' + f'"posts":{posts_json}}}\t\n' ) # Check that all interface methods return expected results on success. diff --git a/tests/twitter/test_fetch_fetchers.py b/tests/twitter/test_fetch_fetchers.py index dd53f7f..dff5897 100644 --- a/tests/twitter/test_fetch_fetchers.py +++ b/tests/twitter/test_fetch_fetchers.py @@ -976,10 +976,9 @@ def test_saves_downloaded_image_file(self, download): FetchFiles()._fetch_and_save_file(self.image, "image") self.assertEqual( self.image.image_file.name, - "twitter/media/{}/{}/{}".format( - temp_filepath[-4:-2], - temp_filepath[-2:], - os.path.basename(temp_filepath), + ( + f"twitter/media/{temp_filepath[-4:-2]}/{temp_filepath[-2:]}/" + f"{os.path.basename(temp_filepath)}", ), ) @@ -994,9 +993,8 @@ def test_saves_downloaded_mp4_file(self, download): FetchFiles()._fetch_and_save_file(self.animated_gif, "mp4") self.assertEqual( self.animated_gif.mp4_file.name, - "twitter/media/{}/{}/{}".format( - temp_filepath[-4:-2], - temp_filepath[-2:], - os.path.basename(temp_filepath), + ( + f"twitter/media/{temp_filepath[-4:-2]}/{temp_filepath[-2:]}/" + f"{os.path.basename(temp_filepath)}", ), )