mirror of
https://github.com/getpelican/pelican.git
synced 2025-10-15 20:28:56 +02:00
ruff UP031 in files: use format specifiers instead of percent format
This commit is contained in:
parent
3e81af966a
commit
30bde3823f
12 changed files with 47 additions and 50 deletions
|
|
@ -250,7 +250,7 @@ class Content:
|
||||||
def get_url_setting(self, key: str) -> str:
|
def get_url_setting(self, key: str) -> str:
|
||||||
if hasattr(self, "override_" + key):
|
if hasattr(self, "override_" + key):
|
||||||
return getattr(self, "override_" + key)
|
return getattr(self, "override_" + key)
|
||||||
key = key if self.in_default_lang else "lang_%s" % key
|
key = key if self.in_default_lang else f"lang_{key}"
|
||||||
return self._expand_settings(key)
|
return self._expand_settings(key)
|
||||||
|
|
||||||
def _link_replacer(self, siteurl: str, m: re.Match) -> str:
|
def _link_replacer(self, siteurl: str, m: re.Match) -> str:
|
||||||
|
|
|
||||||
|
|
@ -537,9 +537,9 @@ class ArticlesGenerator(CachingGenerator):
|
||||||
"""Generate direct templates pages"""
|
"""Generate direct templates pages"""
|
||||||
for template in self.settings["DIRECT_TEMPLATES"]:
|
for template in self.settings["DIRECT_TEMPLATES"]:
|
||||||
save_as = self.settings.get(
|
save_as = self.settings.get(
|
||||||
"%s_SAVE_AS" % template.upper(), "%s.html" % template
|
f"{template.upper()}_SAVE_AS", f"{template}.html"
|
||||||
)
|
)
|
||||||
url = self.settings.get("%s_URL" % template.upper(), "%s.html" % template)
|
url = self.settings.get(f"{template.upper()}_URL", f"{template}.html")
|
||||||
if not save_as:
|
if not save_as:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -591,7 +591,7 @@ def configure_settings(settings: Settings) -> Settings:
|
||||||
if os.path.exists(theme_path):
|
if os.path.exists(theme_path):
|
||||||
settings["THEME"] = theme_path
|
settings["THEME"] = theme_path
|
||||||
else:
|
else:
|
||||||
raise Exception("Could not find the theme %s" % settings["THEME"])
|
raise Exception("Could not find the theme {}".format(settings["THEME"]))
|
||||||
|
|
||||||
# standardize strings to lowercase strings
|
# standardize strings to lowercase strings
|
||||||
for key in ["DEFAULT_LANG"]:
|
for key in ["DEFAULT_LANG"]:
|
||||||
|
|
|
||||||
|
|
@ -282,7 +282,7 @@ class TestPage(TestBase):
|
||||||
#
|
#
|
||||||
# Until we find some other method to test this functionality, we
|
# Until we find some other method to test this functionality, we
|
||||||
# will simply skip this test.
|
# will simply skip this test.
|
||||||
unittest.skip("There is no locale %s in this system." % locale)
|
unittest.skip(f"There is no locale {locale} in this system.")
|
||||||
|
|
||||||
def test_template(self):
|
def test_template(self):
|
||||||
# Pages default to page, metadata overwrites
|
# Pages default to page, metadata overwrites
|
||||||
|
|
|
||||||
|
|
@ -148,7 +148,7 @@ class TestWordpressXmlImporter(TestCaseWithCLocale):
|
||||||
test_post = filter(lambda p: p[0].startswith("Empty Page"), self.posts)
|
test_post = filter(lambda p: p[0].startswith("Empty Page"), self.posts)
|
||||||
with temporary_folder() as temp:
|
with temporary_folder() as temp:
|
||||||
fname = next(iter(silent_f2p(test_post, "markdown", temp, dirpage=True)))
|
fname = next(iter(silent_f2p(test_post, "markdown", temp, dirpage=True)))
|
||||||
self.assertTrue(fname.endswith("pages%sempty.md" % os.path.sep))
|
self.assertTrue(fname.endswith(f"pages{os.path.sep}empty.md"))
|
||||||
|
|
||||||
def test_dircat(self):
|
def test_dircat(self):
|
||||||
silent_f2p = mute(True)(fields2pelican)
|
silent_f2p = mute(True)(fields2pelican)
|
||||||
|
|
|
||||||
|
|
@ -71,8 +71,7 @@ class TestPelican(LoggedTestCase):
|
||||||
if proc.returncode != 0:
|
if proc.returncode != 0:
|
||||||
msg = self._formatMessage(
|
msg = self._formatMessage(
|
||||||
msg,
|
msg,
|
||||||
"%s and %s differ:\nstdout:\n%s\nstderr\n%s"
|
f"{left_path} and {right_path} differ:\nstdout:\n{out}\nstderr\n{err}",
|
||||||
% (left_path, right_path, out, err),
|
|
||||||
)
|
)
|
||||||
raise self.failureException(msg)
|
raise self.failureException(msg)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -27,8 +27,7 @@ class ReaderTest(unittest.TestCase):
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
value,
|
value,
|
||||||
real_value,
|
real_value,
|
||||||
"Expected %s to have value %s, but was %s"
|
f"Expected {key} to have value {value}, but was {real_value}",
|
||||||
% (key, value, real_value),
|
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
self.fail(f"Expected {key} to have value {value}, but was not in Dict")
|
self.fail(f"Expected {key} to have value {value}, but was not in Dict")
|
||||||
|
|
|
||||||
|
|
@ -721,11 +721,11 @@ class TestCopy(unittest.TestCase):
|
||||||
|
|
||||||
def _exist_file(self, *path):
|
def _exist_file(self, *path):
|
||||||
path = os.path.join(self.root_dir, *path)
|
path = os.path.join(self.root_dir, *path)
|
||||||
self.assertTrue(os.path.isfile(path), "File does not exist: %s" % path)
|
self.assertTrue(os.path.isfile(path), f"File does not exist: {path}")
|
||||||
|
|
||||||
def _exist_dir(self, *path):
|
def _exist_dir(self, *path):
|
||||||
path = os.path.join(self.root_dir, *path)
|
path = os.path.join(self.root_dir, *path)
|
||||||
self.assertTrue(os.path.exists(path), "Directory does not exist: %s" % path)
|
self.assertTrue(os.path.exists(path), f"Directory does not exist: {path}")
|
||||||
|
|
||||||
def test_copy_file_same_path(self):
|
def test_copy_file_same_path(self):
|
||||||
self._create_file("a.txt")
|
self._create_file("a.txt")
|
||||||
|
|
|
||||||
|
|
@ -155,7 +155,7 @@ def wp2fields(xml, wp_custpost=False):
|
||||||
# Use HTMLParser due to issues with BeautifulSoup 3
|
# Use HTMLParser due to issues with BeautifulSoup 3
|
||||||
title = unescape(item.title.contents[0])
|
title = unescape(item.title.contents[0])
|
||||||
except IndexError:
|
except IndexError:
|
||||||
title = "No title [%s]" % item.find("post_name").string
|
title = "No title [{}]".format(item.find("post_name").string)
|
||||||
logger.warning('Post "%s" is lacking a proper title', title)
|
logger.warning('Post "%s" is lacking a proper title', title)
|
||||||
|
|
||||||
post_name = item.find("post_name").string
|
post_name = item.find("post_name").string
|
||||||
|
|
@ -510,11 +510,10 @@ def tumblr2fields(api_key, blogname):
|
||||||
title = post.get("question")
|
title = post.get("question")
|
||||||
content = (
|
content = (
|
||||||
"<p>"
|
"<p>"
|
||||||
'<a href="%s" rel="external nofollow">%s</a>'
|
'<a href="{}" rel="external nofollow">{}</a>'
|
||||||
": %s"
|
": {}"
|
||||||
"</p>\n"
|
"</p>\n"
|
||||||
" %s"
|
" {}".format(
|
||||||
% (
|
|
||||||
post.get("asking_name"),
|
post.get("asking_name"),
|
||||||
post.get("asking_url"),
|
post.get("asking_url"),
|
||||||
post.get("question"),
|
post.get("question"),
|
||||||
|
|
@ -710,19 +709,19 @@ def build_header(
|
||||||
|
|
||||||
header = "{}\n{}\n".format(title, "#" * column_width(title))
|
header = "{}\n{}\n".format(title, "#" * column_width(title))
|
||||||
if date:
|
if date:
|
||||||
header += ":date: %s\n" % date
|
header += f":date: {date}\n"
|
||||||
if author:
|
if author:
|
||||||
header += ":author: %s\n" % author
|
header += f":author: {author}\n"
|
||||||
if categories:
|
if categories:
|
||||||
header += ":category: %s\n" % ", ".join(categories)
|
header += ":category: {}\n".format(", ".join(categories))
|
||||||
if tags:
|
if tags:
|
||||||
header += ":tags: %s\n" % ", ".join(tags)
|
header += ":tags: {}\n".format(", ".join(tags))
|
||||||
if slug:
|
if slug:
|
||||||
header += ":slug: %s\n" % slug
|
header += f":slug: {slug}\n"
|
||||||
if status:
|
if status:
|
||||||
header += ":status: %s\n" % status
|
header += f":status: {status}\n"
|
||||||
if attachments:
|
if attachments:
|
||||||
header += ":attachments: %s\n" % ", ".join(attachments)
|
header += ":attachments: {}\n".format(", ".join(attachments))
|
||||||
header += "\n"
|
header += "\n"
|
||||||
return header
|
return header
|
||||||
|
|
||||||
|
|
@ -732,21 +731,21 @@ def build_asciidoc_header(
|
||||||
):
|
):
|
||||||
"""Build a header from a list of fields"""
|
"""Build a header from a list of fields"""
|
||||||
|
|
||||||
header = "= %s\n" % title
|
header = f"= {title}\n"
|
||||||
if author:
|
if author:
|
||||||
header += "%s\n" % author
|
header += f"{author}\n"
|
||||||
if date:
|
if date:
|
||||||
header += "%s\n" % date
|
header += f"{date}\n"
|
||||||
if categories:
|
if categories:
|
||||||
header += ":category: %s\n" % ", ".join(categories)
|
header += ":category: {}\n".format(", ".join(categories))
|
||||||
if tags:
|
if tags:
|
||||||
header += ":tags: %s\n" % ", ".join(tags)
|
header += ":tags: {}\n".format(", ".join(tags))
|
||||||
if slug:
|
if slug:
|
||||||
header += ":slug: %s\n" % slug
|
header += f":slug: {slug}\n"
|
||||||
if status:
|
if status:
|
||||||
header += ":status: %s\n" % status
|
header += f":status: {status}\n"
|
||||||
if attachments:
|
if attachments:
|
||||||
header += ":attachments: %s\n" % ", ".join(attachments)
|
header += ":attachments: {}\n".format(", ".join(attachments))
|
||||||
header += "\n"
|
header += "\n"
|
||||||
return header
|
return header
|
||||||
|
|
||||||
|
|
@ -755,21 +754,21 @@ def build_markdown_header(
|
||||||
title, date, author, categories, tags, slug, status=None, attachments=None
|
title, date, author, categories, tags, slug, status=None, attachments=None
|
||||||
):
|
):
|
||||||
"""Build a header from a list of fields"""
|
"""Build a header from a list of fields"""
|
||||||
header = "Title: %s\n" % title
|
header = f"Title: {title}\n"
|
||||||
if date:
|
if date:
|
||||||
header += "Date: %s\n" % date
|
header += f"Date: {date}\n"
|
||||||
if author:
|
if author:
|
||||||
header += "Author: %s\n" % author
|
header += f"Author: {author}\n"
|
||||||
if categories:
|
if categories:
|
||||||
header += "Category: %s\n" % ", ".join(categories)
|
header += "Category: {}\n".format(", ".join(categories))
|
||||||
if tags:
|
if tags:
|
||||||
header += "Tags: %s\n" % ", ".join(tags)
|
header += "Tags: {}\n".format(", ".join(tags))
|
||||||
if slug:
|
if slug:
|
||||||
header += "Slug: %s\n" % slug
|
header += f"Slug: {slug}\n"
|
||||||
if status:
|
if status:
|
||||||
header += "Status: %s\n" % status
|
header += f"Status: {status}\n"
|
||||||
if attachments:
|
if attachments:
|
||||||
header += "Attachments: %s\n" % ", ".join(attachments)
|
header += "Attachments: {}\n".format(", ".join(attachments))
|
||||||
header += "\n"
|
header += "\n"
|
||||||
return header
|
return header
|
||||||
|
|
||||||
|
|
@ -1076,7 +1075,7 @@ def fields2pelican(
|
||||||
error = "Please, check your Pandoc installation."
|
error = "Please, check your Pandoc installation."
|
||||||
sys.exit(error)
|
sys.exit(error)
|
||||||
except OSError as e:
|
except OSError as e:
|
||||||
error = "Pandoc execution failed: %s" % e
|
error = f"Pandoc execution failed: {e}"
|
||||||
sys.exit(error)
|
sys.exit(error)
|
||||||
|
|
||||||
with open(out_filename, encoding="utf-8") as fs:
|
with open(out_filename, encoding="utf-8") as fs:
|
||||||
|
|
|
||||||
|
|
@ -220,7 +220,7 @@ needed by Pelican.
|
||||||
CONF["basedir"] = open(project).read().rstrip("\n")
|
CONF["basedir"] = open(project).read().rstrip("\n")
|
||||||
print(
|
print(
|
||||||
"Using project associated with current virtual environment. "
|
"Using project associated with current virtual environment. "
|
||||||
"Will save to:\n%s\n" % CONF["basedir"]
|
"Will save to:\n{}\n".format(CONF["basedir"])
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
CONF["basedir"] = os.path.abspath(
|
CONF["basedir"] = os.path.abspath(
|
||||||
|
|
@ -394,7 +394,7 @@ needed by Pelican.
|
||||||
render_jinja_template("tasks.py.jinja2", CONF, "tasks.py")
|
render_jinja_template("tasks.py.jinja2", CONF, "tasks.py")
|
||||||
render_jinja_template("Makefile.jinja2", CONF, "Makefile")
|
render_jinja_template("Makefile.jinja2", CONF, "Makefile")
|
||||||
|
|
||||||
print("Done. Your new project is available at %s" % CONF["basedir"])
|
print("Done. Your new project is available at {}".format(CONF["basedir"]))
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|
|
||||||
|
|
@ -626,7 +626,7 @@ def truncate_html_words(s: str, num: int, end_text: str = "…") -> str:
|
||||||
out += " " + end_text
|
out += " " + end_text
|
||||||
# Close any tags still open
|
# Close any tags still open
|
||||||
for tag in truncator.open_tags:
|
for tag in truncator.open_tags:
|
||||||
out += "</%s>" % tag
|
out += f"</{tag}>"
|
||||||
# Return string
|
# Return string
|
||||||
return out
|
return out
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -107,14 +107,14 @@ class Writer:
|
||||||
"""
|
"""
|
||||||
if filename in self._overridden_files:
|
if filename in self._overridden_files:
|
||||||
if override:
|
if override:
|
||||||
raise RuntimeError("File %s is set to be overridden twice" % filename)
|
raise RuntimeError(f"File {filename} is set to be overridden twice")
|
||||||
logger.info("Skipping %s", filename)
|
logger.info("Skipping %s", filename)
|
||||||
filename = os.devnull
|
filename = os.devnull
|
||||||
elif filename in self._written_files:
|
elif filename in self._written_files:
|
||||||
if override:
|
if override:
|
||||||
logger.info("Overwriting %s", filename)
|
logger.info("Overwriting %s", filename)
|
||||||
else:
|
else:
|
||||||
raise RuntimeError("File %s is to be overwritten" % filename)
|
raise RuntimeError(f"File {filename} is to be overwritten")
|
||||||
if override:
|
if override:
|
||||||
self._overridden_files.add(filename)
|
self._overridden_files.add(filename)
|
||||||
self._written_files.add(filename)
|
self._written_files.add(filename)
|
||||||
|
|
@ -272,10 +272,10 @@ class Writer:
|
||||||
)
|
)
|
||||||
paginated_kwargs.update(
|
paginated_kwargs.update(
|
||||||
{
|
{
|
||||||
"%s_paginator" % key: paginator,
|
f"{key}_paginator": paginator,
|
||||||
"%s_page" % key: page,
|
f"{key}_page": page,
|
||||||
"%s_previous_page" % key: previous_page,
|
f"{key}_previous_page": previous_page,
|
||||||
"%s_next_page" % key: next_page,
|
f"{key}_next_page": next_page,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue