1
0
mirror of https://github.com/arsenetar/dupeguru.git synced 2026-01-22 14:41:39 +00:00

Apply pyupgrade changes

This commit is contained in:
2022-04-27 20:53:12 -05:00
parent e0061d7bc1
commit 63dd4d4561
36 changed files with 89 additions and 92 deletions

View File

@@ -40,7 +40,7 @@ def _perform(src, dst, action, actionname):
shutil.rmtree(dst)
else:
os.remove(dst)
print("%s %s --> %s" % (actionname, src, dst))
print("{} {} --> {}".format(actionname, src, dst))
action(src, dst)
@@ -95,12 +95,12 @@ def filereplace(filename, outfilename=None, **kwargs):
"""Reads `filename`, replaces all {variables} in kwargs, and writes the result to `outfilename`."""
if outfilename is None:
outfilename = filename
fp = open(filename, "rt", encoding="utf-8")
fp = open(filename, encoding="utf-8")
contents = fp.read()
fp.close()
# We can't use str.format() because in some files, there might be {} characters that mess with it.
for key, item in kwargs.items():
contents = contents.replace("{{{}}}".format(key), item)
contents = contents.replace(f"{{{key}}}", item)
fp = open(outfilename, "wt", encoding="utf-8")
fp.write(contents)
fp.close()
@@ -143,8 +143,8 @@ def package_cocoa_app_in_dmg(app_path, destfolder, args):
# phase because running the app before packaging can modify it and we want to be sure to have
# a valid signature.
if args.sign_identity:
sign_identity = "Developer ID Application: {}".format(args.sign_identity)
result = print_and_do('codesign --force --deep --sign "{}" "{}"'.format(sign_identity, app_path))
sign_identity = f"Developer ID Application: {args.sign_identity}"
result = print_and_do(f'codesign --force --deep --sign "{sign_identity}" "{app_path}"')
if result != 0:
print("ERROR: Signing failed. Aborting packaging.")
return
@@ -164,15 +164,15 @@ def build_dmg(app_path, destfolder):
workpath = tempfile.mkdtemp()
dmgpath = op.join(workpath, plist["CFBundleName"])
os.mkdir(dmgpath)
print_and_do('cp -R "%s" "%s"' % (app_path, dmgpath))
print_and_do('cp -R "{}" "{}"'.format(app_path, dmgpath))
print_and_do('ln -s /Applications "%s"' % op.join(dmgpath, "Applications"))
dmgname = "%s_osx_%s.dmg" % (
dmgname = "{}_osx_{}.dmg".format(
plist["CFBundleName"].lower().replace(" ", "_"),
plist["CFBundleVersion"].replace(".", "_"),
)
print("Building %s" % dmgname)
# UDBZ = bzip compression. UDZO (zip compression) was used before, but it compresses much less.
print_and_do('hdiutil create "%s" -format UDBZ -nocrossdev -srcdir "%s"' % (op.join(destfolder, dmgname), dmgpath))
print_and_do('hdiutil create "{}" -format UDBZ -nocrossdev -srcdir "{}"'.format(op.join(destfolder, dmgname), dmgpath))
print("Build Complete")
@@ -216,7 +216,7 @@ def copy_packages(packages_names, dest, create_links=False, extra_ignores=None):
os.unlink(dest_path)
else:
shutil.rmtree(dest_path)
print("Copying package at {0} to {1}".format(source_path, dest_path))
print(f"Copying package at {source_path} to {dest_path}")
if create_links:
os.symlink(op.abspath(source_path), dest_path)
else:
@@ -297,7 +297,7 @@ def read_changelog_file(filename):
return
yield version, date, description
with open(filename, "rt", encoding="utf-8") as fp:
with open(filename, encoding="utf-8") as fp:
contents = fp.read()
splitted = re_changelog_header.split(contents)[1:] # the first item is empty
result = []

View File

@@ -18,7 +18,7 @@ def get_parser():
def main():
args = get_parser().parse_args()
print("Building {}...".format(args.name[0]))
print(f"Building {args.name[0]}...")
ext = Extension(args.name[0], args.source_files)
setup(
script_args=["build_ext", "--inplace"],

View File

@@ -73,7 +73,7 @@ def smart_copy(source_path, dest_path):
"""Copies ``source_path`` to ``dest_path``, recursively and with conflict resolution."""
try:
_smart_move_or_copy(shutil.copy, source_path, dest_path)
except IOError as e:
except OSError as e:
if e.errno in {
21,
13,

View File

@@ -216,7 +216,7 @@ class Columns(GUIObject):
self.view.restore_columns()
return
for col in self.column_list:
pref_name = "{}.Columns.{}".format(self.savename, col.name)
pref_name = f"{self.savename}.Columns.{col.name}"
coldata = self.prefaccess.get_default(pref_name, fallback_value={})
if "index" in coldata:
col.ordered_index = coldata["index"]
@@ -231,7 +231,7 @@ class Columns(GUIObject):
if not (self.prefaccess and self.savename and self.coldata):
return
for col in self.column_list:
pref_name = "{}.Columns.{}".format(self.savename, col.name)
pref_name = f"{self.savename}.Columns.{col.name}"
coldata = {"index": col.ordered_index, "width": col.width}
if col.optional:
coldata["visible"] = col.visible

View File

@@ -451,7 +451,7 @@ class Row:
"""
def __init__(self, table):
super(Row, self).__init__()
super().__init__()
self.table = table
def _edit(self):

View File

@@ -77,8 +77,7 @@ class Node(MutableSequence):
if include_self and predicate(self):
yield self
for child in self:
for found in child.findall(predicate, include_self=True):
yield found
yield from child.findall(predicate, include_self=True)
def get_node(self, index_path):
"""Returns the node at ``index_path``.

View File

@@ -47,7 +47,7 @@ def log_io_error(func):
def wrapper(path, *args, **kwargs):
try:
return func(path, *args, **kwargs)
except (IOError, OSError) as e:
except OSError as e:
msg = 'Error "{0}" during operation "{1}" on "{2}": "{3}"'
classname = e.__class__.__name__
funcname = func.__name__

View File

@@ -374,7 +374,7 @@ def main(source_files, outpath, keywords=None):
fp = open(options.excludefilename, encoding="utf-8")
options.toexclude = fp.readlines()
fp.close()
except IOError:
except OSError:
print(
"Can't read --exclude-file: %s" % options.excludefilename,
file=sys.stderr,

View File

@@ -24,7 +24,7 @@ def tixgen(tixurl):
"""
urlpattern = tixurl.format("\\1") # will be replaced buy the content of the first group in re
R = re.compile(r"#(\d+)")
repl = "`#\\1 <{}>`__".format(urlpattern)
repl = f"`#\\1 <{urlpattern}>`__"
return lambda text: R.sub(repl, text)

View File

@@ -113,7 +113,7 @@ def test_repeater_with_repeated_notifications():
# If REPEATED_NOTIFICATIONS is not empty, only notifs in this set are repeated (but they're
# still dispatched locally).
class MyRepeater(HelloRepeater):
REPEATED_NOTIFICATIONS = set(["hello"])
REPEATED_NOTIFICATIONS = {"hello"}
def __init__(self, broadcaster):
HelloRepeater.__init__(self, broadcaster)

View File

@@ -98,7 +98,7 @@ def test_selection_override():
def test_findall():
t = tree_with_some_nodes()
r = t.findall(lambda n: n.name.startswith("sub"))
eq_(set(r), set([t[0][0], t[0][1]]))
eq_(set(r), {t[0][0], t[0][1]})
def test_findall_dont_include_self():
@@ -106,7 +106,7 @@ def test_findall_dont_include_self():
t = tree_with_some_nodes()
del t._name # so that if the predicate is called on `t`, we crash
r = t.findall(lambda n: not n.name.startswith("sub"), include_self=False) # no crash
eq_(set(r), set([t[0], t[1], t[2]]))
eq_(set(r), {t[0], t[1], t[2]})
def test_find_dont_include_self():

View File

@@ -14,7 +14,7 @@ import py.path
def eq_(a, b, msg=None):
__tracebackhide__ = True
assert a == b, msg or "%r != %r" % (a, b)
assert a == b, msg or "{!r} != {!r}".format(a, b)
def eq_sorted(a, b, msg=None):
@@ -97,17 +97,17 @@ class CallLogger:
__tracebackhide__ = True
if expected is not None:
not_called = set(expected) - set(self.calls)
assert not not_called, "These calls haven't been made: {0}".format(not_called)
assert not not_called, f"These calls haven't been made: {not_called}"
if verify_order:
max_index = 0
for call in expected:
index = self.calls.index(call)
if index < max_index:
raise AssertionError("The call {0} hasn't been made in the correct order".format(call))
raise AssertionError(f"The call {call} hasn't been made in the correct order")
max_index = index
if not_expected is not None:
called = set(not_expected) & set(self.calls)
assert not called, "These calls shouldn't have been made: {0}".format(called)
assert not called, f"These calls shouldn't have been made: {called}"
self.clear_calls()
@@ -133,7 +133,7 @@ class TestApp:
parent = self.default_parent
if holder is None:
holder = self
setattr(holder, "{0}_gui".format(name), view)
setattr(holder, f"{name}_gui", view)
gui = class_(parent)
gui.view = view
setattr(holder, name, gui)

View File

@@ -112,7 +112,7 @@ def install_gettext_trans(base_folder, lang):
return lambda s: s
try:
return gettext.translation(domain, localedir=base_folder, languages=[lang]).gettext
except IOError:
except OSError:
return lambda s: s
default_gettext = gettext_trget("core")

View File

@@ -270,7 +270,7 @@ def format_size(size, decimal=0, forcepower=-1, showdesc=True):
_valid_xml_range = "\x09\x0A\x0D\x20-\uD7FF\uE000-\uFFFD"
if sys.maxunicode > 0x10000:
_valid_xml_range += "%s-%s" % (chr(0x10000), chr(min(sys.maxunicode, 0x10FFFF)))
_valid_xml_range += "{}-{}".format(chr(0x10000), chr(min(sys.maxunicode, 0x10FFFF)))
RE_INVALID_XML_SUB = re.compile("[^%s]" % _valid_xml_range, re.U).sub
@@ -328,11 +328,11 @@ def modified_after(first_path: Path, second_path: Path):
"""
try:
first_mtime = first_path.stat().st_mtime
except (EnvironmentError, AttributeError):
except (OSError, AttributeError):
return False
try:
second_mtime = second_path.stat().st_mtime
except (EnvironmentError, AttributeError):
except (OSError, AttributeError):
return True
return first_mtime > second_mtime