refactor(treewide): formatting and ruff fixes, + manually enabled F401

Signed-off-by: Akhil Narang <me@akhilnarang.dev>
diff --git a/erpnext/accounts/custom/address.py b/erpnext/accounts/custom/address.py
index 775a81f..ef57a63 100644
--- a/erpnext/accounts/custom/address.py
+++ b/erpnext/accounts/custom/address.py
@@ -11,14 +11,14 @@
 	def validate(self):
 		self.validate_reference()
 		self.update_compnay_address()
-		super(ERPNextAddress, self).validate()
+		super().validate()
 
 	def link_address(self):
 		"""Link address based on owner"""
 		if self.is_your_company_address:
 			return
 
-		return super(ERPNextAddress, self).link_address()
+		return super().link_address()
 
 	def update_compnay_address(self):
 		for link in self.get("links"):
@@ -26,11 +26,11 @@
 				self.is_your_company_address = 1
 
 	def validate_reference(self):
-		if self.is_your_company_address and not [
-			row for row in self.links if row.link_doctype == "Company"
-		]:
+		if self.is_your_company_address and not [row for row in self.links if row.link_doctype == "Company"]:
 			frappe.throw(
-				_("Address needs to be linked to a Company. Please add a row for Company in the Links table."),
+				_(
+					"Address needs to be linked to a Company. Please add a row for Company in the Links table."
+				),
 				title=_("Company Not Linked"),
 			)
 
diff --git a/erpnext/accounts/dashboard_chart_source/account_balance_timeline/account_balance_timeline.py b/erpnext/accounts/dashboard_chart_source/account_balance_timeline/account_balance_timeline.py
index f091a4f..01e6c48 100644
--- a/erpnext/accounts/dashboard_chart_source/account_balance_timeline/account_balance_timeline.py
+++ b/erpnext/accounts/dashboard_chart_source/account_balance_timeline/account_balance_timeline.py
@@ -37,7 +37,7 @@
 	filters = frappe.parse_json(filters) or frappe.parse_json(chart.filters_json)
 
 	account = filters.get("account")
-	company = filters.get("company")
+	filters.get("company")
 
 	if not account and chart_name:
 		frappe.throw(
@@ -83,7 +83,6 @@
 
 	# get balances in debit
 	for entry in gl_entries:
-
 		# entry date is after the current pointer, so move the pointer forward
 		while getdate(entry.posting_date) > result[date_index][0]:
 			date_index += 1
@@ -133,8 +132,6 @@
 
 	dates = [get_period_ending(from_date, timegrain)]
 	while getdate(dates[-1]) < getdate(to_date):
-		date = get_period_ending(
-			add_to_date(dates[-1], years=years, months=months, days=days), timegrain
-		)
+		date = get_period_ending(add_to_date(dates[-1], years=years, months=months, days=days), timegrain)
 		dates.append(date)
 	return dates
diff --git a/erpnext/accounts/deferred_revenue.py b/erpnext/accounts/deferred_revenue.py
index 367b017..3dc3e7a 100644
--- a/erpnext/accounts/deferred_revenue.py
+++ b/erpnext/accounts/deferred_revenue.py
@@ -24,14 +24,10 @@
 def validate_service_stop_date(doc):
 	"""Validates service_stop_date for Purchase Invoice and Sales Invoice"""
 
-	enable_check = (
-		"enable_deferred_revenue" if doc.doctype == "Sales Invoice" else "enable_deferred_expense"
-	)
+	enable_check = "enable_deferred_revenue" if doc.doctype == "Sales Invoice" else "enable_deferred_expense"
 
 	old_stop_dates = {}
-	old_doc = frappe.db.get_all(
-		"{0} Item".format(doc.doctype), {"parent": doc.name}, ["name", "service_stop_date"]
-	)
+	old_doc = frappe.db.get_all(f"{doc.doctype} Item", {"parent": doc.name}, ["name", "service_stop_date"])
 
 	for d in old_doc:
 		old_stop_dates[d.name] = d.service_stop_date or ""
@@ -62,16 +58,14 @@
 	)
 
 	if account:
-		conditions += "AND %s='%s'" % (deferred_account, account)
+		conditions += f"AND {deferred_account}='{account}'"
 	elif company:
 		conditions += f"AND p.company = {frappe.db.escape(company)}"
 
 	return conditions
 
 
-def convert_deferred_expense_to_expense(
-	deferred_process, start_date=None, end_date=None, conditions=""
-):
+def convert_deferred_expense_to_expense(deferred_process, start_date=None, end_date=None, conditions=""):
 	# book the expense/income on the last day, but it will be trigger on the 1st of month at 12:00 AM
 
 	if not start_date:
@@ -81,16 +75,14 @@
 
 	# check for the purchase invoice for which GL entries has to be done
 	invoices = frappe.db.sql_list(
-		"""
+		f"""
 		select distinct item.parent
 		from `tabPurchase Invoice Item` item, `tabPurchase Invoice` p
 		where item.service_start_date<=%s and item.service_end_date>=%s
 		and item.enable_deferred_expense = 1 and item.parent=p.name
 		and item.docstatus = 1 and ifnull(item.amount, 0) > 0
-		{0}
-	""".format(
-			conditions
-		),
+		{conditions}
+	""",
 		(end_date, start_date),
 	)  # nosec
 
@@ -103,9 +95,7 @@
 		send_mail(deferred_process)
 
 
-def convert_deferred_revenue_to_income(
-	deferred_process, start_date=None, end_date=None, conditions=""
-):
+def convert_deferred_revenue_to_income(deferred_process, start_date=None, end_date=None, conditions=""):
 	# book the expense/income on the last day, but it will be trigger on the 1st of month at 12:00 AM
 
 	if not start_date:
@@ -115,16 +105,14 @@
 
 	# check for the sales invoice for which GL entries has to be done
 	invoices = frappe.db.sql_list(
-		"""
+		f"""
 		select distinct item.parent
 		from `tabSales Invoice Item` item, `tabSales Invoice` p
 		where item.service_start_date<=%s and item.service_end_date>=%s
 		and item.enable_deferred_revenue = 1 and item.parent=p.name
 		and item.docstatus = 1 and ifnull(item.amount, 0) > 0
-		{0}
-	""".format(
-			conditions
-		),
+		{conditions}
+	""",
 		(end_date, start_date),
 	)  # nosec
 
@@ -243,9 +231,7 @@
 		already_booked_amount, already_booked_amount_in_account_currency = get_already_booked_amount(
 			doc, item
 		)
-		base_amount = flt(
-			item.base_net_amount - already_booked_amount, item.precision("base_net_amount")
-		)
+		base_amount = flt(item.base_net_amount - already_booked_amount, item.precision("base_net_amount"))
 		if account_currency == doc.company_currency:
 			amount = base_amount
 		else:
@@ -265,17 +251,13 @@
 		if account_currency == doc.company_currency:
 			amount = base_amount
 		else:
-			amount = flt(
-				item.net_amount * total_booking_days / flt(total_days), item.precision("net_amount")
-			)
+			amount = flt(item.net_amount * total_booking_days / flt(total_days), item.precision("net_amount"))
 	else:
 		already_booked_amount, already_booked_amount_in_account_currency = get_already_booked_amount(
 			doc, item
 		)
 
-		base_amount = flt(
-			item.base_net_amount - already_booked_amount, item.precision("base_net_amount")
-		)
+		base_amount = flt(item.base_net_amount - already_booked_amount, item.precision("base_net_amount"))
 		if account_currency == doc.company_currency:
 			amount = base_amount
 		else:
@@ -296,26 +278,22 @@
 
 	gl_entries_details = frappe.db.sql(
 		"""
-		select sum({0}) as total_credit, sum({1}) as total_credit_in_account_currency, voucher_detail_no
+		select sum({}) as total_credit, sum({}) as total_credit_in_account_currency, voucher_detail_no
 		from `tabGL Entry` where company=%s and account=%s and voucher_type=%s and voucher_no=%s and voucher_detail_no=%s
 		and is_cancelled = 0
 		group by voucher_detail_no
-	""".format(
-			total_credit_debit, total_credit_debit_currency
-		),
+	""".format(total_credit_debit, total_credit_debit_currency),
 		(doc.company, item.get(deferred_account), doc.doctype, doc.name, item.name),
 		as_dict=True,
 	)
 
 	journal_entry_details = frappe.db.sql(
 		"""
-		SELECT sum(c.{0}) as total_credit, sum(c.{1}) as total_credit_in_account_currency, reference_detail_no
+		SELECT sum(c.{}) as total_credit, sum(c.{}) as total_credit_in_account_currency, reference_detail_no
 		FROM `tabJournal Entry` p , `tabJournal Entry Account` c WHERE p.name = c.parent and
 		p.company = %s and c.account=%s and c.reference_type=%s and c.reference_name=%s and c.reference_detail_no=%s
 		and p.docstatus < 2 group by reference_detail_no
-	""".format(
-			total_credit_debit, total_credit_debit_currency
-		),
+	""".format(total_credit_debit, total_credit_debit_currency),
 		(doc.company, item.get(deferred_account), doc.doctype, doc.name, item.name),
 		as_dict=True,
 	)
@@ -337,9 +315,7 @@
 
 
 def book_deferred_income_or_expense(doc, deferred_process, posting_date=None):
-	enable_check = (
-		"enable_deferred_revenue" if doc.doctype == "Sales Invoice" else "enable_deferred_expense"
-	)
+	enable_check = "enable_deferred_revenue" if doc.doctype == "Sales Invoice" else "enable_deferred_expense"
 
 	accounts_frozen_upto = frappe.db.get_single_value("Accounts Settings", "acc_frozen_upto")
 
@@ -440,9 +416,7 @@
 	via_journal_entry = cint(
 		frappe.db.get_singles_value("Accounts Settings", "book_deferred_entries_via_journal_entry")
 	)
-	submit_journal_entry = cint(
-		frappe.db.get_singles_value("Accounts Settings", "submit_journal_entries")
-	)
+	submit_journal_entry = cint(frappe.db.get_singles_value("Accounts Settings", "submit_journal_entries"))
 	book_deferred_entries_based_on = frappe.db.get_singles_value(
 		"Accounts Settings", "book_deferred_entries_based_on"
 	)
@@ -462,9 +436,7 @@
 		posting_date = today()
 
 	if not cint(
-		frappe.db.get_singles_value(
-			"Accounts Settings", "automatically_process_deferred_accounting_entry"
-		)
+		frappe.db.get_singles_value("Accounts Settings", "automatically_process_deferred_accounting_entry")
 	):
 		return
 
@@ -587,16 +559,13 @@
 	deferred_process=None,
 	submit="No",
 ):
-
 	if amount == 0:
 		return
 
 	journal_entry = frappe.new_doc("Journal Entry")
 	journal_entry.posting_date = posting_date
 	journal_entry.company = doc.company
-	journal_entry.voucher_type = (
-		"Deferred Revenue" if doc.doctype == "Sales Invoice" else "Deferred Expense"
-	)
+	journal_entry.voucher_type = "Deferred Revenue" if doc.doctype == "Sales Invoice" else "Deferred Expense"
 	journal_entry.process_deferred_accounting = deferred_process
 
 	debit_entry = {
@@ -645,7 +614,6 @@
 
 
 def get_deferred_booking_accounts(doctype, voucher_detail_no, dr_or_cr):
-
 	if doctype == "Sales Invoice":
 		credit_account, debit_account = frappe.db.get_value(
 			"Sales Invoice Item",
diff --git a/erpnext/accounts/doctype/account/account.py b/erpnext/accounts/doctype/account/account.py
index 3f11798..db95d6c 100644
--- a/erpnext/accounts/doctype/account/account.py
+++ b/erpnext/accounts/doctype/account/account.py
@@ -88,12 +88,10 @@
 		if frappe.local.flags.ignore_update_nsm:
 			return
 		else:
-			super(Account, self).on_update()
+			super().on_update()
 
 	def onload(self):
-		frozen_accounts_modifier = frappe.db.get_single_value(
-			"Accounts Settings", "frozen_accounts_modifier"
-		)
+		frozen_accounts_modifier = frappe.db.get_single_value("Accounts Settings", "frozen_accounts_modifier")
 		if not frozen_accounts_modifier or frozen_accounts_modifier in frappe.get_roles():
 			self.set_onload("can_freeze_account", True)
 
@@ -218,9 +216,7 @@
 
 	def validate_root_company_and_sync_account_to_children(self):
 		# ignore validation while creating new compnay or while syncing to child companies
-		if (
-			frappe.local.flags.ignore_root_company_validation or self.flags.ignore_root_company_validation
-		):
+		if frappe.local.flags.ignore_root_company_validation or self.flags.ignore_root_company_validation:
 			return
 		ancestors = get_root_company(self.company)
 		if ancestors:
@@ -418,7 +414,7 @@
 		if self.check_gle_exists():
 			throw(_("Account with existing transaction can not be deleted"))
 
-		super(Account, self).on_trash(True)
+		super().on_trash(True)
 
 
 @frappe.whitelist()
@@ -426,9 +422,8 @@
 def get_parent_account(doctype, txt, searchfield, start, page_len, filters):
 	return frappe.db.sql(
 		"""select name from tabAccount
-		where is_group = 1 and docstatus != 2 and company = %s
-		and %s like %s order by name limit %s offset %s"""
-		% ("%s", searchfield, "%s", "%s", "%s"),
+		where is_group = 1 and docstatus != 2 and company = {}
+		and {} like {} order by name limit {} offset {}""".format("%s", searchfield, "%s", "%s", "%s"),
 		(filters["company"], "%%%s%%" % txt, page_len, start),
 		as_list=1,
 	)
@@ -594,7 +589,5 @@
 	if old_acc_number:
 		filters["account_number"] = old_acc_number
 
-	for d in frappe.db.get_values(
-		"Account", filters=filters, fieldname=["company", "name"], as_dict=True
-	):
+	for d in frappe.db.get_values("Account", filters=filters, fieldname=["company", "name"], as_dict=True):
 		update_account_number(d["name"], account_name, account_number, from_descendant=True)
diff --git a/erpnext/accounts/doctype/account/chart_of_accounts/chart_of_accounts.py b/erpnext/accounts/doctype/account/chart_of_accounts/chart_of_accounts.py
index 05ff2a1..0ddae1b 100644
--- a/erpnext/accounts/doctype/account/chart_of_accounts/chart_of_accounts.py
+++ b/erpnext/accounts/doctype/account/chart_of_accounts/chart_of_accounts.py
@@ -31,7 +31,6 @@
 					"tax_rate",
 					"account_currency",
 				]:
-
 					account_number = cstr(child.get("account_number")).strip()
 					account_name, account_name_in_db = add_suffix_if_duplicate(
 						account_name, account_number, accounts
@@ -39,7 +38,9 @@
 
 					is_group = identify_is_group(child)
 					report_type = (
-						"Balance Sheet" if root_type in ["Asset", "Liability", "Equity"] else "Profit and Loss"
+						"Balance Sheet"
+						if root_type in ["Asset", "Liability", "Equity"]
+						else "Profit and Loss"
 					)
 
 					account = frappe.get_doc(
@@ -141,7 +142,7 @@
 			for fname in os.listdir(path):
 				fname = frappe.as_unicode(fname)
 				if fname.endswith(".json"):
-					with open(os.path.join(path, fname), "r") as f:
+					with open(os.path.join(path, fname)) as f:
 						chart = f.read()
 						if chart and json.loads(chart).get("name") == chart_template:
 							return json.loads(chart).get("tree")
@@ -173,7 +174,7 @@
 			for fname in os.listdir(path):
 				fname = frappe.as_unicode(fname)
 				if (fname.startswith(country_code) or fname.startswith(country)) and fname.endswith(".json"):
-					with open(os.path.join(path, fname), "r") as f:
+					with open(os.path.join(path, fname)) as f:
 						_get_chart_name(f.read())
 
 	# if more than one charts, returned then add the standard
@@ -249,7 +250,13 @@
 
 		def _get_account_names(account_master):
 			for account_name, child in account_master.items():
-				if account_name not in ["account_number", "account_type", "root_type", "is_group", "tax_rate"]:
+				if account_name not in [
+					"account_number",
+					"account_type",
+					"root_type",
+					"is_group",
+					"tax_rate",
+				]:
 					accounts.append(account_name)
 
 					_get_account_names(child)
diff --git a/erpnext/accounts/doctype/account/test_account.py b/erpnext/accounts/doctype/account/test_account.py
index 7d0869b..be856bc 100644
--- a/erpnext/accounts/doctype/account/test_account.py
+++ b/erpnext/accounts/doctype/account/test_account.py
@@ -261,28 +261,20 @@
 		acc.insert()
 
 		self.assertTrue(
-			frappe.db.exists(
-				"Account", {"account_name": "Test Group Account", "company": "_Test Company 4"}
-			)
+			frappe.db.exists("Account", {"account_name": "Test Group Account", "company": "_Test Company 4"})
 		)
 		self.assertTrue(
-			frappe.db.exists(
-				"Account", {"account_name": "Test Group Account", "company": "_Test Company 5"}
-			)
+			frappe.db.exists("Account", {"account_name": "Test Group Account", "company": "_Test Company 5"})
 		)
 
 		# Try renaming child company account
 		acc_tc_5 = frappe.db.get_value(
 			"Account", {"account_name": "Test Group Account", "company": "_Test Company 5"}
 		)
-		self.assertRaises(
-			frappe.ValidationError, update_account_number, acc_tc_5, "Test Modified Account"
-		)
+		self.assertRaises(frappe.ValidationError, update_account_number, acc_tc_5, "Test Modified Account")
 
 		# Rename child company account with allow_account_creation_against_child_company enabled
-		frappe.db.set_value(
-			"Company", "_Test Company 5", "allow_account_creation_against_child_company", 1
-		)
+		frappe.db.set_value("Company", "_Test Company 5", "allow_account_creation_against_child_company", 1)
 
 		update_account_number(acc_tc_5, "Test Modified Account")
 		self.assertTrue(
@@ -291,9 +283,7 @@
 			)
 		)
 
-		frappe.db.set_value(
-			"Company", "_Test Company 5", "allow_account_creation_against_child_company", 0
-		)
+		frappe.db.set_value("Company", "_Test Company 5", "allow_account_creation_against_child_company", 0)
 
 		to_delete = [
 			"Test Group Account - _TC3",
@@ -318,9 +308,7 @@
 		self.assertEqual(acc.account_currency, "INR")
 
 		# Make a JV against this account
-		make_journal_entry(
-			"Test Currency Account - _TC", "Miscellaneous Expenses - _TC", 100, submit=True
-		)
+		make_journal_entry("Test Currency Account - _TC", "Miscellaneous Expenses - _TC", 100, submit=True)
 
 		acc.account_currency = "USD"
 		self.assertRaises(frappe.ValidationError, acc.save)
diff --git a/erpnext/accounts/doctype/account_closing_balance/account_closing_balance.py b/erpnext/accounts/doctype/account_closing_balance/account_closing_balance.py
index 65933ab..82821e1 100644
--- a/erpnext/accounts/doctype/account_closing_balance/account_closing_balance.py
+++ b/erpnext/accounts/doctype/account_closing_balance/account_closing_balance.py
@@ -40,16 +40,12 @@
 def make_closing_entries(closing_entries, voucher_name, company, closing_date):
 	accounting_dimensions = get_accounting_dimensions()
 
-	previous_closing_entries = get_previous_closing_entries(
-		company, closing_date, accounting_dimensions
-	)
+	previous_closing_entries = get_previous_closing_entries(company, closing_date, accounting_dimensions)
 	combined_entries = closing_entries + previous_closing_entries
 
-	merged_entries = aggregate_with_last_account_closing_balance(
-		combined_entries, accounting_dimensions
-	)
+	merged_entries = aggregate_with_last_account_closing_balance(combined_entries, accounting_dimensions)
 
-	for key, value in merged_entries.items():
+	for _key, value in merged_entries.items():
 		cle = frappe.new_doc("Account Closing Balance")
 		cle.update(value)
 		cle.update(value["dimensions"])
diff --git a/erpnext/accounts/doctype/accounting_dimension/accounting_dimension.py b/erpnext/accounts/doctype/accounting_dimension/accounting_dimension.py
index 41af06f..db99bcd 100644
--- a/erpnext/accounts/doctype/accounting_dimension/accounting_dimension.py
+++ b/erpnext/accounts/doctype/accounting_dimension/accounting_dimension.py
@@ -40,7 +40,8 @@
 		self.set_fieldname_and_label()
 
 	def validate(self):
-		if self.document_type in core_doctypes_list + (
+		if self.document_type in (
+			*core_doctypes_list,
 			"Accounting Dimension",
 			"Project",
 			"Cost Center",
@@ -48,13 +49,10 @@
 			"Company",
 			"Account",
 		):
-
 			msg = _("Not allowed to create accounting dimension for {0}").format(self.document_type)
 			frappe.throw(msg)
 
-		exists = frappe.db.get_value(
-			"Accounting Dimension", {"document_type": self.document_type}, ["name"]
-		)
+		exists = frappe.db.get_value("Accounting Dimension", {"document_type": self.document_type}, ["name"])
 
 		if exists and self.is_new():
 			frappe.throw(_("Document Type already used as a dimension"))
@@ -113,7 +111,6 @@
 	repostable_doctypes = get_allowed_types_from_settings()
 
 	for doctype in doclist:
-
 		if (doc_count + 1) % 2 == 0:
 			insert_after_field = "dimension_col_break"
 		else:
@@ -148,7 +145,7 @@
 	df.update(
 		{
 			"insert_after": "cost_center",
-			"depends_on": "eval:doc.budget_against == '{0}'".format(doc.document_type),
+			"depends_on": f"eval:doc.budget_against == '{doc.document_type}'",
 		}
 	)
 
@@ -182,19 +179,17 @@
 	frappe.db.sql(
 		"""
 		DELETE FROM `tabCustom Field`
-		WHERE fieldname = %s
-		AND dt IN (%s)"""
-		% ("%s", ", ".join(["%s"] * len(doclist))),  # nosec
-		tuple([doc.fieldname] + doclist),
+		WHERE fieldname = {}
+		AND dt IN ({})""".format("%s", ", ".join(["%s"] * len(doclist))),  # nosec
+		tuple([doc.fieldname, *doclist]),
 	)
 
 	frappe.db.sql(
 		"""
 		DELETE FROM `tabProperty Setter`
-		WHERE field_name = %s
-		AND doc_type IN (%s)"""
-		% ("%s", ", ".join(["%s"] * len(doclist))),  # nosec
-		tuple([doc.fieldname] + doclist),
+		WHERE field_name = {}
+		AND doc_type IN ({})""".format("%s", ", ".join(["%s"] * len(doclist))),  # nosec
+		tuple([doc.fieldname, *doclist]),
 	)
 
 	budget_against_property = frappe.get_doc("Property Setter", "Budget-budget_against-options")
@@ -243,7 +238,6 @@
 
 
 def get_accounting_dimensions(as_list=True, filters=None):
-
 	if not filters:
 		filters = {"disabled": 0}
 
@@ -274,7 +268,6 @@
 
 
 def get_dimension_with_children(doctype, dimensions):
-
 	if isinstance(dimensions, str):
 		dimensions = [dimensions]
 
@@ -282,9 +275,7 @@
 
 	for dimension in dimensions:
 		lft, rgt = frappe.db.get_value(doctype, dimension, ["lft", "rgt"])
-		children = frappe.get_all(
-			doctype, filters={"lft": [">=", lft], "rgt": ["<=", rgt]}, order_by="lft"
-		)
+		children = frappe.get_all(doctype, filters={"lft": [">=", lft], "rgt": ["<=", rgt]}, order_by="lft")
 		all_dimensions += [c.name for c in children]
 
 	return all_dimensions
@@ -292,14 +283,10 @@
 
 @frappe.whitelist()
 def get_dimensions(with_cost_center_and_project=False):
-
 	c = frappe.qb.DocType("Accounting Dimension Detail")
 	p = frappe.qb.DocType("Accounting Dimension")
 	dimension_filters = (
-		frappe.qb.from_(p)
-		.select(p.label, p.fieldname, p.document_type)
-		.where(p.disabled == 0)
-		.run(as_dict=1)
+		frappe.qb.from_(p).select(p.label, p.fieldname, p.document_type).where(p.disabled == 0).run(as_dict=1)
 	)
 	default_dimensions = (
 		frappe.qb.from_(c)
diff --git a/erpnext/accounts/doctype/accounting_dimension_filter/test_accounting_dimension_filter.py b/erpnext/accounts/doctype/accounting_dimension_filter/test_accounting_dimension_filter.py
index 3a7bf80..77057c1 100644
--- a/erpnext/accounts/doctype/accounting_dimension_filter/test_accounting_dimension_filter.py
+++ b/erpnext/accounts/doctype/accounting_dimension_filter/test_accounting_dimension_filter.py
@@ -57,9 +57,7 @@
 
 
 def create_accounting_dimension_filter():
-	if not frappe.db.get_value(
-		"Accounting Dimension Filter", {"accounting_dimension": "Cost Center"}
-	):
+	if not frappe.db.get_value("Accounting Dimension Filter", {"accounting_dimension": "Cost Center"}):
 		frappe.get_doc(
 			{
 				"doctype": "Accounting Dimension Filter",
diff --git a/erpnext/accounts/doctype/accounting_period/accounting_period.py b/erpnext/accounts/doctype/accounting_period/accounting_period.py
index b32a231..172ef93 100644
--- a/erpnext/accounts/doctype/accounting_period/accounting_period.py
+++ b/erpnext/accounts/doctype/accounting_period/accounting_period.py
@@ -84,7 +84,10 @@
 			for doctype_for_closing in self.get_doctypes_for_closing():
 				self.append(
 					"closed_documents",
-					{"document_type": doctype_for_closing.document_type, "closed": doctype_for_closing.closed},
+					{
+						"document_type": doctype_for_closing.document_type,
+						"closed": doctype_for_closing.closed,
+					},
 				)
 
 
diff --git a/erpnext/accounts/doctype/accounting_period/test_accounting_period.py b/erpnext/accounts/doctype/accounting_period/test_accounting_period.py
index 41d9479..16cae96 100644
--- a/erpnext/accounts/doctype/accounting_period/test_accounting_period.py
+++ b/erpnext/accounts/doctype/accounting_period/test_accounting_period.py
@@ -34,9 +34,7 @@
 		ap1 = create_accounting_period(period_name="Test Accounting Period 2")
 		ap1.save()
 
-		doc = create_sales_invoice(
-			do_not_save=1, cost_center="_Test Company - _TC", warehouse="Stores - _TC"
-		)
+		doc = create_sales_invoice(do_not_save=1, cost_center="_Test Company - _TC", warehouse="Stores - _TC")
 		self.assertRaises(ClosedAccountingPeriod, doc.save)
 
 	def tearDown(self):
diff --git a/erpnext/accounts/doctype/bank_account/test_bank_account.py b/erpnext/accounts/doctype/bank_account/test_bank_account.py
index 8949524..0ec388d 100644
--- a/erpnext/accounts/doctype/bank_account/test_bank_account.py
+++ b/erpnext/accounts/doctype/bank_account/test_bank_account.py
@@ -37,11 +37,11 @@
 			try:
 				bank_account.validate_iban()
 			except ValidationError:
-				msg = "BankAccount.validate_iban() failed for valid IBAN {}".format(iban)
+				msg = f"BankAccount.validate_iban() failed for valid IBAN {iban}"
 				self.fail(msg=msg)
 
 		for not_iban in invalid_ibans:
 			bank_account.iban = not_iban
-			msg = "BankAccount.validate_iban() accepted invalid IBAN {}".format(not_iban)
+			msg = f"BankAccount.validate_iban() accepted invalid IBAN {not_iban}"
 			with self.assertRaises(ValidationError, msg=msg):
 				bank_account.validate_iban()
diff --git a/erpnext/accounts/doctype/bank_clearance/bank_clearance.py b/erpnext/accounts/doctype/bank_clearance/bank_clearance.py
index 8a505a8..63758a5 100644
--- a/erpnext/accounts/doctype/bank_clearance/bank_clearance.py
+++ b/erpnext/accounts/doctype/bank_clearance/bank_clearance.py
@@ -127,7 +127,7 @@
 		condition = "and (clearance_date IS NULL or clearance_date='0000-00-00')"
 
 	journal_entries = frappe.db.sql(
-		"""
+		f"""
 			select
 				"Journal Entry" as payment_document, t1.name as payment_entry,
 				t1.cheque_no as cheque_number, t1.cheque_date,
@@ -141,9 +141,7 @@
 				and ifnull(t1.is_opening, 'No') = 'No' {condition}
 			group by t2.account, t1.name
 			order by t1.posting_date ASC, t1.name DESC
-		""".format(
-			condition=condition
-		),
+		""",
 		{"account": account, "from": from_date, "to": to_date},
 		as_dict=1,
 	)
@@ -152,7 +150,7 @@
 		condition += "and bank_account = %(bank_account)s"
 
 	payment_entries = frappe.db.sql(
-		"""
+		f"""
 			select
 				"Payment Entry" as payment_document, name as payment_entry,
 				reference_no as cheque_number, reference_date as cheque_date,
@@ -167,9 +165,7 @@
 				{condition}
 			order by
 				posting_date ASC, name DESC
-		""".format(
-			condition=condition
-		),
+		""",
 		{
 			"account": account,
 			"from": from_date,
@@ -239,10 +235,7 @@
 		).run(as_dict=True)
 
 	entries = (
-		list(payment_entries)
-		+ list(journal_entries)
-		+ list(pos_sales_invoices)
-		+ list(pos_purchase_invoices)
+		list(payment_entries) + list(journal_entries) + list(pos_sales_invoices) + list(pos_purchase_invoices)
 	)
 
 	return entries
diff --git a/erpnext/accounts/doctype/bank_clearance/test_bank_clearance.py b/erpnext/accounts/doctype/bank_clearance/test_bank_clearance.py
index ace751b..d785bfb 100644
--- a/erpnext/accounts/doctype/bank_clearance/test_bank_clearance.py
+++ b/erpnext/accounts/doctype/bank_clearance/test_bank_clearance.py
@@ -68,9 +68,7 @@
 			)
 			loan.submit()
 			make_loan_disbursement_entry(loan.name, loan.loan_amount, disbursement_date=getdate())
-			repayment_entry = create_repayment_entry(
-				loan.name, "_Test Customer", getdate(), loan.loan_amount
-			)
+			repayment_entry = create_repayment_entry(loan.name, "_Test Customer", getdate(), loan.loan_amount)
 			repayment_entry.save()
 			repayment_entry.submit()
 
diff --git a/erpnext/accounts/doctype/bank_reconciliation_tool/bank_reconciliation_tool.py b/erpnext/accounts/doctype/bank_reconciliation_tool/bank_reconciliation_tool.py
index 65158fc..77cb320 100644
--- a/erpnext/accounts/doctype/bank_reconciliation_tool/bank_reconciliation_tool.py
+++ b/erpnext/accounts/doctype/bank_reconciliation_tool/bank_reconciliation_tool.py
@@ -81,9 +81,7 @@
 def get_account_balance(bank_account, till_date):
 	# returns account balance till the specified date
 	account = frappe.db.get_value("Bank Account", bank_account, "account")
-	filters = frappe._dict(
-		{"account": account, "report_date": till_date, "include_pos_transactions": 1}
-	)
+	filters = frappe._dict({"account": account, "report_date": till_date, "include_pos_transactions": 1})
 	data = get_entries(filters)
 
 	balance_as_per_system = get_balance_on(filters["account"], filters["report_date"])
@@ -96,10 +94,7 @@
 	amounts_not_reflected_in_system = get_amounts_not_reflected_in_system(filters)
 
 	bank_bal = (
-		flt(balance_as_per_system)
-		- flt(total_debit)
-		+ flt(total_credit)
-		+ amounts_not_reflected_in_system
+		flt(balance_as_per_system) - flt(total_debit) + flt(total_credit) + amounts_not_reflected_in_system
 	)
 
 	return bank_bal
@@ -538,9 +533,7 @@
 	for query in queries:
 		matching_vouchers.extend(query.run(as_dict=True))
 
-	return (
-		sorted(matching_vouchers, key=lambda x: x["rank"], reverse=True) if matching_vouchers else []
-	)
+	return sorted(matching_vouchers, key=lambda x: x["rank"], reverse=True) if matching_vouchers else []
 
 
 def get_queries(
@@ -654,17 +647,13 @@
 	amount_rank = frappe.qb.terms.Case().when(amount_equality, 1).else_(0)
 	amount_condition = amount_equality if exact_match else getattr(bt, field) > 0.0
 
-	ref_rank = (
-		frappe.qb.terms.Case().when(bt.reference_number == transaction.reference_number, 1).else_(0)
-	)
+	ref_rank = frappe.qb.terms.Case().when(bt.reference_number == transaction.reference_number, 1).else_(0)
 	unallocated_rank = (
 		frappe.qb.terms.Case().when(bt.unallocated_amount == transaction.unallocated_amount, 1).else_(0)
 	)
 
 	party_condition = (
-		(bt.party_type == transaction.party_type)
-		& (bt.party == transaction.party)
-		& bt.party.isnotnull()
+		(bt.party_type == transaction.party_type) & (bt.party == transaction.party) & bt.party.isnotnull()
 	)
 	party_rank = frappe.qb.terms.Case().when(party_condition, 1).else_(0)
 
@@ -716,9 +705,7 @@
 	amount_condition = amount_equality if exact_match else pe.paid_amount > 0.0
 
 	party_condition = (
-		(pe.party_type == transaction.party_type)
-		& (pe.party == transaction.party)
-		& pe.party.isnotnull()
+		(pe.party_type == transaction.party_type) & (pe.party == transaction.party) & pe.party.isnotnull()
 	)
 	party_rank = frappe.qb.terms.Case().when(party_condition, 1).else_(0)
 
@@ -749,7 +736,7 @@
 		.orderby(pe.reference_date if cint(filter_by_reference_date) else pe.posting_date)
 	)
 
-	if frappe.flags.auto_reconcile_vouchers == True:
+	if frappe.flags.auto_reconcile_vouchers is True:
 		query = query.where(ref_condition)
 
 	return query
@@ -810,7 +797,7 @@
 		.orderby(je.cheque_date if cint(filter_by_reference_date) else je.posting_date)
 	)
 
-	if frappe.flags.auto_reconcile_vouchers == True:
+	if frappe.flags.auto_reconcile_vouchers is True:
 		query = query.where(ref_condition)
 
 	return query
diff --git a/erpnext/accounts/doctype/bank_reconciliation_tool/test_bank_reconciliation_tool.py b/erpnext/accounts/doctype/bank_reconciliation_tool/test_bank_reconciliation_tool.py
index adf5925..3813052 100644
--- a/erpnext/accounts/doctype/bank_reconciliation_tool/test_bank_reconciliation_tool.py
+++ b/erpnext/accounts/doctype/bank_reconciliation_tool/test_bank_reconciliation_tool.py
@@ -1,12 +1,11 @@
 # Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and Contributors
 # See license.txt
 
-import unittest
 
 import frappe
 from frappe import qb
-from frappe.tests.utils import FrappeTestCase, change_settings
-from frappe.utils import add_days, flt, getdate, today
+from frappe.tests.utils import FrappeTestCase
+from frappe.utils import add_days, today
 
 from erpnext.accounts.doctype.bank_reconciliation_tool.bank_reconciliation_tool import (
 	auto_reconcile_vouchers,
@@ -22,7 +21,7 @@
 		self.create_customer()
 		self.clear_old_entries()
 		bank_dt = qb.DocType("Bank")
-		q = qb.from_(bank_dt).delete().where(bank_dt.name == "HDFC").run()
+		qb.from_(bank_dt).delete().where(bank_dt.name == "HDFC").run()
 		self.create_bank_account()
 
 	def tearDown(self):
diff --git a/erpnext/accounts/doctype/bank_statement_import/bank_statement_import.py b/erpnext/accounts/doctype/bank_statement_import/bank_statement_import.py
index 6728fea..49684df 100644
--- a/erpnext/accounts/doctype/bank_statement_import/bank_statement_import.py
+++ b/erpnext/accounts/doctype/bank_statement_import/bank_statement_import.py
@@ -45,7 +45,7 @@
 	# end: auto-generated types
 
 	def __init__(self, *args, **kwargs):
-		super(BankStatementImport, self).__init__(*args, **kwargs)
+		super().__init__(*args, **kwargs)
 
 	def validate(self):
 		doc_before_save = self.get_doc_before_save()
@@ -54,7 +54,6 @@
 			or (doc_before_save and doc_before_save.import_file != self.import_file)
 			or (doc_before_save and doc_before_save.google_sheets_url != self.google_sheets_url)
 		):
-
 			template_options_dict = {}
 			column_to_field_map = {}
 			bank = frappe.get_doc("Bank", self.bank)
@@ -69,7 +68,6 @@
 		self.validate_google_sheets_url()
 
 	def start_import(self):
-
 		preview = frappe.get_doc("Bank Statement Import", self.name).get_preview_from_template(
 			self.import_file, self.google_sheets_url
 		)
@@ -126,7 +124,7 @@
 def parse_data_from_template(raw_data):
 	data = []
 
-	for i, row in enumerate(raw_data):
+	for _i, row in enumerate(raw_data):
 		if all(v in INVALID_VALUES for v in row):
 			# empty row
 			continue
@@ -136,9 +134,7 @@
 	return data
 
 
-def start_import(
-	data_import, bank_account, import_file_path, google_sheets_url, bank, template_options
-):
+def start_import(data_import, bank_account, import_file_path, google_sheets_url, bank, template_options):
 	"""This method runs in background job"""
 
 	update_mapping_db(bank, template_options)
diff --git a/erpnext/accounts/doctype/bank_transaction/auto_match_party.py b/erpnext/accounts/doctype/bank_transaction/auto_match_party.py
index 04dab4c..230407b 100644
--- a/erpnext/accounts/doctype/bank_transaction/auto_match_party.py
+++ b/erpnext/accounts/doctype/bank_transaction/auto_match_party.py
@@ -1,5 +1,3 @@
-from typing import Tuple, Union
-
 import frappe
 from frappe.utils import flt
 from rapidfuzz import fuzz, process
@@ -19,7 +17,7 @@
 	def get(self, key):
 		return self.__dict__.get(key, None)
 
-	def match(self) -> Union[Tuple, None]:
+	def match(self) -> tuple | None:
 		result = None
 		result = AutoMatchbyAccountIBAN(
 			bank_party_account_number=self.bank_party_account_number,
@@ -50,7 +48,7 @@
 		result = self.match_account_in_party()
 		return result
 
-	def match_account_in_party(self) -> Union[Tuple, None]:
+	def match_account_in_party(self) -> tuple | None:
 		"""Check if there is a IBAN/Account No. match in Customer/Supplier/Employee"""
 		result = None
 		parties = get_parties_in_order(self.deposit)
@@ -97,7 +95,7 @@
 	def get(self, key):
 		return self.__dict__.get(key, None)
 
-	def match(self) -> Union[Tuple, None]:
+	def match(self) -> tuple | None:
 		# fuzzy search by customer/supplier & employee
 		if not (self.bank_party_name or self.description):
 			return None
@@ -105,7 +103,7 @@
 		result = self.match_party_name_desc_in_party()
 		return result
 
-	def match_party_name_desc_in_party(self) -> Union[Tuple, None]:
+	def match_party_name_desc_in_party(self) -> tuple | None:
 		"""Fuzzy search party name and/or description against parties in the system"""
 		result = None
 		parties = get_parties_in_order(self.deposit)
@@ -130,7 +128,7 @@
 
 		return result
 
-	def fuzzy_search_and_return_result(self, party, names, field) -> Union[Tuple, None]:
+	def fuzzy_search_and_return_result(self, party, names, field) -> tuple | None:
 		skip = False
 		result = process.extract(
 			query=self.get(field),
@@ -147,7 +145,7 @@
 			party_name,
 		), skip
 
-	def process_fuzzy_result(self, result: Union[list, None]):
+	def process_fuzzy_result(self, result: list | None):
 		"""
 		If there are multiple valid close matches return None as result may be faulty.
 		Return the result only if one accurate match stands out.
diff --git a/erpnext/accounts/doctype/bank_transaction/bank_transaction.py b/erpnext/accounts/doctype/bank_transaction/bank_transaction.py
index 4246ba5..94a66d7 100644
--- a/erpnext/accounts/doctype/bank_transaction/bank_transaction.py
+++ b/erpnext/accounts/doctype/bank_transaction/bank_transaction.py
@@ -64,7 +64,9 @@
 						_(
 							"Transaction currency: {0} cannot be different from Bank Account({1}) currency: {2}"
 						).format(
-							frappe.bold(self.currency), frappe.bold(self.bank_account), frappe.bold(account_currency)
+							frappe.bold(self.currency),
+							frappe.bold(self.bank_account),
+							frappe.bold(account_currency),
 						)
 					)
 
@@ -235,9 +237,7 @@
 	"""
 	gl_bank_account = frappe.db.get_value("Bank Account", transaction.bank_account, "account")
 	gles = get_related_bank_gl_entries(payment_entry.payment_document, payment_entry.payment_entry)
-	bt_allocations = get_total_allocated_amount(
-		payment_entry.payment_document, payment_entry.payment_entry
-	)
+	bt_allocations = get_total_allocated_amount(payment_entry.payment_document, payment_entry.payment_entry)
 
 	unallocated_amount = min(
 		transaction.unallocated_amount,
@@ -332,7 +332,6 @@
 
 def get_paid_amount(payment_entry, currency, gl_bank_account):
 	if payment_entry.payment_document in ["Payment Entry", "Sales Invoice", "Purchase Invoice"]:
-
 		paid_amount_field = "paid_amount"
 		if payment_entry.payment_document == "Payment Entry":
 			doc = frappe.get_doc("Payment Entry", payment_entry.payment_entry)
@@ -371,9 +370,7 @@
 		)
 
 	elif payment_entry.payment_document == "Loan Repayment":
-		return frappe.db.get_value(
-			payment_entry.payment_document, payment_entry.payment_entry, "amount_paid"
-		)
+		return frappe.db.get_value(payment_entry.payment_document, payment_entry.payment_entry, "amount_paid")
 
 	elif payment_entry.payment_document == "Bank Transaction":
 		dep, wth = frappe.db.get_value(
@@ -383,9 +380,7 @@
 
 	else:
 		frappe.throw(
-			"Please reconcile {0}: {1} manually".format(
-				payment_entry.payment_document, payment_entry.payment_entry
-			)
+			f"Please reconcile {payment_entry.payment_document}: {payment_entry.payment_entry} manually"
 		)
 
 
diff --git a/erpnext/accounts/doctype/bank_transaction/bank_transaction_upload.py b/erpnext/accounts/doctype/bank_transaction/bank_transaction_upload.py
index efb9d8c..a03f406 100644
--- a/erpnext/accounts/doctype/bank_transaction/bank_transaction_upload.py
+++ b/erpnext/accounts/doctype/bank_transaction/bank_transaction_upload.py
@@ -18,12 +18,12 @@
 		fcontent = frappe.local.uploaded_file
 		fname = frappe.local.uploaded_filename
 
-	if frappe.safe_encode(fname).lower().endswith("csv".encode("utf-8")):
+	if frappe.safe_encode(fname).lower().endswith(b"csv"):
 		from frappe.utils.csvutils import read_csv_content
 
 		rows = read_csv_content(fcontent, False)
 
-	elif frappe.safe_encode(fname).lower().endswith("xlsx".encode("utf-8")):
+	elif frappe.safe_encode(fname).lower().endswith(b"xlsx"):
 		from frappe.utils.xlsxutils import read_xlsx_file_from_attached_file
 
 		rows = read_xlsx_file_from_attached_file(fcontent=fcontent)
diff --git a/erpnext/accounts/doctype/bank_transaction/test_bank_transaction.py b/erpnext/accounts/doctype/bank_transaction/test_bank_transaction.py
index 1fe3608..3181a09 100644
--- a/erpnext/accounts/doctype/bank_transaction/test_bank_transaction.py
+++ b/erpnext/accounts/doctype/bank_transaction/test_bank_transaction.py
@@ -436,9 +436,7 @@
 
 	mode_of_payment = frappe.get_doc({"doctype": "Mode of Payment", "name": "Cash"})
 
-	if not frappe.db.get_value(
-		"Mode of Payment Account", {"company": "_Test Company", "parent": "Cash"}
-	):
+	if not frappe.db.get_value("Mode of Payment Account", {"company": "_Test Company", "parent": "Cash"}):
 		mode_of_payment.append("accounts", {"company": "_Test Company", "default_account": gl_account})
 		mode_of_payment.save()
 
diff --git a/erpnext/accounts/doctype/budget/budget.py b/erpnext/accounts/doctype/budget/budget.py
index aa77af6..15d51d4 100644
--- a/erpnext/accounts/doctype/budget/budget.py
+++ b/erpnext/accounts/doctype/budget/budget.py
@@ -70,10 +70,11 @@
 			select
 				b.name, ba.account from `tabBudget` b, `tabBudget Account` ba
 			where
-				ba.parent = b.name and b.docstatus < 2 and b.company = %s and %s=%s and
-				b.fiscal_year=%s and b.name != %s and ba.account in (%s) """
-			% ("%s", budget_against_field, "%s", "%s", "%s", ",".join(["%s"] * len(accounts))),
-			(self.company, budget_against, self.fiscal_year, self.name) + tuple(accounts),
+				ba.parent = b.name and b.docstatus < 2 and b.company = {} and {}={} and
+				b.fiscal_year={} and b.name != {} and ba.account in ({}) """.format(
+				"%s", budget_against_field, "%s", "%s", "%s", ",".join(["%s"] * len(accounts))
+			),
+			(self.company, budget_against, self.fiscal_year, self.name, *tuple(accounts)),
 			as_dict=1,
 		)
 
@@ -96,12 +97,14 @@
 				if account_details.is_group:
 					frappe.throw(_("Budget cannot be assigned against Group Account {0}").format(d.account))
 				elif account_details.company != self.company:
-					frappe.throw(_("Account {0} does not belongs to company {1}").format(d.account, self.company))
+					frappe.throw(
+						_("Account {0} does not belongs to company {1}").format(d.account, self.company)
+					)
 				elif account_details.report_type != "Profit and Loss":
 					frappe.throw(
-						_("Budget cannot be assigned against {0}, as it's not an Income or Expense account").format(
-							d.account
-						)
+						_(
+							"Budget cannot be assigned against {0}, as it's not an Income or Expense account"
+						).format(d.account)
 					)
 
 				if d.account in account_list:
@@ -148,9 +151,7 @@
 			"Company", args.get("company"), "exception_budget_approver_role"
 		)
 
-	if not frappe.get_cached_value(
-		"Budget", {"fiscal_year": args.fiscal_year, "company": args.company}
-	):  # nosec
+	if not frappe.get_cached_value("Budget", {"fiscal_year": args.fiscal_year, "company": args.company}):  # nosec
 		return
 
 	if not args.account:
@@ -181,30 +182,24 @@
 			and args.account
 			and (frappe.get_cached_value("Account", args.account, "root_type") == "Expense")
 		):
-
 			doctype = dimension.get("document_type")
 
 			if frappe.get_cached_value("DocType", doctype, "is_tree"):
 				lft, rgt = frappe.get_cached_value(doctype, args.get(budget_against), ["lft", "rgt"])
-				condition = """and exists(select name from `tab%s`
-					where lft<=%s and rgt>=%s and name=b.%s)""" % (
-					doctype,
-					lft,
-					rgt,
-					budget_against,
-				)  # nosec
+				condition = f"""and exists(select name from `tab{doctype}`
+					where lft<={lft} and rgt>={rgt} and name=b.{budget_against})"""  # nosec
 				args.is_tree = True
 			else:
-				condition = "and b.%s=%s" % (budget_against, frappe.db.escape(args.get(budget_against)))
+				condition = f"and b.{budget_against}={frappe.db.escape(args.get(budget_against))}"
 				args.is_tree = False
 
 			args.budget_against_field = budget_against
 			args.budget_against_doctype = doctype
 
 			budget_records = frappe.db.sql(
-				"""
+				f"""
 				select
-					b.{budget_against_field} as budget_against, ba.budget_amount, b.monthly_distribution,
+					b.{budget_against} as budget_against, ba.budget_amount, b.monthly_distribution,
 					ifnull(b.applicable_on_material_request, 0) as for_material_request,
 					ifnull(applicable_on_purchase_order, 0) as for_purchase_order,
 					ifnull(applicable_on_booking_actual_expenses,0) as for_actual_expenses,
@@ -217,9 +212,7 @@
 					b.name=ba.parent and b.fiscal_year=%s
 					and ba.account=%s and b.docstatus=1
 					{condition}
-			""".format(
-					condition=condition, budget_against_field=budget_against
-				),
+			""",
 				(args.fiscal_year, args.account),
 				as_dict=True,
 			)  # nosec
@@ -247,7 +240,12 @@
 				args["month_end_date"] = get_last_day(args.posting_date)
 
 				compare_expense_with_budget(
-					args, budget_amount, _("Accumulated Monthly"), monthly_action, budget.budget_against, amount
+					args,
+					budget_amount,
+					_("Accumulated Monthly"),
+					monthly_action,
+					budget.budget_against,
+					amount,
 				)
 
 
@@ -275,9 +273,8 @@
 			frappe.bold(fmt_money(diff, currency=currency)),
 		)
 
-		if (
-			frappe.flags.exception_approver_role
-			and frappe.flags.exception_approver_role in frappe.get_roles(frappe.session.user)
+		if frappe.flags.exception_approver_role and frappe.flags.exception_approver_role in frappe.get_roles(
+			frappe.session.user
 		):
 			action = "Warn"
 
@@ -323,10 +320,8 @@
 	data = frappe.db.sql(
 		""" select ifnull((sum(child.stock_qty - child.ordered_qty) * rate), 0) as amount
 		from `tabMaterial Request Item` child, `tabMaterial Request` parent where parent.name = child.parent and
-		child.item_code = %s and parent.docstatus = 1 and child.stock_qty > child.ordered_qty and {0} and
-		parent.material_request_type = 'Purchase' and parent.status != 'Stopped'""".format(
-			condition
-		),
+		child.item_code = %s and parent.docstatus = 1 and child.stock_qty > child.ordered_qty and {} and
+		parent.material_request_type = 'Purchase' and parent.status != 'Stopped'""".format(condition),
 		item_code,
 		as_list=1,
 	)
@@ -339,12 +334,10 @@
 	condition = get_other_condition(args, budget, "Purchase Order")
 
 	data = frappe.db.sql(
-		""" select ifnull(sum(child.amount - child.billed_amt), 0) as amount
+		f""" select ifnull(sum(child.amount - child.billed_amt), 0) as amount
 		from `tabPurchase Order Item` child, `tabPurchase Order` parent where
 		parent.name = child.parent and child.item_code = %s and parent.docstatus = 1 and child.amount > child.billed_amt
-		and parent.status != 'Closed' and {0}""".format(
-			condition
-		),
+		and parent.status != 'Closed' and {condition}""",
 		item_code,
 		as_list=1,
 	)
@@ -357,7 +350,7 @@
 	budget_against_field = args.get("budget_against_field")
 
 	if budget_against_field and args.get(budget_against_field):
-		condition += " and child.%s = '%s'" % (budget_against_field, args.get(budget_against_field))
+		condition += f" and child.{budget_against_field} = '{args.get(budget_against_field)}'"
 
 	if args.get("fiscal_year"):
 		date_field = "schedule_date" if for_doc == "Material Request" else "transaction_date"
@@ -365,12 +358,8 @@
 			"Fiscal Year", args.get("fiscal_year"), ["year_start_date", "year_end_date"]
 		)
 
-		condition += """ and parent.%s
-			between '%s' and '%s' """ % (
-			date_field,
-			start_date,
-			end_date,
-		)
+		condition += f""" and parent.{date_field}
+			between '{start_date}' and '{end_date}' """
 
 	return condition
 
@@ -392,18 +381,17 @@
 		condition2 = """and exists(select name from `tab{doctype}`
 			where lft>=%(lft)s and rgt<=%(rgt)s
 			and name=gle.{budget_against_field})""".format(
-			doctype=args.budget_against_doctype, budget_against_field=budget_against_field  # nosec
+			doctype=args.budget_against_doctype,
+			budget_against_field=budget_against_field,  # nosec
 		)
 	else:
-		condition2 = """and exists(select name from `tab{doctype}`
-		where name=gle.{budget_against} and
-		gle.{budget_against} = %({budget_against})s)""".format(
-			doctype=args.budget_against_doctype, budget_against=budget_against_field
-		)
+		condition2 = f"""and exists(select name from `tab{args.budget_against_doctype}`
+		where name=gle.{budget_against_field} and
+		gle.{budget_against_field} = %({budget_against_field})s)"""
 
 	amount = flt(
 		frappe.db.sql(
-			"""
+			f"""
 		select sum(gle.debit) - sum(gle.credit)
 		from `tabGL Entry` gle
 		where
@@ -414,9 +402,7 @@
 			and gle.company=%(company)s
 			and gle.docstatus=1
 			{condition2}
-	""".format(
-				condition1=condition1, condition2=condition2
-			),
+	""",
 			(args),
 		)[0][0]
 	)  # nosec
diff --git a/erpnext/accounts/doctype/budget/test_budget.py b/erpnext/accounts/doctype/budget/test_budget.py
index 11af9a2..6d9a6f5 100644
--- a/erpnext/accounts/doctype/budget/test_budget.py
+++ b/erpnext/accounts/doctype/budget/test_budget.py
@@ -41,9 +41,7 @@
 
 		budget = make_budget(budget_against="Cost Center")
 
-		frappe.db.set_value(
-			"Budget", budget.name, "action_if_accumulated_monthly_budget_exceeded", "Stop"
-		)
+		frappe.db.set_value("Budget", budget.name, "action_if_accumulated_monthly_budget_exceeded", "Stop")
 
 		jv = make_journal_entry(
 			"_Test Account Cost for Goods Sold - _TC",
@@ -63,9 +61,7 @@
 
 		budget = make_budget(budget_against="Cost Center")
 
-		frappe.db.set_value(
-			"Budget", budget.name, "action_if_accumulated_monthly_budget_exceeded", "Stop"
-		)
+		frappe.db.set_value("Budget", budget.name, "action_if_accumulated_monthly_budget_exceeded", "Stop")
 
 		jv = make_journal_entry(
 			"_Test Account Cost for Goods Sold - _TC",
@@ -97,9 +93,7 @@
 		)
 
 		fiscal_year = get_fiscal_year(nowdate())[0]
-		frappe.db.set_value(
-			"Budget", budget.name, "action_if_accumulated_monthly_budget_exceeded", "Stop"
-		)
+		frappe.db.set_value("Budget", budget.name, "action_if_accumulated_monthly_budget_exceeded", "Stop")
 		frappe.db.set_value("Budget", budget.name, "fiscal_year", fiscal_year)
 
 		mr = frappe.get_doc(
@@ -138,9 +132,7 @@
 		)
 
 		fiscal_year = get_fiscal_year(nowdate())[0]
-		frappe.db.set_value(
-			"Budget", budget.name, "action_if_accumulated_monthly_budget_exceeded", "Stop"
-		)
+		frappe.db.set_value("Budget", budget.name, "action_if_accumulated_monthly_budget_exceeded", "Stop")
 		frappe.db.set_value("Budget", budget.name, "fiscal_year", fiscal_year)
 
 		po = create_purchase_order(transaction_date=nowdate(), do_not_submit=True)
@@ -158,9 +150,7 @@
 
 		budget = make_budget(budget_against="Project")
 
-		frappe.db.set_value(
-			"Budget", budget.name, "action_if_accumulated_monthly_budget_exceeded", "Stop"
-		)
+		frappe.db.set_value("Budget", budget.name, "action_if_accumulated_monthly_budget_exceeded", "Stop")
 
 		project = frappe.get_value("Project", {"project_name": "_Test Project"})
 
@@ -223,7 +213,7 @@
 		if month > 9:
 			month = 9
 
-		for i in range(month + 1):
+		for _i in range(month + 1):
 			jv = make_journal_entry(
 				"_Test Account Cost for Goods Sold - _TC",
 				"_Test Bank - _TC",
@@ -237,9 +227,7 @@
 				frappe.db.get_value("GL Entry", {"voucher_type": "Journal Entry", "voucher_no": jv.name})
 			)
 
-		frappe.db.set_value(
-			"Budget", budget.name, "action_if_accumulated_monthly_budget_exceeded", "Stop"
-		)
+		frappe.db.set_value("Budget", budget.name, "action_if_accumulated_monthly_budget_exceeded", "Stop")
 
 		self.assertRaises(BudgetError, jv.cancel)
 
@@ -255,7 +243,7 @@
 			month = 9
 
 		project = frappe.get_value("Project", {"project_name": "_Test Project"})
-		for i in range(month + 1):
+		for _i in range(month + 1):
 			jv = make_journal_entry(
 				"_Test Account Cost for Goods Sold - _TC",
 				"_Test Bank - _TC",
@@ -270,9 +258,7 @@
 				frappe.db.get_value("GL Entry", {"voucher_type": "Journal Entry", "voucher_no": jv.name})
 			)
 
-		frappe.db.set_value(
-			"Budget", budget.name, "action_if_accumulated_monthly_budget_exceeded", "Stop"
-		)
+		frappe.db.set_value("Budget", budget.name, "action_if_accumulated_monthly_budget_exceeded", "Stop")
 
 		self.assertRaises(BudgetError, jv.cancel)
 
@@ -284,9 +270,7 @@
 		set_total_expense_zero(nowdate(), "cost_center", "_Test Cost Center 2 - _TC")
 
 		budget = make_budget(budget_against="Cost Center", cost_center="_Test Company - _TC")
-		frappe.db.set_value(
-			"Budget", budget.name, "action_if_accumulated_monthly_budget_exceeded", "Stop"
-		)
+		frappe.db.set_value("Budget", budget.name, "action_if_accumulated_monthly_budget_exceeded", "Stop")
 
 		jv = make_journal_entry(
 			"_Test Account Cost for Goods Sold - _TC",
@@ -316,9 +300,7 @@
 			).insert(ignore_permissions=True)
 
 		budget = make_budget(budget_against="Cost Center", cost_center=cost_center)
-		frappe.db.set_value(
-			"Budget", budget.name, "action_if_accumulated_monthly_budget_exceeded", "Stop"
-		)
+		frappe.db.set_value("Budget", budget.name, "action_if_accumulated_monthly_budget_exceeded", "Stop")
 
 		jv = make_journal_entry(
 			"_Test Account Cost for Goods Sold - _TC",
@@ -423,13 +405,11 @@
 	fiscal_year = get_fiscal_year(nowdate())[0]
 
 	if budget_against == "Project":
-		project_name = "{0}%".format("_Test Project/" + fiscal_year)
+		project_name = "{}%".format("_Test Project/" + fiscal_year)
 		budget_list = frappe.get_all("Budget", fields=["name"], filters={"name": ("like", project_name)})
 	else:
-		cost_center_name = "{0}%".format(cost_center or "_Test Cost Center - _TC/" + fiscal_year)
-		budget_list = frappe.get_all(
-			"Budget", fields=["name"], filters={"name": ("like", cost_center_name)}
-		)
+		cost_center_name = "{}%".format(cost_center or "_Test Cost Center - _TC/" + fiscal_year)
+		budget_list = frappe.get_all("Budget", fields=["name"], filters={"name": ("like", cost_center_name)})
 	for d in budget_list:
 		frappe.db.sql("delete from `tabBudget` where name = %(name)s", d)
 		frappe.db.sql("delete from `tabBudget Account` where parent = %(name)s", d)
@@ -451,24 +431,18 @@
 	budget.action_if_annual_budget_exceeded = "Stop"
 	budget.action_if_accumulated_monthly_budget_exceeded = "Ignore"
 	budget.budget_against = budget_against
-	budget.append(
-		"accounts", {"account": "_Test Account Cost for Goods Sold - _TC", "budget_amount": 200000}
-	)
+	budget.append("accounts", {"account": "_Test Account Cost for Goods Sold - _TC", "budget_amount": 200000})
 
 	if args.applicable_on_material_request:
 		budget.applicable_on_material_request = 1
-		budget.action_if_annual_budget_exceeded_on_mr = (
-			args.action_if_annual_budget_exceeded_on_mr or "Warn"
-		)
+		budget.action_if_annual_budget_exceeded_on_mr = args.action_if_annual_budget_exceeded_on_mr or "Warn"
 		budget.action_if_accumulated_monthly_budget_exceeded_on_mr = (
 			args.action_if_accumulated_monthly_budget_exceeded_on_mr or "Warn"
 		)
 
 	if args.applicable_on_purchase_order:
 		budget.applicable_on_purchase_order = 1
-		budget.action_if_annual_budget_exceeded_on_po = (
-			args.action_if_annual_budget_exceeded_on_po or "Warn"
-		)
+		budget.action_if_annual_budget_exceeded_on_po = args.action_if_annual_budget_exceeded_on_po or "Warn"
 		budget.action_if_accumulated_monthly_budget_exceeded_on_po = (
 			args.action_if_accumulated_monthly_budget_exceeded_on_po or "Warn"
 		)
diff --git a/erpnext/accounts/doctype/chart_of_accounts_importer/chart_of_accounts_importer.py b/erpnext/accounts/doctype/chart_of_accounts_importer/chart_of_accounts_importer.py
index 1c805cc..e24c7c9 100644
--- a/erpnext/accounts/doctype/chart_of_accounts_importer/chart_of_accounts_importer.py
+++ b/erpnext/accounts/doctype/chart_of_accounts_importer/chart_of_accounts_importer.py
@@ -38,9 +38,7 @@
 
 	def validate(self):
 		if self.import_file:
-			get_coa(
-				"Chart of Accounts Importer", "All Accounts", file_name=self.import_file, for_validate=1
-			)
+			get_coa("Chart of Accounts Importer", "All Accounts", file_name=self.import_file, for_validate=1)
 
 
 def validate_columns(data):
@@ -116,7 +114,7 @@
 	file_path = file_doc.get_full_path()
 
 	data = []
-	with open(file_path, "r") as in_file:
+	with open(file_path) as in_file:
 		csv_reader = list(csv.reader(in_file))
 		headers = csv_reader[0]
 		del csv_reader[0]  # delete top row and headers row
@@ -215,10 +213,10 @@
 		for row in data:
 			account_name, parent_account, account_number, parent_account_number = row[0:4]
 			if account_number:
-				account_name = "{} - {}".format(account_number, account_name)
+				account_name = f"{account_number} - {account_name}"
 			if parent_account_number:
 				parent_account_number = cstr(parent_account_number).strip()
-				parent_account = "{} - {}".format(parent_account_number, parent_account)
+				parent_account = f"{parent_account_number} - {parent_account}"
 
 			if parent_account == account_name == child:
 				return [parent_account]
@@ -230,7 +228,7 @@
 							frappe.bold(parent_account)
 						)
 					)
-				return [child] + parent_account_list
+				return [child, *parent_account_list]
 
 	charts_map, paths = {}, []
 
@@ -250,12 +248,12 @@
 		) = i
 
 		if not account_name:
-			error_messages.append("Row {0}: Please enter Account Name".format(line_no))
+			error_messages.append(f"Row {line_no}: Please enter Account Name")
 
 		name = account_name
 		if account_number:
 			account_number = cstr(account_number).strip()
-			account_name = "{} - {}".format(account_number, account_name)
+			account_name = f"{account_number} - {account_name}"
 
 		charts_map[account_name] = {}
 		charts_map[account_name]["account_name"] = name
@@ -352,9 +350,9 @@
 
 def get_sample_template(writer, company):
 	currency = frappe.db.get_value("Company", company, "default_currency")
-	with open(os.path.join(os.path.dirname(__file__), "coa_sample_template.csv"), "r") as f:
+	with open(os.path.join(os.path.dirname(__file__), "coa_sample_template.csv")) as f:
 		for row in f:
-			row = row.strip().split(",") + [currency]
+			row = [*row.strip().split(","), currency]
 			writer.writerow(row)
 
 	return writer
@@ -463,7 +461,7 @@
 		"Purchase Taxes and Charges Template",
 	]:
 		frappe.db.sql(
-			'''delete from `tab{0}` where `company`="%s"'''.format(doctype) % (company)  # nosec
+			f'''delete from `tab{doctype}` where `company`="%s"''' % (company)  # nosec
 		)
 
 
diff --git a/erpnext/accounts/doctype/cheque_print_template/cheque_print_template.py b/erpnext/accounts/doctype/cheque_print_template/cheque_print_template.py
index 205bb29..4b1394e 100644
--- a/erpnext/accounts/doctype/cheque_print_template/cheque_print_template.py
+++ b/erpnext/accounts/doctype/cheque_print_template/cheque_print_template.py
@@ -66,71 +66,71 @@
 
 	cheque_print.html = """
 <style>
-	.print-format {
+	.print-format {{
 		padding: 0px;
-	}
-	@media screen {
-		.print-format {
+	}}
+	@media screen {{
+		.print-format {{
 			padding: 0in;
-		}
-	}
+		}}
+	}}
 </style>
-<div style="position: relative; top:%(starting_position_from_top_edge)scm">
-	<div style="width:%(cheque_width)scm;height:%(cheque_height)scm;">
-		<span style="top:%(acc_pay_dist_from_top_edge)scm; left:%(acc_pay_dist_from_left_edge)scm;
+<div style="position: relative; top:{starting_position_from_top_edge}cm">
+	<div style="width:{cheque_width}cm;height:{cheque_height}cm;">
+		<span style="top:{acc_pay_dist_from_top_edge}cm; left:{acc_pay_dist_from_left_edge}cm;
 			border-bottom: solid 1px;border-top:solid 1px; width:2cm;text-align: center; position: absolute;">
-				%(message_to_show)s
+				{message_to_show}
 		</span>
-		<span style="top:%(date_dist_from_top_edge)scm; left:%(date_dist_from_left_edge)scm;
+		<span style="top:{date_dist_from_top_edge}cm; left:{date_dist_from_left_edge}cm;
 			position: absolute;">
-			{{ frappe.utils.formatdate(doc.reference_date) or '' }}
+			{{{{ frappe.utils.formatdate(doc.reference_date) or '' }}}}
 		</span>
-		<span style="top:%(acc_no_dist_from_top_edge)scm;left:%(acc_no_dist_from_left_edge)scm;
+		<span style="top:{acc_no_dist_from_top_edge}cm;left:{acc_no_dist_from_left_edge}cm;
 			position: absolute;  min-width: 6cm;">
-			{{ doc.account_no or '' }}
+			{{{{ doc.account_no or '' }}}}
 		</span>
-		<span style="top:%(payer_name_from_top_edge)scm;left: %(payer_name_from_left_edge)scm;
+		<span style="top:{payer_name_from_top_edge}cm;left: {payer_name_from_left_edge}cm;
 			position: absolute;  min-width: 6cm;">
-			{{doc.party_name}}
+			{{{{doc.party_name}}}}
 		</span>
-		<span style="top:%(amt_in_words_from_top_edge)scm; left:%(amt_in_words_from_left_edge)scm;
-			position: absolute; display: block; width: %(amt_in_word_width)scm;
-			line-height:%(amt_in_words_line_spacing)scm; word-wrap: break-word;">
-				{{frappe.utils.money_in_words(doc.base_paid_amount or doc.base_received_amount)}}
+		<span style="top:{amt_in_words_from_top_edge}cm; left:{amt_in_words_from_left_edge}cm;
+			position: absolute; display: block; width: {amt_in_word_width}cm;
+			line-height:{amt_in_words_line_spacing}cm; word-wrap: break-word;">
+				{{{{frappe.utils.money_in_words(doc.base_paid_amount or doc.base_received_amount)}}}}
 		</span>
-		<span style="top:%(amt_in_figures_from_top_edge)scm;left: %(amt_in_figures_from_left_edge)scm;
+		<span style="top:{amt_in_figures_from_top_edge}cm;left: {amt_in_figures_from_left_edge}cm;
 			position: absolute; min-width: 4cm;">
-			{{doc.get_formatted("base_paid_amount") or doc.get_formatted("base_received_amount")}}
+			{{{{doc.get_formatted("base_paid_amount") or doc.get_formatted("base_received_amount")}}}}
 		</span>
-		<span style="top:%(signatory_from_top_edge)scm;left: %(signatory_from_left_edge)scm;
+		<span style="top:{signatory_from_top_edge}cm;left: {signatory_from_left_edge}cm;
 			position: absolute;  min-width: 6cm;">
-			{{doc.company}}
+			{{{{doc.company}}}}
 		</span>
 	</div>
-</div>""" % {
-		"starting_position_from_top_edge": doc.starting_position_from_top_edge
+</div>""".format(
+		starting_position_from_top_edge=doc.starting_position_from_top_edge
 		if doc.cheque_size == "A4"
 		else 0.0,
-		"cheque_width": doc.cheque_width,
-		"cheque_height": doc.cheque_height,
-		"acc_pay_dist_from_top_edge": doc.acc_pay_dist_from_top_edge,
-		"acc_pay_dist_from_left_edge": doc.acc_pay_dist_from_left_edge,
-		"message_to_show": doc.message_to_show if doc.message_to_show else _("Account Pay Only"),
-		"date_dist_from_top_edge": doc.date_dist_from_top_edge,
-		"date_dist_from_left_edge": doc.date_dist_from_left_edge,
-		"acc_no_dist_from_top_edge": doc.acc_no_dist_from_top_edge,
-		"acc_no_dist_from_left_edge": doc.acc_no_dist_from_left_edge,
-		"payer_name_from_top_edge": doc.payer_name_from_top_edge,
-		"payer_name_from_left_edge": doc.payer_name_from_left_edge,
-		"amt_in_words_from_top_edge": doc.amt_in_words_from_top_edge,
-		"amt_in_words_from_left_edge": doc.amt_in_words_from_left_edge,
-		"amt_in_word_width": doc.amt_in_word_width,
-		"amt_in_words_line_spacing": doc.amt_in_words_line_spacing,
-		"amt_in_figures_from_top_edge": doc.amt_in_figures_from_top_edge,
-		"amt_in_figures_from_left_edge": doc.amt_in_figures_from_left_edge,
-		"signatory_from_top_edge": doc.signatory_from_top_edge,
-		"signatory_from_left_edge": doc.signatory_from_left_edge,
-	}
+		cheque_width=doc.cheque_width,
+		cheque_height=doc.cheque_height,
+		acc_pay_dist_from_top_edge=doc.acc_pay_dist_from_top_edge,
+		acc_pay_dist_from_left_edge=doc.acc_pay_dist_from_left_edge,
+		message_to_show=doc.message_to_show if doc.message_to_show else _("Account Pay Only"),
+		date_dist_from_top_edge=doc.date_dist_from_top_edge,
+		date_dist_from_left_edge=doc.date_dist_from_left_edge,
+		acc_no_dist_from_top_edge=doc.acc_no_dist_from_top_edge,
+		acc_no_dist_from_left_edge=doc.acc_no_dist_from_left_edge,
+		payer_name_from_top_edge=doc.payer_name_from_top_edge,
+		payer_name_from_left_edge=doc.payer_name_from_left_edge,
+		amt_in_words_from_top_edge=doc.amt_in_words_from_top_edge,
+		amt_in_words_from_left_edge=doc.amt_in_words_from_left_edge,
+		amt_in_word_width=doc.amt_in_word_width,
+		amt_in_words_line_spacing=doc.amt_in_words_line_spacing,
+		amt_in_figures_from_top_edge=doc.amt_in_figures_from_top_edge,
+		amt_in_figures_from_left_edge=doc.amt_in_figures_from_left_edge,
+		signatory_from_top_edge=doc.signatory_from_top_edge,
+		signatory_from_left_edge=doc.signatory_from_left_edge,
+	)
 
 	cheque_print.save(ignore_permissions=True)
 
diff --git a/erpnext/accounts/doctype/cost_center/cost_center.py b/erpnext/accounts/doctype/cost_center/cost_center.py
index f662eb1..761369c 100644
--- a/erpnext/accounts/doctype/cost_center/cost_center.py
+++ b/erpnext/accounts/doctype/cost_center/cost_center.py
@@ -34,9 +34,7 @@
 	def autoname(self):
 		from erpnext.accounts.utils import get_autoname_with_number
 
-		self.name = get_autoname_with_number(
-			self.cost_center_number, self.cost_center_name, self.company
-		)
+		self.name = get_autoname_with_number(self.cost_center_number, self.cost_center_name, self.company)
 
 	def validate(self):
 		self.validate_mandatory()
@@ -109,14 +107,14 @@
 		new_cost_center = get_name_with_abbr(newdn, self.company)
 
 		# Validate properties before merging
-		super(CostCenter, self).before_rename(olddn, new_cost_center, merge, "is_group")
+		super().before_rename(olddn, new_cost_center, merge, "is_group")
 		if not merge:
 			new_cost_center = get_name_with_number(new_cost_center, self.cost_center_number)
 
 		return new_cost_center
 
 	def after_rename(self, olddn, newdn, merge=False):
-		super(CostCenter, self).after_rename(olddn, newdn, merge)
+		super().after_rename(olddn, newdn, merge)
 
 		if not merge:
 			new_cost_center = frappe.db.get_value(
diff --git a/erpnext/accounts/doctype/cost_center/test_cost_center.py b/erpnext/accounts/doctype/cost_center/test_cost_center.py
index 2ec1609..7d01918 100644
--- a/erpnext/accounts/doctype/cost_center/test_cost_center.py
+++ b/erpnext/accounts/doctype/cost_center/test_cost_center.py
@@ -10,7 +10,6 @@
 
 class TestCostCenter(unittest.TestCase):
 	def test_cost_center_creation_against_child_node(self):
-
 		if not frappe.db.get_value("Cost Center", {"name": "_Test Cost Center 2 - _TC"}):
 			frappe.get_doc(test_records[1]).insert()
 
diff --git a/erpnext/accounts/doctype/cost_center_allocation/cost_center_allocation.py b/erpnext/accounts/doctype/cost_center_allocation/cost_center_allocation.py
index 9ed5ddf..784ad27 100644
--- a/erpnext/accounts/doctype/cost_center_allocation/cost_center_allocation.py
+++ b/erpnext/accounts/doctype/cost_center_allocation/cost_center_allocation.py
@@ -48,7 +48,7 @@
 	# end: auto-generated types
 
 	def __init__(self, *args, **kwargs):
-		super(CostCenterAllocation, self).__init__(*args, **kwargs)
+		super().__init__(*args, **kwargs)
 		self._skip_from_date_validation = False
 
 	def validate(self):
@@ -63,9 +63,7 @@
 		total_percentage = sum([d.percentage for d in self.get("allocation_percentages", [])])
 
 		if total_percentage != 100:
-			frappe.throw(
-				_("Total percentage against cost centers should be 100"), WrongPercentageAllocation
-			)
+			frappe.throw(_("Total percentage against cost centers should be 100"), WrongPercentageAllocation)
 
 	def validate_from_date_based_on_existing_gle(self):
 		# Check if GLE exists against the main cost center
diff --git a/erpnext/accounts/doctype/currency_exchange_settings/currency_exchange_settings.py b/erpnext/accounts/doctype/currency_exchange_settings/currency_exchange_settings.py
index b8817c6..8cbb99e 100644
--- a/erpnext/accounts/doctype/currency_exchange_settings/currency_exchange_settings.py
+++ b/erpnext/accounts/doctype/currency_exchange_settings/currency_exchange_settings.py
@@ -43,7 +43,6 @@
 
 	def set_parameters_and_result(self):
 		if self.service_provider == "exchangerate.host":
-
 			if not self.access_key:
 				frappe.throw(
 					_("Access Key is required for Service Provider: {0}").format(
@@ -78,9 +77,7 @@
 				transaction_date=nowdate(), to_currency="INR", from_currency="USD"
 			)
 
-		api_url = self.api_endpoint.format(
-			transaction_date=nowdate(), to_currency="INR", from_currency="USD"
-		)
+		api_url = self.api_endpoint.format(transaction_date=nowdate(), to_currency="INR", from_currency="USD")
 
 		try:
 			response = requests.get(api_url, params=params)
@@ -100,14 +97,14 @@
 				]
 		except Exception:
 			frappe.throw(_("Invalid result key. Response:") + " " + response.text)
-		if not isinstance(value, (int, float)):
+		if not isinstance(value, int | float):
 			frappe.throw(_("Returned exchange rate is neither integer not float."))
 
 		self.url = response.url
 
 
 @frappe.whitelist()
-def get_api_endpoint(service_provider: str = None, use_http: bool = False):
+def get_api_endpoint(service_provider: str | None = None, use_http: bool = False):
 	if service_provider and service_provider in ["exchangerate.host", "frankfurter.app"]:
 		if service_provider == "exchangerate.host":
 			api = "api.exchangerate.host/convert"
diff --git a/erpnext/accounts/doctype/dunning/test_dunning.py b/erpnext/accounts/doctype/dunning/test_dunning.py
index b29ace2..62a0c90 100644
--- a/erpnext/accounts/doctype/dunning/test_dunning.py
+++ b/erpnext/accounts/doctype/dunning/test_dunning.py
@@ -109,9 +109,7 @@
 
 def create_dunning(overdue_days, dunning_type_name=None):
 	posting_date = add_days(today(), -1 * overdue_days)
-	sales_invoice = create_sales_invoice_against_cost_center(
-		posting_date=posting_date, qty=1, rate=100
-	)
+	sales_invoice = create_sales_invoice_against_cost_center(posting_date=posting_date, qty=1, rate=100)
 	dunning = create_dunning_from_sales_invoice(sales_invoice.name)
 
 	if dunning_type_name:
diff --git a/erpnext/accounts/doctype/exchange_rate_revaluation/exchange_rate_revaluation.py b/erpnext/accounts/doctype/exchange_rate_revaluation/exchange_rate_revaluation.py
index 29732ef..2b17779 100644
--- a/erpnext/accounts/doctype/exchange_rate_revaluation/exchange_rate_revaluation.py
+++ b/erpnext/accounts/doctype/exchange_rate_revaluation/exchange_rate_revaluation.py
@@ -268,7 +268,6 @@
 
 			# Handle Accounts with '0' balance in Account/Base Currency
 			for d in [x for x in account_details if x.zero_balance]:
-
 				if d.balance != 0:
 					current_exchange_rate = new_exchange_rate = 0
 
@@ -281,7 +280,8 @@
 					new_balance_in_account_currency = 0
 
 					current_exchange_rate = (
-						calculate_exchange_rate_using_last_gle(company, d.account, d.party_type, d.party) or 0.0
+						calculate_exchange_rate_using_last_gle(company, d.account, d.party_type, d.party)
+						or 0.0
 					)
 
 					gain_loss = new_balance_in_account_currency - (
@@ -335,9 +335,7 @@
 
 		revaluation_jv = self.make_jv_for_revaluation()
 		if revaluation_jv:
-			frappe.msgprint(
-				f"Revaluation Journal: {get_link_to_form('Journal Entry', revaluation_jv.name)}"
-			)
+			frappe.msgprint(f"Revaluation Journal: {get_link_to_form('Journal Entry', revaluation_jv.name)}")
 
 		return {
 			"revaluation_jv": revaluation_jv.name if revaluation_jv else None,
@@ -394,7 +392,8 @@
 				journal_account.update(
 					{
 						dr_or_cr: flt(
-							abs(d.get("balance_in_account_currency")), d.precision("balance_in_account_currency")
+							abs(d.get("balance_in_account_currency")),
+							d.precision("balance_in_account_currency"),
 						),
 						reverse_dr_or_cr: 0,
 						"debit": 0,
@@ -520,7 +519,9 @@
 						abs(d.get("balance_in_account_currency")), d.precision("balance_in_account_currency")
 					),
 					"cost_center": erpnext.get_default_cost_center(self.company),
-					"exchange_rate": flt(d.get("current_exchange_rate"), d.precision("current_exchange_rate")),
+					"exchange_rate": flt(
+						d.get("current_exchange_rate"), d.precision("current_exchange_rate")
+					),
 					"reference_type": "Exchange Rate Revaluation",
 					"reference_name": self.name,
 				}
@@ -598,7 +599,7 @@
 
 @frappe.whitelist()
 def get_account_details(
-	company, posting_date, account, party_type=None, party=None, rounding_loss_allowance: float = None
+	company, posting_date, account, party_type=None, party=None, rounding_loss_allowance: float | None = None
 ):
 	if not (company and posting_date):
 		frappe.throw(_("Company and Posting Date is mandatory"))
@@ -611,7 +612,7 @@
 		frappe.throw(_("Party Type and Party is mandatory for {0} account").format(account_type))
 
 	account_details = {}
-	company_currency = erpnext.get_company_currency(company)
+	erpnext.get_company_currency(company)
 
 	account_details = {
 		"account_currency": account_currency,
@@ -625,9 +626,7 @@
 		rounding_loss_allowance=rounding_loss_allowance,
 	)
 
-	if account_balance and (
-		account_balance[0].balance or account_balance[0].balance_in_account_currency
-	):
+	if account_balance and (account_balance[0].balance or account_balance[0].balance_in_account_currency):
 		if account_with_new_balance := ExchangeRateRevaluation.calculate_new_account_balance(
 			company, posting_date, account_balance
 		):
diff --git a/erpnext/accounts/doctype/exchange_rate_revaluation/test_exchange_rate_revaluation.py b/erpnext/accounts/doctype/exchange_rate_revaluation/test_exchange_rate_revaluation.py
index e520872..51053f1 100644
--- a/erpnext/accounts/doctype/exchange_rate_revaluation/test_exchange_rate_revaluation.py
+++ b/erpnext/accounts/doctype/exchange_rate_revaluation/test_exchange_rate_revaluation.py
@@ -1,21 +1,14 @@
 # Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors
 # See license.txt
 
-import unittest
 
 import frappe
-from frappe import qb
 from frappe.tests.utils import FrappeTestCase, change_settings
 from frappe.utils import add_days, flt, today
 
-from erpnext import get_default_cost_center
 from erpnext.accounts.doctype.payment_entry.payment_entry import get_payment_entry
-from erpnext.accounts.doctype.payment_entry.test_payment_entry import create_payment_entry
-from erpnext.accounts.doctype.purchase_invoice.test_purchase_invoice import make_purchase_invoice
 from erpnext.accounts.doctype.sales_invoice.test_sales_invoice import create_sales_invoice
-from erpnext.accounts.party import get_party_account
 from erpnext.accounts.test.accounts_mixin import AccountsTestMixin
-from erpnext.stock.doctype.item.test_item import create_item
 
 
 class TestExchangeRateRevaluation(AccountsTestMixin, FrappeTestCase):
@@ -73,9 +66,7 @@
 		err.extend("accounts", accounts)
 		row = err.accounts[0]
 		row.new_exchange_rate = 85
-		row.new_balance_in_base_currency = flt(
-			row.new_exchange_rate * flt(row.balance_in_account_currency)
-		)
+		row.new_balance_in_base_currency = flt(row.new_exchange_rate * flt(row.balance_in_account_currency))
 		row.gain_loss = row.new_balance_in_base_currency - flt(row.balance_in_base_currency)
 		err.set_total_gain_loss()
 		err = err.save().submit()
@@ -127,9 +118,9 @@
 		pe.save().submit()
 
 		# Cancel the auto created gain/loss JE to simulate balance only in base currency
-		je = frappe.db.get_all(
-			"Journal Entry Account", filters={"reference_name": si.name}, pluck="parent"
-		)[0]
+		je = frappe.db.get_all("Journal Entry Account", filters={"reference_name": si.name}, pluck="parent")[
+			0
+		]
 		frappe.get_doc("Journal Entry", je).cancel()
 
 		err = frappe.new_doc("Exchange Rate Revaluation")
@@ -235,9 +226,9 @@
 			self.assertEqual(flt(acc.debit, precision), 0.0)
 			self.assertEqual(flt(acc.credit, precision), 0.0)
 
-		row = [x for x in je.accounts if x.account == self.debtors_usd][0]
+		row = next(x for x in je.accounts if x.account == self.debtors_usd)
 		self.assertEqual(flt(row.credit_in_account_currency, precision), 5.0)  # in USD
-		row = [x for x in je.accounts if x.account != self.debtors_usd][0]
+		row = next(x for x in je.accounts if x.account != self.debtors_usd)
 		self.assertEqual(flt(row.debit_in_account_currency, precision), 421.06)  # in INR
 
 		# total_debit and total_credit will be 0.0, as JV is posting only to account currency fields
@@ -294,5 +285,5 @@
 			"new_balance_in_account_currency": 100.0,
 		}
 
-		for key, val in expected_data.items():
+		for key, _val in expected_data.items():
 			self.assertEqual(expected_data.get(key), account_details.get(key))
diff --git a/erpnext/accounts/doctype/fiscal_year/fiscal_year.py b/erpnext/accounts/doctype/fiscal_year/fiscal_year.py
index 85f3ffd..25aa3f3 100644
--- a/erpnext/accounts/doctype/fiscal_year/fiscal_year.py
+++ b/erpnext/accounts/doctype/fiscal_year/fiscal_year.py
@@ -108,9 +108,9 @@
 
 				if overlap:
 					frappe.throw(
-						_("Year start date or end date is overlapping with {0}. To avoid please set company").format(
-							existing.name
-						),
+						_(
+							"Year start date or end date is overlapping with {0}. To avoid please set company"
+						).format(existing.name),
 						frappe.NameError,
 					)
 
@@ -126,9 +126,9 @@
 			not frappe.flags.in_test
 		):
 			frappe.throw(
-				_("Fiscal Year Start Date and Fiscal Year End Date are already set in Fiscal Year {0}").format(
-					fiscal_year
-				)
+				_(
+					"Fiscal Year Start Date and Fiscal Year End Date are already set in Fiscal Year {0}"
+				).format(fiscal_year)
 			)
 
 
diff --git a/erpnext/accounts/doctype/gl_entry/gl_entry.py b/erpnext/accounts/doctype/gl_entry/gl_entry.py
index a6f6d4e..c494eec 100644
--- a/erpnext/accounts/doctype/gl_entry/gl_entry.py
+++ b/erpnext/accounts/doctype/gl_entry/gl_entry.py
@@ -105,13 +105,18 @@
 			]:
 				# Update outstanding amt on against voucher
 				if (
-					self.against_voucher_type in ["Journal Entry", "Sales Invoice", "Purchase Invoice", "Fees"]
+					self.against_voucher_type
+					in ["Journal Entry", "Sales Invoice", "Purchase Invoice", "Fees"]
 					and self.against_voucher
 					and self.flags.update_outstanding == "Yes"
 					and not frappe.flags.is_reverse_depr_entry
 				):
 					update_outstanding_amt(
-						self.account, self.party_type, self.party, self.against_voucher_type, self.against_voucher
+						self.account,
+						self.party_type,
+						self.party,
+						self.against_voucher_type,
+						self.against_voucher,
 					)
 
 	def check_mandatory(self):
@@ -180,9 +185,9 @@
 			):
 				if not self.get(dimension.fieldname):
 					frappe.throw(
-						_("Accounting Dimension <b>{0}</b> is required for 'Profit and Loss' account {1}.").format(
-							dimension.label, self.account
-						)
+						_(
+							"Accounting Dimension <b>{0}</b> is required for 'Profit and Loss' account {1}."
+						).format(dimension.label, self.account)
 					)
 
 			if (
@@ -193,9 +198,9 @@
 			):
 				if not self.get(dimension.fieldname):
 					frappe.throw(
-						_("Accounting Dimension <b>{0}</b> is required for 'Balance Sheet' account {1}.").format(
-							dimension.label, self.account
-						)
+						_(
+							"Accounting Dimension <b>{0}</b> is required for 'Balance Sheet' account {1}."
+						).format(dimension.label, self.account)
 					)
 
 	def check_pl_account(self):
@@ -243,9 +248,7 @@
 		if not self.cost_center:
 			return
 
-		is_group, company = frappe.get_cached_value(
-			"Cost Center", self.cost_center, ["is_group", "company"]
-		)
+		is_group, company = frappe.get_cached_value("Cost Center", self.cost_center, ["is_group", "company"])
 
 		if company != self.company:
 			frappe.throw(
@@ -314,7 +317,7 @@
 	account, party_type, party, against_voucher_type, against_voucher, on_cancel=False
 ):
 	if party_type and party:
-		party_condition = " and party_type={0} and party={1}".format(
+		party_condition = " and party_type={} and party={}".format(
 			frappe.db.escape(party_type), frappe.db.escape(party)
 		)
 	else:
@@ -322,23 +325,19 @@
 
 	if against_voucher_type == "Sales Invoice":
 		party_account = frappe.get_cached_value(against_voucher_type, against_voucher, "debit_to")
-		account_condition = "and account in ({0}, {1})".format(
-			frappe.db.escape(account), frappe.db.escape(party_account)
-		)
+		account_condition = f"and account in ({frappe.db.escape(account)}, {frappe.db.escape(party_account)})"
 	else:
-		account_condition = " and account = {0}".format(frappe.db.escape(account))
+		account_condition = f" and account = {frappe.db.escape(account)}"
 
 	# get final outstanding amt
 	bal = flt(
 		frappe.db.sql(
-			"""
+			f"""
 		select sum(debit_in_account_currency) - sum(credit_in_account_currency)
 		from `tabGL Entry`
 		where against_voucher_type=%s and against_voucher=%s
 		and voucher_type != 'Invoice Discounting'
-		{0} {1}""".format(
-				party_condition, account_condition
-			),
+		{party_condition} {account_condition}""",
 			(against_voucher_type, against_voucher),
 		)[0][0]
 		or 0.0
@@ -349,12 +348,10 @@
 	elif against_voucher_type == "Journal Entry":
 		against_voucher_amount = flt(
 			frappe.db.sql(
-				"""
+				f"""
 			select sum(debit_in_account_currency) - sum(credit_in_account_currency)
 			from `tabGL Entry` where voucher_type = 'Journal Entry' and voucher_no = %s
-			and account = %s and (against_voucher is null or against_voucher='') {0}""".format(
-					party_condition
-				),
+			and account = %s and (against_voucher is null or against_voucher='') {party_condition}""",
 				(against_voucher, account),
 			)[0][0]
 		)
@@ -373,7 +370,9 @@
 		# Validation : Outstanding can not be negative for JV
 		if bal < 0 and not on_cancel:
 			frappe.throw(
-				_("Outstanding for {0} cannot be less than zero ({1})").format(against_voucher, fmt_money(bal))
+				_("Outstanding for {0} cannot be less than zero ({1})").format(
+					against_voucher, fmt_money(bal)
+				)
 			)
 
 	if against_voucher_type in ["Sales Invoice", "Purchase Invoice", "Fees"]:
@@ -446,7 +445,7 @@
 		set_name_from_naming_options(frappe.get_meta(doctype).autoname, doc)
 		newname = doc.name
 		frappe.db.sql(
-			"UPDATE `tab{}` SET name = %s, to_rename = 0 where name = %s".format(doctype),
+			f"UPDATE `tab{doctype}` SET name = %s, to_rename = 0 where name = %s",
 			(newname, oldname),
 			auto_commit=True,
 		)
diff --git a/erpnext/accounts/doctype/gl_entry/test_gl_entry.py b/erpnext/accounts/doctype/gl_entry/test_gl_entry.py
index b188b09..3edfd67 100644
--- a/erpnext/accounts/doctype/gl_entry/test_gl_entry.py
+++ b/erpnext/accounts/doctype/gl_entry/test_gl_entry.py
@@ -14,9 +14,7 @@
 class TestGLEntry(unittest.TestCase):
 	def test_round_off_entry(self):
 		frappe.db.set_value("Company", "_Test Company", "round_off_account", "_Test Write Off - _TC")
-		frappe.db.set_value(
-			"Company", "_Test Company", "round_off_cost_center", "_Test Cost Center - _TC"
-		)
+		frappe.db.set_value("Company", "_Test Company", "round_off_cost_center", "_Test Cost Center - _TC")
 
 		jv = make_journal_entry(
 			"_Test Account Cost for Goods Sold - _TC",
@@ -73,7 +71,9 @@
 		)
 		self.assertTrue(all(entry.to_rename == 0 for entry in new_gl_entries))
 
-		self.assertTrue(all(new.name != old.name for new, old in zip(gl_entries, new_gl_entries)))
+		self.assertTrue(
+			all(new.name != old.name for new, old in zip(gl_entries, new_gl_entries, strict=False))
+		)
 
 		new_naming_series_current_value = frappe.db.sql(
 			"SELECT current from tabSeries where name = %s", naming_series
diff --git a/erpnext/accounts/doctype/invoice_discounting/invoice_discounting.py b/erpnext/accounts/doctype/invoice_discounting/invoice_discounting.py
index 76f4dad..5d3c2b9 100644
--- a/erpnext/accounts/doctype/invoice_discounting/invoice_discounting.py
+++ b/erpnext/accounts/doctype/invoice_discounting/invoice_discounting.py
@@ -83,9 +83,7 @@
 				frappe.throw(
 					_(
 						"Row({0}): Outstanding Amount cannot be greater than actual Outstanding Amount {1} in {2}"
-					).format(
-						record.idx, frappe.bold(actual_outstanding), frappe.bold(record.sales_invoice)
-					)
+					).format(record.idx, frappe.bold(actual_outstanding), frappe.bold(record.sales_invoice))
 				)
 
 	def calculate_total_amount(self):
@@ -105,7 +103,9 @@
 			self.status = status
 			self.db_set("status", status)
 			for d in self.invoices:
-				frappe.get_doc("Sales Invoice", d.sales_invoice).set_status(update=True, update_modified=False)
+				frappe.get_doc("Sales Invoice", d.sales_invoice).set_status(
+					update=True, update_modified=False
+				)
 		else:
 			self.status = "Draft"
 			if self.docstatus == 1:
diff --git a/erpnext/accounts/doctype/invoice_discounting/test_invoice_discounting.py b/erpnext/accounts/doctype/invoice_discounting/test_invoice_discounting.py
index a85fdfc..65e3c3d 100644
--- a/erpnext/accounts/doctype/invoice_discounting/test_invoice_discounting.py
+++ b/erpnext/accounts/doctype/invoice_discounting/test_invoice_discounting.py
@@ -75,7 +75,7 @@
 		gle = get_gl_entries("Invoice Discounting", inv_disc.name)
 
 		expected_gle = {inv.debit_to: [0.0, 200], self.ar_credit: [200, 0.0]}
-		for i, gle in enumerate(gle):
+		for _i, gle in enumerate(gle):
 			self.assertEqual([gle.debit, gle.credit], expected_gle.get(gle.account))
 
 	def test_loan_on_submit(self):
@@ -92,9 +92,7 @@
 			period=60,
 		)
 		self.assertEqual(inv_disc.status, "Sanctioned")
-		self.assertEqual(
-			inv_disc.loan_end_date, add_days(inv_disc.loan_start_date, inv_disc.loan_period)
-		)
+		self.assertEqual(inv_disc.loan_end_date, add_days(inv_disc.loan_start_date, inv_disc.loan_period))
 
 	def test_on_disbursed(self):
 		inv = create_sales_invoice(rate=500)
@@ -262,13 +260,9 @@
 		je_on_payment.submit()
 
 		self.assertEqual(je_on_payment.accounts[0].account, self.ar_discounted)
-		self.assertEqual(
-			je_on_payment.accounts[0].credit_in_account_currency, flt(inv.outstanding_amount)
-		)
+		self.assertEqual(je_on_payment.accounts[0].credit_in_account_currency, flt(inv.outstanding_amount))
 		self.assertEqual(je_on_payment.accounts[1].account, self.bank_account)
-		self.assertEqual(
-			je_on_payment.accounts[1].debit_in_account_currency, flt(inv.outstanding_amount)
-		)
+		self.assertEqual(je_on_payment.accounts[1].debit_in_account_currency, flt(inv.outstanding_amount))
 
 		inv.reload()
 		self.assertEqual(inv.outstanding_amount, 0)
@@ -304,13 +298,9 @@
 		je_on_payment.submit()
 
 		self.assertEqual(je_on_payment.accounts[0].account, self.ar_unpaid)
-		self.assertEqual(
-			je_on_payment.accounts[0].credit_in_account_currency, flt(inv.outstanding_amount)
-		)
+		self.assertEqual(je_on_payment.accounts[0].credit_in_account_currency, flt(inv.outstanding_amount))
 		self.assertEqual(je_on_payment.accounts[1].account, self.bank_account)
-		self.assertEqual(
-			je_on_payment.accounts[1].debit_in_account_currency, flt(inv.outstanding_amount)
-		)
+		self.assertEqual(je_on_payment.accounts[1].debit_in_account_currency, flt(inv.outstanding_amount))
 
 		inv.reload()
 		self.assertEqual(inv.outstanding_amount, 0)
diff --git a/erpnext/accounts/doctype/item_tax_template/item_tax_template.py b/erpnext/accounts/doctype/item_tax_template/item_tax_template.py
index 8d3cdc8..02b7455 100644
--- a/erpnext/accounts/doctype/item_tax_template/item_tax_template.py
+++ b/erpnext/accounts/doctype/item_tax_template/item_tax_template.py
@@ -32,7 +32,7 @@
 	def autoname(self):
 		if self.company and self.title:
 			abbr = frappe.get_cached_value("Company", self.company, "abbr")
-			self.name = "{0} - {1}".format(self.title, abbr)
+			self.name = f"{self.title} - {abbr}"
 
 	def validate_tax_accounts(self):
 		"""Check whether Tax Rate is not entered twice for same Tax Type"""
diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.py b/erpnext/accounts/doctype/journal_entry/journal_entry.py
index 835d202..048b04b 100644
--- a/erpnext/accounts/doctype/journal_entry/journal_entry.py
+++ b/erpnext/accounts/doctype/journal_entry/journal_entry.py
@@ -112,7 +112,7 @@
 	# end: auto-generated types
 
 	def __init__(self, *args, **kwargs):
-		super(JournalEntry, self).__init__(*args, **kwargs)
+		super().__init__(*args, **kwargs)
 
 	def validate(self):
 		if self.voucher_type == "Opening Entry":
@@ -191,7 +191,7 @@
 
 	def on_cancel(self):
 		# References for this Journal are removed on the `on_cancel` event in accounts_controller
-		super(JournalEntry, self).on_cancel()
+		super().on_cancel()
 		self.ignore_linked_doctypes = (
 			"GL Entry",
 			"Stock Ledger Entry",
@@ -216,9 +216,9 @@
 
 	def update_advance_paid(self):
 		advance_paid = frappe._dict()
-		advance_payment_doctypes = frappe.get_hooks(
-			"advance_payment_receivable_doctypes"
-		) + frappe.get_hooks("advance_payment_payable_doctypes")
+		advance_payment_doctypes = frappe.get_hooks("advance_payment_receivable_doctypes") + frappe.get_hooks(
+			"advance_payment_payable_doctypes"
+		)
 		for d in self.get("accounts"):
 			if d.is_advance:
 				if d.reference_type in advance_payment_doctypes:
@@ -229,10 +229,7 @@
 				frappe.get_doc(voucher_type, voucher_no).set_total_advance_paid()
 
 	def validate_inter_company_accounts(self):
-		if (
-			self.voucher_type == "Inter Company Journal Entry"
-			and self.inter_company_journal_entry_reference
-		):
+		if self.voucher_type == "Inter Company Journal Entry" and self.inter_company_journal_entry_reference:
 			doc = frappe.get_doc("Journal Entry", self.inter_company_journal_entry_reference)
 			account_currency = frappe.get_cached_value("Company", self.company, "default_currency")
 			previous_account_currency = frappe.get_cached_value("Company", doc.company, "default_currency")
@@ -378,10 +375,7 @@
 				asset.set_status()
 
 	def update_inter_company_jv(self):
-		if (
-			self.voucher_type == "Inter Company Journal Entry"
-			and self.inter_company_journal_entry_reference
-		):
+		if self.voucher_type == "Inter Company Journal Entry" and self.inter_company_journal_entry_reference:
 			frappe.db.set_value(
 				"Journal Entry",
 				self.inter_company_journal_entry_reference,
@@ -409,17 +403,25 @@
 				if d.account == inv_disc_doc.short_term_loan and d.reference_name == inv_disc:
 					if self.docstatus == 1:
 						if d.credit > 0:
-							_validate_invoice_discounting_status(inv_disc, inv_disc_doc.status, "Sanctioned", d.idx)
+							_validate_invoice_discounting_status(
+								inv_disc, inv_disc_doc.status, "Sanctioned", d.idx
+							)
 							status = "Disbursed"
 						elif d.debit > 0:
-							_validate_invoice_discounting_status(inv_disc, inv_disc_doc.status, "Disbursed", d.idx)
+							_validate_invoice_discounting_status(
+								inv_disc, inv_disc_doc.status, "Disbursed", d.idx
+							)
 							status = "Settled"
 					else:
 						if d.credit > 0:
-							_validate_invoice_discounting_status(inv_disc, inv_disc_doc.status, "Disbursed", d.idx)
+							_validate_invoice_discounting_status(
+								inv_disc, inv_disc_doc.status, "Disbursed", d.idx
+							)
 							status = "Sanctioned"
 						elif d.debit > 0:
-							_validate_invoice_discounting_status(inv_disc, inv_disc_doc.status, "Settled", d.idx)
+							_validate_invoice_discounting_status(
+								inv_disc, inv_disc_doc.status, "Settled", d.idx
+							)
 							status = "Disbursed"
 					break
 			if status:
@@ -488,10 +490,7 @@
 					)
 
 	def unlink_inter_company_jv(self):
-		if (
-			self.voucher_type == "Inter Company Journal Entry"
-			and self.inter_company_journal_entry_reference
-		):
+		if self.voucher_type == "Inter Company Journal Entry" and self.inter_company_journal_entry_reference:
 			frappe.db.set_value(
 				"Journal Entry",
 				self.inter_company_journal_entry_reference,
@@ -513,9 +512,9 @@
 			if account_type in ["Receivable", "Payable"]:
 				if not (d.party_type and d.party):
 					frappe.throw(
-						_("Row {0}: Party Type and Party is required for Receivable / Payable account {1}").format(
-							d.idx, d.account
-						)
+						_(
+							"Row {0}: Party Type and Party is required for Receivable / Payable account {1}"
+						).format(d.idx, d.account)
 					)
 				elif (
 					d.party_type
@@ -580,16 +579,18 @@
 
 	def system_generated_gain_loss(self):
 		return (
-			self.voucher_type == "Exchange Gain Or Loss"
-			and self.multi_currency
-			and self.is_system_generated
+			self.voucher_type == "Exchange Gain Or Loss" and self.multi_currency and self.is_system_generated
 		)
 
 	def validate_against_jv(self):
 		for d in self.get("accounts"):
 			if d.reference_type == "Journal Entry":
 				account_root_type = frappe.get_cached_value("Account", d.account, "root_type")
-				if account_root_type == "Asset" and flt(d.debit) > 0 and not self.system_generated_gain_loss():
+				if (
+					account_root_type == "Asset"
+					and flt(d.debit) > 0
+					and not self.system_generated_gain_loss()
+				):
 					frappe.throw(
 						_(
 							"Row #{0}: For {1}, you can select reference document only if account gets credited"
@@ -671,7 +672,9 @@
 
 				if d.reference_type == "Purchase Order" and flt(d.credit) > 0:
 					frappe.throw(
-						_("Row {0}: Credit entry can not be linked with a {1}").format(d.idx, d.reference_type)
+						_("Row {0}: Credit entry can not be linked with a {1}").format(
+							d.idx, d.reference_type
+						)
 					)
 
 				# set totals
@@ -693,7 +696,10 @@
 
 				# check if party and account match
 				if d.reference_type in ("Sales Invoice", "Purchase Invoice"):
-					if self.voucher_type in ("Deferred Revenue", "Deferred Expense") and d.reference_detail_no:
+					if (
+						self.voucher_type in ("Deferred Revenue", "Deferred Expense")
+						and d.reference_detail_no
+					):
 						debit_or_credit = "Debit" if d.debit else "Credit"
 						party_account = get_deferred_booking_accounts(
 							d.reference_type, d.reference_detail_no, debit_or_credit
@@ -702,7 +708,8 @@
 					else:
 						if d.reference_type == "Sales Invoice":
 							party_account = (
-								get_party_account_based_on_invoice_discounting(d.reference_name) or against_voucher[1]
+								get_party_account_based_on_invoice_discounting(d.reference_name)
+								or against_voucher[1]
 							)
 						else:
 							party_account = against_voucher[1]
@@ -826,7 +833,9 @@
 		if not (self.voucher_type == "Exchange Gain Or Loss" and self.multi_currency):
 			if self.difference:
 				frappe.throw(
-					_("Total Debit must be equal to Total Credit. The difference is {0}").format(self.difference)
+					_("Total Debit must be equal to Total Credit. The difference is {0}").format(
+						self.difference
+					)
 				)
 
 	def set_total_debit_credit(self):
@@ -890,7 +899,6 @@
 					and self.posting_date
 				)
 			):
-
 				ignore_exchange_rate = False
 				if self.get("flags") and self.flags.get("ignore_exchange_rate"):
 					ignore_exchange_rate = True
@@ -1136,27 +1144,21 @@
 		self.validate_total_debit_and_credit()
 
 	def get_values(self):
-		cond = (
-			" and outstanding_amount <= {0}".format(self.write_off_amount)
-			if flt(self.write_off_amount) > 0
-			else ""
-		)
+		cond = f" and outstanding_amount <= {self.write_off_amount}" if flt(self.write_off_amount) > 0 else ""
 
 		if self.write_off_based_on == "Accounts Receivable":
 			return frappe.db.sql(
 				"""select name, debit_to as account, customer as party, outstanding_amount
-				from `tabSales Invoice` where docstatus = 1 and company = %s
-				and outstanding_amount > 0 %s"""
-				% ("%s", cond),
+				from `tabSales Invoice` where docstatus = 1 and company = {}
+				and outstanding_amount > 0 {}""".format("%s", cond),
 				self.company,
 				as_dict=True,
 			)
 		elif self.write_off_based_on == "Accounts Payable":
 			return frappe.db.sql(
 				"""select name, credit_to as account, supplier as party, outstanding_amount
-				from `tabPurchase Invoice` where docstatus = 1 and company = %s
-				and outstanding_amount > 0 %s"""
-				% ("%s", cond),
+				from `tabPurchase Invoice` where docstatus = 1 and company = {}
+				and outstanding_amount > 0 {}""".format("%s", cond),
 				self.company,
 				as_dict=True,
 			)
@@ -1267,7 +1269,7 @@
 			"amount_field_bank": amount_field_bank,
 			"amount": amount,
 			"debit_in_account_currency": debit_in_account_currency,
-			"remarks": "Advance Payment received against {0} {1}".format(dt, dn),
+			"remarks": f"Advance Payment received against {dt} {dn}",
 			"is_advance": "Yes",
 			"bank_account": bank_account,
 			"journal_entry": journal_entry,
@@ -1306,7 +1308,7 @@
 			"amount_field_bank": amount_field_bank,
 			"amount": amount if amount else abs(ref_doc.outstanding_amount),
 			"debit_in_account_currency": debit_in_account_currency,
-			"remarks": "Payment received against {0} {1}. {2}".format(dt, dn, ref_doc.remarks),
+			"remarks": f"Payment received against {dt} {dn}. {ref_doc.remarks}",
 			"is_advance": "No",
 			"bank_account": bank_account,
 			"journal_entry": journal_entry,
@@ -1332,9 +1334,7 @@
 		)
 
 	je = frappe.new_doc("Journal Entry")
-	je.update(
-		{"voucher_type": "Bank Entry", "company": ref_doc.company, "remark": args.get("remarks")}
-	)
+	je.update({"voucher_type": "Bank Entry", "company": ref_doc.company, "remark": args.get("remarks")})
 
 	party_row = je.append(
 		"accounts",
@@ -1357,9 +1357,7 @@
 	bank_row = je.append("accounts")
 
 	# Make it bank_details
-	bank_account = get_default_bank_cash_account(
-		ref_doc.company, "Bank", account=args.get("bank_account")
-	)
+	bank_account = get_default_bank_cash_account(ref_doc.company, "Bank", account=args.get("bank_account"))
 	if bank_account:
 		bank_row.update(bank_account)
 		# Modified to include the posting date for which the exchange rate is required.
@@ -1399,7 +1397,7 @@
 		return []
 
 	return frappe.db.sql(
-		"""
+		f"""
 		SELECT jv.name, jv.posting_date, jv.user_remark
 		FROM `tabJournal Entry` jv, `tabJournal Entry Account` jv_detail
 		WHERE jv_detail.parent = jv.name
@@ -1410,16 +1408,14 @@
 				OR jv_detail.reference_type = ''
 			)
 			AND jv.docstatus = 1
-			AND jv.`{0}` LIKE %(txt)s
+			AND jv.`{searchfield}` LIKE %(txt)s
 		ORDER BY jv.name DESC
 		LIMIT %(limit)s offset %(offset)s
-		""".format(
-			searchfield
-		),
+		""",
 		dict(
 			account=filters.get("account"),
 			party=cstr(filters.get("party")),
-			txt="%{0}%".format(txt),
+			txt=f"%{txt}%",
 			offset=start,
 			limit=page_len,
 		),
@@ -1441,19 +1437,15 @@
 		condition = " and party=%(party)s" if args.get("party") else ""
 
 		against_jv_amount = frappe.db.sql(
-			"""
+			f"""
 			select sum(debit_in_account_currency) - sum(credit_in_account_currency)
-			from `tabJournal Entry Account` where parent=%(docname)s and account=%(account)s {0}
-			and (reference_type is null or reference_type = '')""".format(
-				condition
-			),
+			from `tabJournal Entry Account` where parent=%(docname)s and account=%(account)s {condition}
+			and (reference_type is null or reference_type = '')""",
 			args,
 		)
 
 		against_jv_amount = flt(against_jv_amount[0][0]) if against_jv_amount else 0
-		amount_field = (
-			"credit_in_account_currency" if against_jv_amount > 0 else "debit_in_account_currency"
-		)
+		amount_field = "credit_in_account_currency" if against_jv_amount > 0 else "debit_in_account_currency"
 		return {amount_field: abs(against_jv_amount)}
 	elif args.get("doctype") in ("Sales Invoice", "Purchase Invoice"):
 		party_type = "Customer" if args.get("doctype") == "Sales Invoice" else "Supplier"
@@ -1466,9 +1458,7 @@
 
 		due_date = invoice.get("due_date")
 
-		exchange_rate = (
-			invoice.conversion_rate if (args.get("account_currency") != company_currency) else 1
-		)
+		exchange_rate = invoice.conversion_rate if (args.get("account_currency") != company_currency) else 1
 
 		if args["doctype"] == "Sales Invoice":
 			amount_field = (
@@ -1506,9 +1496,7 @@
 
 
 @frappe.whitelist()
-def get_account_details_and_party_type(
-	account, date, company, debit=None, credit=None, exchange_rate=None
-):
+def get_account_details_and_party_type(account, date, company, debit=None, credit=None, exchange_rate=None):
 	"""Returns dict of account details and party type to be set in Journal Entry on selection of account."""
 	if not frappe.has_permission("Account"):
 		frappe.msgprint(_("No Permission"), raise_exception=1)
diff --git a/erpnext/accounts/doctype/journal_entry/test_journal_entry.py b/erpnext/accounts/doctype/journal_entry/test_journal_entry.py
index 798d3bb..5bfb65a 100644
--- a/erpnext/accounts/doctype/journal_entry/test_journal_entry.py
+++ b/erpnext/accounts/doctype/journal_entry/test_journal_entry.py
@@ -69,10 +69,8 @@
 
 		self.assertTrue(
 			frappe.db.sql(
-				"""select name from `tabJournal Entry Account`
-			where reference_type = %s and reference_name = %s and {0}=400""".format(
-					dr_or_cr
-				),
+				f"""select name from `tabJournal Entry Account`
+			where reference_type = %s and reference_name = %s and {dr_or_cr}=400""",
 				(submitted_voucher.doctype, submitted_voucher.name),
 			)
 		)
@@ -84,9 +82,8 @@
 	def advance_paid_testcase(self, base_jv, test_voucher, dr_or_cr):
 		# Test advance paid field
 		advance_paid = frappe.db.sql(
-			"""select advance_paid from `tab%s`
-					where name=%s"""
-			% (test_voucher.doctype, "%s"),
+			"""select advance_paid from `tab{}`
+					where name={}""".format(test_voucher.doctype, "%s"),
 			(test_voucher.name),
 		)
 		payment_against_order = base_jv.get("accounts")[0].get(dr_or_cr)
@@ -159,9 +156,7 @@
 			jv.cancel()
 
 	def test_multi_currency(self):
-		jv = make_journal_entry(
-			"_Test Bank USD - _TC", "_Test Bank - _TC", 100, exchange_rate=50, save=False
-		)
+		jv = make_journal_entry("_Test Bank USD - _TC", "_Test Bank - _TC", 100, exchange_rate=50, save=False)
 
 		jv.get("accounts")[1].credit_in_account_currency = 5000
 		jv.submit()
@@ -477,9 +472,7 @@
 			query = query.select(gl[field])
 
 		query = query.where(
-			(gl.voucher_type == "Journal Entry")
-			& (gl.voucher_no == self.voucher_no)
-			& (gl.is_cancelled == 0)
+			(gl.voucher_type == "Journal Entry") & (gl.voucher_no == self.voucher_no) & (gl.is_cancelled == 0)
 		).orderby(gl.account)
 
 		gl_entries = query.run(as_dict=True)
diff --git a/erpnext/accounts/doctype/ledger_merge/test_ledger_merge.py b/erpnext/accounts/doctype/ledger_merge/test_ledger_merge.py
index 992ce9e..dccd73c 100644
--- a/erpnext/accounts/doctype/ledger_merge/test_ledger_merge.py
+++ b/erpnext/accounts/doctype/ledger_merge/test_ledger_merge.py
@@ -83,7 +83,10 @@
 				"account": "Indirect Income - _TC",
 				"merge_accounts": [
 					{"account": "Indirect Test Income - _TC", "account_name": "Indirect Test Income"},
-					{"account": "Administrative Test Income - _TC", "account_name": "Administrative Test Income"},
+					{
+						"account": "Administrative Test Income - _TC",
+						"account_name": "Administrative Test Income",
+					},
 				],
 			}
 		).insert(ignore_permissions=True)
diff --git a/erpnext/accounts/doctype/loyalty_program/loyalty_program.py b/erpnext/accounts/doctype/loyalty_program/loyalty_program.py
index 463b3cd..f3ad84b 100644
--- a/erpnext/accounts/doctype/loyalty_program/loyalty_program.py
+++ b/erpnext/accounts/doctype/loyalty_program/loyalty_program.py
@@ -52,13 +52,11 @@
 		condition += " and expiry_date>='%s' " % expiry_date
 
 	loyalty_point_details = frappe.db.sql(
-		"""select sum(loyalty_points) as loyalty_points,
+		f"""select sum(loyalty_points) as loyalty_points,
 		sum(purchase_amount) as total_spent from `tabLoyalty Point Entry`
 		where customer=%s and loyalty_program=%s and posting_date <= %s
 		{condition}
-		group by customer""".format(
-			condition=condition
-		),
+		group by customer""",
 		(customer, loyalty_program, expiry_date),
 		as_dict=1,
 	)
@@ -79,9 +77,7 @@
 	include_expired_entry=False,
 	current_transaction_amount=0,
 ):
-	lp_details = get_loyalty_program_details(
-		customer, loyalty_program, company=company, silent=silent
-	)
+	lp_details = get_loyalty_program_details(customer, loyalty_program, company=company, silent=silent)
 	loyalty_program = frappe.get_doc("Loyalty Program", loyalty_program)
 	lp_details.update(
 		get_loyalty_details(customer, loyalty_program.name, expiry_date, company, include_expired_entry)
diff --git a/erpnext/accounts/doctype/loyalty_program/test_loyalty_program.py b/erpnext/accounts/doctype/loyalty_program/test_loyalty_program.py
index cbfb17b..4d21fb6 100644
--- a/erpnext/accounts/doctype/loyalty_program/test_loyalty_program.py
+++ b/erpnext/accounts/doctype/loyalty_program/test_loyalty_program.py
@@ -19,9 +19,7 @@
 		create_records()
 
 	def test_loyalty_points_earned_single_tier(self):
-		frappe.db.set_value(
-			"Customer", "Test Loyalty Customer", "loyalty_program", "Test Single Loyalty"
-		)
+		frappe.db.set_value("Customer", "Test Loyalty Customer", "loyalty_program", "Test Single Loyalty")
 		# create a new sales invoice
 		si_original = create_sales_invoice_record()
 		si_original.insert()
@@ -69,9 +67,7 @@
 			d.cancel()
 
 	def test_loyalty_points_earned_multiple_tier(self):
-		frappe.db.set_value(
-			"Customer", "Test Loyalty Customer", "loyalty_program", "Test Multiple Loyalty"
-		)
+		frappe.db.set_value("Customer", "Test Loyalty Customer", "loyalty_program", "Test Multiple Loyalty")
 		# assign multiple tier program to the customer
 		customer = frappe.get_doc("Customer", {"customer_name": "Test Loyalty Customer"})
 		customer.loyalty_program = frappe.get_doc(
@@ -128,9 +124,7 @@
 
 	def test_cancel_sales_invoice(self):
 		"""cancelling the sales invoice should cancel the earned points"""
-		frappe.db.set_value(
-			"Customer", "Test Loyalty Customer", "loyalty_program", "Test Single Loyalty"
-		)
+		frappe.db.set_value("Customer", "Test Loyalty Customer", "loyalty_program", "Test Single Loyalty")
 		# create a new sales invoice
 		si = create_sales_invoice_record()
 		si.insert()
@@ -148,9 +142,7 @@
 		self.assertEqual(True, (lpe is None))
 
 	def test_sales_invoice_return(self):
-		frappe.db.set_value(
-			"Customer", "Test Loyalty Customer", "loyalty_program", "Test Single Loyalty"
-		)
+		frappe.db.set_value("Customer", "Test Loyalty Customer", "loyalty_program", "Test Single Loyalty")
 		# create a new sales invoice
 		si_original = create_sales_invoice_record(2)
 		si_original.conversion_rate = flt(1)
@@ -346,9 +338,7 @@
 		).insert()
 
 	# create item price
-	if not frappe.db.exists(
-		"Item Price", {"price_list": "Standard Selling", "item_code": "Loyal Item"}
-	):
+	if not frappe.db.exists("Item Price", {"price_list": "Standard Selling", "item_code": "Loyal Item"}):
 		frappe.get_doc(
 			{
 				"doctype": "Item Price",
diff --git a/erpnext/accounts/doctype/monthly_distribution/monthly_distribution.py b/erpnext/accounts/doctype/monthly_distribution/monthly_distribution.py
index 7270576..cda5f4b 100644
--- a/erpnext/accounts/doctype/monthly_distribution/monthly_distribution.py
+++ b/erpnext/accounts/doctype/monthly_distribution/monthly_distribution.py
@@ -54,9 +54,7 @@
 		total = sum(flt(d.percentage_allocation) for d in self.get("percentages"))
 
 		if flt(total, 2) != 100.0:
-			frappe.throw(
-				_("Percentage Allocation should be equal to 100%") + " ({0}%)".format(str(flt(total, 2)))
-			)
+			frappe.throw(_("Percentage Allocation should be equal to 100%") + f" ({flt(total, 2)!s}%)")
 
 
 def get_periodwise_distribution_data(distribution_id, period_list, periodicity):
diff --git a/erpnext/accounts/doctype/opening_invoice_creation_tool/test_opening_invoice_creation_tool.py b/erpnext/accounts/doctype/opening_invoice_creation_tool/test_opening_invoice_creation_tool.py
index 02c2c67..378fbde 100644
--- a/erpnext/accounts/doctype/opening_invoice_creation_tool/test_opening_invoice_creation_tool.py
+++ b/erpnext/accounts/doctype/opening_invoice_creation_tool/test_opening_invoice_creation_tool.py
@@ -83,9 +83,7 @@
 		company = "_Test Opening Invoice Company"
 		party_1, party_2 = make_customer("Customer A"), make_customer("Customer B")
 
-		old_default_receivable_account = frappe.db.get_value(
-			"Company", company, "default_receivable_account"
-		)
+		old_default_receivable_account = frappe.db.get_value("Company", company, "default_receivable_account")
 		frappe.db.set_value("Company", company, "default_receivable_account", "")
 
 		if not frappe.db.exists("Cost Center", "_Test Opening Invoice Company - _TOIC"):
@@ -121,9 +119,7 @@
 		self.assertTrue(error_log)
 
 		# teardown
-		frappe.db.set_value(
-			"Company", company, "default_receivable_account", old_default_receivable_account
-		)
+		frappe.db.set_value("Company", company, "default_receivable_account", old_default_receivable_account)
 
 	def test_renaming_of_invoice_using_invoice_number_field(self):
 		company = "_Test Opening Invoice Company"
@@ -169,7 +165,7 @@
 				{
 					"qty": 1.0,
 					"outstanding_amount": 300,
-					"party": args.get("party_1") or "_Test {0}".format(party),
+					"party": args.get("party_1") or f"_Test {party}",
 					"item_name": "Opening Item",
 					"due_date": "2016-09-10",
 					"posting_date": "2016-09-05",
@@ -179,7 +175,7 @@
 				{
 					"qty": 2.0,
 					"outstanding_amount": 250,
-					"party": args.get("party_2") or "_Test {0} 1".format(party),
+					"party": args.get("party_2") or f"_Test {party} 1",
 					"item_name": "Opening Item",
 					"due_date": "2016-09-10",
 					"posting_date": "2016-09-05",
diff --git a/erpnext/accounts/doctype/party_link/party_link.py b/erpnext/accounts/doctype/party_link/party_link.py
index d60acce..16484fc 100644
--- a/erpnext/accounts/doctype/party_link/party_link.py
+++ b/erpnext/accounts/doctype/party_link/party_link.py
@@ -38,7 +38,10 @@
 		if existing_party_link:
 			frappe.throw(
 				_("{} {} is already linked with {} {}").format(
-					self.primary_role, bold(self.primary_party), self.secondary_role, bold(self.secondary_party)
+					self.primary_role,
+					bold(self.primary_party),
+					self.secondary_role,
+					bold(self.secondary_party),
 				)
 			)
 
diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.py b/erpnext/accounts/doctype/payment_entry/payment_entry.py
index 4684aab..e2041bf 100644
--- a/erpnext/accounts/doctype/payment_entry/payment_entry.py
+++ b/erpnext/accounts/doctype/payment_entry/payment_entry.py
@@ -134,7 +134,7 @@
 	# end: auto-generated types
 
 	def __init__(self, *args, **kwargs):
-		super(PaymentEntry, self).__init__(*args, **kwargs)
+		super().__init__(*args, **kwargs)
 		if not self.is_new():
 			self.setup_party_account_field()
 
@@ -247,7 +247,7 @@
 			"Unreconcile Payment",
 			"Unreconcile Payment Entries",
 		)
-		super(PaymentEntry, self).on_cancel()
+		super().on_cancel()
 		self.make_gl_entries(cancel=1)
 		self.update_outstanding_amounts()
 		self.update_advance_paid()
@@ -357,9 +357,7 @@
 				# If term based allocation is enabled, throw
 				if (
 					d.payment_term is None or d.payment_term == ""
-				) and self.term_based_allocation_enabled_for_reference(
-					d.reference_doctype, d.reference_name
-				):
+				) and self.term_based_allocation_enabled_for_reference(d.reference_doctype, d.reference_name):
 					frappe.throw(
 						_(
 							"{0} has Payment Term based allocation enabled. Select a Payment Term for Row #{1} in Payment References section"
@@ -371,7 +369,9 @@
 				# The reference has already been fully paid
 				if not latest:
 					frappe.throw(
-						_("{0} {1} has already been fully paid.").format(_(d.reference_doctype), d.reference_name)
+						_("{0} {1} has already been fully paid.").format(
+							_(d.reference_doctype), d.reference_name
+						)
 					)
 				# The reference has already been partly paid
 				elif (
@@ -395,14 +395,14 @@
 						and latest.payment_term_outstanding
 						and (flt(d.allocated_amount) > flt(latest.payment_term_outstanding))
 					)
-					and self.term_based_allocation_enabled_for_reference(d.reference_doctype, d.reference_name)
+					and self.term_based_allocation_enabled_for_reference(
+						d.reference_doctype, d.reference_name
+					)
 				):
 					frappe.throw(
 						_(
 							"Row #{0}: Allocated amount:{1} is greater than outstanding amount:{2} for Payment Term {3}"
-						).format(
-							d.idx, d.allocated_amount, latest.payment_term_outstanding, d.payment_term
-						)
+						).format(d.idx, d.allocated_amount, latest.payment_term_outstanding, d.payment_term)
 					)
 
 				if (flt(d.allocated_amount)) > 0 and flt(d.allocated_amount) > flt(latest.outstanding_amount):
@@ -445,7 +445,9 @@
 
 		if self.party:
 			if not self.contact_person:
-				set_contact_details(self, party=frappe._dict({"name": self.party}), party_type=self.party_type)
+				set_contact_details(
+					self, party=frappe._dict({"name": self.party}), party_type=self.party_type
+				)
 			else:
 				complete_contact_details(self)
 			if not self.party_balance:
@@ -527,7 +529,9 @@
 			else:
 				if ref_doc:
 					if self.paid_from_account_currency == ref_doc.currency:
-						self.source_exchange_rate = ref_doc.get("exchange_rate") or ref_doc.get("conversion_rate")
+						self.source_exchange_rate = ref_doc.get("exchange_rate") or ref_doc.get(
+							"conversion_rate"
+						)
 
 			if not self.source_exchange_rate:
 				self.source_exchange_rate = get_exchange_rate(
@@ -564,7 +568,7 @@
 			if d.reference_doctype not in valid_reference_doctypes:
 				frappe.throw(
 					_("Reference Doctype must be one of {0}").format(
-						comma_or((_(d) for d in valid_reference_doctypes))
+						comma_or(_(d) for d in valid_reference_doctypes)
 					)
 				)
 
@@ -587,7 +591,8 @@
 					if d.reference_doctype in frappe.get_hooks("invoice_doctypes"):
 						if self.party_type == "Customer":
 							ref_party_account = (
-								get_party_account_based_on_invoice_discounting(d.reference_name) or ref_doc.debit_to
+								get_party_account_based_on_invoice_discounting(d.reference_name)
+								or ref_doc.debit_to
 							)
 						elif self.party_type == "Supplier":
 							ref_party_account = ref_doc.credit_to
@@ -600,7 +605,10 @@
 						):
 							frappe.throw(
 								_("{0} {1} is associated with {2}, but Party Account is {3}").format(
-									_(d.reference_doctype), d.reference_name, ref_party_account, self.party_account
+									_(d.reference_doctype),
+									d.reference_name,
+									ref_party_account,
+									self.party_account,
 								)
 							)
 
@@ -611,7 +619,9 @@
 							)
 
 					if ref_doc.docstatus != 1:
-						frappe.throw(_("{0} {1} must be submitted").format(_(d.reference_doctype), d.reference_name))
+						frappe.throw(
+							_("{0} {1} must be submitted").format(_(d.reference_doctype), d.reference_name)
+						)
 
 	def get_valid_reference_doctypes(self):
 		if self.party_type == "Customer":
@@ -782,9 +792,7 @@
 		if not (is_single_currency and reference_is_multi_currency):
 			return allocated_amount
 
-		allocated_amount = flt(
-			allocated_amount / ref_exchange_rate, self.precision("total_allocated_amount")
-		)
+		allocated_amount = flt(allocated_amount / ref_exchange_rate, self.precision("total_allocated_amount"))
 
 		return allocated_amount
 
@@ -847,7 +855,6 @@
 		accounts = []
 		for d in self.taxes:
 			if d.account_head == tax_withholding_details.get("account_head"):
-
 				# Preserve user updated included in paid amount
 				if d.included_in_paid_amount:
 					tax_withholding_details.update({"included_in_paid_amount": d.included_in_paid_amount})
@@ -953,9 +960,9 @@
 
 	def calculate_base_allocated_amount_for_reference(self, d) -> float:
 		base_allocated_amount = 0
-		advance_payment_doctypes = frappe.get_hooks(
-			"advance_payment_receivable_doctypes"
-		) + frappe.get_hooks("advance_payment_payable_doctypes")
+		advance_payment_doctypes = frappe.get_hooks("advance_payment_receivable_doctypes") + frappe.get_hooks(
+			"advance_payment_payable_doctypes"
+		)
 		if d.reference_doctype in advance_payment_doctypes:
 			# When referencing Sales/Purchase Order, use the source/target exchange rate depending on payment type.
 			# This is so there are no Exchange Gain/Loss generated for such doctypes
@@ -970,7 +977,6 @@
 				flt(d.allocated_amount) * flt(exchange_rate), self.precision("base_paid_amount")
 			)
 		else:
-
 			# Use source/target exchange rate, so no difference amount is calculated.
 			# then update exchange gain/loss amount in reference table
 			# if there is an exchange gain/loss amount in reference table, submit a JE for that
@@ -1108,7 +1114,6 @@
 				)
 			]
 		else:
-
 			remarks = [
 				_("Amount {0} {1} {2} {3}").format(
 					_(self.party_account_currency),
@@ -1128,14 +1133,19 @@
 				if d.allocated_amount:
 					remarks.append(
 						_("Amount {0} {1} against {2} {3}").format(
-							_(self.party_account_currency), d.allocated_amount, d.reference_doctype, d.reference_name
+							_(self.party_account_currency),
+							d.allocated_amount,
+							d.reference_doctype,
+							d.reference_name,
 						)
 					)
 
 		for d in self.get("deductions"):
 			if d.amount:
 				remarks.append(
-					_("Amount {0} {1} deducted against {2}").format(_(self.company_currency), d.amount, d.account)
+					_("Amount {0} {1} deducted against {2}").format(
+						_(self.company_currency), d.amount, d.account
+					)
 				)
 
 		self.set("remarks", "\n".join(remarks))
@@ -1209,21 +1219,31 @@
 					dr_or_cr = "credit" if self.payment_type == "Receive" else "debit"
 					cost_center = self.cost_center
 					if d.reference_doctype == "Sales Invoice" and not cost_center:
-						cost_center = frappe.db.get_value(d.reference_doctype, d.reference_name, "cost_center")
+						cost_center = frappe.db.get_value(
+							d.reference_doctype, d.reference_name, "cost_center"
+						)
 
 					gle = party_gl_dict.copy()
 
-					allocated_amount_in_company_currency = self.calculate_base_allocated_amount_for_reference(d)
+					allocated_amount_in_company_currency = self.calculate_base_allocated_amount_for_reference(
+						d
+					)
 					reverse_dr_or_cr = 0
 
 					if d.reference_doctype in ["Sales Invoice", "Purchase Invoice"]:
 						is_return = frappe.db.get_value(d.reference_doctype, d.reference_name, "is_return")
 						payable_party_types = get_party_types_from_account_type("Payable")
 						receivable_party_types = get_party_types_from_account_type("Receivable")
-						if is_return and self.party_type in receivable_party_types and (self.payment_type == "Pay"):
+						if (
+							is_return
+							and self.party_type in receivable_party_types
+							and (self.payment_type == "Pay")
+						):
 							reverse_dr_or_cr = 1
 						elif (
-							is_return and self.party_type in payable_party_types and (self.payment_type == "Receive")
+							is_return
+							and self.party_type in payable_party_types
+							and (self.payment_type == "Receive")
 						):
 							reverse_dr_or_cr = 1
 
@@ -1306,9 +1326,7 @@
 		if getdate(posting_date) < getdate(self.posting_date):
 			posting_date = self.posting_date
 
-		dr_or_cr = (
-			"credit" if invoice.reference_doctype in ["Sales Invoice", "Payment Entry"] else "debit"
-		)
+		dr_or_cr = "credit" if invoice.reference_doctype in ["Sales Invoice", "Payment Entry"] else "debit"
 		args_dict["account"] = invoice.account
 		args_dict[dr_or_cr] = invoice.allocated_amount
 		args_dict[dr_or_cr + "_in_account_currency"] = invoice.allocated_amount
@@ -1694,7 +1712,8 @@
 				return []
 			elif supplier_status["hold_type"] == "Payments":
 				if (
-					not supplier_status["release_date"] or getdate(nowdate()) <= supplier_status["release_date"]
+					not supplier_status["release_date"]
+					or getdate(nowdate()) <= supplier_status["release_date"]
 				):
 					return []
 
@@ -1704,7 +1723,7 @@
 	# Get positive outstanding sales /purchase invoices
 	condition = ""
 	if args.get("voucher_type") and args.get("voucher_no"):
-		condition = " and voucher_type={0} and voucher_no={1}".format(
+		condition = " and voucher_type={} and voucher_no={}".format(
 			frappe.db.escape(args["voucher_type"]), frappe.db.escape(args["voucher_no"])
 		)
 		common_filter.append(ple.voucher_type == args["voucher_type"])
@@ -1719,7 +1738,7 @@
 	active_dimensions = get_dimensions()[0]
 	for dim in active_dimensions:
 		if args.get(dim.fieldname):
-			condition += " and {0}='{1}'".format(dim.fieldname, args.get(dim.fieldname))
+			condition += f" and {dim.fieldname}='{args.get(dim.fieldname)}'"
 			accounting_dimensions_filter.append(ple[dim.fieldname] == args.get(dim.fieldname))
 
 	date_fields_dict = {
@@ -1729,21 +1748,21 @@
 
 	for fieldname, date_fields in date_fields_dict.items():
 		if args.get(date_fields[0]) and args.get(date_fields[1]):
-			condition += " and {0} between '{1}' and '{2}'".format(
+			condition += " and {} between '{}' and '{}'".format(
 				fieldname, args.get(date_fields[0]), args.get(date_fields[1])
 			)
 			posting_and_due_date.append(ple[fieldname][args.get(date_fields[0]) : args.get(date_fields[1])])
 		elif args.get(date_fields[0]):
 			# if only from date is supplied
-			condition += " and {0} >= '{1}'".format(fieldname, args.get(date_fields[0]))
+			condition += f" and {fieldname} >= '{args.get(date_fields[0])}'"
 			posting_and_due_date.append(ple[fieldname].gte(args.get(date_fields[0])))
 		elif args.get(date_fields[1]):
 			# if only to date is supplied
-			condition += " and {0} <= '{1}'".format(fieldname, args.get(date_fields[1]))
+			condition += f" and {fieldname} <= '{args.get(date_fields[1])}'"
 			posting_and_due_date.append(ple[fieldname].lte(args.get(date_fields[1])))
 
 	if args.get("company"):
-		condition += " and company = {0}".format(frappe.db.escape(args.get("company")))
+		condition += " and company = {}".format(frappe.db.escape(args.get("company")))
 		common_filter.append(ple.company == args.get("company"))
 
 	outstanding_invoices = []
@@ -1859,12 +1878,10 @@
 	return outstanding_invoices_after_split
 
 
-def get_currency_data(outstanding_invoices: list, company: str = None) -> dict:
+def get_currency_data(outstanding_invoices: list, company: str | None = None) -> dict:
 	"""Get currency and conversion data for a list of invoices."""
 	exc_rates = frappe._dict()
-	company_currency = (
-		frappe.db.get_value("Company", company, "default_currency") if company else None
-	)
+	company_currency = frappe.db.get_value("Company", company, "default_currency") if company else None
 
 	for doctype in ["Sales Invoice", "Purchase Invoice"]:
 		invoices = [x.voucher_no for x in outstanding_invoices if x.voucher_type == doctype]
@@ -1959,7 +1976,7 @@
 	active_dimensions = get_dimensions()[0]
 	for dim in active_dimensions:
 		if filters.get(dim.fieldname):
-			condition += " and {0}='{1}'".format(dim.fieldname, filters.get(dim.fieldname))
+			condition += f" and {dim.fieldname}='{filters.get(dim.fieldname)}'"
 
 	if party_account_currency == company_currency:
 		grand_total_field = "base_grand_total"
@@ -2109,18 +2126,14 @@
 	frappe.has_permission("Payment Entry", throw=True)
 
 	# to check if the passed account is accessible under reference doctype Payment Entry
-	account_list = frappe.get_list(
-		"Account", {"name": account}, reference_doctype="Payment Entry", limit=1
-	)
+	account_list = frappe.get_list("Account", {"name": account}, reference_doctype="Payment Entry", limit=1)
 
 	# There might be some user permissions which will allow account under certain doctypes
 	# except for Payment Entry, only in such case we should throw permission error
 	if not account_list:
 		frappe.throw(_("Account: {0} is not permitted under Payment Entry").format(account))
 
-	account_balance = get_balance_on(
-		account, date, cost_center=cost_center, ignore_account_permission=True
-	)
+	account_balance = get_balance_on(account, date, cost_center=cost_center, ignore_account_permission=True)
 
 	return frappe._dict(
 		{
@@ -2167,9 +2180,7 @@
 	total_amount = outstanding_amount = exchange_rate = account = None
 
 	ref_doc = frappe.get_doc(reference_doctype, reference_name)
-	company_currency = ref_doc.get("company_currency") or erpnext.get_company_currency(
-		ref_doc.company
-	)
+	company_currency = ref_doc.get("company_currency") or erpnext.get_company_currency(ref_doc.company)
 
 	if reference_doctype == "Dunning":
 		total_amount = outstanding_amount = ref_doc.get("dunning_amount")
@@ -2178,9 +2189,7 @@
 	elif reference_doctype == "Journal Entry" and ref_doc.docstatus == 1:
 		total_amount = ref_doc.get("total_amount")
 		if ref_doc.multi_currency:
-			exchange_rate = get_exchange_rate(
-				party_account_currency, company_currency, ref_doc.posting_date
-			)
+			exchange_rate = get_exchange_rate(party_account_currency, company_currency, ref_doc.posting_date)
 		else:
 			exchange_rate = 1
 			outstanding_amount = get_outstanding_on_journal_entry(reference_name)
@@ -2250,9 +2259,7 @@
 ):
 	doc = frappe.get_doc(dt, dn)
 	over_billing_allowance = frappe.db.get_single_value("Accounts Settings", "over_billing_allowance")
-	if dt in ("Sales Order", "Purchase Order") and flt(doc.per_billed, 2) >= (
-		100.0 + over_billing_allowance
-	):
+	if dt in ("Sales Order", "Purchase Order") and flt(doc.per_billed, 2) >= (100.0 + over_billing_allowance):
 		frappe.throw(_("Can only make payment against unbilled {0}").format(_(dt)))
 
 	if not party_type:
@@ -2305,9 +2312,7 @@
 	pe.paid_from_account_currency = (
 		party_account_currency if payment_type == "Receive" else bank.account_currency
 	)
-	pe.paid_to_account_currency = (
-		party_account_currency if payment_type == "Pay" else bank.account_currency
-	)
+	pe.paid_to_account_currency = party_account_currency if payment_type == "Pay" else bank.account_currency
 	pe.paid_amount = paid_amount
 	pe.received_amount = received_amount
 	pe.letter_head = doc.get("letter_head")
@@ -2336,7 +2341,6 @@
 			doc.payment_terms_template,
 			"allocate_payment_based_on_payment_terms",
 		):
-
 			for reference in get_reference_as_per_payment_terms(
 				doc.payment_schedule, dt, dn, doc, grand_total, outstanding_amount, party_account_currency
 			):
@@ -2524,9 +2528,7 @@
 	return paid_amount, received_amount
 
 
-def apply_early_payment_discount(
-	paid_amount, received_amount, doc, party_account_currency, reference_date
-):
+def apply_early_payment_discount(paid_amount, received_amount, doc, party_account_currency, reference_date):
 	total_discount = 0
 	valid_discounts = []
 	eligible_for_payments = ["Sales Order", "Sales Invoice", "Purchase Order", "Purchase Invoice"]
@@ -2536,7 +2538,6 @@
 	if doc.doctype in eligible_for_payments and has_payment_schedule:
 		for term in doc.payment_schedule:
 			if not term.discounted_amount and term.discount and reference_date <= term.discount_date:
-
 				if term.discount_type == "Percentage":
 					grand_total = doc.get("grand_total") if is_multi_currency else doc.get("base_grand_total")
 					discount_amount = flt(grand_total) * (term.discount / 100)
@@ -2565,9 +2566,7 @@
 	return paid_amount, received_amount, total_discount, valid_discounts
 
 
-def set_pending_discount_loss(
-	pe, doc, discount_amount, base_total_discount_loss, party_account_currency
-):
+def set_pending_discount_loss(pe, doc, discount_amount, base_total_discount_loss, party_account_currency):
 	# If multi-currency, get base discount amount to adjust with base currency deductions/losses
 	if party_account_currency != doc.company_currency:
 		discount_amount = discount_amount * doc.get("conversion_rate", 1)
@@ -2587,7 +2586,8 @@
 		pe.set_gain_or_loss(
 			account_details={
 				"account": frappe.get_cached_value("Company", pe.company, account_type),
-				"cost_center": pe.cost_center or frappe.get_cached_value("Company", pe.company, "cost_center"),
+				"cost_center": pe.cost_center
+				or frappe.get_cached_value("Company", pe.company, "cost_center"),
 				"amount": discount_amount * positive_negative,
 			}
 		)
@@ -2610,9 +2610,7 @@
 def get_total_discount_percent(doc, valid_discounts) -> float:
 	"""Get total percentage and amount discount applied as a percentage."""
 	total_discount_percent = (
-		sum(
-			discount.get("discount") for discount in valid_discounts if discount.get("type") == "Percentage"
-		)
+		sum(discount.get("discount") for discount in valid_discounts if discount.get("type") == "Percentage")
 		or 0.0
 	)
 
@@ -2655,9 +2653,7 @@
 
 	# The same account head could be used more than once
 	for tax in doc.get("taxes", []):
-		base_tax_loss = tax.get("base_tax_amount_after_discount_amount") * (
-			total_discount_percentage / 100
-		)
+		base_tax_loss = tax.get("base_tax_amount_after_discount_amount") * (total_discount_percentage / 100)
 
 		account = tax.get("account_head")
 		if not tax_discount_loss.get(account):
@@ -2674,7 +2670,8 @@
 			"deductions",
 			{
 				"account": account,
-				"cost_center": pe.cost_center or frappe.get_cached_value("Company", pe.company, "cost_center"),
+				"cost_center": pe.cost_center
+				or frappe.get_cached_value("Company", pe.company, "cost_center"),
 				"amount": flt(loss, precision),
 			},
 		)
@@ -2697,7 +2694,8 @@
 		if not is_multi_currency_acc:
 			# If accounting is done in company currency for multi-currency transaction
 			payment_term_outstanding = flt(
-				payment_term_outstanding * doc.get("conversion_rate"), payment_term.precision("payment_amount")
+				payment_term_outstanding * doc.get("conversion_rate"),
+				payment_term.precision("payment_amount"),
 			)
 
 		if payment_term_outstanding:
@@ -2725,7 +2723,7 @@
 		dr_or_cr = "debit_in_account_currency - credit_in_account_currency"
 
 	paid_amount = frappe.db.sql(
-		"""
+		f"""
 		select ifnull(sum({dr_or_cr}), 0) as paid_amount
 		from `tabGL Entry`
 		where against_voucher_type = %s
@@ -2735,9 +2733,7 @@
 			and account = %s
 			and due_date = %s
 			and {dr_or_cr} > 0
-	""".format(
-			dr_or_cr=dr_or_cr
-		),
+	""",
 		(dt, dn, party_type, party, account, due_date),
 	)
 
diff --git a/erpnext/accounts/doctype/payment_entry/test_payment_entry.py b/erpnext/accounts/doctype/payment_entry/test_payment_entry.py
index 6323e4c..aaa4e49 100644
--- a/erpnext/accounts/doctype/payment_entry/test_payment_entry.py
+++ b/erpnext/accounts/doctype/payment_entry/test_payment_entry.py
@@ -1,7 +1,6 @@
 # Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
 # See license.txt
 
-import unittest
 
 import frappe
 from frappe import qb
@@ -10,7 +9,6 @@
 
 from erpnext.accounts.doctype.account.test_account import create_account
 from erpnext.accounts.doctype.payment_entry.payment_entry import (
-	InvalidPaymentEntry,
 	get_outstanding_reference_documents,
 	get_payment_entry,
 	get_reference_details,
@@ -469,9 +467,7 @@
 		si.save()
 		si.submit()
 
-		pe = get_payment_entry(
-			"Sales Invoice", si.name, bank_account="_Test Bank - _TC", bank_amount=4700
-		)
+		pe = get_payment_entry("Sales Invoice", si.name, bank_account="_Test Bank - _TC", bank_amount=4700)
 		pe.reference_no = si.name
 		pe.reference_date = nowdate()
 
@@ -638,9 +634,7 @@
 		pe.set_exchange_rate()
 		pe.set_amounts()
 
-		self.assertEqual(
-			pe.source_exchange_rate, 65.1, "{0} is not equal to {1}".format(pe.source_exchange_rate, 65.1)
-		)
+		self.assertEqual(pe.source_exchange_rate, 65.1, f"{pe.source_exchange_rate} is not equal to {65.1}")
 
 	def test_internal_transfer_usd_to_inr(self):
 		pe = frappe.new_doc("Payment Entry")
@@ -896,9 +890,7 @@
 		cost_center = "_Test Cost Center for BS Account - _TC"
 		create_cost_center(cost_center_name="_Test Cost Center for BS Account", company="_Test Company")
 
-		pi = make_purchase_invoice_against_cost_center(
-			cost_center=cost_center, credit_to="Creditors - _TC"
-		)
+		pi = make_purchase_invoice_against_cost_center(cost_center=cost_center, credit_to="Creditors - _TC")
 
 		pe = get_payment_entry("Purchase Invoice", pi.name, bank_account="_Test Bank - _TC")
 		self.assertEqual(pe.cost_center, pi.cost_center)
@@ -939,9 +931,7 @@
 		si = create_sales_invoice_against_cost_center(cost_center=cost_center, debit_to="Debtors - _TC")
 
 		account_balance = get_balance_on(account="_Test Bank - _TC", cost_center=si.cost_center)
-		party_balance = get_balance_on(
-			party_type="Customer", party=si.customer, cost_center=si.cost_center
-		)
+		party_balance = get_balance_on(party_type="Customer", party=si.customer, cost_center=si.cost_center)
 		party_account_balance = get_balance_on(si.debit_to, cost_center=si.cost_center)
 
 		pe = get_payment_entry("Sales Invoice", si.name, bank_account="_Test Bank - _TC")
@@ -1203,7 +1193,7 @@
 		Overallocation validation shouldn't fire for Template without "Allocate Payment based on Payment Terms" enabled
 
 		"""
-		customer = create_customer()
+		create_customer()
 		create_payment_terms_template()
 
 		template = frappe.get_doc("Payment Terms Template", "Test Receivable Template")
@@ -1262,9 +1252,7 @@
 		create_payment_terms_template()
 
 		# SI has an earlier due date and SI2 has a later due date
-		si = create_sales_invoice(
-			qty=1, rate=100, customer=customer, posting_date=add_days(nowdate(), -4)
-		)
+		si = create_sales_invoice(qty=1, rate=100, customer=customer, posting_date=add_days(nowdate(), -4))
 		si2 = create_sales_invoice(do_not_save=1, qty=1, rate=100, customer=customer)
 		si2.payment_terms_template = "Test Receivable Template"
 		si2.submit()
@@ -1363,8 +1351,6 @@
 		self.check_gl_entries()
 
 	def test_ledger_entries_for_advance_as_liability(self):
-		from erpnext.accounts.doctype.account.test_account import create_account
-
 		company = "_Test Company"
 
 		advance_account = create_account(
@@ -1466,7 +1452,7 @@
 		self.check_pl_entries()
 
 		# Unreconcile
-		unrecon = (
+		(
 			frappe.get_doc(
 				{
 					"doctype": "Unreconcile Payment",
@@ -1554,8 +1540,6 @@
 		self.assertEqual(len(pr.payments), 0)
 
 	def test_advance_reverse_payment_reconciliation(self):
-		from erpnext.accounts.doctype.account.test_account import create_account
-
 		company = "_Test Company"
 		customer = create_customer(frappe.generate_hash(length=10), "INR")
 		advance_account = create_account(
@@ -1645,14 +1629,16 @@
 		self.check_pl_entries()
 
 		# Unreconcile
-		unrecon = (
+		(
 			frappe.get_doc(
 				{
 					"doctype": "Unreconcile Payment",
 					"company": company,
 					"voucher_type": pe.doctype,
 					"voucher_no": pe.name,
-					"allocations": [{"reference_doctype": reverse_pe.doctype, "reference_name": reverse_pe.name}],
+					"allocations": [
+						{"reference_doctype": reverse_pe.doctype, "reference_name": reverse_pe.name}
+					],
 				}
 			)
 			.save()
@@ -1703,12 +1689,11 @@
 
 
 def create_payment_terms_template():
-
 	create_payment_term("Basic Amount Receivable")
 	create_payment_term("Tax Receivable")
 
 	if not frappe.db.exists("Payment Terms Template", "Test Receivable Template"):
-		payment_term_template = frappe.get_doc(
+		frappe.get_doc(
 			{
 				"doctype": "Payment Terms Template",
 				"template_name": "Test Receivable Template",
diff --git a/erpnext/accounts/doctype/payment_ledger_entry/payment_ledger_entry.py b/erpnext/accounts/doctype/payment_ledger_entry/payment_ledger_entry.py
index 3fea325..2bc4489 100644
--- a/erpnext/accounts/doctype/payment_ledger_entry/payment_ledger_entry.py
+++ b/erpnext/accounts/doctype/payment_ledger_entry/payment_ledger_entry.py
@@ -137,9 +137,9 @@
 			):
 				if not self.get(dimension.fieldname):
 					frappe.throw(
-						_("Accounting Dimension <b>{0}</b> is required for 'Profit and Loss' account {1}.").format(
-							dimension.label, self.account
-						)
+						_(
+							"Accounting Dimension <b>{0}</b> is required for 'Profit and Loss' account {1}."
+						).format(dimension.label, self.account)
 					)
 
 			if (
@@ -150,9 +150,9 @@
 			):
 				if not self.get(dimension.fieldname):
 					frappe.throw(
-						_("Accounting Dimension <b>{0}</b> is required for 'Balance Sheet' account {1}.").format(
-							dimension.label, self.account
-						)
+						_(
+							"Accounting Dimension <b>{0}</b> is required for 'Balance Sheet' account {1}."
+						).format(dimension.label, self.account)
 					)
 
 	def validate(self):
diff --git a/erpnext/accounts/doctype/payment_ledger_entry/test_payment_ledger_entry.py b/erpnext/accounts/doctype/payment_ledger_entry/test_payment_ledger_entry.py
index ce9579e..c867e68 100644
--- a/erpnext/accounts/doctype/payment_ledger_entry/test_payment_ledger_entry.py
+++ b/erpnext/accounts/doctype/payment_ledger_entry/test_payment_ledger_entry.py
@@ -159,9 +159,7 @@
 		for doctype in doctype_list:
 			qb.from_(qb.DocType(doctype)).delete().where(qb.DocType(doctype).company == self.company).run()
 
-	def create_journal_entry(
-		self, acc1=None, acc2=None, amount=0, posting_date=None, cost_center=None
-	):
+	def create_journal_entry(self, acc1=None, acc2=None, amount=0, posting_date=None, cost_center=None):
 		je = frappe.new_doc("Journal Entry")
 		je.posting_date = posting_date or nowdate()
 		je.company = self.company
@@ -319,9 +317,7 @@
 				ple.amount,
 				ple.delinked,
 			)
-			.where(
-				(ple.against_voucher_type == cr_note1.doctype) & (ple.against_voucher_no == cr_note1.name)
-			)
+			.where((ple.against_voucher_type == cr_note1.doctype) & (ple.against_voucher_no == cr_note1.name))
 			.orderby(ple.creation)
 			.run(as_dict=True)
 		)
@@ -362,9 +358,7 @@
 		)
 		cr_note2.is_return = 1
 		cr_note2 = cr_note2.save().submit()
-		je1 = self.create_journal_entry(
-			self.debit_to, self.debit_to, amount, posting_date=transaction_date
-		)
+		je1 = self.create_journal_entry(self.debit_to, self.debit_to, amount, posting_date=transaction_date)
 		je1.get("accounts")[0].party_type = je1.get("accounts")[1].party_type = "Customer"
 		je1.get("accounts")[0].party = je1.get("accounts")[1].party = self.customer
 		je1.get("accounts")[0].reference_type = cr_note2.doctype
@@ -419,9 +413,7 @@
 				ple.amount,
 				ple.delinked,
 			)
-			.where(
-				(ple.against_voucher_type == cr_note2.doctype) & (ple.against_voucher_no == cr_note2.name)
-			)
+			.where((ple.against_voucher_type == cr_note2.doctype) & (ple.against_voucher_no == cr_note2.name))
 			.orderby(ple.creation)
 			.run(as_dict=True)
 		)
@@ -518,7 +510,7 @@
 		amount = 100
 		so = self.create_sales_order(qty=1, rate=amount, posting_date=transaction_date).save().submit()
 
-		pe = get_payment_entry(so.doctype, so.name).save().submit()
+		get_payment_entry(so.doctype, so.name).save().submit()
 
 		so.reload()
 		so.cancel()
diff --git a/erpnext/accounts/doctype/payment_order/payment_order.py b/erpnext/accounts/doctype/payment_order/payment_order.py
index 0ed26e4..a4c5962 100644
--- a/erpnext/accounts/doctype/payment_order/payment_order.py
+++ b/erpnext/accounts/doctype/payment_order/payment_order.py
@@ -90,9 +90,7 @@
 	je = frappe.new_doc("Journal Entry")
 	je.payment_order = doc.name
 	je.posting_date = nowdate()
-	mode_of_payment_type = frappe._dict(
-		frappe.get_all("Mode of Payment", fields=["name", "type"], as_list=1)
-	)
+	mode_of_payment_type = frappe._dict(frappe.get_all("Mode of Payment", fields=["name", "type"], as_list=1))
 
 	je.voucher_type = "Bank Entry"
 	if mode_of_payment and mode_of_payment_type.get(mode_of_payment) == "Cash":
diff --git a/erpnext/accounts/doctype/payment_order/test_payment_order.py b/erpnext/accounts/doctype/payment_order/test_payment_order.py
index 60f288e..7af0966 100644
--- a/erpnext/accounts/doctype/payment_order/test_payment_order.py
+++ b/erpnext/accounts/doctype/payment_order/test_payment_order.py
@@ -1,7 +1,6 @@
 # Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors
 # See license.txt
 
-import unittest
 
 import frappe
 from frappe.tests.utils import FrappeTestCase
@@ -41,9 +40,7 @@
 		payment_entry.insert()
 		payment_entry.submit()
 
-		doc = create_payment_order_against_payment_entry(
-			payment_entry, "Payment Entry", self.bank_account
-		)
+		doc = create_payment_order_against_payment_entry(payment_entry, "Payment Entry", self.bank_account)
 		reference_doc = doc.get("references")[0]
 		self.assertEqual(reference_doc.reference_name, payment_entry.name)
 		self.assertEqual(reference_doc.reference_doctype, "Payment Entry")
diff --git a/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py b/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py
index dcb1a16..a2f355a 100644
--- a/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py
+++ b/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py
@@ -67,7 +67,7 @@
 	# end: auto-generated types
 
 	def __init__(self, *args, **kwargs):
-		super(PaymentReconciliation, self).__init__(*args, **kwargs)
+		super().__init__(*args, **kwargs)
 		self.common_filter_conditions = []
 		self.accounting_dimension_filter_conditions = []
 		self.ple_posting_date_filter = []
@@ -286,7 +286,6 @@
 		self.return_invoices = self.return_invoices_query.run(as_dict=True)
 
 	def get_dr_or_cr_notes(self):
-
 		self.build_qb_filter_conditions(get_return_invoices=True)
 
 		ple = qb.DocType("Payment Ledger Entry")
@@ -412,9 +411,7 @@
 				payment_entry[0].get("reference_name")
 			)
 
-		new_difference_amount = self.get_difference_amount(
-			payment_entry[0], invoice[0], allocated_amount
-		)
+		new_difference_amount = self.get_difference_amount(payment_entry[0], invoice[0], allocated_amount)
 		return new_difference_amount
 
 	@frappe.whitelist()
@@ -532,9 +529,9 @@
 
 			if running_doc:
 				frappe.throw(
-					_("A Reconciliation Job {0} is running for the same filters. Cannot reconcile now").format(
-						get_link_to_form("Auto Reconcile", running_doc)
-					)
+					_(
+						"A Reconciliation Job {0} is running for the same filters. Cannot reconcile now"
+					).format(get_link_to_form("Auto Reconcile", running_doc))
 				)
 				return
 
@@ -627,9 +624,7 @@
 
 			invoice_exchange_map.update(purchase_invoice_map)
 
-		journals = [
-			d.get("invoice_number") for d in invoices if d.get("invoice_type") == "Journal Entry"
-		]
+		journals = [d.get("invoice_number") for d in invoices if d.get("invoice_type") == "Journal Entry"]
 		journals.extend(
 			[d.get("reference_name") for d in payments if d.get("reference_type") == "Journal Entry"]
 		)
@@ -721,7 +716,7 @@
 	def get_journal_filter_conditions(self):
 		conditions = []
 		je = qb.DocType("Journal Entry")
-		jea = qb.DocType("Journal Entry Account")
+		qb.DocType("Journal Entry Account")
 		conditions.append(je.company == self.company)
 
 		if self.from_payment_date:
@@ -841,7 +836,7 @@
 
 
 @frappe.whitelist()
-def get_queries_for_dimension_filters(company: str = None):
+def get_queries_for_dimension_filters(company: str | None = None):
 	dimensions_with_filters = []
 	for d in get_dimensions()[0]:
 		filters = {}
diff --git a/erpnext/accounts/doctype/payment_reconciliation/test_payment_reconciliation.py b/erpnext/accounts/doctype/payment_reconciliation/test_payment_reconciliation.py
index 1d20a5b..983cdc4 100644
--- a/erpnext/accounts/doctype/payment_reconciliation/test_payment_reconciliation.py
+++ b/erpnext/accounts/doctype/payment_reconciliation/test_payment_reconciliation.py
@@ -1,7 +1,6 @@
 # Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and Contributors
 # See license.txt
 
-import unittest
 
 import frappe
 from frappe import qb
@@ -250,9 +249,7 @@
 		pr.from_invoice_date = pr.to_invoice_date = pr.from_payment_date = pr.to_payment_date = nowdate()
 		return pr
 
-	def create_journal_entry(
-		self, acc1=None, acc2=None, amount=0, posting_date=None, cost_center=None
-	):
+	def create_journal_entry(self, acc1=None, acc2=None, amount=0, posting_date=None, cost_center=None):
 		je = frappe.new_doc("Journal Entry")
 		je.posting_date = posting_date or nowdate()
 		je.company = self.company
@@ -402,7 +399,7 @@
 		rate = 100
 		invoices = []
 		payments = []
-		for i in range(5):
+		for _i in range(5):
 			invoices.append(self.create_sales_invoice(qty=1, rate=rate, posting_date=transaction_date))
 			pe = self.create_payment_entry(amount=rate, posting_date=transaction_date).save().submit()
 			payments.append(pe)
@@ -821,9 +818,7 @@
 
 		cr_note.cancel()
 
-		pay = self.create_payment_entry(
-			amount=amount, posting_date=transaction_date, customer=self.customer3
-		)
+		pay = self.create_payment_entry(amount=amount, posting_date=transaction_date, customer=self.customer3)
 		pay.paid_from = self.debtors_eur
 		pay.paid_from_account_currency = "EUR"
 		pay.source_exchange_rate = exchange_rate
@@ -1025,9 +1020,7 @@
 		rate = 100
 
 		# 'Main - PR' Cost Center
-		si1 = self.create_sales_invoice(
-			qty=1, rate=rate, posting_date=transaction_date, do_not_submit=True
-		)
+		si1 = self.create_sales_invoice(qty=1, rate=rate, posting_date=transaction_date, do_not_submit=True)
 		si1.cost_center = self.main_cc.name
 		si1.submit()
 
@@ -1043,9 +1036,7 @@
 		je1 = je1.save().submit()
 
 		# 'Sub - PR' Cost Center
-		si2 = self.create_sales_invoice(
-			qty=1, rate=rate, posting_date=transaction_date, do_not_submit=True
-		)
+		si2 = self.create_sales_invoice(qty=1, rate=rate, posting_date=transaction_date, do_not_submit=True)
 		si2.cost_center = self.sub_cc.name
 		si2.submit()
 
diff --git a/erpnext/accounts/doctype/payment_request/payment_request.py b/erpnext/accounts/doctype/payment_request/payment_request.py
index 1649183..196838a 100644
--- a/erpnext/accounts/doctype/payment_request/payment_request.py
+++ b/erpnext/accounts/doctype/payment_request/payment_request.py
@@ -105,7 +105,7 @@
 		)
 
 		ref_doc = frappe.get_doc(self.reference_doctype, self.reference_name)
-		if not hasattr(ref_doc, "order_type") or getattr(ref_doc, "order_type") != "Shopping Cart":
+		if not hasattr(ref_doc, "order_type") or ref_doc.order_type != "Shopping Cart":
 			ref_amount = get_amount(ref_doc, self.payment_account)
 			if not ref_amount:
 				frappe.throw(_("Payment Entry is already created"))
@@ -160,7 +160,7 @@
 		ref_doc = frappe.get_doc(self.reference_doctype, self.reference_name)
 
 		if (
-			hasattr(ref_doc, "order_type") and getattr(ref_doc, "order_type") == "Shopping Cart"
+			hasattr(ref_doc, "order_type") and ref_doc.order_type == "Shopping Cart"
 		) or self.flags.mute_email:
 			send_mail = False
 
@@ -172,9 +172,9 @@
 		elif self.payment_channel == "Phone":
 			self.request_phone_payment()
 
-		advance_payment_doctypes = frappe.get_hooks(
-			"advance_payment_receivable_doctypes"
-		) + frappe.get_hooks("advance_payment_payable_doctypes")
+		advance_payment_doctypes = frappe.get_hooks("advance_payment_receivable_doctypes") + frappe.get_hooks(
+			"advance_payment_payable_doctypes"
+		)
 		if self.reference_doctype in advance_payment_doctypes:
 			# set advance payment status
 			ref_doc.set_total_advance_paid()
@@ -218,16 +218,16 @@
 		self.set_as_cancelled()
 
 		ref_doc = frappe.get_doc(self.reference_doctype, self.reference_name)
-		advance_payment_doctypes = frappe.get_hooks(
-			"advance_payment_receivable_doctypes"
-		) + frappe.get_hooks("advance_payment_payable_doctypes")
+		advance_payment_doctypes = frappe.get_hooks("advance_payment_receivable_doctypes") + frappe.get_hooks(
+			"advance_payment_payable_doctypes"
+		)
 		if self.reference_doctype in advance_payment_doctypes:
 			# set advance payment status
 			ref_doc.set_total_advance_paid()
 
 	def make_invoice(self):
 		ref_doc = frappe.get_doc(self.reference_doctype, self.reference_name)
-		if hasattr(ref_doc, "order_type") and getattr(ref_doc, "order_type") == "Shopping Cart":
+		if hasattr(ref_doc, "order_type") and ref_doc.order_type == "Shopping Cart":
 			from erpnext.selling.doctype.sales_order.sales_order import make_sales_invoice
 
 			si = make_sales_invoice(self.reference_name, ignore_permissions=True)
@@ -306,14 +306,10 @@
 		else:
 			party_account = get_party_account("Customer", ref_doc.get("customer"), ref_doc.company)
 
-		party_account_currency = ref_doc.get("party_account_currency") or get_account_currency(
-			party_account
-		)
+		party_account_currency = ref_doc.get("party_account_currency") or get_account_currency(party_account)
 
 		bank_amount = self.grand_total
-		if (
-			party_account_currency == ref_doc.company_currency and party_account_currency != self.currency
-		):
+		if party_account_currency == ref_doc.company_currency and party_account_currency != self.currency:
 			party_amount = ref_doc.get("base_rounded_total") or ref_doc.get("base_grand_total")
 		else:
 			party_amount = self.grand_total
@@ -331,7 +327,7 @@
 				"mode_of_payment": self.mode_of_payment,
 				"reference_no": self.name,
 				"reference_date": nowdate(),
-				"remarks": "Payment Entry against {0} {1} via Payment Request {2}".format(
+				"remarks": "Payment Entry against {} {} via Payment Request {}".format(
 					self.reference_doctype, self.reference_name, self.name
 				),
 			}
@@ -465,15 +461,11 @@
 		frappe.db.set_value(
 			"Sales Order", args.dn, "loyalty_points", int(args.loyalty_points), update_modified=False
 		)
-		frappe.db.set_value(
-			"Sales Order", args.dn, "loyalty_amount", loyalty_amount, update_modified=False
-		)
+		frappe.db.set_value("Sales Order", args.dn, "loyalty_amount", loyalty_amount, update_modified=False)
 		grand_total = grand_total - loyalty_amount
 
 	bank_account = (
-		get_party_bank_account(args.get("party_type"), args.get("party"))
-		if args.get("party_type")
-		else ""
+		get_party_bank_account(args.get("party_type"), args.get("party")) if args.get("party_type") else ""
 	)
 
 	draft_payment_request = frappe.db.get_value(
@@ -770,7 +762,10 @@
 			& (
 				(pe_ref.reference_name == dn)
 				| pe_ref.reference_name.isin(
-					frappe.qb.from_(inv_item).select(inv_item.parent).where(inv_item[inv_field] == dn).distinct()
+					frappe.qb.from_(inv_item)
+					.select(inv_item.parent)
+					.where(inv_item[inv_field] == dn)
+					.distinct()
 				)
 			)
 		)
diff --git a/erpnext/accounts/doctype/payment_request/test_payment_request.py b/erpnext/accounts/doctype/payment_request/test_payment_request.py
index feb2fdf..70de886 100644
--- a/erpnext/accounts/doctype/payment_request/test_payment_request.py
+++ b/erpnext/accounts/doctype/payment_request/test_payment_request.py
@@ -93,7 +93,7 @@
 			return_doc=1,
 		)
 
-		pe = pr.create_payment_entry()
+		pr.create_payment_entry()
 		pr.load_from_db()
 
 		self.assertEqual(pr.status, "Paid")
@@ -158,7 +158,7 @@
 
 		self.assertTrue(gl_entries)
 
-		for i, gle in enumerate(gl_entries):
+		for _i, gle in enumerate(gl_entries):
 			self.assertEqual(expected_gle[gle.account][0], gle.account)
 			self.assertEqual(expected_gle[gle.account][1], gle.debit)
 			self.assertEqual(expected_gle[gle.account][2], gle.credit)
diff --git a/erpnext/accounts/doctype/payment_terms_template/payment_terms_template.py b/erpnext/accounts/doctype/payment_terms_template/payment_terms_template.py
index 8f028f9..aaf8577 100644
--- a/erpnext/accounts/doctype/payment_terms_template/payment_terms_template.py
+++ b/erpnext/accounts/doctype/payment_terms_template/payment_terms_template.py
@@ -36,9 +36,7 @@
 			total_portion += flt(term.get("invoice_portion", 0))
 
 		if flt(total_portion, 2) != 100.00:
-			frappe.msgprint(
-				_("Combined invoice portion must equal 100%"), raise_exception=1, indicator="red"
-			)
+			frappe.msgprint(_("Combined invoice portion must equal 100%"), raise_exception=1, indicator="red")
 
 	def validate_terms(self):
 		terms = []
diff --git a/erpnext/accounts/doctype/period_closing_voucher/period_closing_voucher.py b/erpnext/accounts/doctype/period_closing_voucher/period_closing_voucher.py
index 76c0a09..e75057c 100644
--- a/erpnext/accounts/doctype/period_closing_voucher/period_closing_voucher.py
+++ b/erpnext/accounts/doctype/period_closing_voucher/period_closing_voucher.py
@@ -67,7 +67,8 @@
 				enqueue_after_commit=True,
 			)
 			frappe.msgprint(
-				_("The GL Entries will be cancelled in the background, it can take a few minutes."), alert=True
+				_("The GL Entries will be cancelled in the background, it can take a few minutes."),
+				alert=True,
 			)
 		else:
 			make_reverse_gl_entries(voucher_type="Period Closing Voucher", voucher_no=self.name)
@@ -109,9 +110,7 @@
 			self.posting_date, self.fiscal_year, self.company, label=_("Posting Date"), doc=self
 		)
 
-		self.year_start_date = get_fiscal_year(
-			self.posting_date, self.fiscal_year, company=self.company
-		)[1]
+		self.year_start_date = get_fiscal_year(self.posting_date, self.fiscal_year, company=self.company)[1]
 
 		self.check_if_previous_year_closed()
 
@@ -225,7 +224,9 @@
 				"credit_in_account_currency": abs(flt(acc.bal_in_account_currency))
 				if flt(acc.bal_in_account_currency) > 0
 				else 0,
-				"credit": abs(flt(acc.bal_in_company_currency)) if flt(acc.bal_in_company_currency) > 0 else 0,
+				"credit": abs(flt(acc.bal_in_company_currency))
+				if flt(acc.bal_in_company_currency) > 0
+				else 0,
 				"is_period_closing_voucher_entry": 1,
 			},
 			item=acc,
@@ -249,7 +250,9 @@
 				"credit_in_account_currency": abs(flt(acc.bal_in_account_currency))
 				if flt(acc.bal_in_account_currency) < 0
 				else 0,
-				"credit": abs(flt(acc.bal_in_company_currency)) if flt(acc.bal_in_company_currency) < 0 else 0,
+				"credit": abs(flt(acc.bal_in_company_currency))
+				if flt(acc.bal_in_company_currency) < 0
+				else 0,
 				"is_period_closing_voucher_entry": 1,
 			},
 			item=acc,
diff --git a/erpnext/accounts/doctype/pos_closing_entry/pos_closing_entry.py b/erpnext/accounts/doctype/pos_closing_entry/pos_closing_entry.py
index 0f3a5bb..b158eda 100644
--- a/erpnext/accounts/doctype/pos_closing_entry/pos_closing_entry.py
+++ b/erpnext/accounts/doctype/pos_closing_entry/pos_closing_entry.py
@@ -70,7 +70,7 @@
 		for key, value in pos_occurences.items():
 			if len(value) > 1:
 				error_list.append(
-					_("{} is added multiple times on rows: {}".format(frappe.bold(key), frappe.bold(value)))
+					_(f"{frappe.bold(key)} is added multiple times on rows: {frappe.bold(value)}")
 				)
 
 		if error_list:
@@ -165,9 +165,7 @@
 		as_dict=1,
 	)
 
-	data = list(
-		filter(lambda d: get_datetime(start) <= get_datetime(d.timestamp) <= get_datetime(end), data)
-	)
+	data = list(filter(lambda d: get_datetime(start) <= get_datetime(d.timestamp) <= get_datetime(end), data))
 	# need to get taxes and payments so can't avoid get_doc
 	data = [frappe.get_doc("POS Invoice", d.name).as_dict() for d in data]
 
@@ -238,7 +236,11 @@
 			else:
 				payments.append(
 					frappe._dict(
-						{"mode_of_payment": p.mode_of_payment, "opening_amount": 0, "expected_amount": p.amount}
+						{
+							"mode_of_payment": p.mode_of_payment,
+							"opening_amount": 0,
+							"expected_amount": p.amount,
+						}
 					)
 				)
 
diff --git a/erpnext/accounts/doctype/pos_closing_entry/test_pos_closing_entry.py b/erpnext/accounts/doctype/pos_closing_entry/test_pos_closing_entry.py
index 62b342a..6319d5d 100644
--- a/erpnext/accounts/doctype/pos_closing_entry/test_pos_closing_entry.py
+++ b/erpnext/accounts/doctype/pos_closing_entry/test_pos_closing_entry.py
@@ -62,9 +62,7 @@
 		test_user, pos_profile = init_user_and_profile()
 		opening_entry = create_opening_entry(pos_profile, test_user.name)
 
-		pos_inv = create_pos_invoice(
-			rate=3500, do_not_submit=1, item_name="Test Item", without_item_code=1
-		)
+		pos_inv = create_pos_invoice(rate=3500, do_not_submit=1, item_name="Test Item", without_item_code=1)
 		pos_inv.append("payments", {"mode_of_payment": "Cash", "account": "Cash - _TC", "amount": 3500})
 		pos_inv.submit()
 
@@ -211,7 +209,7 @@
 		item_group="All Item Groups",
 	)
 
-	test_item_qty = [item for item in test_item_pos["items"] if item["item_code"] == "_Test Item"][
-		0
-	].get("actual_qty")
+	test_item_qty = next(item for item in test_item_pos["items"] if item["item_code"] == "_Test Item").get(
+		"actual_qty"
+	)
 	return test_item_qty
diff --git a/erpnext/accounts/doctype/pos_invoice/pos_invoice.py b/erpnext/accounts/doctype/pos_invoice/pos_invoice.py
index 8052c4c..b497279 100644
--- a/erpnext/accounts/doctype/pos_invoice/pos_invoice.py
+++ b/erpnext/accounts/doctype/pos_invoice/pos_invoice.py
@@ -183,7 +183,7 @@
 	# end: auto-generated types
 
 	def __init__(self, *args, **kwargs):
-		super(POSInvoice, self).__init__(*args, **kwargs)
+		super().__init__(*args, **kwargs)
 
 	def validate(self):
 		if not cint(self.is_pos):
@@ -308,7 +308,9 @@
 				)
 
 				if paid_amt and pay.amount != paid_amt:
-					return frappe.throw(_("Payment related to {0} is not completed").format(pay.mode_of_payment))
+					return frappe.throw(
+						_("Payment related to {0} is not completed").format(pay.mode_of_payment)
+					)
 
 	def validate_stock_availablility(self):
 		if self.is_return:
@@ -328,7 +330,7 @@
 
 				available_stock, is_stock_item = get_stock_availability(d.item_code, d.warehouse)
 
-				item_code, warehouse, qty = (
+				item_code, warehouse, _qty = (
 					frappe.bold(d.item_code),
 					frappe.bold(d.warehouse),
 					frappe.bold(d.qty),
@@ -408,8 +410,7 @@
 		if (
 			self.change_amount
 			and self.account_for_change_amount
-			and frappe.get_cached_value("Account", self.account_for_change_amount, "company")
-			!= self.company
+			and frappe.get_cached_value("Account", self.account_for_change_amount, "company") != self.company
 		):
 			frappe.throw(
 				_("The selected change account {} doesn't belongs to Company {}.").format(
diff --git a/erpnext/accounts/doctype/pos_invoice/test_pos_invoice.py b/erpnext/accounts/doctype/pos_invoice/test_pos_invoice.py
index 8fab290..773ef01 100644
--- a/erpnext/accounts/doctype/pos_invoice/test_pos_invoice.py
+++ b/erpnext/accounts/doctype/pos_invoice/test_pos_invoice.py
@@ -245,7 +245,6 @@
 		self.assertEqual(pos_return.get("payments")[1].amount, -500)
 
 	def test_pos_return_for_serialized_item(self):
-		from erpnext.stock.doctype.serial_no.serial_no import get_serial_nos
 		from erpnext.stock.doctype.stock_entry.test_stock_entry import make_serialized_item
 
 		se = make_serialized_item(
@@ -287,7 +286,6 @@
 		)
 
 	def test_partial_pos_returns(self):
-		from erpnext.stock.doctype.serial_no.serial_no import get_serial_nos
 		from erpnext.stock.doctype.stock_entry.test_stock_entry import make_serialized_item
 
 		se = make_serialized_item(
@@ -359,9 +357,7 @@
 		)
 
 		pos.set("payments", [])
-		pos.append(
-			"payments", {"mode_of_payment": "Bank Draft", "account": "_Test Bank - _TC", "amount": 50}
-		)
+		pos.append("payments", {"mode_of_payment": "Bank Draft", "account": "_Test Bank - _TC", "amount": 50})
 		pos.append(
 			"payments", {"mode_of_payment": "Cash", "account": "Cash - _TC", "amount": 60, "default": 1}
 		)
@@ -379,7 +375,6 @@
 		self.assertRaises(frappe.ValidationError, inv.insert)
 
 	def test_serialized_item_transaction(self):
-		from erpnext.stock.doctype.serial_no.serial_no import get_serial_nos
 		from erpnext.stock.doctype.stock_entry.test_stock_entry import make_serialized_item
 
 		se = make_serialized_item(
@@ -434,7 +429,6 @@
 		self.assertRaises(frappe.ValidationError, pos2.submit)
 
 	def test_delivered_serialized_item_transaction(self):
-		from erpnext.stock.doctype.serial_no.serial_no import get_serial_nos
 		from erpnext.stock.doctype.stock_entry.test_stock_entry import make_serialized_item
 
 		se = make_serialized_item(
@@ -583,9 +577,7 @@
 		from erpnext.accounts.doctype.loyalty_program.test_loyalty_program import create_records
 
 		create_records()
-		frappe.db.set_value(
-			"Customer", "Test Loyalty Customer", "loyalty_program", "Test Single Loyalty"
-		)
+		frappe.db.set_value("Customer", "Test Loyalty Customer", "loyalty_program", "Test Single Loyalty")
 		before_lp_details = get_loyalty_program_details_with_points(
 			"Test Loyalty Customer", company="_Test Company", loyalty_program="Test Single Loyalty"
 		)
@@ -659,9 +651,7 @@
 		consolidate_pos_invoices()
 
 		pos_inv.load_from_db()
-		rounded_total = frappe.db.get_value(
-			"Sales Invoice", pos_inv.consolidated_invoice, "rounded_total"
-		)
+		rounded_total = frappe.db.get_value("Sales Invoice", pos_inv.consolidated_invoice, "rounded_total")
 		self.assertEqual(rounded_total, 3470)
 
 	def test_merging_into_sales_invoice_with_discount_and_inclusive_tax(self):
@@ -708,9 +698,7 @@
 		consolidate_pos_invoices()
 
 		pos_inv.load_from_db()
-		rounded_total = frappe.db.get_value(
-			"Sales Invoice", pos_inv.consolidated_invoice, "rounded_total"
-		)
+		rounded_total = frappe.db.get_value("Sales Invoice", pos_inv.consolidated_invoice, "rounded_total")
 		self.assertEqual(rounded_total, 840)
 
 	def test_merging_with_validate_selling_price(self):
@@ -762,9 +750,7 @@
 		consolidate_pos_invoices()
 
 		pos_inv2.load_from_db()
-		rounded_total = frappe.db.get_value(
-			"Sales Invoice", pos_inv2.consolidated_invoice, "rounded_total"
-		)
+		rounded_total = frappe.db.get_value("Sales Invoice", pos_inv2.consolidated_invoice, "rounded_total")
 		self.assertEqual(rounded_total, 400)
 
 	def test_pos_batch_reservation(self):
@@ -788,9 +774,7 @@
 		batch_no = get_batch_from_bundle(se.items[0].serial_and_batch_bundle)
 
 		# POS Invoice 1, for the batch without bundle
-		pos_inv1 = create_pos_invoice(
-			item="_BATCH ITEM Test For Reserve", rate=300, qty=15, do_not_save=1
-		)
+		pos_inv1 = create_pos_invoice(item="_BATCH ITEM Test For Reserve", rate=300, qty=15, do_not_save=1)
 
 		pos_inv1.items[0].batch_no = batch_no
 		pos_inv1.save()
@@ -800,9 +784,7 @@
 		self.assertFalse(pos_inv1.items[0].serial_and_batch_bundle)
 
 		batches = get_auto_batch_nos(
-			frappe._dict(
-				{"item_code": "_BATCH ITEM Test For Reserve", "warehouse": "_Test Warehouse - _TC"}
-			)
+			frappe._dict({"item_code": "_BATCH ITEM Test For Reserve", "warehouse": "_Test Warehouse - _TC"})
 		)
 
 		for batch in batches:
@@ -817,9 +799,7 @@
 		self.assertTrue(pos_inv2.items[0].serial_and_batch_bundle)
 
 		batches = get_auto_batch_nos(
-			frappe._dict(
-				{"item_code": "_BATCH ITEM Test For Reserve", "warehouse": "_Test Warehouse - _TC"}
-			)
+			frappe._dict({"item_code": "_BATCH ITEM Test For Reserve", "warehouse": "_Test Warehouse - _TC"})
 		)
 
 		for batch in batches:
@@ -896,19 +876,19 @@
 			pos_inv = create_pos_invoice(qty=1, do_not_submit=1)
 			pos_inv.items[0].rate = 300
 			pos_inv.save()
-			self.assertEquals(pos_inv.items[0].discount_percentage, 10)
+			self.assertEqual(pos_inv.items[0].discount_percentage, 10)
 			# rate shouldn't change
-			self.assertEquals(pos_inv.items[0].rate, 405)
+			self.assertEqual(pos_inv.items[0].rate, 405)
 
 			pos_inv.ignore_pricing_rule = 1
 			pos_inv.save()
-			self.assertEquals(pos_inv.ignore_pricing_rule, 1)
+			self.assertEqual(pos_inv.ignore_pricing_rule, 1)
 			# rate should reset since pricing rules are ignored
-			self.assertEquals(pos_inv.items[0].rate, 450)
+			self.assertEqual(pos_inv.items[0].rate, 450)
 
 			pos_inv.items[0].rate = 300
 			pos_inv.save()
-			self.assertEquals(pos_inv.items[0].rate, 300)
+			self.assertEqual(pos_inv.items[0].rate, 300)
 
 		finally:
 			item_price.delete()
@@ -920,7 +900,6 @@
 			init_user_and_profile,
 		)
 		from erpnext.stock.doctype.delivery_note.test_delivery_note import create_delivery_note
-		from erpnext.stock.doctype.serial_no.test_serial_no import get_serial_nos
 		from erpnext.stock.doctype.stock_entry.test_stock_entry import make_serialized_item
 
 		frappe.db.savepoint("before_test_delivered_serial_no_case")
diff --git a/erpnext/accounts/doctype/pos_invoice_merge_log/pos_invoice_merge_log.py b/erpnext/accounts/doctype/pos_invoice_merge_log/pos_invoice_merge_log.py
index cd858ca..fb91672 100644
--- a/erpnext/accounts/doctype/pos_invoice_merge_log/pos_invoice_merge_log.py
+++ b/erpnext/accounts/doctype/pos_invoice_merge_log/pos_invoice_merge_log.py
@@ -54,7 +54,7 @@
 		for key, value in pos_occurences.items():
 			if len(value) > 1:
 				error_list.append(
-					_("{} is added multiple times on rows: {}".format(frappe.bold(key), frappe.bold(value)))
+					_(f"{frappe.bold(key)} is added multiple times on rows: {frappe.bold(value)}")
 				)
 
 		if error_list:
@@ -81,7 +81,9 @@
 			bold_pos_invoice = frappe.bold(d.pos_invoice)
 			bold_status = frappe.bold(status)
 			if docstatus != 1:
-				frappe.throw(_("Row #{}: POS Invoice {} is not submitted yet").format(d.idx, bold_pos_invoice))
+				frappe.throw(
+					_("Row #{}: POS Invoice {} is not submitted yet").format(d.idx, bold_pos_invoice)
+				)
 			if status == "Consolidated":
 				frappe.throw(
 					_("Row #{}: POS Invoice {} has been {}").format(d.idx, bold_pos_invoice, bold_status)
@@ -100,15 +102,17 @@
 						d.idx, bold_return_against, bold_pos_invoice, bold_unconsolidated
 					)
 					msg += " "
-					msg += _("Original invoice should be consolidated before or along with the return invoice.")
+					msg += _(
+						"Original invoice should be consolidated before or along with the return invoice."
+					)
 					msg += "<br><br>"
-					msg += _("You can add original invoice {} manually to proceed.").format(bold_return_against)
+					msg += _("You can add original invoice {} manually to proceed.").format(
+						bold_return_against
+					)
 					frappe.throw(msg)
 
 	def on_submit(self):
-		pos_invoice_docs = [
-			frappe.get_cached_doc("POS Invoice", d.pos_invoice) for d in self.pos_invoices
-		]
+		pos_invoice_docs = [frappe.get_cached_doc("POS Invoice", d.pos_invoice) for d in self.pos_invoices]
 
 		returns = [d for d in pos_invoice_docs if d.get("is_return") == 1]
 		sales = [d for d in pos_invoice_docs if d.get("is_return") == 0]
@@ -124,9 +128,7 @@
 		self.update_pos_invoices(pos_invoice_docs, sales_invoice, credit_note)
 
 	def on_cancel(self):
-		pos_invoice_docs = [
-			frappe.get_cached_doc("POS Invoice", d.pos_invoice) for d in self.pos_invoices
-		]
+		pos_invoice_docs = [frappe.get_cached_doc("POS Invoice", d.pos_invoice) for d in self.pos_invoices]
 
 		self.update_pos_invoices(pos_invoice_docs)
 		self.cancel_linked_invoices()
@@ -217,7 +219,9 @@
 				for t in taxes:
 					if t.account_head == tax.account_head and t.cost_center == tax.cost_center:
 						t.tax_amount = flt(t.tax_amount) + flt(tax.tax_amount_after_discount_amount)
-						t.base_tax_amount = flt(t.base_tax_amount) + flt(tax.base_tax_amount_after_discount_amount)
+						t.base_tax_amount = flt(t.base_tax_amount) + flt(
+							tax.base_tax_amount_after_discount_amount
+						)
 						update_item_wise_tax_detail(t, tax)
 						found = True
 				if not found:
@@ -333,9 +337,7 @@
 		else:
 			consolidated_tax_detail.update({item_code: [tax_data[0], tax_data[1]]})
 
-	consolidate_tax_row.item_wise_tax_detail = json.dumps(
-		consolidated_tax_detail, separators=(",", ":")
-	)
+	consolidate_tax_row.item_wise_tax_detail = json.dumps(consolidated_tax_detail, separators=(",", ":"))
 
 
 def get_all_unconsolidated_invoices():
@@ -380,9 +382,7 @@
 
 	if len(invoices) >= 10 and closing_entry:
 		closing_entry.set_status(update=True, status="Queued")
-		enqueue_job(
-			create_merge_logs, invoice_by_customer=invoice_by_customer, closing_entry=closing_entry
-		)
+		enqueue_job(create_merge_logs, invoice_by_customer=invoice_by_customer, closing_entry=closing_entry)
 	else:
 		create_merge_logs(invoice_by_customer, closing_entry)
 
@@ -431,9 +431,7 @@
 			if not item.serial_no and not item.serial_and_batch_bundle:
 				continue
 
-			return_against_is_added = any(
-				d for d in _invoices if d.pos_invoice == pos_invoice.return_against
-			)
+			return_against_is_added = any(d for d in _invoices if d.pos_invoice == pos_invoice.return_against)
 			if return_against_is_added:
 				break
 
@@ -533,7 +531,7 @@
 			timeout=10000,
 			event="processing_merge_logs",
 			job_id=job_id,
-			now=frappe.conf.developer_mode or frappe.flags.in_test
+			now=frappe.conf.developer_mode or frappe.flags.in_test,
 		)
 
 		if job == create_merge_logs:
diff --git a/erpnext/accounts/doctype/pos_invoice_merge_log/test_pos_invoice_merge_log.py b/erpnext/accounts/doctype/pos_invoice_merge_log/test_pos_invoice_merge_log.py
index 0ad9131..904d8e8 100644
--- a/erpnext/accounts/doctype/pos_invoice_merge_log/test_pos_invoice_merge_log.py
+++ b/erpnext/accounts/doctype/pos_invoice_merge_log/test_pos_invoice_merge_log.py
@@ -31,15 +31,11 @@
 			pos_inv.submit()
 
 			pos_inv2 = create_pos_invoice(rate=3200, do_not_submit=1)
-			pos_inv2.append(
-				"payments", {"mode_of_payment": "Cash", "account": "Cash - _TC", "amount": 3200}
-			)
+			pos_inv2.append("payments", {"mode_of_payment": "Cash", "account": "Cash - _TC", "amount": 3200})
 			pos_inv2.submit()
 
 			pos_inv3 = create_pos_invoice(customer="_Test Customer 2", rate=2300, do_not_submit=1)
-			pos_inv3.append(
-				"payments", {"mode_of_payment": "Cash", "account": "Cash - _TC", "amount": 2300}
-			)
+			pos_inv3.append("payments", {"mode_of_payment": "Cash", "account": "Cash - _TC", "amount": 2300})
 			pos_inv3.submit()
 
 			consolidate_pos_invoices()
@@ -68,15 +64,11 @@
 			pos_inv.submit()
 
 			pos_inv2 = create_pos_invoice(rate=3200, do_not_submit=1)
-			pos_inv2.append(
-				"payments", {"mode_of_payment": "Cash", "account": "Cash - _TC", "amount": 3200}
-			)
+			pos_inv2.append("payments", {"mode_of_payment": "Cash", "account": "Cash - _TC", "amount": 3200})
 			pos_inv2.submit()
 
 			pos_inv3 = create_pos_invoice(customer="_Test Customer 2", rate=2300, do_not_submit=1)
-			pos_inv3.append(
-				"payments", {"mode_of_payment": "Cash", "account": "Cash - _TC", "amount": 2300}
-			)
+			pos_inv3.append("payments", {"mode_of_payment": "Cash", "account": "Cash - _TC", "amount": 2300})
 			pos_inv3.submit()
 
 			pos_inv_cn = make_sales_return(pos_inv.name)
@@ -312,7 +304,7 @@
 			init_user_and_profile()
 
 			item_rates = [69, 59, 29]
-			for i in [1, 2]:
+			for _i in [1, 2]:
 				inv = create_pos_invoice(is_return=1, do_not_save=1)
 				inv.items = []
 				for rate in item_rates:
@@ -406,7 +398,6 @@
 		The second and third POS Invoice should be consolidated with a single Merge Log
 		"""
 
-		from erpnext.stock.doctype.serial_no.test_serial_no import get_serial_nos
 		from erpnext.stock.doctype.stock_entry.test_stock_entry import make_serialized_item
 
 		frappe.db.sql("delete from `tabPOS Invoice`")
diff --git a/erpnext/accounts/doctype/pos_profile/pos_profile.py b/erpnext/accounts/doctype/pos_profile/pos_profile.py
index c1add57..29403ab 100644
--- a/erpnext/accounts/doctype/pos_profile/pos_profile.py
+++ b/erpnext/accounts/doctype/pos_profile/pos_profile.py
@@ -180,10 +180,8 @@
 			condition = " where pfu.default = 1 "
 
 		pos_view_users = frappe.db.sql_list(
-			"""select pfu.user
-			from `tabPOS Profile User` as pfu {0}""".format(
-				condition
-			)
+			f"""select pfu.user
+			from `tabPOS Profile User` as pfu {condition}"""
 		)
 
 		for user in pos_view_users:
@@ -210,16 +208,13 @@
 def get_child_nodes(group_type, root):
 	lft, rgt = frappe.db.get_value(group_type, root, ["lft", "rgt"])
 	return frappe.db.sql(
-		""" Select name, lft, rgt from `tab{tab}` where
-			lft >= {lft} and rgt <= {rgt} order by lft""".format(
-			tab=group_type, lft=lft, rgt=rgt
-		),
+		f""" Select name, lft, rgt from `tab{group_type}` where
+			lft >= {lft} and rgt <= {rgt} order by lft""",
 		as_dict=1,
 	)
 
 
 def required_accounting_dimensions():
-
 	p = frappe.qb.DocType("Accounting Dimension")
 	c = frappe.qb.DocType("Accounting Dimension Detail")
 
diff --git a/erpnext/accounts/doctype/pos_profile/test_pos_profile.py b/erpnext/accounts/doctype/pos_profile/test_pos_profile.py
index b468ad3..f2e3c8f 100644
--- a/erpnext/accounts/doctype/pos_profile/test_pos_profile.py
+++ b/erpnext/accounts/doctype/pos_profile/test_pos_profile.py
@@ -7,7 +7,6 @@
 
 from erpnext.accounts.doctype.pos_profile.pos_profile import (
 	get_child_nodes,
-	required_accounting_dimensions,
 )
 from erpnext.stock.get_item_details import get_pos_profile
 
@@ -55,11 +54,9 @@
 
 	return (
 		frappe.db.sql(
-			""" select name, customer_name, customer_group,
+			f""" select name, customer_name, customer_group,
 		territory, customer_pos_id from tabCustomer where disabled = 0
-		and {cond}""".format(
-				cond=cond
-			),
+		and {cond}""",
 			tuple(customer_groups),
 			as_dict=1,
 		)
@@ -78,7 +75,7 @@
 			cond = "and i.item_group in (%s)" % (", ".join(["%s"] * len(args_list)))
 
 	return frappe.db.sql(
-		"""
+		f"""
 		select
 			i.name, i.item_code, i.item_name, i.description, i.item_group, i.has_batch_no,
 			i.has_serial_no, i.is_stock_item, i.brand, i.stock_uom, i.image,
@@ -91,10 +88,8 @@
 		where
 			i.disabled = 0 and i.has_variants = 0 and i.is_sales_item = 1 and i.is_fixed_asset = 0
 			{cond}
-		""".format(
-			cond=cond
-		),
-		tuple([company] + args_list),
+		""",
+		tuple([company, *args_list]),
 		as_dict=1,
 	)
 
diff --git a/erpnext/accounts/doctype/pricing_rule/pricing_rule.py b/erpnext/accounts/doctype/pricing_rule/pricing_rule.py
index 300692f..11529ef 100644
--- a/erpnext/accounts/doctype/pricing_rule/pricing_rule.py
+++ b/erpnext/accounts/doctype/pricing_rule/pricing_rule.py
@@ -186,9 +186,9 @@
 
 			if self.priority and cint(self.priority) == 1:
 				throw(
-					_("As the field {0} is enabled, the value of the field {1} should be more than 1.").format(
-						frappe.bold("Apply Discount on Discounted Rate"), frappe.bold("Priority")
-					)
+					_(
+						"As the field {0} is enabled, the value of the field {1} should be more than 1."
+					).format(frappe.bold("Apply Discount on Discounted Rate"), frappe.bold("Priority"))
 				)
 
 	def validate_applicable_for_selling_or_buying(self):
@@ -458,9 +458,11 @@
 				)
 
 				if pricing_rule.apply_rule_on_other_items:
-					item_details["apply_rule_on_other_items"] = json.dumps(pricing_rule.apply_rule_on_other_items)
+					item_details["apply_rule_on_other_items"] = json.dumps(
+						pricing_rule.apply_rule_on_other_items
+					)
 
-			if pricing_rule.coupon_code_based == 1 and args.coupon_code == None:
+			if pricing_rule.coupon_code_based == 1 and args.coupon_code is None:
 				return item_details
 
 			if not pricing_rule.validate_applied_rule:
@@ -504,7 +506,6 @@
 
 	if args.transaction_type == "selling":
 		if args.customer and not (args.customer_group and args.territory):
-
 			if args.quotation_to and args.quotation_to != "Customer":
 				customer = frappe._dict()
 			else:
@@ -535,9 +536,9 @@
 def apply_price_discount_rule(pricing_rule, item_details, args):
 	item_details.pricing_rule_for = pricing_rule.rate_or_discount
 
-	if (
-		pricing_rule.margin_type in ["Amount", "Percentage"] and pricing_rule.currency == args.currency
-	) or (pricing_rule.margin_type == "Percentage"):
+	if (pricing_rule.margin_type in ["Amount", "Percentage"] and pricing_rule.currency == args.currency) or (
+		pricing_rule.margin_type == "Percentage"
+	):
 		item_details.margin_type = pricing_rule.margin_type
 		item_details.has_margin = True
 
@@ -685,7 +686,7 @@
 
 	return frappe.get_all(
 		"UOM Conversion Detail",
-		filters={"parent": ("in", items), "uom": ("like", "{0}%".format(txt))},
+		filters={"parent": ("in", items), "uom": ("like", f"{txt}%")},
 		fields=["distinct uom"],
 		as_list=1,
 	)
diff --git a/erpnext/accounts/doctype/pricing_rule/test_pricing_rule.py b/erpnext/accounts/doctype/pricing_rule/test_pricing_rule.py
index 5bb366a..046a599 100644
--- a/erpnext/accounts/doctype/pricing_rule/test_pricing_rule.py
+++ b/erpnext/accounts/doctype/pricing_rule/test_pricing_rule.py
@@ -103,8 +103,6 @@
 		self.assertEqual(details.get("discount_percentage"), 15)
 
 	def test_pricing_rule_for_margin(self):
-		from frappe import MandatoryError
-
 		from erpnext.stock.get_item_details import get_item_details
 
 		test_record = {
@@ -205,8 +203,6 @@
 		self.assertEqual(details.get("discount_percentage"), 10)
 
 	def test_pricing_rule_for_variants(self):
-		from frappe import MandatoryError
-
 		from erpnext.stock.get_item_details import get_item_details
 
 		if not frappe.db.exists("Item", "Test Variant PRT"):
@@ -1181,8 +1177,7 @@
 		"Pricing Rule Item Group",
 		"Pricing Rule Brand",
 	]:
-
-		frappe.db.sql("delete from `tab{0}`".format(doctype))
+		frappe.db.sql(f"delete from `tab{doctype}`")
 
 
 def make_item_price(item, price_list_name, item_price):
diff --git a/erpnext/accounts/doctype/pricing_rule/utils.py b/erpnext/accounts/doctype/pricing_rule/utils.py
index 73c5d59..2144233 100644
--- a/erpnext/accounts/doctype/pricing_rule/utils.py
+++ b/erpnext/accounts/doctype/pricing_rule/utils.py
@@ -101,14 +101,12 @@
 	if not args.get(apply_on_field):
 		return []
 
-	child_doc = "`tabPricing Rule {0}`".format(apply_on)
+	child_doc = f"`tabPricing Rule {apply_on}`"
 
 	conditions = item_variant_condition = item_conditions = ""
 	values[apply_on_field] = args.get(apply_on_field)
 	if apply_on_field in ["item_code", "brand"]:
-		item_conditions = "{child_doc}.{apply_on_field}= %({apply_on_field})s".format(
-			child_doc=child_doc, apply_on_field=apply_on_field
-		)
+		item_conditions = f"{child_doc}.{apply_on_field}= %({apply_on_field})s"
 
 		if apply_on_field == "item_code":
 			if args.get("uom", None):
@@ -121,23 +119,19 @@
 				args.variant_of = frappe.get_cached_value("Item", args.item_code, "variant_of")
 
 			if args.variant_of:
-				item_variant_condition = " or {child_doc}.item_code=%(variant_of)s ".format(
-					child_doc=child_doc
-				)
+				item_variant_condition = f" or {child_doc}.item_code=%(variant_of)s "
 				values["variant_of"] = args.variant_of
 	elif apply_on_field == "item_group":
 		item_conditions = _get_tree_conditions(args, "Item Group", child_doc, False)
 		if args.get("uom", None):
-			item_conditions += (
-				" and ({child_doc}.uom='{item_uom}' or IFNULL({child_doc}.uom, '')='')".format(
-					child_doc=child_doc, item_uom=args.get("uom")
-				)
+			item_conditions += " and ({child_doc}.uom='{item_uom}' or IFNULL({child_doc}.uom, '')='')".format(
+				child_doc=child_doc, item_uom=args.get("uom")
 			)
 
 	conditions += get_other_conditions(conditions, values, args)
 	warehouse_conditions = _get_tree_conditions(args, "Warehouse", "`tabPricing Rule`")
 	if warehouse_conditions:
-		warehouse_conditions = " and {0}".format(warehouse_conditions)
+		warehouse_conditions = f" and {warehouse_conditions}"
 
 	if not args.price_list:
 		args.price_list = None
@@ -163,7 +157,7 @@
 				item_variant_condition=item_variant_condition,
 				transaction_type=args.transaction_type,
 				warehouse_cond=warehouse_conditions,
-				apply_on_other_field="other_{0}".format(apply_on_field),
+				apply_on_other_field=f"other_{apply_on_field}",
 				conditions=conditions,
 			),
 			values,
@@ -202,14 +196,13 @@
 			frappe.throw(_("Invalid {0}").format(args.get(field)))
 
 		parent_groups = frappe.db.sql_list(
-			"""select name from `tab%s`
-			where lft<=%s and rgt>=%s"""
-			% (parenttype, "%s", "%s"),
+			"""select name from `tab{}`
+			where lft<={} and rgt>={}""".format(parenttype, "%s", "%s"),
 			(lft, rgt),
 		)
 
 		if parenttype in ["Customer Group", "Item Group", "Territory"]:
-			parent_field = "parent_{0}".format(frappe.scrub(parenttype))
+			parent_field = f"parent_{frappe.scrub(parenttype)}"
 			root_name = frappe.db.get_list(
 				parenttype,
 				{"is_group": 1, parent_field: ("is", "not set")},
@@ -235,10 +228,10 @@
 def get_other_conditions(conditions, values, args):
 	for field in ["company", "customer", "supplier", "campaign", "sales_partner"]:
 		if args.get(field):
-			conditions += " and ifnull(`tabPricing Rule`.{0}, '') in (%({1})s, '')".format(field, field)
+			conditions += f" and ifnull(`tabPricing Rule`.{field}, '') in (%({field})s, '')"
 			values[field] = args.get(field)
 		else:
-			conditions += " and ifnull(`tabPricing Rule`.{0}, '') = ''".format(field)
+			conditions += f" and ifnull(`tabPricing Rule`.{field}, '') = ''"
 
 	for parenttype in ["Customer Group", "Territory", "Supplier Group"]:
 		group_condition = _get_tree_conditions(args, parenttype, "`tabPricing Rule`")
@@ -510,7 +503,7 @@
 		"transaction_date" if frappe.get_meta(doctype).has_field("transaction_date") else "posting_date"
 	)
 
-	child_doctype = "{0} Item".format(doctype)
+	child_doctype = f"{doctype} Item"
 	apply_on = frappe.scrub(pr_doc.get("apply_on"))
 
 	values = [pr_doc.valid_from, pr_doc.valid_upto]
@@ -520,9 +513,7 @@
 		warehouses = get_child_warehouses(pr_doc.warehouse)
 
 		condition += """ and `tab{child_doc}`.warehouse in ({warehouses})
-			""".format(
-			child_doc=child_doctype, warehouses=",".join(["%s"] * len(warehouses))
-		)
+			""".format(child_doc=child_doctype, warehouses=",".join(["%s"] * len(warehouses)))
 
 		values.extend(warehouses)
 
@@ -534,16 +525,14 @@
 		values.extend(items)
 
 	data_set = frappe.db.sql(
-		""" SELECT `tab{child_doc}`.stock_qty,
-			`tab{child_doc}`.amount
-		FROM `tab{child_doc}`, `tab{parent_doc}`
+		f""" SELECT `tab{child_doctype}`.stock_qty,
+			`tab{child_doctype}`.amount
+		FROM `tab{child_doctype}`, `tab{doctype}`
 		WHERE
-			`tab{child_doc}`.parent = `tab{parent_doc}`.name and `tab{parent_doc}`.{date_field}
-			between %s and %s and `tab{parent_doc}`.docstatus = 1
-			{condition} group by `tab{child_doc}`.name
-	""".format(
-			parent_doc=doctype, child_doc=child_doctype, condition=condition, date_field=date_field
-		),
+			`tab{child_doctype}`.parent = `tab{doctype}`.name and `tab{doctype}`.{date_field}
+			between %s and %s and `tab{doctype}`.docstatus = 1
+			{condition} group by `tab{child_doctype}`.name
+	""",
 		tuple(values),
 		as_dict=1,
 	)
@@ -562,11 +551,9 @@
 	conditions = get_other_conditions(conditions, values, doc)
 
 	pricing_rules = frappe.db.sql(
-		""" Select `tabPricing Rule`.* from `tabPricing Rule`
+		f""" Select `tabPricing Rule`.* from `tabPricing Rule`
 		where  {conditions} and `tabPricing Rule`.disable = 0
-	""".format(
-			conditions=conditions
-		),
+	""",
 		values,
 		as_dict=1,
 	)
@@ -591,7 +578,9 @@
 						continue
 
 					if (
-						d.validate_applied_rule and doc.get(field) is not None and doc.get(field) < d.get(pr_field)
+						d.validate_applied_rule
+						and doc.get(field) is not None
+						and doc.get(field) < d.get(pr_field)
 					):
 						frappe.msgprint(_("User has not applied rule on the invoice {0}").format(doc.name))
 					else:
@@ -660,9 +649,7 @@
 
 	qty = pricing_rule.free_qty or 1
 	if pricing_rule.is_recursive:
-		transaction_qty = (
-			args.get("qty") if args else doc.total_qty
-		) - pricing_rule.apply_recursion_over
+		transaction_qty = (args.get("qty") if args else doc.total_qty) - pricing_rule.apply_recursion_over
 		if transaction_qty:
 			qty = flt(transaction_qty) * qty / pricing_rule.recurse_for
 			if pricing_rule.round_free_qty:
diff --git a/erpnext/accounts/doctype/process_deferred_accounting/test_process_deferred_accounting.py b/erpnext/accounts/doctype/process_deferred_accounting/test_process_deferred_accounting.py
index 263621d..fddd9f8 100644
--- a/erpnext/accounts/doctype/process_deferred_accounting/test_process_deferred_accounting.py
+++ b/erpnext/accounts/doctype/process_deferred_accounting/test_process_deferred_accounting.py
@@ -40,7 +40,7 @@
 		si.save()
 		si.submit()
 
-		process_deferred_accounting = doc = frappe.get_doc(
+		process_deferred_accounting = frappe.get_doc(
 			dict(
 				doctype="Process Deferred Accounting",
 				posting_date="2023-07-01",
diff --git a/erpnext/accounts/doctype/process_payment_reconciliation/process_payment_reconciliation.py b/erpnext/accounts/doctype/process_payment_reconciliation/process_payment_reconciliation.py
index 761c2bc..5ae6f64 100644
--- a/erpnext/accounts/doctype/process_payment_reconciliation/process_payment_reconciliation.py
+++ b/erpnext/accounts/doctype/process_payment_reconciliation/process_payment_reconciliation.py
@@ -66,9 +66,7 @@
 
 	def on_cancel(self):
 		self.db_set("status", "Cancelled")
-		log = frappe.db.get_value(
-			"Process Payment Reconciliation Log", filters={"process_pr": self.name}
-		)
+		log = frappe.db.get_value("Process Payment Reconciliation Log", filters={"process_pr": self.name})
 		if log:
 			frappe.db.set_value("Process Payment Reconciliation Log", log, "status", "Cancelled")
 
@@ -416,7 +414,6 @@
 					# If Payment Entry, update details only for newly linked references
 					# This is for performance
 					if allocations[0].reference_type == "Payment Entry":
-
 						references = [(x.invoice_type, x.invoice_number) for x in allocations]
 						pe = frappe.get_doc(allocations[0].reference_type, allocations[0].reference_name)
 						pe.flags.ignore_validate_update_after_submit = True
@@ -430,13 +427,14 @@
 
 					# Update reconciled count
 					reconciled_count = frappe.db.count(
-						"Process Payment Reconciliation Log Allocations", filters={"parent": log, "reconciled": True}
+						"Process Payment Reconciliation Log Allocations",
+						filters={"parent": log, "reconciled": True},
 					)
 					frappe.db.set_value(
 						"Process Payment Reconciliation Log", log, "reconciled_entries", reconciled_count
 					)
 
-				except Exception as err:
+				except Exception:
 					# Update the parent doc about the exception
 					frappe.db.rollback()
 
@@ -474,15 +472,12 @@
 						frappe.db.set_value("Process Payment Reconciliation Log", log, "reconciled", True)
 						frappe.db.set_value("Process Payment Reconciliation", doc, "status", "Completed")
 					else:
-
 						if frappe.db.get_value("Process Payment Reconciliation", doc, "status") != "Paused":
 							# trigger next batch in job
 							# generate reconcile job name
 							allocation = get_next_allocation(log)
 							if allocation:
-								reconcile_job_name = (
-									f"process_{doc}_reconcile_allocation_{allocation[0].idx}_{allocation[-1].idx}"
-								)
+								reconcile_job_name = f"process_{doc}_reconcile_allocation_{allocation[0].idx}_{allocation[-1].idx}"
 							else:
 								reconcile_job_name = f"process_{doc}_reconcile"
 
diff --git a/erpnext/accounts/doctype/process_payment_reconciliation_log/process_payment_reconciliation_log.py b/erpnext/accounts/doctype/process_payment_reconciliation_log/process_payment_reconciliation_log.py
index 153fffc..80337e1 100644
--- a/erpnext/accounts/doctype/process_payment_reconciliation_log/process_payment_reconciliation_log.py
+++ b/erpnext/accounts/doctype/process_payment_reconciliation_log/process_payment_reconciliation_log.py
@@ -24,9 +24,7 @@
 		process_pr: DF.Link
 		reconciled: DF.Check
 		reconciled_entries: DF.Int
-		status: DF.Literal[
-			"Running", "Paused", "Reconciled", "Partially Reconciled", "Failed", "Cancelled"
-		]
+		status: DF.Literal["Running", "Paused", "Reconciled", "Partially Reconciled", "Failed", "Cancelled"]
 		total_allocations: DF.Int
 	# end: auto-generated types
 
diff --git a/erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py b/erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py
index f9d6136..c73c13e 100644
--- a/erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py
+++ b/erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py
@@ -46,9 +46,7 @@
 		company: DF.Link
 		cost_center: DF.TableMultiSelect[PSOACostCenter]
 		currency: DF.Link | None
-		customer_collection: DF.Literal[
-			"", "Customer Group", "Territory", "Sales Partner", "Sales Person"
-		]
+		customer_collection: DF.Literal["", "Customer Group", "Territory", "Sales Partner", "Sales Person"]
 		customers: DF.Table[ProcessStatementOfAccountsCustomer]
 		enable_auto_email: DF.Check
 		filter_duration: DF.Int
@@ -406,9 +404,7 @@
 			{mcond}
 		ORDER BY
 			contact.creation desc
-		""".format(
-			mcond=get_match_cond("Contact")
-		),
+		""".format(mcond=get_match_cond("Contact")),
 		customer_name,
 	)
 
@@ -481,9 +477,7 @@
 			else:
 				new_to_date = add_months(new_to_date, 1 if doc.frequency == "Monthly" else 3)
 			new_from_date = add_months(new_to_date, -1 * doc.filter_duration)
-			doc.add_comment(
-				"Comment", "Emails sent on: " + frappe.utils.format_datetime(frappe.utils.now())
-			)
+			doc.add_comment("Comment", "Emails sent on: " + frappe.utils.format_datetime(frappe.utils.now()))
 			if doc.report == "General Ledger":
 				doc.db_set("to_date", new_to_date, commit=True)
 				doc.db_set("from_date", new_from_date, commit=True)
diff --git a/erpnext/accounts/doctype/process_statement_of_accounts/test_process_statement_of_accounts.py b/erpnext/accounts/doctype/process_statement_of_accounts/test_process_statement_of_accounts.py
index a3a74df..92dbb5e 100644
--- a/erpnext/accounts/doctype/process_statement_of_accounts/test_process_statement_of_accounts.py
+++ b/erpnext/accounts/doctype/process_statement_of_accounts/test_process_statement_of_accounts.py
@@ -1,7 +1,6 @@
 # Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and Contributors
 # See license.txt
 
-import unittest
 
 import frappe
 from frappe.tests.utils import FrappeTestCase
diff --git a/erpnext/accounts/doctype/process_subscription/process_subscription.py b/erpnext/accounts/doctype/process_subscription/process_subscription.py
index b271e7c..f0a2244 100644
--- a/erpnext/accounts/doctype/process_subscription/process_subscription.py
+++ b/erpnext/accounts/doctype/process_subscription/process_subscription.py
@@ -2,7 +2,6 @@
 # For license information, please see license.txt
 
 from datetime import datetime
-from typing import Union
 
 import frappe
 from frappe.model.document import Document
@@ -30,7 +29,7 @@
 
 
 def create_subscription_process(
-	subscription: str | None = None, posting_date: Union[str, datetime.date] | None = None
+	subscription: str | None = None, posting_date: str | datetime.date | None = None
 ):
 	"""Create a new Process Subscription document"""
 	doc = frappe.new_doc("Process Subscription")
diff --git a/erpnext/accounts/doctype/promotional_scheme/promotional_scheme.py b/erpnext/accounts/doctype/promotional_scheme/promotional_scheme.py
index a9c1900..ed4e3d2 100644
--- a/erpnext/accounts/doctype/promotional_scheme/promotional_scheme.py
+++ b/erpnext/accounts/doctype/promotional_scheme/promotional_scheme.py
@@ -169,9 +169,7 @@
 		docnames = frappe.get_all("Pricing Rule", filters={"promotional_scheme": self.name})
 
 		for docname in docnames:
-			if frappe.db.exists(
-				"Pricing Rule Detail", {"pricing_rule": docname.name, "docstatus": ("<", 2)}
-			):
+			if frappe.db.exists("Pricing Rule Detail", {"pricing_rule": docname.name, "docstatus": ("<", 2)}):
 				raise_for_transaction_exists(self.name)
 
 		if docnames and not transaction_exists:
@@ -246,7 +244,7 @@
 	args = get_args_for_pricing_rule(doc)
 	applicable_for = frappe.scrub(doc.get("applicable_for"))
 
-	for idx, d in enumerate(doc.get(child_doc)):
+	for _idx, d in enumerate(doc.get(child_doc)):
 		if d.name in rules:
 			if not args.get(applicable_for):
 				docname = get_pricing_rule_docname(d)
@@ -256,7 +254,14 @@
 				for applicable_for_value in args.get(applicable_for):
 					docname = get_pricing_rule_docname(d, applicable_for, applicable_for_value)
 					pr = prepare_pricing_rule(
-						args, doc, child_doc, discount_fields, d, docname, applicable_for, applicable_for_value
+						args,
+						doc,
+						child_doc,
+						discount_fields,
+						d,
+						docname,
+						applicable_for,
+						applicable_for_value,
 					)
 					new_doc.append(pr)
 
@@ -282,7 +287,7 @@
 
 
 def get_pricing_rule_docname(
-	row: dict, applicable_for: str = None, applicable_for_value: str = None
+	row: dict, applicable_for: str | None = None, applicable_for_value: str | None = None
 ) -> str:
 	fields = ["promotional_scheme_id", "name"]
 	filters = {"promotional_scheme_id": row.name}
diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py
index 4b5b456..e224b59 100644
--- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py
+++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py
@@ -227,7 +227,7 @@
 	# end: auto-generated types
 
 	def __init__(self, *args, **kwargs):
-		super(PurchaseInvoice, self).__init__(*args, **kwargs)
+		super().__init__(*args, **kwargs)
 		self.status_updater = [
 			{
 				"source_dt": "Purchase Invoice Item",
@@ -244,7 +244,7 @@
 		]
 
 	def onload(self):
-		super(PurchaseInvoice, self).onload()
+		super().onload()
 		supplier_tds = frappe.db.get_value("Supplier", self.supplier, "tax_withholding_category")
 		self.set_onload("supplier_tds", supplier_tds)
 
@@ -264,7 +264,7 @@
 
 		self.validate_posting_time()
 
-		super(PurchaseInvoice, self).validate()
+		super().validate()
 
 		if not self.is_return:
 			self.po_required()
@@ -324,7 +324,6 @@
 		if flt(self.paid_amount) + flt(self.write_off_amount) - flt(
 			self.get("rounded_total") or self.grand_total
 		) > 1 / (10 ** (self.precision("base_grand_total") + 1)):
-
 			frappe.throw(_("""Paid amount + Write Off Amount can not be greater than Grand Total"""))
 
 	def create_remarks(self):
@@ -353,7 +352,7 @@
 			self.tax_withholding_category = tds_category
 			self.set_onload("supplier_tds", tds_category)
 
-		super(PurchaseInvoice, self).set_missing_values(for_validate)
+		super().set_missing_values(for_validate)
 
 	def validate_credit_to_acc(self):
 		if not self.credit_to:
@@ -392,7 +391,7 @@
 				check_on_hold_or_closed_status("Purchase Order", d.purchase_order)
 
 	def validate_with_previous_doc(self):
-		super(PurchaseInvoice, self).validate_with_previous_doc(
+		super().validate_with_previous_doc(
 			{
 				"Purchase Order": {
 					"ref_dn_field": "purchase_order",
@@ -440,7 +439,7 @@
 						exc=WarehouseMissingError,
 					)
 
-		super(PurchaseInvoice, self).validate_warehouse()
+		super().validate_warehouse()
 
 	def validate_item_code(self):
 		for d in self.get("items"):
@@ -476,7 +475,6 @@
 					or not frappe.db.get_value("Purchase Order Item", item.po_detail, "delivered_by_supplier")
 				)
 			):
-
 				if self.update_stock and item.warehouse and (not item.from_warehouse):
 					if (
 						for_validate
@@ -504,12 +502,16 @@
 
 						if negative_expense_booked_in_pr:
 							if (
-								for_validate and item.expense_account and item.expense_account != stock_not_billed_account
+								for_validate
+								and item.expense_account
+								and item.expense_account != stock_not_billed_account
 							):
 								msg = _(
 									"Row {0}: Expense Head changed to {1} because expense is booked against this account in Purchase Receipt {2}"
 								).format(
-									item.idx, frappe.bold(stock_not_billed_account), frappe.bold(item.purchase_receipt)
+									item.idx,
+									frappe.bold(stock_not_billed_account),
+									frappe.bold(item.purchase_receipt),
 								)
 								frappe.msgprint(msg, title=_("Expense Head Changed"))
 
@@ -518,7 +520,9 @@
 						# If no purchase receipt present then book expense in 'Stock Received But Not Billed'
 						# This is done in cases when Purchase Invoice is created before Purchase Receipt
 						if (
-							for_validate and item.expense_account and item.expense_account != stock_not_billed_account
+							for_validate
+							and item.expense_account
+							and item.expense_account != stock_not_billed_account
 						):
 							msg = _(
 								"Row {0}: Expense Head changed to {1} as no Purchase Receipt is created against Item {2}."
@@ -569,7 +573,6 @@
 
 	def po_required(self):
 		if frappe.db.get_single_value("Buying Settings", "po_required") == "Yes":
-
 			if frappe.get_value(
 				"Supplier", self.supplier, "allow_purchase_invoice_creation_without_purchase_order"
 			):
@@ -579,7 +582,9 @@
 				if not d.purchase_order:
 					msg = _("Purchase Order Required for item {}").format(frappe.bold(d.item_code))
 					msg += "<br><br>"
-					msg += _("To submit the invoice without purchase order please set {0} as {1} in {2}").format(
+					msg += _(
+						"To submit the invoice without purchase order please set {0} as {1} in {2}"
+					).format(
 						frappe.bold(_("Purchase Order Required")),
 						frappe.bold("No"),
 						get_link_to_form("Buying Settings", "Buying Settings", "Buying Settings"),
@@ -589,7 +594,6 @@
 	def pr_required(self):
 		stock_items = self.get_stock_items()
 		if frappe.db.get_single_value("Buying Settings", "pr_required") == "Yes":
-
 			if frappe.get_value(
 				"Supplier", self.supplier, "allow_purchase_invoice_creation_without_purchase_receipt"
 			):
@@ -622,7 +626,8 @@
 					frappe.throw(_("Purchase Order {0} is not submitted").format(d.purchase_order))
 			if d.purchase_receipt:
 				submitted = frappe.db.sql(
-					"select name from `tabPurchase Receipt` where docstatus = 1 and name = %s", d.purchase_receipt
+					"select name from `tabPurchase Receipt` where docstatus = 1 and name = %s",
+					d.purchase_receipt,
 				)
 				if not submitted:
 					frappe.throw(_("Purchase Receipt {0} is not submitted").format(d.purchase_receipt))
@@ -670,7 +675,9 @@
 			for item in self.get("items"):
 				if item.purchase_receipt:
 					frappe.throw(
-						_("Stock cannot be updated against Purchase Receipt {0}").format(item.purchase_receipt)
+						_("Stock cannot be updated against Purchase Receipt {0}").format(
+							item.purchase_receipt
+						)
 					)
 
 	def validate_for_repost(self):
@@ -680,7 +687,7 @@
 		validate_docs_for_deferred_accounting([], [self.name])
 
 	def on_submit(self):
-		super(PurchaseInvoice, self).on_submit()
+		super().on_submit()
 
 		self.check_prev_docstatus()
 
@@ -717,9 +724,7 @@
 		if self.update_stock == 1:
 			self.repost_future_sle_and_gle()
 
-		if (
-			frappe.db.get_single_value("Buying Settings", "project_update_frequency") == "Each Transaction"
-		):
+		if frappe.db.get_single_value("Buying Settings", "project_update_frequency") == "Each Transaction":
 			self.update_project()
 
 		update_linked_doc(self.doctype, self.name, self.inter_company_invoice_reference)
@@ -911,7 +916,7 @@
 			if flt(item.base_net_amount):
 				account_currency = get_account_currency(item.expense_account)
 				if item.item_code:
-					asset_category = frappe.get_cached_value("Item", item.item_code, "asset_category")
+					frappe.get_cached_value("Item", item.item_code, "asset_category")
 
 				if (
 					self.update_stock
@@ -1016,7 +1021,9 @@
 					if flt(item.rm_supp_cost):
 						supplier_warehouse_account = warehouse_account[self.supplier_warehouse]["account"]
 						if not supplier_warehouse_account:
-							frappe.throw(_("Please set account in Warehouse {0}").format(self.supplier_warehouse))
+							frappe.throw(
+								_("Please set account in Warehouse {0}").format(self.supplier_warehouse)
+							)
 						gl_entries.append(
 							self.get_gl_dict(
 								{
@@ -1066,10 +1073,9 @@
 								and self.conversion_rate != exchange_rate_map[item.purchase_receipt]
 								and item.net_rate == net_rate_map[item.pr_detail]
 							):
-
-								discrepancy_caused_by_exchange_rate_difference = (item.qty * item.net_rate) * (
-									exchange_rate_map[item.purchase_receipt] - self.conversion_rate
-								)
+								discrepancy_caused_by_exchange_rate_difference = (
+									item.qty * item.net_rate
+								) * (exchange_rate_map[item.purchase_receipt] - self.conversion_rate)
 
 								gl_entries.append(
 									self.get_gl_dict(
@@ -1111,7 +1117,7 @@
 						(item.purchase_receipt, valuation_tax_accounts),
 					)
 
-					stock_rbnb = (
+					(
 						self.get_company_default("asset_received_but_not_billed")
 						if item.is_fixed_asset
 						else self.stock_received_but_not_billed
@@ -1150,7 +1156,9 @@
 		default_provisional_account = self.get_company_default("default_provisional_account")
 		provisional_accounts = set(
 			[
-				d.provisional_expense_account if d.provisional_expense_account else default_provisional_account
+				d.provisional_expense_account
+				if d.provisional_expense_account
+				else default_provisional_account
 				for d in pr_items
 			]
 		)
@@ -1207,9 +1215,7 @@
 				},
 			)
 
-	def make_stock_adjustment_entry(
-		self, gl_entries, item, voucher_wise_stock_value, account_currency
-	):
+	def make_stock_adjustment_entry(self, gl_entries, item, voucher_wise_stock_value, account_currency):
 		net_amt_precision = item.precision("base_net_amount")
 		val_rate_db_precision = 6 if cint(item.precision("valuation_rate")) <= 6 else 9
 
@@ -1225,7 +1231,6 @@
 			and warehouse_debit_amount
 			!= flt(voucher_wise_stock_value.get((item.name, item.warehouse)), net_amt_precision)
 		):
-
 			cost_of_goods_sold_account = self.get_company_default("default_expense_account")
 			stock_amount = flt(voucher_wise_stock_value.get((item.name, item.warehouse)), net_amt_precision)
 			stock_adjustment_amt = warehouse_debit_amount - stock_amount
@@ -1448,9 +1453,7 @@
 		# base_rounding_adjustment may become zero due to small precision
 		# eg: rounding_adjustment = 0.01 and exchange rate = 0.05 and precision of base_rounding_adjustment is 2
 		# 	then base_rounding_adjustment becomes zero and error is thrown in GL Entry
-		if (
-			not self.is_internal_transfer() and self.rounding_adjustment and self.base_rounding_adjustment
-		):
+		if not self.is_internal_transfer() and self.rounding_adjustment and self.base_rounding_adjustment:
 			round_off_account, round_off_cost_center = get_round_off_account_and_cost_center(
 				self.company, "Purchase Invoice", self.name, self.use_company_roundoff_cost_center
 			)
@@ -1473,7 +1476,7 @@
 	def on_cancel(self):
 		check_if_return_invoice_linked_with_payment_entry(self)
 
-		super(PurchaseInvoice, self).on_cancel()
+		super().on_cancel()
 
 		self.check_on_hold_or_closed_status()
 
@@ -1504,9 +1507,7 @@
 		if self.update_stock == 1:
 			self.repost_future_sle_and_gle()
 
-		if (
-			frappe.db.get_single_value("Buying Settings", "project_update_frequency") == "Each Transaction"
-		):
+		if frappe.db.get_single_value("Buying Settings", "project_update_frequency") == "Each Transaction":
 			self.update_project()
 		self.db_set("status", "Cancelled")
 
@@ -1538,9 +1539,7 @@
 
 		pj = frappe.qb.DocType("Project")
 		for proj, value in projects.items():
-			res = (
-				frappe.qb.from_(pj).select(pj.total_purchase_cost).where(pj.name == proj).for_update().run()
-			)
+			res = frappe.qb.from_(pj).select(pj.total_purchase_cost).where(pj.name == proj).for_update().run()
 			current_purchase_cost = res and res[0][0] or 0
 			frappe.db.set_value("Project", proj, "total_purchase_cost", current_purchase_cost + value)
 
@@ -1808,9 +1807,7 @@
 	)
 
 	net_rate_map = frappe._dict(
-		frappe.get_all(
-			child_doctype, filters={"name": ("in", items)}, fields=["name", "net_rate"], as_list=1
-		)
+		frappe.get_all(child_doctype, filters={"name": ("in", items)}, fields=["name", "net_rate"], as_list=1)
 	)
 
 	return exchange_rate_map, net_rate_map
diff --git a/erpnext/accounts/doctype/purchase_invoice/test_purchase_invoice.py b/erpnext/accounts/doctype/purchase_invoice/test_purchase_invoice.py
index 2ef0275..879aa21 100644
--- a/erpnext/accounts/doctype/purchase_invoice/test_purchase_invoice.py
+++ b/erpnext/accounts/doctype/purchase_invoice/test_purchase_invoice.py
@@ -2,8 +2,6 @@
 # License: GNU General Public License v3. See license.txt
 
 
-import unittest
-
 import frappe
 from frappe.tests.utils import FrappeTestCase, change_settings
 from frappe.utils import add_days, cint, flt, getdate, nowdate, today
@@ -267,7 +265,6 @@
 		self.assertEqual(pi.on_hold, 0)
 
 	def test_gl_entries_with_perpetual_inventory_against_pr(self):
-
 		pr = make_purchase_receipt(
 			company="_Test Company with perpetual inventory",
 			supplier_warehouse="Work In Progress - TCP1",
@@ -318,7 +315,7 @@
 			]
 		)
 
-		for i, gle in enumerate(gl_entries):
+		for _i, gle in enumerate(gl_entries):
 			self.assertEqual(expected_values[gle.account][0], gle.account)
 			self.assertEqual(expected_values[gle.account][1], gle.debit)
 			self.assertEqual(expected_values[gle.account][2], gle.credit)
@@ -342,9 +339,7 @@
 		pi.submit()
 
 		# Get exchnage gain and loss account
-		exchange_gain_loss_account = frappe.db.get_value(
-			"Company", pi.company, "exchange_gain_loss_account"
-		)
+		exchange_gain_loss_account = frappe.db.get_value("Company", pi.company, "exchange_gain_loss_account")
 
 		# fetching the latest GL Entry with exchange gain and loss account account
 		amount = frappe.db.get_value(
@@ -560,12 +555,10 @@
 			project = frappe.get_doc("Project", {"project_name": "_Test Project for Purchase"})
 
 		existing_purchase_cost = frappe.db.sql(
-			"""select sum(base_net_amount)
+			f"""select sum(base_net_amount)
 			from `tabPurchase Invoice Item`
-			where project = '{0}'
-			and docstatus=1""".format(
-				project.name
-			)
+			where project = '{project.name}'
+			and docstatus=1"""
 		)
 		existing_purchase_cost = existing_purchase_cost and existing_purchase_cost[0][0] or 0
 
@@ -740,7 +733,7 @@
 			"credit",
 			"credit_in_account_currency",
 		):
-			for i, gle in enumerate(gl_entries):
+			for _i, gle in enumerate(gl_entries):
 				self.assertEqual(expected_values[gle.account][field], gle[field])
 
 		# Check for valid currency
@@ -762,7 +755,6 @@
 		self.assertFalse(gle)
 
 	def test_purchase_invoice_update_stock_gl_entry_with_perpetual_inventory(self):
-
 		pi = make_purchase_invoice(
 			update_stock=1,
 			posting_date=frappe.utils.nowdate(),
@@ -791,13 +783,12 @@
 			(d[0], d) for d in [[pi.credit_to, 0.0, 250.0], [stock_in_hand_account, 250.0, 0.0]]
 		)
 
-		for i, gle in enumerate(gl_entries):
+		for _i, gle in enumerate(gl_entries):
 			self.assertEqual(expected_gl_entries[gle.account][0], gle.account)
 			self.assertEqual(expected_gl_entries[gle.account][1], gle.debit)
 			self.assertEqual(expected_gl_entries[gle.account][2], gle.credit)
 
 	def test_purchase_invoice_for_is_paid_and_update_stock_gl_entry_with_perpetual_inventory(self):
-
 		pi = make_purchase_invoice(
 			update_stock=1,
 			posting_date=frappe.utils.nowdate(),
@@ -832,7 +823,7 @@
 			]
 		)
 
-		for i, gle in enumerate(gl_entries):
+		for _i, gle in enumerate(gl_entries):
 			self.assertEqual(expected_gl_entries[gle.account][0], gle.account)
 			self.assertEqual(expected_gl_entries[gle.account][1], gle.debit)
 			self.assertEqual(expected_gl_entries[gle.account][2], gle.credit)
@@ -904,9 +895,9 @@
 		pi.load_from_db()
 
 		serial_no = get_serial_nos_from_bundle(pi.get("items")[0].serial_and_batch_bundle)[0]
-		rejected_serial_no = get_serial_nos_from_bundle(
-			pi.get("items")[0].rejected_serial_and_batch_bundle
-		)[0]
+		rejected_serial_no = get_serial_nos_from_bundle(pi.get("items")[0].rejected_serial_and_batch_bundle)[
+			0
+		]
 
 		self.assertEqual(
 			frappe.db.get_value("Serial No", serial_no, "warehouse"),
@@ -1036,12 +1027,8 @@
 
 	def test_duplicate_due_date_in_terms(self):
 		pi = make_purchase_invoice(do_not_save=1)
-		pi.append(
-			"payment_schedule", dict(due_date="2017-01-01", invoice_portion=50.00, payment_amount=50)
-		)
-		pi.append(
-			"payment_schedule", dict(due_date="2017-01-01", invoice_portion=50.00, payment_amount=50)
-		)
+		pi.append("payment_schedule", dict(due_date="2017-01-01", invoice_portion=50.00, payment_amount=50))
+		pi.append("payment_schedule", dict(due_date="2017-01-01", invoice_portion=50.00, payment_amount=50))
 
 		self.assertRaises(frappe.ValidationError, pi.insert)
 
@@ -1079,9 +1066,7 @@
 		cost_center = "_Test Cost Center for BS Account - _TC"
 		create_cost_center(cost_center_name="_Test Cost Center for BS Account", company="_Test Company")
 
-		pi = make_purchase_invoice_against_cost_center(
-			cost_center=cost_center, credit_to="Creditors - _TC"
-		)
+		pi = make_purchase_invoice_against_cost_center(cost_center=cost_center, credit_to="Creditors - _TC")
 		self.assertEqual(pi.cost_center, cost_center)
 
 		expected_values = {
@@ -1541,9 +1526,7 @@
 	def test_provisional_accounting_entry(self):
 		setup_provisional_accounting()
 
-		pr = make_purchase_receipt(
-			item_code="_Test Non Stock Item", posting_date=add_days(nowdate(), -2)
-		)
+		pr = make_purchase_receipt(item_code="_Test Non Stock Item", posting_date=add_days(nowdate(), -2))
 
 		pi = create_purchase_invoice_from_receipt(pr.name)
 		pi.set_posting_time = 1
@@ -1552,7 +1535,7 @@
 		pi.save()
 		pi.submit()
 
-		self.assertEquals(pr.items[0].provisional_expense_account, "Provision Account - _TC")
+		self.assertEqual(pr.items[0].provisional_expense_account, "Provision Account - _TC")
 
 		# Check GLE for Purchase Invoice
 		expected_gle = [
@@ -1579,9 +1562,7 @@
 			["_Test Account Cost for Goods Sold - _TC", 250, 0, pi.posting_date],
 		]
 
-		check_gl_entries(
-			self, pr.name, expected_gle_for_purchase_receipt_post_pi_cancel, pr.posting_date
-		)
+		check_gl_entries(self, pr.name, expected_gle_for_purchase_receipt_post_pi_cancel, pr.posting_date)
 
 		toggle_provisional_accounting_setting()
 
@@ -1630,9 +1611,7 @@
 			["_Test Account Cost for Goods Sold - _TC", 5000, 0, pi.posting_date],
 		]
 
-		check_gl_entries(
-			self, pr.name, expected_gle_for_purchase_receipt_post_pi_cancel, pr.posting_date
-		)
+		check_gl_entries(self, pr.name, expected_gle_for_purchase_receipt_post_pi_cancel, pr.posting_date)
 
 		toggle_provisional_accounting_setting()
 
@@ -1678,9 +1657,7 @@
 	def test_adjust_incoming_rate(self):
 		frappe.db.set_single_value("Buying Settings", "maintain_same_rate", 0)
 
-		frappe.db.set_single_value(
-			"Buying Settings", "set_landed_cost_based_on_purchase_invoice_rate", 1
-		)
+		frappe.db.set_single_value("Buying Settings", "set_landed_cost_based_on_purchase_invoice_rate", 1)
 
 		# Increase the cost of the item
 
@@ -1732,9 +1709,7 @@
 		)
 		self.assertEqual(stock_value_difference, 50)
 
-		frappe.db.set_single_value(
-			"Buying Settings", "set_landed_cost_based_on_purchase_invoice_rate", 0
-		)
+		frappe.db.set_single_value("Buying Settings", "set_landed_cost_based_on_purchase_invoice_rate", 0)
 
 		# Don't adjust incoming rate
 
@@ -1764,7 +1739,6 @@
 		frappe.db.set_single_value("Buying Settings", "maintain_same_rate", 1)
 
 	def test_item_less_defaults(self):
-
 		pi = frappe.new_doc("Purchase Invoice")
 		pi.supplier = "_Test Supplier"
 		pi.company = "_Test Company"
@@ -2301,7 +2275,7 @@
 	pi.cost_center = args.parent_cost_center
 
 	bundle_id = None
-	if not args.use_serial_batch_fields and ((args.get("batch_no") or args.get("serial_no"))):
+	if not args.use_serial_batch_fields and (args.get("batch_no") or args.get("serial_no")):
 		batches = {}
 		qty = args.qty if args.qty is not None else 5
 		item_code = args.item or args.item_code or "_Test Item"
@@ -2450,9 +2424,7 @@
 		parent_account=args.parent_account or "Current Liabilities - _TC",
 		company=company,
 	)
-	toggle_provisional_accounting_setting(
-		enable=1, company=company, provisional_account=provisional_account
-	)
+	toggle_provisional_accounting_setting(enable=1, company=company, provisional_account=provisional_account)
 
 
 def toggle_provisional_accounting_setting(**args):
diff --git a/erpnext/accounts/doctype/purchase_taxes_and_charges_template/purchase_taxes_and_charges_template.py b/erpnext/accounts/doctype/purchase_taxes_and_charges_template/purchase_taxes_and_charges_template.py
index 16c30c5..4c8504b 100644
--- a/erpnext/accounts/doctype/purchase_taxes_and_charges_template/purchase_taxes_and_charges_template.py
+++ b/erpnext/accounts/doctype/purchase_taxes_and_charges_template/purchase_taxes_and_charges_template.py
@@ -37,4 +37,4 @@
 	def autoname(self):
 		if self.company and self.title:
 			abbr = frappe.get_cached_value("Company", self.company, "abbr")
-			self.name = "{0} - {1}".format(self.title, abbr)
+			self.name = f"{self.title} - {abbr}"
diff --git a/erpnext/accounts/doctype/repost_accounting_ledger/repost_accounting_ledger.py b/erpnext/accounts/doctype/repost_accounting_ledger/repost_accounting_ledger.py
index b050bc8..6bc1922 100644
--- a/erpnext/accounts/doctype/repost_accounting_ledger/repost_accounting_ledger.py
+++ b/erpnext/accounts/doctype/repost_accounting_ledger/repost_accounting_ledger.py
@@ -27,7 +27,7 @@
 	# end: auto-generated types
 
 	def __init__(self, *args, **kwargs):
-		super(RepostAccountingLedger, self).__init__(*args, **kwargs)
+		super().__init__(*args, **kwargs)
 		self._allowed_types = get_allowed_types_from_settings()
 
 	def validate(self):
@@ -154,7 +154,9 @@
 				doc = frappe.get_doc(x.voucher_type, x.voucher_no)
 
 				if repost_doc.delete_cancelled_entries:
-					frappe.db.delete("GL Entry", filters={"voucher_type": doc.doctype, "voucher_no": doc.name})
+					frappe.db.delete(
+						"GL Entry", filters={"voucher_type": doc.doctype, "voucher_no": doc.name}
+					)
 					frappe.db.delete(
 						"Payment Ledger Entry", filters={"voucher_type": doc.doctype, "voucher_no": doc.name}
 					)
@@ -200,7 +202,9 @@
 	if docs_with_deferred_revenue or docs_with_deferred_expense:
 		frappe.throw(
 			_("Documents: {0} have deferred revenue/expense enabled for them. Cannot repost.").format(
-				frappe.bold(comma_and([x[0] for x in docs_with_deferred_expense + docs_with_deferred_revenue]))
+				frappe.bold(
+					comma_and([x[0] for x in docs_with_deferred_expense + docs_with_deferred_revenue])
+				)
 			)
 		)
 
diff --git a/erpnext/accounts/doctype/repost_accounting_ledger/test_repost_accounting_ledger.py b/erpnext/accounts/doctype/repost_accounting_ledger/test_repost_accounting_ledger.py
index d6f7096..f631ef4 100644
--- a/erpnext/accounts/doctype/repost_accounting_ledger/test_repost_accounting_ledger.py
+++ b/erpnext/accounts/doctype/repost_accounting_ledger/test_repost_accounting_ledger.py
@@ -9,7 +9,6 @@
 
 from erpnext.accounts.doctype.payment_entry.payment_entry import get_payment_entry
 from erpnext.accounts.doctype.payment_request.payment_request import make_payment_request
-from erpnext.accounts.doctype.repost_accounting_ledger.repost_accounting_ledger import start_repost
 from erpnext.accounts.doctype.sales_invoice.test_sales_invoice import create_sales_invoice
 from erpnext.accounts.test.accounts_mixin import AccountsTestMixin
 from erpnext.accounts.utils import get_fiscal_year
diff --git a/erpnext/accounts/doctype/repost_payment_ledger/repost_payment_ledger.py b/erpnext/accounts/doctype/repost_payment_ledger/repost_payment_ledger.py
index 2d10f7c..6b90300 100644
--- a/erpnext/accounts/doctype/repost_payment_ledger/repost_payment_ledger.py
+++ b/erpnext/accounts/doctype/repost_payment_ledger/repost_payment_ledger.py
@@ -40,7 +40,7 @@
 
 				frappe.db.set_value(repost_doc.doctype, repost_doc.name, "repost_error_log", "")
 				frappe.db.set_value(repost_doc.doctype, repost_doc.name, "repost_status", "Completed")
-			except Exception as e:
+			except Exception:
 				frappe.db.rollback()
 
 				traceback = frappe.get_traceback(with_context=True)
@@ -75,7 +75,7 @@
 	# end: auto-generated types
 
 	def __init__(self, *args, **kwargs):
-		super(RepostPaymentLedger, self).__init__(*args, **kwargs)
+		super().__init__(*args, **kwargs)
 		self.vouchers = []
 
 	def before_validate(self):
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
index 6be6a9b..3ccaba9 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
@@ -235,7 +235,7 @@
 	# end: auto-generated types
 
 	def __init__(self, *args, **kwargs):
-		super(SalesInvoice, self).__init__(*args, **kwargs)
+		super().__init__(*args, **kwargs)
 		self.status_updater = [
 			{
 				"source_dt": "Sales Invoice Item",
@@ -272,7 +272,7 @@
 			self.indicator_title = _("Paid")
 
 	def validate(self):
-		super(SalesInvoice, self).validate()
+		super().validate()
 		self.validate_auto_set_posting_time()
 
 		if not (self.is_pos or self.is_debit_note):
@@ -475,9 +475,7 @@
 
 		self.update_time_sheet(self.name)
 
-		if (
-			frappe.db.get_single_value("Selling Settings", "sales_update_frequency") == "Each Transaction"
-		):
+		if frappe.db.get_single_value("Selling Settings", "sales_update_frequency") == "Each Transaction":
 			update_company_current_month_sales(self.company)
 			self.update_project()
 		update_linked_doc(self.doctype, self.name, self.inter_company_invoice_reference)
@@ -493,9 +491,7 @@
 			and not self.dont_create_loyalty_points
 		):
 			self.make_loyalty_point_entry()
-		elif (
-			self.is_return and self.return_against and not self.is_consolidated and self.loyalty_program
-		):
+		elif self.is_return and self.return_against and not self.is_consolidated and self.loyalty_program:
 			against_si_doc = frappe.get_doc("Sales Invoice", self.return_against)
 			against_si_doc.delete_loyalty_point_entry()
 			against_si_doc.make_loyalty_point_entry()
@@ -524,11 +520,11 @@
 	def check_if_consolidated_invoice(self):
 		# since POS Invoice extends Sales Invoice, we explicitly check if doctype is Sales Invoice
 		if self.doctype == "Sales Invoice" and self.is_consolidated:
-			invoice_or_credit_note = (
-				"consolidated_credit_note" if self.is_return else "consolidated_invoice"
-			)
+			invoice_or_credit_note = "consolidated_credit_note" if self.is_return else "consolidated_invoice"
 			pos_closing_entry = frappe.get_all(
-				"POS Invoice Merge Log", filters={invoice_or_credit_note: self.name}, pluck="pos_closing_entry"
+				"POS Invoice Merge Log",
+				filters={invoice_or_credit_note: self.name},
+				pluck="pos_closing_entry",
 			)
 			if pos_closing_entry and pos_closing_entry[0]:
 				msg = _("To cancel a {} you need to cancel the POS Closing Entry {}.").format(
@@ -540,13 +536,13 @@
 	def before_cancel(self):
 		self.check_if_consolidated_invoice()
 
-		super(SalesInvoice, self).before_cancel()
+		super().before_cancel()
 		self.update_time_sheet(None)
 
 	def on_cancel(self):
 		check_if_return_invoice_linked_with_payment_entry(self)
 
-		super(SalesInvoice, self).on_cancel()
+		super().on_cancel()
 
 		self.check_sales_order_on_hold_or_close("sales_order")
 
@@ -578,16 +574,12 @@
 		if self.coupon_code:
 			update_coupon_code_count(self.coupon_code, "cancelled")
 
-		if (
-			frappe.db.get_single_value("Selling Settings", "sales_update_frequency") == "Each Transaction"
-		):
+		if frappe.db.get_single_value("Selling Settings", "sales_update_frequency") == "Each Transaction":
 			update_company_current_month_sales(self.company)
 			self.update_project()
 		if not self.is_return and not self.is_consolidated and self.loyalty_program:
 			self.delete_loyalty_point_entry()
-		elif (
-			self.is_return and self.return_against and not self.is_consolidated and self.loyalty_program
-		):
+		elif self.is_return and self.return_against and not self.is_consolidated and self.loyalty_program:
 			against_si_doc = frappe.get_doc("Sales Invoice", self.return_against)
 			against_si_doc.delete_loyalty_point_entry()
 			against_si_doc.make_loyalty_point_entry()
@@ -694,7 +686,7 @@
 		if not self.due_date and self.customer:
 			self.due_date = get_due_date(self.posting_date, "Customer", self.customer, self.company)
 
-		super(SalesInvoice, self).set_missing_values(for_validate)
+		super().set_missing_values(for_validate)
 
 		print_format = pos.get("print_format") if pos else None
 		if not print_format and not cint(frappe.db.get_value("Print Format", "POS Invoice", "disabled")):
@@ -885,7 +877,8 @@
 
 		if account.report_type != "Balance Sheet":
 			msg = (
-				_("Please ensure {} account is a Balance Sheet account.").format(frappe.bold("Debit To")) + " "
+				_("Please ensure {} account is a Balance Sheet account.").format(frappe.bold("Debit To"))
+				+ " "
 			)
 			msg += _(
 				"You can change the parent account to a Balance Sheet account or select a different account."
@@ -914,11 +907,16 @@
 		)
 
 	def validate_with_previous_doc(self):
-		super(SalesInvoice, self).validate_with_previous_doc(
+		super().validate_with_previous_doc(
 			{
 				"Sales Order": {
 					"ref_dn_field": "sales_order",
-					"compare_fields": [["customer", "="], ["company", "="], ["project", "="], ["currency", "="]],
+					"compare_fields": [
+						["customer", "="],
+						["company", "="],
+						["project", "="],
+						["currency", "="],
+					],
 				},
 				"Sales Order Item": {
 					"ref_dn_field": "so_detail",
@@ -928,7 +926,12 @@
 				},
 				"Delivery Note": {
 					"ref_dn_field": "delivery_note",
-					"compare_fields": [["customer", "="], ["company", "="], ["project", "="], ["currency", "="]],
+					"compare_fields": [
+						["customer", "="],
+						["company", "="],
+						["project", "="],
+						["currency", "="],
+					],
 				},
 				"Delivery Note Item": {
 					"ref_dn_field": "dn_detail",
@@ -983,13 +986,14 @@
 		}
 		for key, value in prev_doc_field_map.items():
 			if frappe.db.get_single_value("Selling Settings", value[0]) == "Yes":
-
 				if frappe.get_value("Customer", self.customer, value[0]):
 					continue
 
 				for d in self.get("items"):
 					if d.item_code and not d.get(key.lower().replace(" ", "_")) and not self.get(value[1]):
-						msgprint(_("{0} is mandatory for Item {1}").format(key, d.item_code), raise_exception=1)
+						msgprint(
+							_("{0} is mandatory for Item {1}").format(key, d.item_code), raise_exception=1
+						)
 
 	def validate_proj_cust(self):
 		"""check for does customer belong to same project as entered.."""
@@ -1011,7 +1015,7 @@
 				frappe.throw(_("Paid amount + Write Off Amount can not be greater than Grand Total"))
 
 	def validate_warehouse(self):
-		super(SalesInvoice, self).validate_warehouse()
+		super().validate_warehouse()
 
 		for d in self.get_item_list():
 			if (
@@ -1331,7 +1335,9 @@
 						add_asset_activity(asset.name, _("Asset returned"))
 
 						if asset.calculate_depreciation:
-							posting_date = frappe.db.get_value("Sales Invoice", self.return_against, "posting_date")
+							posting_date = frappe.db.get_value(
+								"Sales Invoice", self.return_against, "posting_date"
+							)
 							reverse_depreciation_entry_made_after_disposal(asset, posting_date)
 							notes = _(
 								"This schedule was created when Asset {0} was returned through Sales Invoice {1}."
@@ -1379,7 +1385,9 @@
 							else item.deferred_revenue_account
 						)
 
-						amount, base_amount = self.get_amount_and_base_amount(item, enable_discount_accounting)
+						amount, base_amount = self.get_amount_and_base_amount(
+							item, enable_discount_accounting
+						)
 
 						account_currency = get_account_currency(income_account)
 						gl_entries.append(
@@ -1403,7 +1411,7 @@
 
 		# expense account gl entries
 		if cint(self.update_stock) and erpnext.is_perpetual_inventory_enabled(self.company):
-			gl_entries += super(SalesInvoice, self).get_gl_entries()
+			gl_entries += super().get_gl_entries()
 
 	def get_asset(self, item):
 		if item.get("asset"):
@@ -1466,7 +1474,6 @@
 
 	def make_pos_gl_entries(self, gl_entries):
 		if cint(self.is_pos):
-
 			skip_change_gl_entries = not cint(
 				frappe.db.get_single_value("Accounts Settings", "post_change_gl_entries")
 			)
@@ -1624,7 +1631,9 @@
 						"credit_in_account_currency": flt(
 							self.rounding_adjustment, self.precision("rounding_adjustment")
 						),
-						"credit": flt(self.base_rounding_adjustment, self.precision("base_rounding_adjustment")),
+						"credit": flt(
+							self.base_rounding_adjustment, self.precision("base_rounding_adjustment")
+						),
 						"cost_center": round_off_cost_center
 						if self.use_company_roundoff_cost_center
 						else (self.cost_center or round_off_cost_center),
@@ -1646,7 +1655,11 @@
 				)
 				billed_amt = billed_amt and billed_amt[0][0] or 0
 				frappe.db.set_value(
-					"Delivery Note Item", d.dn_detail, "billed_amt", billed_amt, update_modified=update_modified
+					"Delivery Note Item",
+					d.dn_detail,
+					"billed_amt",
+					billed_amt,
+					update_modified=update_modified,
 				)
 				updated_delivery_notes.append(d.delivery_note)
 			elif d.so_detail:
@@ -1701,7 +1714,6 @@
 			and getdate(lp_details.from_date) <= getdate(self.posting_date)
 			and (not lp_details.to_date or getdate(lp_details.to_date) >= getdate(self.posting_date))
 		):
-
 			collection_factor = lp_details.collection_factor if lp_details.collection_factor else 1.0
 			points_earned = cint(eligible_amount / collection_factor)
 
@@ -1961,7 +1973,6 @@
 
 
 def update_linked_doc(doctype, name, inter_company_reference):
-
 	if doctype in ["Sales Invoice", "Purchase Invoice"]:
 		ref_field = "inter_company_invoice_reference"
 	else:
@@ -1972,7 +1983,6 @@
 
 
 def unlink_inter_company_doc(doctype, name, inter_company_reference):
-
 	if doctype in ["Sales Invoice", "Purchase Invoice"]:
 		ref_doc = "Purchase Invoice" if doctype == "Sales Invoice" else "Sales Invoice"
 		ref_field = "inter_company_invoice_reference"
@@ -2147,16 +2157,13 @@
 
 
 def validate_inter_company_transaction(doc, doctype):
-
 	details = get_inter_company_details(doc, doctype)
 	price_list = (
 		doc.selling_price_list
 		if doctype in ["Sales Invoice", "Sales Order", "Delivery Note"]
 		else doc.buying_price_list
 	)
-	valid_price_list = frappe.db.get_value(
-		"Price List", {"name": price_list, "buying": 1, "selling": 1}
-	)
+	valid_price_list = frappe.db.get_value("Price List", {"name": price_list, "buying": 1, "selling": 1})
 	if not valid_price_list and not doc.is_internal_transfer():
 		frappe.throw(_("Selected Price List should have buying and selling fields checked."))
 
@@ -2417,9 +2424,7 @@
 	for item in doc.get("items"):
 		item.warehouse = warehouse_map.get(sales_item_map.get(item.delivery_note_item))
 		if not item.warehouse and item.get("purchase_order") and item.get("purchase_order_item"):
-			item.warehouse = frappe.db.get_value(
-				"Purchase Order Item", item.purchase_order_item, "warehouse"
-			)
+			item.warehouse = frappe.db.get_value("Purchase Order Item", item.purchase_order_item, "warehouse")
 
 
 def get_delivery_note_details(internal_reference):
@@ -2665,9 +2670,7 @@
 	# If a Return invoice is linked with payment entry along with other invoices,
 	# the cancellation of the Return causes allocated amount to be greater than paid
 
-	if not frappe.db.get_single_value(
-		"Accounts Settings", "unlink_payment_on_cancellation_of_invoice"
-	):
+	if not frappe.db.get_single_value("Accounts Settings", "unlink_payment_on_cancellation_of_invoice"):
 		return
 
 	payment_entries = []
diff --git a/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py
index 7e3eec5..2c937cd 100644
--- a/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py
+++ b/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py
@@ -2,7 +2,6 @@
 # License: GNU General Public License v3. See license.txt
 
 import copy
-import unittest
 
 import frappe
 from frappe.model.dynamic_links import get_dynamic_link_map
@@ -925,7 +924,7 @@
 			]
 		)
 
-		for i, gle in enumerate(gl_entries):
+		for _i, gle in enumerate(gl_entries):
 			self.assertEqual(expected_values[gle.account][0], gle.account)
 			self.assertEqual(expected_values[gle.account][1], gle.debit)
 			self.assertEqual(expected_values[gle.account][2], gle.credit)
@@ -951,7 +950,7 @@
 			write_off_account="_Test Write Off - TCP1",
 		)
 
-		pr = make_purchase_receipt(
+		make_purchase_receipt(
 			company="_Test Company with perpetual inventory",
 			item_code="_Test FG Item",
 			warehouse="Stores - TCP1",
@@ -1332,7 +1331,7 @@
 		expected_values = dict(
 			(d[0], d) for d in [["Debtors - TCP1", 100.0, 0.0], ["Sales - TCP1", 0.0, 100.0]]
 		)
-		for i, gle in enumerate(gl_entries):
+		for _i, gle in enumerate(gl_entries):
 			self.assertEqual(expected_values[gle.account][0], gle.account)
 			self.assertEqual(expected_values[gle.account][1], gle.debit)
 			self.assertEqual(expected_values[gle.account][2], gle.credit)
@@ -1356,7 +1355,7 @@
 				[test_records[1]["items"][0]["income_account"], 0.0, 100.0],
 			]
 		)
-		for i, gle in enumerate(gl_entries):
+		for _i, gle in enumerate(gl_entries):
 			self.assertEqual(expected_values[gle.account][0], gle.account)
 			self.assertEqual(expected_values[gle.account][1], gle.debit)
 			self.assertEqual(expected_values[gle.account][2], gle.credit)
@@ -1431,7 +1430,6 @@
 		si.cancel()
 
 	def test_serialized(self):
-		from erpnext.stock.doctype.serial_no.serial_no import get_serial_nos
 		from erpnext.stock.doctype.stock_entry.test_stock_entry import make_serialized_item
 
 		se = make_serialized_item()
@@ -1771,7 +1769,7 @@
 			"credit",
 			"credit_in_account_currency",
 		):
-			for i, gle in enumerate(gl_entries):
+			for _i, gle in enumerate(gl_entries):
 				self.assertEqual(expected_values[gle.account][field], gle[field])
 
 		# cancel
@@ -2315,12 +2313,8 @@
 
 	def test_duplicate_due_date_in_terms(self):
 		si = create_sales_invoice(do_not_save=1)
-		si.append(
-			"payment_schedule", dict(due_date="2017-01-01", invoice_portion=50.00, payment_amount=50)
-		)
-		si.append(
-			"payment_schedule", dict(due_date="2017-01-01", invoice_portion=50.00, payment_amount=50)
-		)
+		si.append("payment_schedule", dict(due_date="2017-01-01", invoice_portion=50.00, payment_amount=50))
+		si.append("payment_schedule", dict(due_date="2017-01-01", invoice_portion=50.00, payment_amount=50))
 
 		self.assertRaises(frappe.ValidationError, si.insert)
 
@@ -2514,9 +2508,7 @@
 		item.no_of_months = 12
 		item.save()
 
-		si = create_sales_invoice(
-			item=item.name, posting_date="2019-01-16", rate=50000, do_not_submit=True
-		)
+		si = create_sales_invoice(item=item.name, posting_date="2019-01-16", rate=50000, do_not_submit=True)
 		si.items[0].enable_deferred_revenue = 1
 		si.items[0].service_start_date = "2019-01-16"
 		si.items[0].service_end_date = "2019-03-31"
@@ -2837,21 +2829,16 @@
 		item.save()
 
 		sales_invoice = create_sales_invoice(item="T Shirt", rate=700, do_not_submit=True)
-		self.assertEqual(
-			sales_invoice.items[0].item_tax_template, "_Test Account Excise Duty @ 12 - _TC"
-		)
+		self.assertEqual(sales_invoice.items[0].item_tax_template, "_Test Account Excise Duty @ 12 - _TC")
 
 		# Apply discount
 		sales_invoice.apply_discount_on = "Net Total"
 		sales_invoice.discount_amount = 300
 		sales_invoice.save()
-		self.assertEqual(
-			sales_invoice.items[0].item_tax_template, "_Test Account Excise Duty @ 10 - _TC"
-		)
+		self.assertEqual(sales_invoice.items[0].item_tax_template, "_Test Account Excise Duty @ 10 - _TC")
 
 	@change_settings("Selling Settings", {"enable_discount_accounting": 1})
 	def test_sales_invoice_with_discount_accounting_enabled(self):
-
 		discount_account = create_account(
 			account_name="Discount Account",
 			parent_account="Indirect Expenses - _TC",
@@ -2869,7 +2856,6 @@
 
 	@change_settings("Selling Settings", {"enable_discount_accounting": 1})
 	def test_additional_discount_for_sales_invoice_with_discount_accounting_enabled(self):
-
 		from erpnext.accounts.doctype.repost_accounting_ledger.test_repost_accounting_ledger import (
 			update_repost_settings,
 		)
@@ -2882,7 +2868,7 @@
 			company="_Test Company",
 		)
 
-		tds_payable_account = create_account(
+		create_account(
 			account_name="TDS Payable",
 			account_type="Tax",
 			parent_account="Duties and Taxes - _TC",
@@ -3204,9 +3190,7 @@
 		"""
 		from erpnext.stock.doctype.delivery_note.test_delivery_note import create_delivery_note
 
-		over_billing_allowance = frappe.db.get_single_value(
-			"Accounts Settings", "over_billing_allowance"
-		)
+		over_billing_allowance = frappe.db.get_single_value("Accounts Settings", "over_billing_allowance")
 		frappe.db.set_single_value("Accounts Settings", "over_billing_allowance", 0)
 
 		dn = create_delivery_note()
@@ -3398,7 +3382,7 @@
 		self.assertEqual(len(journals), 1)
 		je_type = frappe.get_cached_value("Journal Entry", journals[0], "voucher_type")
 		self.assertEqual(je_type, "Exchange Gain Or Loss")
-		ledger_outstanding = frappe.db.get_all(
+		frappe.db.get_all(
 			"Payment Ledger Entry",
 			filters={"against_voucher_no": si.name, "delinked": 0},
 			fields=["sum(amount), sum(amount_in_account_currency)"],
diff --git a/erpnext/accounts/doctype/sales_taxes_and_charges_template/sales_taxes_and_charges_template.py b/erpnext/accounts/doctype/sales_taxes_and_charges_template/sales_taxes_and_charges_template.py
index ce3eda9..e0b4258 100644
--- a/erpnext/accounts/doctype/sales_taxes_and_charges_template/sales_taxes_and_charges_template.py
+++ b/erpnext/accounts/doctype/sales_taxes_and_charges_template/sales_taxes_and_charges_template.py
@@ -42,7 +42,7 @@
 	def autoname(self):
 		if self.company and self.title:
 			abbr = frappe.get_cached_value("Company", self.company, "abbr")
-			self.name = "{0} - {1}".format(self.title, abbr)
+			self.name = f"{self.title} - {abbr}"
 
 	def set_missing_values(self):
 		for data in self.taxes:
@@ -57,10 +57,8 @@
 
 	if doc.is_default == 1:
 		frappe.db.sql(
-			"""update `tab{0}` set is_default = 0
-			where is_default = 1 and name != %s and company = %s""".format(
-				doc.doctype
-			),
+			f"""update `tab{doc.doctype}` set is_default = 0
+			where is_default = 1 and name != %s and company = %s""",
 			(doc.name, doc.company),
 		)
 
diff --git a/erpnext/accounts/doctype/share_transfer/share_transfer.py b/erpnext/accounts/doctype/share_transfer/share_transfer.py
index 6a3ff7c..bc86594 100644
--- a/erpnext/accounts/doctype/share_transfer/share_transfer.py
+++ b/erpnext/accounts/doctype/share_transfer/share_transfer.py
@@ -205,7 +205,9 @@
 		doc = self.get_shareholder_doc(shareholder)
 		for entry in doc.share_balance:
 			if (
-				entry.share_type != self.share_type or entry.from_no > self.to_no or entry.to_no < self.from_no
+				entry.share_type != self.share_type
+				or entry.from_no > self.to_no
+				or entry.to_no < self.from_no
 			):
 				continue  # since query lies outside bounds
 			elif entry.from_no <= self.from_no and entry.to_no >= self.to_no:  # both inside
@@ -257,7 +259,9 @@
 		for entry in current_entries:
 			# use spaceage logic here
 			if (
-				entry.share_type != self.share_type or entry.from_no > self.to_no or entry.to_no < self.from_no
+				entry.share_type != self.share_type
+				or entry.from_no > self.to_no
+				or entry.to_no < self.from_no
 			):
 				new_entries.append(entry)
 				continue  # since query lies outside bounds
@@ -267,7 +271,9 @@
 					if entry.to_no == self.to_no:
 						pass  # nothing to append
 					else:
-						new_entries.append(self.return_share_balance_entry(self.to_no + 1, entry.to_no, entry.rate))
+						new_entries.append(
+							self.return_share_balance_entry(self.to_no + 1, entry.to_no, entry.rate)
+						)
 				else:
 					if entry.to_no == self.to_no:
 						new_entries.append(
@@ -277,7 +283,9 @@
 						new_entries.append(
 							self.return_share_balance_entry(entry.from_no, self.from_no - 1, entry.rate)
 						)
-						new_entries.append(self.return_share_balance_entry(self.to_no + 1, entry.to_no, entry.rate))
+						new_entries.append(
+							self.return_share_balance_entry(self.to_no + 1, entry.to_no, entry.rate)
+						)
 			elif entry.from_no >= self.from_no and entry.to_no <= self.to_no:
 				# split and check
 				pass  # nothing to append
@@ -309,7 +317,7 @@
 	def get_shareholder_doc(self, shareholder):
 		# Get Shareholder doc based on the Shareholder name
 		if shareholder:
-			query_filters = {"name": shareholder}
+			pass
 
 		name = frappe.db.get_value("Shareholder", {"name": shareholder}, "name")
 
diff --git a/erpnext/accounts/doctype/shipping_rule/shipping_rule.py b/erpnext/accounts/doctype/shipping_rule/shipping_rule.py
index 6877a74..d9b7b0a 100644
--- a/erpnext/accounts/doctype/shipping_rule/shipping_rule.py
+++ b/erpnext/accounts/doctype/shipping_rule/shipping_rule.py
@@ -71,7 +71,8 @@
 				zero_to_values.append(d)
 			elif d.from_value >= d.to_value:
 				throw(
-					_("From value must be less than to value in row {0}").format(d.idx), FromGreaterThanToError
+					_("From value must be less than to value in row {0}").format(d.idx),
+					FromGreaterThanToError,
 				)
 
 		# check if more than two or more rows has To Value = 0
@@ -114,9 +115,7 @@
 
 	def get_shipping_amount_from_rules(self, value):
 		for condition in self.get("conditions"):
-			if not condition.to_value or (
-				flt(condition.from_value) <= flt(value) <= flt(condition.to_value)
-			):
+			if not condition.to_value or (flt(condition.from_value) <= flt(value) <= flt(condition.to_value)):
 				return condition.shipping_amount
 
 		return 0.0
@@ -131,7 +130,9 @@
 				)
 			if shipping_country not in [d.country for d in self.countries]:
 				frappe.throw(
-					_("Shipping rule not applicable for country {0} in Shipping Address").format(shipping_country)
+					_("Shipping rule not applicable for country {0} in Shipping Address").format(
+						shipping_country
+					)
 				)
 
 	def add_shipping_rule_to_tax_table(self, doc, shipping_amount):
@@ -199,11 +200,9 @@
 			messages = []
 			for d1, d2 in overlaps:
 				messages.append(
-					"%s-%s = %s "
-					% (d1.from_value, d1.to_value, fmt_money(d1.shipping_amount, currency=company_currency))
+					f"{d1.from_value}-{d1.to_value} = {fmt_money(d1.shipping_amount, currency=company_currency)} "
 					+ _("and")
-					+ " %s-%s = %s"
-					% (d2.from_value, d2.to_value, fmt_money(d2.shipping_amount, currency=company_currency))
+					+ f" {d2.from_value}-{d2.to_value} = {fmt_money(d2.shipping_amount, currency=company_currency)}"
 				)
 
 			msgprint("\n".join(messages), raise_exception=OverlappingConditionError)
diff --git a/erpnext/accounts/doctype/shipping_rule/test_shipping_rule.py b/erpnext/accounts/doctype/shipping_rule/test_shipping_rule.py
index a24e834..a5a0ada 100644
--- a/erpnext/accounts/doctype/shipping_rule/test_shipping_rule.py
+++ b/erpnext/accounts/doctype/shipping_rule/test_shipping_rule.py
@@ -45,7 +45,6 @@
 
 
 def create_shipping_rule(shipping_rule_type, shipping_rule_name):
-
 	if frappe.db.exists("Shipping Rule", shipping_rule_name):
 		return frappe.get_doc("Shipping Rule", shipping_rule_name)
 
diff --git a/erpnext/accounts/doctype/subscription/subscription.py b/erpnext/accounts/doctype/subscription/subscription.py
index 1a79103..a241e82 100644
--- a/erpnext/accounts/doctype/subscription/subscription.py
+++ b/erpnext/accounts/doctype/subscription/subscription.py
@@ -3,7 +3,7 @@
 
 
 from datetime import datetime
-from typing import Dict, List, Optional, Union
+from typing import Optional, Union
 
 import frappe
 from frappe import _
@@ -105,9 +105,7 @@
 
 		return _current_invoice_start, _current_invoice_end
 
-	def get_current_invoice_start(
-		self, date: Optional["DateTimeLikeObject"] = None
-	) -> Union[datetime.date, str]:
+	def get_current_invoice_start(self, date: Optional["DateTimeLikeObject"] = None) -> datetime.date | str:
 		"""
 		This returns the date of the beginning of the current billing period.
 		If the `date` parameter is not given , it will be automatically set as today's
@@ -130,9 +128,7 @@
 
 		return _current_invoice_start
 
-	def get_current_invoice_end(
-		self, date: Optional["DateTimeLikeObject"] = None
-	) -> Union[datetime.date, str]:
+	def get_current_invoice_end(self, date: Optional["DateTimeLikeObject"] = None) -> datetime.date | str:
 		"""
 		This returns the date of the end of the current billing period.
 		If the subscription is in trial period, it will be set as the end of the
@@ -174,7 +170,7 @@
 		return _current_invoice_end
 
 	@staticmethod
-	def validate_plans_billing_cycle(billing_cycle_data: List[Dict[str, str]]) -> None:
+	def validate_plans_billing_cycle(billing_cycle_data: list[dict[str, str]]) -> None:
 		"""
 		Makes sure that all `Subscription Plan` in the `Subscription` have the
 		same billing interval
@@ -182,7 +178,7 @@
 		if billing_cycle_data and len(billing_cycle_data) != 1:
 			frappe.throw(_("You can only have Plans with the same billing cycle in a Subscription"))
 
-	def get_billing_cycle_and_interval(self) -> List[Dict[str, str]]:
+	def get_billing_cycle_and_interval(self) -> list[dict[str, str]]:
 		"""
 		Returns a dict representing the billing interval and cycle for this `Subscription`.
 		You shouldn't need to call this directly. Use `get_billing_cycle` instead.
@@ -199,7 +195,7 @@
 
 		return billing_info
 
-	def get_billing_cycle_data(self) -> Dict[str, int]:
+	def get_billing_cycle_data(self) -> dict[str, int]:
 		"""
 		Returns dict contain the billing cycle data.
 		You shouldn't need to call this directly. Use `get_billing_cycle` instead.
@@ -232,9 +228,7 @@
 		"""
 		if self.is_trialling():
 			self.status = "Trialing"
-		elif (
-			self.status == "Active" and self.end_date and getdate(posting_date) > getdate(self.end_date)
-		):
+		elif self.status == "Active" and self.end_date and getdate(posting_date) > getdate(self.end_date):
 			self.status = "Completed"
 		elif self.is_past_grace_period():
 			self.status = self.get_status_for_past_grace_period()
@@ -252,7 +246,7 @@
 
 	@staticmethod
 	def period_has_passed(
-		end_date: Union[str, datetime.date], posting_date: Optional["DateTimeLikeObject"] = None
+		end_date: str | datetime.date, posting_date: Optional["DateTimeLikeObject"] = None
 	) -> bool:
 		"""
 		Returns true if the given `end_date` has passed
@@ -282,9 +276,7 @@
 		grace_period = cint(frappe.get_value("Subscription Settings", None, "grace_period"))
 		return getdate(posting_date) >= getdate(add_days(self.current_invoice.due_date, grace_period))
 
-	def current_invoice_is_past_due(
-		self, posting_date: Optional["DateTimeLikeObject"] = None
-	) -> bool:
+	def current_invoice_is_past_due(self, posting_date: Optional["DateTimeLikeObject"] = None) -> bool:
 		"""
 		Returns `True` if the current generated invoice is overdue
 		"""
@@ -334,14 +326,15 @@
 			unsupported_plans = []
 			for x in subscription_plan_currencies:
 				if x.currency != party_billing_currency:
-					unsupported_plans.append("{0}".format(get_link_to_form("Subscription Plan", x.name)))
+					unsupported_plans.append("{}".format(get_link_to_form("Subscription Plan", x.name)))
 
 			if unsupported_plans:
 				unsupported_plans = [
 					_(
 						"Below Subscription Plans are of different currency to the party default billing currency/Company currency: {0}"
-					).format(frappe.bold(party_billing_currency))
-				] + unsupported_plans
+					).format(frappe.bold(party_billing_currency)),
+					*unsupported_plans,
+				]
 
 				frappe.throw(
 					unsupported_plans, frappe.ValidationError, "Unsupported Subscription Plans", as_list=True
@@ -384,9 +377,9 @@
 
 	def generate_invoice(
 		self,
-		from_date: Optional[Union[str, datetime.date]] = None,
-		to_date: Optional[Union[str, datetime.date]] = None,
-		posting_date: Optional[Union[str, datetime.date]] = None,
+		from_date: str | datetime.date | None = None,
+		to_date: str | datetime.date | None = None,
+		posting_date: str | datetime.date | None = None,
 	) -> Document:
 		"""
 		Creates a `Invoice` for the `Subscription`, updates `self.invoices` and
@@ -397,9 +390,9 @@
 
 	def create_invoice(
 		self,
-		from_date: Optional[Union[str, datetime.date]] = None,
-		to_date: Optional[Union[str, datetime.date]] = None,
-		posting_date: Optional[Union[str, datetime.date]] = None,
+		from_date: str | datetime.date | None = None,
+		to_date: str | datetime.date | None = None,
+		posting_date: str | datetime.date | None = None,
 	) -> Document:
 		"""
 		Creates a `Invoice`, submits it and returns it
@@ -503,9 +496,7 @@
 
 		return invoice
 
-	def get_items_from_plans(
-		self, plans: List[Dict[str, str]], prorate: Optional[bool] = None
-	) -> List[Dict]:
+	def get_items_from_plans(self, plans: list[dict[str, str]], prorate: bool | None = None) -> list[dict]:
 		"""
 		Returns the `Item`s linked to `Subscription Plan`
 		"""
@@ -628,8 +619,8 @@
 
 	def is_current_invoice_generated(
 		self,
-		_current_start_date: Union[datetime.date, str] = None,
-		_current_end_date: Union[datetime.date, str] = None,
+		_current_start_date: datetime.date | str | None = None,
+		_current_end_date: datetime.date | str | None = None,
 	) -> bool:
 		if not (_current_start_date and _current_end_date):
 			_current_start_date, _current_end_date = self._get_subscription_period(
@@ -644,13 +635,13 @@
 		return False
 
 	@property
-	def current_invoice(self) -> Union[Document, None]:
+	def current_invoice(self) -> Document | None:
 		"""
 		Adds property for accessing the current_invoice
 		"""
 		return self.get_current_invoice()
 
-	def get_current_invoice(self) -> Union[Document, None]:
+	def get_current_invoice(self) -> Document | None:
 		"""
 		Returns the most recent generated invoice.
 		"""
@@ -675,7 +666,7 @@
 		self.cancelation_date = nowdate()
 
 	@property
-	def invoices(self) -> List[Dict]:
+	def invoices(self) -> list[dict]:
 		return frappe.get_all(
 			self.invoice_document_type,
 			filters={"subscription": self.name},
@@ -745,10 +736,10 @@
 
 
 def get_prorata_factor(
-	period_end: Union[datetime.date, str],
-	period_start: Union[datetime.date, str],
-	is_prepaid: Optional[int] = None,
-) -> Union[int, float]:
+	period_end: datetime.date | str,
+	period_start: datetime.date | str,
+	is_prepaid: int | None = None,
+) -> int | float:
 	if is_prepaid:
 		return 1
 
@@ -757,9 +748,7 @@
 	return diff / plan_days
 
 
-def process_all(
-	subscription: str | None = None, posting_date: Optional["DateTimeLikeObject"] = None
-) -> None:
+def process_all(subscription: str | None = None, posting_date: Optional["DateTimeLikeObject"] = None) -> None:
 	"""
 	Task to updates the status of all `Subscription` apart from those that are cancelled
 	"""
diff --git a/erpnext/accounts/doctype/subscription/test_subscription.py b/erpnext/accounts/doctype/subscription/test_subscription.py
index 89be543..13c6a52 100644
--- a/erpnext/accounts/doctype/subscription/test_subscription.py
+++ b/erpnext/accounts/doctype/subscription/test_subscription.py
@@ -1,7 +1,6 @@
 # Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors
 # See license.txt
 
-import unittest
 
 import frappe
 from frappe.tests.utils import FrappeTestCase
@@ -201,9 +200,7 @@
 
 		invoice = subscription.get_current_invoice()
 		diff = flt(date_diff(nowdate(), subscription.current_invoice_start) + 1)
-		plan_days = flt(
-			date_diff(subscription.current_invoice_end, subscription.current_invoice_start) + 1
-		)
+		plan_days = flt(date_diff(subscription.current_invoice_end, subscription.current_invoice_start) + 1)
 		prorate_factor = flt(diff / plan_days)
 
 		self.assertEqual(
@@ -249,9 +246,7 @@
 
 		invoice = subscription.get_current_invoice()
 		diff = flt(date_diff(nowdate(), subscription.current_invoice_start) + 1)
-		plan_days = flt(
-			date_diff(subscription.current_invoice_end, subscription.current_invoice_start) + 1
-		)
+		plan_days = flt(date_diff(subscription.current_invoice_end, subscription.current_invoice_start) + 1)
 		prorate_factor = flt(diff / plan_days)
 
 		self.assertEqual(flt(invoice.grand_total, 2), flt(prorate_factor * 900, 2))
@@ -385,9 +380,7 @@
 		settings.prorate = 1
 		settings.save()
 
-		subscription = create_subscription(
-			generate_invoice_at="Beginning of the current subscription period"
-		)
+		subscription = create_subscription(generate_invoice_at="Beginning of the current subscription period")
 		subscription.process()
 		subscription.cancel_subscription()
 
@@ -546,9 +539,7 @@
 		billing_interval_count=3,
 		currency="INR",
 	)
-	create_plan(
-		plan_name="_Test Plan Multicurrency", cost=50, billing_interval="Month", currency="USD"
-	)
+	create_plan(plan_name="_Test Plan Multicurrency", cost=50, billing_interval="Month", currency="USD")
 
 
 def create_plan(**kwargs):
@@ -575,9 +566,7 @@
 		customer = frappe.new_doc("Customer")
 		customer.customer_name = "_Test Subscription Customer"
 		customer.billing_currency = "USD"
-		customer.append(
-			"accounts", {"company": "_Test Company", "account": "_Test Receivable USD - _TC"}
-		)
+		customer.append("accounts", {"company": "_Test Company", "account": "_Test Receivable USD - _TC"})
 		customer.insert()
 
 
@@ -600,9 +589,7 @@
 	subscription.additional_discount_percentage = kwargs.get("additional_discount_percentage")
 	subscription.additional_discount_amount = kwargs.get("additional_discount_amount")
 	subscription.follow_calendar_months = kwargs.get("follow_calendar_months")
-	subscription.generate_new_invoices_past_due_date = kwargs.get(
-		"generate_new_invoices_past_due_date"
-	)
+	subscription.generate_new_invoices_past_due_date = kwargs.get("generate_new_invoices_past_due_date")
 	subscription.submit_invoice = kwargs.get("submit_invoice")
 	subscription.days_until_due = kwargs.get("days_until_due")
 	subscription.number_of_days = kwargs.get("number_of_days")
diff --git a/erpnext/accounts/doctype/tax_rule/tax_rule.py b/erpnext/accounts/doctype/tax_rule/tax_rule.py
index 9ff530b..ed623c6 100644
--- a/erpnext/accounts/doctype/tax_rule/tax_rule.py
+++ b/erpnext/accounts/doctype/tax_rule/tax_rule.py
@@ -112,27 +112,23 @@
 		for d in filters:
 			if conds:
 				conds += " and "
-			conds += """ifnull({0}, '') = {1}""".format(d, frappe.db.escape(cstr(filters[d])))
+			conds += f"""ifnull({d}, '') = {frappe.db.escape(cstr(filters[d]))}"""
 
 		if self.from_date and self.to_date:
-			conds += """ and ((from_date > '{from_date}' and from_date < '{to_date}') or
-					(to_date > '{from_date}' and to_date < '{to_date}') or
-					('{from_date}' > from_date and '{from_date}' < to_date) or
-					('{from_date}' = from_date and '{to_date}' = to_date))""".format(
-				from_date=self.from_date, to_date=self.to_date
-			)
+			conds += f""" and ((from_date > '{self.from_date}' and from_date < '{self.to_date}') or
+					(to_date > '{self.from_date}' and to_date < '{self.to_date}') or
+					('{self.from_date}' > from_date and '{self.from_date}' < to_date) or
+					('{self.from_date}' = from_date and '{self.to_date}' = to_date))"""
 
 		elif self.from_date and not self.to_date:
-			conds += """ and to_date > '{from_date}'""".format(from_date=self.from_date)
+			conds += f""" and to_date > '{self.from_date}'"""
 
 		elif self.to_date and not self.from_date:
-			conds += """ and from_date < '{to_date}'""".format(to_date=self.to_date)
+			conds += f""" and from_date < '{self.to_date}'"""
 
 		tax_rule = frappe.db.sql(
-			"select name, priority \
-			from `tabTax Rule` where {0} and name != '{1}'".format(
-				conds, self.name
-			),
+			f"select name, priority \
+			from `tabTax Rule` where {conds} and name != '{self.name}'",
 			as_dict=1,
 		)
 
@@ -189,27 +185,25 @@
 		conditions.append("(from_date is null) and (to_date is null)")
 
 	conditions.append(
-		"ifnull(tax_category, '') = {0}".format(frappe.db.escape(cstr(args.get("tax_category"))))
+		"ifnull(tax_category, '') = {}".format(frappe.db.escape(cstr(args.get("tax_category"))))
 	)
 	if "tax_category" in args.keys():
 		del args["tax_category"]
 
 	for key, value in args.items():
 		if key == "use_for_shopping_cart":
-			conditions.append("use_for_shopping_cart = {0}".format(1 if value else 0))
+			conditions.append(f"use_for_shopping_cart = {1 if value else 0}")
 		elif key == "customer_group":
 			if not value:
 				value = get_root_of("Customer Group")
 			customer_group_condition = get_customer_group_condition(value)
-			conditions.append("ifnull({0}, '') in ('', {1})".format(key, customer_group_condition))
+			conditions.append(f"ifnull({key}, '') in ('', {customer_group_condition})")
 		else:
-			conditions.append("ifnull({0}, '') in ('', {1})".format(key, frappe.db.escape(cstr(value))))
+			conditions.append(f"ifnull({key}, '') in ('', {frappe.db.escape(cstr(value))})")
 
 	tax_rule = frappe.db.sql(
 		"""select * from `tabTax Rule`
-		where {0}""".format(
-			" and ".join(conditions)
-		),
+		where {}""".format(" and ".join(conditions)),
 		as_dict=True,
 	)
 
@@ -234,7 +228,7 @@
 	)[0]
 
 	tax_template = rule.sales_tax_template or rule.purchase_tax_template
-	doctype = "{0} Taxes and Charges Template".format(rule.tax_type)
+	doctype = f"{rule.tax_type} Taxes and Charges Template"
 
 	if frappe.db.get_value(doctype, tax_template, "disabled") == 1:
 		return None
@@ -244,9 +238,7 @@
 
 def get_customer_group_condition(customer_group):
 	condition = ""
-	customer_groups = [
-		"%s" % (frappe.db.escape(d.name)) for d in get_parent_customer_groups(customer_group)
-	]
+	customer_groups = ["%s" % (frappe.db.escape(d.name)) for d in get_parent_customer_groups(customer_group)]
 	if customer_groups:
 		condition = ",".join(["%s"] * len(customer_groups)) % (tuple(customer_groups))
 	return condition
diff --git a/erpnext/accounts/doctype/tax_withholding_category/tax_withholding_category.py b/erpnext/accounts/doctype/tax_withholding_category/tax_withholding_category.py
index 405f587..b043f9a 100644
--- a/erpnext/accounts/doctype/tax_withholding_category/tax_withholding_category.py
+++ b/erpnext/accounts/doctype/tax_withholding_category/tax_withholding_category.py
@@ -57,13 +57,11 @@
 
 	def validate_thresholds(self):
 		for d in self.get("rates"):
-			if (
-				d.cumulative_threshold and d.single_threshold and d.cumulative_threshold < d.single_threshold
-			):
+			if d.cumulative_threshold and d.single_threshold and d.cumulative_threshold < d.single_threshold:
 				frappe.throw(
-					_("Row #{0}: Cumulative threshold cannot be less than Single Transaction threshold").format(
-						d.idx
-					)
+					_(
+						"Row #{0}: Cumulative threshold cannot be less than Single Transaction threshold"
+					).format(d.idx)
 				)
 
 
@@ -319,9 +317,7 @@
 def get_invoice_vouchers(parties, tax_details, company, party_type="Supplier"):
 	doctype = "Purchase Invoice" if party_type == "Supplier" else "Sales Invoice"
 	field = (
-		"base_tax_withholding_net_total as base_net_total"
-		if party_type == "Supplier"
-		else "base_net_total"
+		"base_tax_withholding_net_total as base_net_total" if party_type == "Supplier" else "base_net_total"
 	)
 	voucher_wise_amount = {}
 	vouchers = []
@@ -375,9 +371,7 @@
 	return vouchers, voucher_wise_amount
 
 
-def get_advance_vouchers(
-	parties, company=None, from_date=None, to_date=None, party_type="Supplier"
-):
+def get_advance_vouchers(parties, company=None, from_date=None, to_date=None, party_type="Supplier"):
 	"""
 	Use Payment Ledger to fetch unallocated Advance Payments
 	"""
@@ -398,9 +392,7 @@
 	if from_date and to_date:
 		conditions.append(ple.posting_date[from_date:to_date])
 
-	advances = (
-		qb.from_(ple).select(ple.voucher_no).distinct().where(Criterion.all(conditions)).run(as_list=1)
-	)
+	advances = qb.from_(ple).select(ple.voucher_no).distinct().where(Criterion.all(conditions)).run(as_list=1)
 	if advances:
 		advances = [x[0] for x in advances]
 
@@ -566,9 +558,7 @@
 	conditions.append(ple.voucher_no == ple.against_voucher_no)
 	conditions.append(ple.company == inv.company)
 
-	advances = (
-		qb.from_(ple).select(Abs(Sum(ple.amount))).where(Criterion.all(conditions)).run(as_list=1)
-	)
+	qb.from_(ple).select(Abs(Sum(ple.amount))).where(Criterion.all(conditions)).run(as_list=1)
 
 	advance_amt = (
 		qb.from_(ple).select(Abs(Sum(ple.amount))).where(Criterion.all(conditions)).run()[0][0] or 0.0
@@ -627,9 +617,7 @@
 	return limit_consumed
 
 
-def get_lower_deduction_amount(
-	current_amount, limit_consumed, certificate_limit, rate, tax_details
-):
+def get_lower_deduction_amount(current_amount, limit_consumed, certificate_limit, rate, tax_details):
 	if certificate_limit - flt(limit_consumed) - flt(current_amount) >= 0:
 		return current_amount * rate / 100
 	else:
@@ -641,9 +629,7 @@
 
 def is_valid_certificate(ldc, posting_date, limit_consumed):
 	available_amount = flt(ldc.certificate_limit) - flt(limit_consumed)
-	if (
-		getdate(ldc.valid_from) <= getdate(posting_date) <= getdate(ldc.valid_upto)
-	) and available_amount > 0:
+	if (getdate(ldc.valid_from) <= getdate(posting_date) <= getdate(ldc.valid_upto)) and available_amount > 0:
 		return True
 
 	return False
diff --git a/erpnext/accounts/doctype/tax_withholding_category/test_tax_withholding_category.py b/erpnext/accounts/doctype/tax_withholding_category/test_tax_withholding_category.py
index 0fbaf23..087e0d0 100644
--- a/erpnext/accounts/doctype/tax_withholding_category/test_tax_withholding_category.py
+++ b/erpnext/accounts/doctype/tax_withholding_category/test_tax_withholding_category.py
@@ -95,9 +95,7 @@
 
 	def test_tax_withholding_category_checks(self):
 		invoices = []
-		frappe.db.set_value(
-			"Supplier", "Test TDS Supplier3", "tax_withholding_category", "New TDS Category"
-		)
+		frappe.db.set_value("Supplier", "Test TDS Supplier3", "tax_withholding_category", "New TDS Category")
 
 		# First Invoice with no tds check
 		pi = create_purchase_invoice(supplier="Test TDS Supplier3", rate=20000, do_not_save=True)
@@ -448,7 +446,7 @@
 		pe3.save()
 		pe3.submit()
 
-		self.assertEquals(pe3.get("taxes")[0].tax_amount, 1200)
+		self.assertEqual(pe3.get("taxes")[0].tax_amount, 1200)
 		pe1.cancel()
 		pe2.cancel()
 		pe3.cancel()
@@ -845,9 +843,7 @@
 		).insert()
 
 
-def create_lower_deduction_certificate(
-	supplier, tax_withholding_category, tax_rate, certificate_no, limit
-):
+def create_lower_deduction_certificate(supplier, tax_withholding_category, tax_rate, certificate_no, limit):
 	fiscal_year = get_fiscal_year(today(), company="_Test Company")
 	if not frappe.db.exists("Lower Deduction Certificate", certificate_no):
 		frappe.get_doc(
diff --git a/erpnext/accounts/doctype/unreconcile_payment/test_unreconcile_payment.py b/erpnext/accounts/doctype/unreconcile_payment/test_unreconcile_payment.py
index 57f66dd..882dd1d 100644
--- a/erpnext/accounts/doctype/unreconcile_payment/test_unreconcile_payment.py
+++ b/erpnext/accounts/doctype/unreconcile_payment/test_unreconcile_payment.py
@@ -93,7 +93,7 @@
 		unreconcile.add_references()
 		self.assertEqual(len(unreconcile.allocations), 2)
 		allocations = [x.reference_name for x in unreconcile.allocations]
-		self.assertEquals([si1.name, si2.name], allocations)
+		self.assertEqual([si1.name, si2.name], allocations)
 		# unreconcile si1
 		for x in unreconcile.allocations:
 			if x.reference_name != si1.name:
@@ -158,7 +158,7 @@
 		unreconcile.add_references()
 		self.assertEqual(len(unreconcile.allocations), 2)
 		allocations = [x.reference_name for x in unreconcile.allocations]
-		self.assertEquals([si1.name, si2.name], allocations)
+		self.assertEqual([si1.name, si2.name], allocations)
 		# unreconcile si1 from pe2
 		for x in unreconcile.allocations:
 			if x.reference_name != si1.name:
@@ -216,7 +216,7 @@
 		unreconcile.add_references()
 		self.assertEqual(len(unreconcile.allocations), 2)
 		allocations = [x.reference_name for x in unreconcile.allocations]
-		self.assertEquals([si1.name, si2.name], allocations)
+		self.assertEqual([si1.name, si2.name], allocations)
 		# unreconcile si1 from pe
 		for x in unreconcile.allocations:
 			if x.reference_name != si1.name:
@@ -301,7 +301,7 @@
 		unreconcile.add_references()
 		self.assertEqual(len(unreconcile.allocations), 2)
 		allocations = [x.reference_name for x in unreconcile.allocations]
-		self.assertEquals([si1.name, si2.name], allocations)
+		self.assertEqual([si1.name, si2.name], allocations)
 		# unreconcile si1 from pe2
 		for x in unreconcile.allocations:
 			if x.reference_name != si1.name:
@@ -353,7 +353,7 @@
 		unreconcile.add_references()
 		self.assertEqual(len(unreconcile.allocations), 1)
 		allocations = [x.reference_name for x in unreconcile.allocations]
-		self.assertEquals([so.name], allocations)
+		self.assertEqual([so.name], allocations)
 		# unreconcile so
 		unreconcile.save().submit()
 
diff --git a/erpnext/accounts/doctype/unreconcile_payment/unreconcile_payment.py b/erpnext/accounts/doctype/unreconcile_payment/unreconcile_payment.py
index 664622f..29eb270 100644
--- a/erpnext/accounts/doctype/unreconcile_payment/unreconcile_payment.py
+++ b/erpnext/accounts/doctype/unreconcile_payment/unreconcile_payment.py
@@ -91,7 +91,7 @@
 
 
 @frappe.whitelist()
-def doc_has_references(doctype: str = None, docname: str = None):
+def doc_has_references(doctype: str | None = None, docname: str | None = None):
 	if doctype in ["Sales Invoice", "Purchase Invoice"]:
 		return frappe.db.count(
 			"Payment Ledger Entry",
@@ -106,7 +106,7 @@
 
 @frappe.whitelist()
 def get_linked_payments_for_doc(
-	company: str = None, doctype: str = None, docname: str = None
+	company: str | None = None, doctype: str | None = None, docname: str | None = None
 ) -> list:
 	if company and doctype and docname:
 		_dt = doctype
diff --git a/erpnext/accounts/general_ledger.py b/erpnext/accounts/general_ledger.py
index 825a01e..700d777 100644
--- a/erpnext/accounts/general_ledger.py
+++ b/erpnext/accounts/general_ledger.py
@@ -78,7 +78,7 @@
 					"credit": credit,
 					"debit_in_account_currency": debit,
 					"credit_in_account_currency": credit,
-					"remarks": _("Offsetting for Accounting Dimension") + " - {0}".format(dimension.name),
+					"remarks": _("Offsetting for Accounting Dimension") + f" - {dimension.name}",
 					"against_voucher": None,
 				}
 			)
@@ -179,9 +179,7 @@
 
 
 def distribute_gl_based_on_cost_center_allocation(gl_map, precision=None):
-	cost_center_allocation = get_cost_center_allocation_data(
-		gl_map[0]["company"], gl_map[0]["posting_date"]
-	)
+	cost_center_allocation = get_cost_center_allocation_data(gl_map[0]["company"], gl_map[0]["posting_date"])
 	if not cost_center_allocation:
 		return gl_map
 
@@ -190,9 +188,7 @@
 		cost_center = d.get("cost_center")
 
 		# Validate budget against main cost center
-		validate_expense_against_budget(
-			d, expense_amount=flt(d.debit, precision) - flt(d.credit, precision)
-		)
+		validate_expense_against_budget(d, expense_amount=flt(d.debit, precision) - flt(d.credit, precision))
 
 		if cost_center and cost_center_allocation.get(cost_center):
 			for sub_cost_center, percentage in cost_center_allocation.get(cost_center, {}).items():
@@ -224,9 +220,7 @@
 
 	cc_allocation = frappe._dict()
 	for d in records:
-		cc_allocation.setdefault(d.main_cost_center, frappe._dict()).setdefault(
-			d.cost_center, d.percentage
-		)
+		cc_allocation.setdefault(d.main_cost_center, frappe._dict()).setdefault(d.cost_center, d.percentage)
 
 	return cc_allocation
 
@@ -541,9 +535,7 @@
 			round_off_gle[dimension] = dimension_values.get(dimension)
 
 
-def get_round_off_account_and_cost_center(
-	company, voucher_type, voucher_no, use_company_default=False
-):
+def get_round_off_account_and_cost_center(company, voucher_type, voucher_no, use_company_default=False):
 	round_off_account, round_off_cost_center = frappe.get_cached_value(
 		"Company", company, ["round_off_account", "round_off_cost_center"]
 	) or [None, None]
@@ -678,9 +670,7 @@
 
 
 def validate_against_pcv(is_opening, posting_date, company):
-	if is_opening and frappe.db.exists(
-		"Period Closing Voucher", {"docstatus": 1, "company": company}
-	):
+	if is_opening and frappe.db.exists("Period Closing Voucher", {"docstatus": 1, "company": company}):
 		frappe.throw(
 			_("Opening Entry can not be created after Period Closing Voucher is created."),
 			title=_("Invalid Opening Entry"),
@@ -691,9 +681,7 @@
 	)
 
 	if last_pcv_date and getdate(posting_date) <= getdate(last_pcv_date):
-		message = _("Books have been closed till the period ending on {0}").format(
-			formatdate(last_pcv_date)
-		)
+		message = _("Books have been closed till the period ending on {0}").format(formatdate(last_pcv_date))
 		message += "</br >"
 		message += _("You cannot create/amend any accounting entries till this date.")
 		frappe.throw(message, title=_("Period Closed"))
diff --git a/erpnext/accounts/party.py b/erpnext/accounts/party.py
index 4b3f0c8..85fe605 100644
--- a/erpnext/accounts/party.py
+++ b/erpnext/accounts/party.py
@@ -2,8 +2,6 @@
 # License: GNU General Public License v3. See license.txt
 
 
-from typing import Optional
-
 import frappe
 from frappe import _, msgprint, qb, scrub
 from frappe.contacts.doctype.address.address import get_company_address, get_default_address
@@ -69,7 +67,6 @@
 	shipping_address=None,
 	pos_profile=None,
 ):
-
 	if not party:
 		return {}
 	if not frappe.db.exists(party_type, party):
@@ -153,9 +150,7 @@
 		party_details["taxes_and_charges"] = tax_template
 
 	if cint(fetch_payment_terms_template):
-		party_details["payment_terms_template"] = get_payment_terms_template(
-			party.name, party_type, company
-		)
+		party_details["payment_terms_template"] = get_payment_terms_template(party.name, party_type, company)
 
 	if not party_details.get("currency"):
 		party_details["currency"] = currency
@@ -173,9 +168,7 @@
 
 	# supplier tax withholding category
 	if party_type == "Supplier" and party:
-		party_details["supplier_tds"] = frappe.get_value(
-			party_type, party.name, "tax_withholding_category"
-		)
+		party_details["supplier_tds"] = frappe.get_value(party_type, party.name, "tax_withholding_category")
 
 	if not party_details.get("tax_category") and pos_profile:
 		party_details["tax_category"] = frappe.get_value("POS Profile", pos_profile, "tax_category")
@@ -195,12 +188,8 @@
 	*,
 	ignore_permissions=False,
 ):
-	billing_address_field = (
-		"customer_address" if party_type == "Lead" else party_type.lower() + "_address"
-	)
-	party_details[billing_address_field] = party_address or get_default_address(
-		party_type, party.name
-	)
+	billing_address_field = "customer_address" if party_type == "Lead" else party_type.lower() + "_address"
+	party_details[billing_address_field] = party_address or get_default_address(party_type, party.name)
 	if doctype:
 		party_details.update(
 			get_fetch_values(doctype, billing_address_field, party_details[billing_address_field])
@@ -306,9 +295,7 @@
 			"department as contact_department",
 		]
 
-		contact_details = frappe.db.get_value(
-			"Contact", party_details.contact_person, fields, as_dict=True
-		)
+		contact_details = frappe.db.get_value("Contact", party_details.contact_person, fields, as_dict=True)
 
 		party_details.update(contact_details)
 
@@ -328,9 +315,7 @@
 		party_details[f] = party.get(f)
 
 	# fields prepended with default in Customer doctype
-	for f in ["currency"] + (
-		["sales_partner", "commission_rate"] if party_type == "Customer" else []
-	):
+	for f in ["currency"] + (["sales_partner", "commission_rate"] if party_type == "Customer" else []):
 		if party.get("default_" + f):
 			party_details[f] = party.get("default_" + f)
 
@@ -367,14 +352,10 @@
 			"Price List", price_list, "currency", cache=True
 		)
 
-	party_details[
-		"selling_price_list" if party.doctype == "Customer" else "buying_price_list"
-	] = price_list
+	party_details["selling_price_list" if party.doctype == "Customer" else "buying_price_list"] = price_list
 
 
-def set_account_and_due_date(
-	party, account, party_type, company, posting_date, bill_date, doctype
-):
+def set_account_and_due_date(party, account, party_type, company, posting_date, bill_date, doctype):
 	if doctype not in ["POS Invoice", "Sales Invoice", "Purchase Invoice"]:
 		# not an invoice
 		return {party_type.lower(): party}
@@ -462,9 +443,7 @@
 
 	if not account:
 		account_name = (
-			"default_advance_received_account"
-			if party_type == "Customer"
-			else "default_advance_paid_account"
+			"default_advance_received_account" if party_type == "Customer" else "default_advance_paid_account"
 		)
 		account = frappe.get_cached_value("Company", company, account_name)
 
@@ -473,9 +452,7 @@
 
 @frappe.whitelist()
 def get_party_bank_account(party_type, party):
-	return frappe.db.get_value(
-		"Bank Account", {"party_type": party_type, "party": party, "is_default": 1}
-	)
+	return frappe.db.get_value("Bank Account", {"party_type": party_type, "party": party, "is_default": 1})
 
 
 def get_party_account_currency(party_type, party, company):
@@ -567,9 +544,7 @@
 				"Company", frappe.db.get_default("Company"), "default_currency"
 			)
 		else:
-			company_default_currency = frappe.get_cached_value(
-				"Company", account.company, "default_currency"
-			)
+			company_default_currency = frappe.get_cached_value("Company", account.company, "default_currency")
 
 		validate_party_gle_currency(doc.doctype, doc.name, account.company, party_account_currency)
 
@@ -600,9 +575,7 @@
 		template_name = get_payment_terms_template(party, party_type, company)
 
 		if template_name:
-			due_date = get_due_date_from_template(template_name, posting_date, bill_date).strftime(
-				"%Y-%m-%d"
-			)
+			due_date = get_due_date_from_template(template_name, posting_date, bill_date).strftime("%Y-%m-%d")
 		else:
 			if party_type == "Supplier":
 				supplier_group = frappe.get_cached_value(party_type, party, "supplier_group")
@@ -761,7 +734,6 @@
 
 
 def validate_party_frozen_disabled(party_type, party_name):
-
 	if frappe.flags.ignore_party_validation:
 		return
 
@@ -897,9 +869,7 @@
 		party_account_currency = get_party_account_currency(party_type, party, d.company)
 
 		if party_account_currency == company_default_currency:
-			billing_this_year = flt(
-				company_wise_billing_this_year.get(d.company, {}).get("base_grand_total")
-			)
+			billing_this_year = flt(company_wise_billing_this_year.get(d.company, {}).get("base_grand_total"))
 		else:
 			billing_this_year = flt(company_wise_billing_this_year.get(d.company, {}).get("grand_total"))
 
@@ -925,7 +895,7 @@
 	return company_wise_info
 
 
-def get_party_shipping_address(doctype: str, name: str) -> Optional[str]:
+def get_party_shipping_address(doctype: str, name: str) -> str | None:
 	"""
 	Returns an Address name (best guess) for the given doctype and name for which `address_type == 'Shipping'` is true.
 	and/or `is_shipping_address = 1`.
@@ -991,7 +961,7 @@
 		return frappe._dict(data)
 
 
-def get_default_contact(doctype: str, name: str) -> Optional[str]:
+def get_default_contact(doctype: str, name: str) -> str | None:
 	"""
 	Returns contact name only if there is a primary contact for given doctype and name.
 
diff --git a/erpnext/accounts/report/account_balance/account_balance.py b/erpnext/accounts/report/account_balance/account_balance.py
index b3e80a7..628aca5 100644
--- a/erpnext/accounts/report/account_balance/account_balance.py
+++ b/erpnext/accounts/report/account_balance/account_balance.py
@@ -61,7 +61,6 @@
 
 
 def get_data(filters):
-
 	data = []
 	conditions = get_conditions(filters)
 	accounts = frappe.db.get_all(
diff --git a/erpnext/accounts/report/accounts_payable/test_accounts_payable.py b/erpnext/accounts/report/accounts_payable/test_accounts_payable.py
index b4cb25f..f5c9d16 100644
--- a/erpnext/accounts/report/accounts_payable/test_accounts_payable.py
+++ b/erpnext/accounts/report/accounts_payable/test_accounts_payable.py
@@ -1,16 +1,10 @@
-import unittest
-
 import frappe
-from frappe.tests.utils import FrappeTestCase, change_settings
-from frappe.utils import add_days, flt, getdate, today
+from frappe.tests.utils import FrappeTestCase
+from frappe.utils import today
 
-from erpnext import get_default_cost_center
-from erpnext.accounts.doctype.payment_entry.payment_entry import get_payment_entry
 from erpnext.accounts.doctype.purchase_invoice.test_purchase_invoice import make_purchase_invoice
-from erpnext.accounts.doctype.sales_invoice.test_sales_invoice import create_sales_invoice
 from erpnext.accounts.report.accounts_payable.accounts_payable import execute
 from erpnext.accounts.test.accounts_mixin import AccountsTestMixin
-from erpnext.selling.doctype.sales_order.test_sales_order import make_sales_order
 
 
 class TestAccountsReceivable(AccountsTestMixin, FrappeTestCase):
diff --git a/erpnext/accounts/report/accounts_receivable/accounts_receivable.py b/erpnext/accounts/report/accounts_receivable/accounts_receivable.py
index 38723e9..c7862c1 100644
--- a/erpnext/accounts/report/accounts_receivable/accounts_receivable.py
+++ b/erpnext/accounts/report/accounts_receivable/accounts_receivable.py
@@ -40,24 +40,20 @@
 	return ReceivablePayableReport(filters).run(args)
 
 
-class ReceivablePayableReport(object):
+class ReceivablePayableReport:
 	def __init__(self, filters=None):
 		self.filters = frappe._dict(filters or {})
 		self.qb_selection_filter = []
 		self.ple = qb.DocType("Payment Ledger Entry")
 		self.filters.report_date = getdate(self.filters.report_date or nowdate())
 		self.age_as_on = (
-			getdate(nowdate())
-			if self.filters.report_date > getdate(nowdate())
-			else self.filters.report_date
+			getdate(nowdate()) if self.filters.report_date > getdate(nowdate()) else self.filters.report_date
 		)
 
 	def run(self, args):
 		self.filters.update(args)
 		self.set_defaults()
-		self.party_naming_by = frappe.db.get_single_value(
-			args.get("naming_by")[0], args.get("naming_by")[1]
-		)
+		self.party_naming_by = frappe.db.get_single_value(args.get("naming_by")[0], args.get("naming_by")[1])
 		self.get_columns()
 		self.get_data()
 		self.get_chart_data()
@@ -279,7 +275,7 @@
 	def build_data(self):
 		# set outstanding for all the accumulated balances
 		# as we can use this to filter out invoices without outstanding
-		for key, row in self.voucher_balance.items():
+		for _key, row in self.voucher_balance.items():
 			row.outstanding = flt(row.invoiced - row.paid - row.credit_note, self.currency_precision)
 			row.outstanding_in_account_currency = flt(
 				row.invoiced_in_account_currency
@@ -293,7 +289,7 @@
 			must_consider = False
 			if self.filters.get("for_revaluation_journals"):
 				if (abs(row.outstanding) > 0.0 / 10**self.currency_precision) or (
-					(abs(row.outstanding_in_account_currency) > 0.0 / 10**self.currency_precision)
+					abs(row.outstanding_in_account_currency) > 0.0 / 10**self.currency_precision
 				):
 					must_consider = True
 			else:
@@ -479,19 +475,17 @@
 	def get_payment_terms(self, row):
 		# build payment_terms for row
 		payment_terms_details = frappe.db.sql(
-			"""
+			f"""
 			select
 				si.name, si.party_account_currency, si.currency, si.conversion_rate,
 				si.total_advance, ps.due_date, ps.payment_term, ps.payment_amount, ps.base_payment_amount,
 				ps.description, ps.paid_amount, ps.discounted_amount
-			from `tab{0}` si, `tabPayment Schedule` ps
+			from `tab{row.voucher_type}` si, `tabPayment Schedule` ps
 			where
 				si.name = ps.parent and
 				si.name = %s
 			order by ps.paid_amount desc, due_date
-		""".format(
-				row.voucher_type
-			),
+		""",
 			row.voucher_no,
 			as_dict=1,
 		)
@@ -735,9 +729,7 @@
 		row.age = (getdate(self.age_as_on) - getdate(entry_date)).days or 0
 		index = None
 
-		if not (
-			self.filters.range1 and self.filters.range2 and self.filters.range3 and self.filters.range4
-		):
+		if not (self.filters.range1 and self.filters.range2 and self.filters.range3 and self.filters.range4):
 			self.filters.range1, self.filters.range2, self.filters.range3, self.filters.range4 = (
 				30,
 				60,
@@ -763,12 +755,10 @@
 
 		if self.filters.show_future_payments:
 			self.qb_selection_filter.append(
-				(
-					self.ple.posting_date.lte(self.filters.report_date)
-					| (
-						(self.ple.voucher_no == self.ple.against_voucher_no)
-						& (Date(self.ple.creation).lte(self.filters.report_date))
-					)
+				self.ple.posting_date.lte(self.filters.report_date)
+				| (
+					(self.ple.voucher_no == self.ple.against_voucher_no)
+					& (Date(self.ple.creation).lte(self.filters.report_date))
 				)
 			)
 		else:
@@ -836,7 +826,7 @@
 		self.qb_selection_filter = []
 		self.or_filters = []
 
-		for party_type in self.party_type:
+		for _party_type in self.party_type:
 			self.add_common_filters()
 
 			if self.account_type == "Receivable":
diff --git a/erpnext/accounts/report/accounts_receivable/test_accounts_receivable.py b/erpnext/accounts/report/accounts_receivable/test_accounts_receivable.py
index de49139..83d95de 100644
--- a/erpnext/accounts/report/accounts_receivable/test_accounts_receivable.py
+++ b/erpnext/accounts/report/accounts_receivable/test_accounts_receivable.py
@@ -1,11 +1,8 @@
-import unittest
-
 import frappe
 from frappe import qb
 from frappe.tests.utils import FrappeTestCase, change_settings
 from frappe.utils import add_days, flt, getdate, today
 
-from erpnext import get_default_cost_center
 from erpnext.accounts.doctype.payment_entry.payment_entry import get_payment_entry
 from erpnext.accounts.doctype.sales_invoice.test_sales_invoice import create_sales_invoice
 from erpnext.accounts.report.accounts_receivable.accounts_receivable import execute
@@ -126,7 +123,6 @@
 
 		# check invoice grand total and invoiced column's value for 3 payment terms
 		si = self.create_sales_invoice()
-		name = si.name
 
 		report = execute(filters)
 
@@ -218,7 +214,7 @@
 			[0, 0, 100.0, 0.0, -100.0, cr_note.name],
 		]
 		self.assertEqual(len(report[1]), 2)
-		si_row = [
+		si_row = next(
 			[
 				row.invoice_grand_total,
 				row.invoiced,
@@ -229,9 +225,9 @@
 			]
 			for row in report[1]
 			if row.voucher_no == si.name
-		][0]
+		)
 
-		cr_note_row = [
+		cr_note_row = next(
 			[
 				row.invoice_grand_total,
 				row.invoiced,
@@ -242,7 +238,7 @@
 			]
 			for row in report[1]
 			if row.voucher_no == cr_note.name
-		][0]
+		)
 		self.assertEqual(expected_data_after_credit_note[0], si_row)
 		self.assertEqual(expected_data_after_credit_note[1], cr_note_row)
 
@@ -317,9 +313,7 @@
 		err.extend("accounts", accounts)
 		err.accounts[0].new_exchange_rate = 85
 		row = err.accounts[0]
-		row.new_balance_in_base_currency = flt(
-			row.new_exchange_rate * flt(row.balance_in_account_currency)
-		)
+		row.new_balance_in_base_currency = flt(row.new_exchange_rate * flt(row.balance_in_account_currency))
 		row.gain_loss = row.new_balance_in_base_currency - flt(row.balance_in_base_currency)
 		err.set_total_gain_loss()
 		err = err.save().submit()
@@ -340,7 +334,7 @@
 		report = execute(filters)
 
 		expected_data_for_err = [0, -500, 0, 500]
-		row = [x for x in report[1] if x.voucher_type == je.doctype and x.voucher_no == je.name][0]
+		row = next(x for x in report[1] if x.voucher_type == je.doctype and x.voucher_no == je.name)
 		self.assertEqual(
 			expected_data_for_err,
 			[
@@ -551,7 +545,7 @@
 		self.assertEqual(expected_data, [row.invoiced, row.outstanding, row.sales_person])
 
 	def test_cost_center_filter(self):
-		si = self.create_sales_invoice()
+		self.create_sales_invoice()
 		filters = {
 			"company": self.company,
 			"report_date": today(),
@@ -568,7 +562,7 @@
 		self.assertEqual(expected_data, [row.invoiced, row.outstanding, row.cost_center])
 
 	def test_customer_group_filter(self):
-		si = self.create_sales_invoice()
+		self.create_sales_invoice()
 		cus_group = frappe.db.get_value("Customer", self.customer, "customer_group")
 		filters = {
 			"company": self.company,
@@ -590,7 +584,7 @@
 		self.assertEqual(len(report), 0)
 
 	def test_multi_customer_group_filter(self):
-		si = self.create_sales_invoice()
+		self.create_sales_invoice()
 		cus_group = frappe.db.get_value("Customer", self.customer, "customer_group")
 		# Create a list of customer groups, e.g., ["Group1", "Group2"]
 		cus_groups_list = [cus_group, "_Test Customer Group 1"]
@@ -703,7 +697,6 @@
 		si.conversion_rate = 80
 		si.debit_to = self.debtors_usd
 		si.save().submit()
-		name = si.name
 
 		# check invoice grand total and invoiced column's value for 3 payment terms
 		report = execute(filters)
@@ -763,9 +756,7 @@
 
 	def test_report_output_if_party_is_missing(self):
 		acc_name = "Additional Debtors"
-		if not frappe.db.get_value(
-			"Account", filters={"account_name": acc_name, "company": self.company}
-		):
+		if not frappe.db.get_value("Account", filters={"account_name": acc_name, "company": self.company}):
 			additional_receivable_acc = frappe.get_doc(
 				{
 					"doctype": "Account",
diff --git a/erpnext/accounts/report/accounts_receivable_summary/accounts_receivable_summary.py b/erpnext/accounts/report/accounts_receivable_summary/accounts_receivable_summary.py
index 0947cff..1aab7f7 100644
--- a/erpnext/accounts/report/accounts_receivable_summary/accounts_receivable_summary.py
+++ b/erpnext/accounts/report/accounts_receivable_summary/accounts_receivable_summary.py
@@ -24,9 +24,7 @@
 	def run(self, args):
 		self.account_type = args.get("account_type")
 		self.party_type = get_party_types_from_account_type(self.account_type)
-		self.party_naming_by = frappe.db.get_single_value(
-			args.get("naming_by")[0], args.get("naming_by")[1]
-		)
+		self.party_naming_by = frappe.db.get_single_value(args.get("naming_by")[0], args.get("naming_by")[1])
 		self.get_columns()
 		self.get_data(args)
 		return self.columns, self.data
diff --git a/erpnext/accounts/report/accounts_receivable_summary/test_accounts_receivable_summary.py b/erpnext/accounts/report/accounts_receivable_summary/test_accounts_receivable_summary.py
index 3ee35a1..4ef607b 100644
--- a/erpnext/accounts/report/accounts_receivable_summary/test_accounts_receivable_summary.py
+++ b/erpnext/accounts/report/accounts_receivable_summary/test_accounts_receivable_summary.py
@@ -1,5 +1,3 @@
-import unittest
-
 import frappe
 from frappe.tests.utils import FrappeTestCase, change_settings
 from frappe.utils import today
diff --git a/erpnext/accounts/report/asset_depreciations_and_balances/asset_depreciations_and_balances.py b/erpnext/accounts/report/asset_depreciations_and_balances/asset_depreciations_and_balances.py
index 48da17a..4fa485f 100644
--- a/erpnext/accounts/report/asset_depreciations_and_balances/asset_depreciations_and_balances.py
+++ b/erpnext/accounts/report/asset_depreciations_and_balances/asset_depreciations_and_balances.py
@@ -70,7 +70,7 @@
 	if filters.get("asset_category"):
 		condition += " and asset_category = %(asset_category)s"
 	return frappe.db.sql(
-		"""
+		f"""
 		SELECT asset_category,
 			   ifnull(sum(case when purchase_date < %(from_date)s then
 							   case when ifnull(disposal_date, 0) = 0 or disposal_date >= %(from_date)s then
@@ -109,11 +109,9 @@
 								0
 						   end), 0) as cost_of_scrapped_asset
 		from `tabAsset`
-		where docstatus=1 and company=%(company)s and purchase_date <= %(to_date)s {}
+		where docstatus=1 and company=%(company)s and purchase_date <= %(to_date)s {condition}
 		group by asset_category
-	""".format(
-			condition
-		),
+	""",
 		{
 			"to_date": filters.to_date,
 			"from_date": filters.from_date,
@@ -129,7 +127,7 @@
 	if filters.get("asset"):
 		condition += " and name = %(asset)s"
 	return frappe.db.sql(
-		"""
+		f"""
 		SELECT name,
 			   ifnull(sum(case when purchase_date < %(from_date)s then
 							   case when ifnull(disposal_date, 0) = 0 or disposal_date >= %(from_date)s then
@@ -168,11 +166,9 @@
 								0
 						   end), 0) as cost_of_scrapped_asset
 		from `tabAsset`
-		where docstatus=1 and company=%(company)s and purchase_date <= %(to_date)s {}
+		where docstatus=1 and company=%(company)s and purchase_date <= %(to_date)s {condition}
 		group by name
-	""".format(
-			condition
-		),
+	""",
 		{
 			"to_date": filters.to_date,
 			"from_date": filters.from_date,
@@ -276,9 +272,7 @@
 			where a.docstatus=1 and a.company=%(company)s and a.purchase_date <= %(to_date)s {0}
 			group by a.asset_category) as results
 		group by results.asset_category
-		""".format(
-			condition
-		),
+		""".format(condition),
 		{"to_date": filters.to_date, "from_date": filters.from_date, "company": filters.company},
 		as_dict=1,
 	)
@@ -338,9 +332,7 @@
 			where a.docstatus=1 and a.company=%(company)s and a.purchase_date <= %(to_date)s {0}
 			group by a.name) as results
 		group by results.name
-		""".format(
-			condition
-		),
+		""".format(condition),
 		{"to_date": filters.to_date, "from_date": filters.from_date, "company": filters.company},
 		as_dict=1,
 	)
diff --git a/erpnext/accounts/report/balance_sheet/balance_sheet.py b/erpnext/accounts/report/balance_sheet/balance_sheet.py
index d45dc07..b2e55b6 100644
--- a/erpnext/accounts/report/balance_sheet/balance_sheet.py
+++ b/erpnext/accounts/report/balance_sheet/balance_sheet.py
@@ -180,7 +180,6 @@
 	filters,
 	consolidated=False,
 ):
-
 	net_asset, net_liability, net_equity, net_provisional_profit_loss = 0.0, 0.0, 0.0, 0.0
 
 	if filters.get("accumulated_values"):
diff --git a/erpnext/accounts/report/bank_clearance_summary/bank_clearance_summary.py b/erpnext/accounts/report/bank_clearance_summary/bank_clearance_summary.py
index 7e0bdea..ae67567 100644
--- a/erpnext/accounts/report/bank_clearance_summary/bank_clearance_summary.py
+++ b/erpnext/accounts/report/bank_clearance_summary/bank_clearance_summary.py
@@ -83,31 +83,27 @@
 	conditions = get_conditions(filters)
 
 	journal_entries = frappe.db.sql(
-		"""SELECT
+		f"""SELECT
 			"Journal Entry", jv.name, jv.posting_date, jv.cheque_no,
 			jv.clearance_date, jvd.against_account, jvd.debit - jvd.credit
 		FROM
 			`tabJournal Entry Account` jvd, `tabJournal Entry` jv
 		WHERE
-			jvd.parent = jv.name and jv.docstatus=1 and jvd.account = %(account)s {0}
-			order by posting_date DESC, jv.name DESC""".format(
-			conditions
-		),
+			jvd.parent = jv.name and jv.docstatus=1 and jvd.account = %(account)s {conditions}
+			order by posting_date DESC, jv.name DESC""",
 		filters,
 		as_list=1,
 	)
 
 	payment_entries = frappe.db.sql(
-		"""SELECT
+		f"""SELECT
 			"Payment Entry", name, posting_date, reference_no, clearance_date, party,
 			if(paid_from=%(account)s, ((paid_amount * -1) - total_taxes_and_charges) , received_amount)
 		FROM
 			`tabPayment Entry`
 		WHERE
-			docstatus=1 and (paid_from = %(account)s or paid_to = %(account)s) {0}
-			order by posting_date DESC, name DESC""".format(
-			conditions
-		),
+			docstatus=1 and (paid_from = %(account)s or paid_to = %(account)s) {conditions}
+			order by posting_date DESC, name DESC""",
 		filters,
 		as_list=1,
 	)
diff --git a/erpnext/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.py b/erpnext/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.py
index 206654c..8a8e3a5 100644
--- a/erpnext/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.py
+++ b/erpnext/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.py
@@ -32,10 +32,7 @@
 	amounts_not_reflected_in_system = get_amounts_not_reflected_in_system(filters)
 
 	bank_bal = (
-		flt(balance_as_per_system)
-		- flt(total_debit)
-		+ flt(total_credit)
-		+ amounts_not_reflected_in_system
+		flt(balance_as_per_system) - flt(total_debit) + flt(total_credit) + amounts_not_reflected_in_system
 	)
 
 	data += [
diff --git a/erpnext/accounts/report/billed_items_to_be_received/billed_items_to_be_received.py b/erpnext/accounts/report/billed_items_to_be_received/billed_items_to_be_received.py
index 62bee82..f6efc8a 100644
--- a/erpnext/accounts/report/billed_items_to_be_received/billed_items_to_be_received.py
+++ b/erpnext/accounts/report/billed_items_to_be_received/billed_items_to_be_received.py
@@ -30,9 +30,7 @@
 	]
 
 	if report_filters.get("purchase_invoice"):
-		filters.append(
-			["Purchase Invoice", "per_received", "in", [report_filters.get("purchase_invoice")]]
-		)
+		filters.append(["Purchase Invoice", "per_received", "in", [report_filters.get("purchase_invoice")]])
 
 	return filters
 
@@ -40,10 +38,10 @@
 def get_report_fields():
 	fields = []
 	for p_field in ["name", "supplier", "company", "posting_date", "currency"]:
-		fields.append("`tabPurchase Invoice`.`{}`".format(p_field))
+		fields.append(f"`tabPurchase Invoice`.`{p_field}`")
 
 	for c_field in ["item_code", "item_name", "uom", "qty", "received_qty", "rate", "amount"]:
-		fields.append("`tabPurchase Invoice Item`.`{}`".format(c_field))
+		fields.append(f"`tabPurchase Invoice Item`.`{c_field}`")
 
 	return fields
 
diff --git a/erpnext/accounts/report/budget_variance_report/budget_variance_report.py b/erpnext/accounts/report/budget_variance_report/budget_variance_report.py
index 96cfab9..e540aa9 100644
--- a/erpnext/accounts/report/budget_variance_report/budget_variance_report.py
+++ b/erpnext/accounts/report/budget_variance_report/budget_variance_report.py
@@ -112,7 +112,9 @@
 				]:
 					if group_months:
 						label = label % (
-							formatdate(from_date, format_string="MMM") + "-" + formatdate(to_date, format_string="MMM")
+							formatdate(from_date, format_string="MMM")
+							+ "-"
+							+ formatdate(to_date, format_string="MMM")
 						)
 					else:
 						label = label % formatdate(from_date, format_string="MMM")
@@ -147,9 +149,7 @@
 				where
 					company = %s
 				{order_by}
-			""".format(
-				tab=filters.get("budget_against"), order_by=order_by
-			),
+			""".format(tab=filters.get("budget_against"), order_by=order_by),
 			filters.get("company"),
 		)
 	else:
@@ -159,9 +159,7 @@
 					name
 				from
 					`tab{tab}`
-			""".format(
-				tab=filters.get("budget_against")
-			)
+			""".format(tab=filters.get("budget_against"))
 		)  # nosec
 
 
@@ -170,12 +168,12 @@
 	budget_against = frappe.scrub(filters.get("budget_against"))
 	cond = ""
 	if filters.get("budget_against_filter"):
-		cond += """ and b.{budget_against} in (%s)""".format(budget_against=budget_against) % ", ".join(
+		cond += f""" and b.{budget_against} in (%s)""" % ", ".join(
 			["%s"] * len(filters.get("budget_against_filter"))
 		)
 
 	return frappe.db.sql(
-		"""
+		f"""
 			select
 				b.{budget_against} as budget_against,
 				b.monthly_distribution,
@@ -194,10 +192,7 @@
 				{cond}
 			order by
 				b.fiscal_year
-		""".format(
-			budget_against=budget_against,
-			cond=cond,
-		),
+		""",
 		tuple(
 			[
 				filters.from_fiscal_year,
@@ -244,15 +239,13 @@
 
 	if filters.get("budget_against") == "Cost Center":
 		cc_lft, cc_rgt = frappe.db.get_value("Cost Center", name, ["lft", "rgt"])
-		cond = """
-				and lft >= "{lft}"
-				and rgt <= "{rgt}"
-			""".format(
-			lft=cc_lft, rgt=cc_rgt
-		)
+		cond = f"""
+				and lft >= "{cc_lft}"
+				and rgt <= "{cc_rgt}"
+			"""
 
 	ac_details = frappe.db.sql(
-		"""
+		f"""
 			select
 				gl.account,
 				gl.debit,
@@ -275,7 +268,7 @@
 					select
 						name
 					from
-						`tab{tab}`
+						`tab{filters.budget_against}`
 					where
 						name = gl.{budget_against}
 						{cond}
@@ -283,9 +276,7 @@
 				group by
 					gl.name
 				order by gl.fiscal_year
-		""".format(
-			tab=filters.budget_against, budget_against=budget_against, cond=cond
-		),
+		""",
 		(filters.from_fiscal_year, filters.to_fiscal_year, name),
 		as_dict=1,
 	)
@@ -314,7 +305,9 @@
 
 			tav_dict = cam_map[ccd.budget_against][ccd.account][ccd.fiscal_year][month]
 			month_percentage = (
-				tdd.get(ccd.monthly_distribution, {}).get(month, 0) if ccd.monthly_distribution else 100.0 / 12
+				tdd.get(ccd.monthly_distribution, {}).get(month, 0)
+				if ccd.monthly_distribution
+				else 100.0 / 12
 			)
 
 			tav_dict.target = flt(ccd.budget_amount) * month_percentage / 100
@@ -327,7 +320,6 @@
 
 
 def get_fiscal_years(filters):
-
 	fiscal_year = frappe.db.sql(
 		"""
 			select
@@ -344,7 +336,6 @@
 
 
 def get_chart_data(filters, columns, data):
-
 	if not data:
 		return None
 
@@ -360,7 +351,9 @@
 			else:
 				if group_months:
 					label = (
-						formatdate(from_date, format_string="MMM") + "-" + formatdate(to_date, format_string="MMM")
+						formatdate(from_date, format_string="MMM")
+						+ "-"
+						+ formatdate(to_date, format_string="MMM")
 					)
 					labels.append(label)
 				else:
diff --git a/erpnext/accounts/report/cash_flow/cash_flow.py b/erpnext/accounts/report/cash_flow/cash_flow.py
index d3b0692..c034f95 100644
--- a/erpnext/accounts/report/cash_flow/cash_flow.py
+++ b/erpnext/accounts/report/cash_flow/cash_flow.py
@@ -109,9 +109,7 @@
 	add_total_row_account(
 		data, data, _("Net Change in Cash"), period_list, company_currency, summary_data, filters
 	)
-	columns = get_columns(
-		filters.periodicity, period_list, filters.accumulated_values, filters.company
-	)
+	columns = get_columns(filters.periodicity, period_list, filters.accumulated_values, filters.company)
 
 	chart = get_chart_data(columns, data)
 
@@ -178,8 +176,8 @@
 
 	if filters.include_default_book_entries:
 		company_fb = frappe.get_cached_value("Company", company, "default_finance_book")
-		cond = """ AND (finance_book in (%s, %s, '') OR finance_book IS NULL)
-			""" % (
+		cond = """ AND (finance_book in ({}, {}, '') OR finance_book IS NULL)
+			""".format(
 			frappe.db.escape(filters.finance_book),
 			frappe.db.escape(company_fb),
 		)
@@ -193,15 +191,13 @@
 		cond += " and cost_center in %(cost_center)s"
 
 	gl_sum = frappe.db.sql_list(
-		"""
+		f"""
 		select sum(credit) - sum(debit)
 		from `tabGL Entry`
 		where company=%(company)s and posting_date >= %(start_date)s and posting_date <= %(end_date)s
 			and voucher_type != 'Period Closing Voucher'
 			and account in ( SELECT name FROM tabAccount WHERE account_type = %(account_type)s) {cond}
-	""".format(
-			cond=cond
-		),
+	""",
 		filters,
 	)
 
@@ -219,9 +215,7 @@
 	return start_date
 
 
-def add_total_row_account(
-	out, data, label, period_list, currency, summary_data, filters, consolidated=False
-):
+def add_total_row_account(out, data, label, period_list, currency, summary_data, filters, consolidated=False):
 	total_row = {
 		"account_name": "'" + _("{0}").format(label) + "'",
 		"account": "'" + _("{0}").format(label) + "'",
@@ -253,9 +247,7 @@
 	report_summary = []
 
 	for label, value in summary_data.items():
-		report_summary.append(
-			{"value": value, "label": label, "datatype": "Currency", "currency": currency}
-		)
+		report_summary.append({"value": value, "label": label, "datatype": "Currency", "currency": currency})
 
 	return report_summary
 
@@ -268,7 +260,7 @@
 			"values": [account.get(d.get("fieldname")) for d in columns[2:]],
 		}
 		for account in data
-		if account.get("parent_account") == None and account.get("currency")
+		if account.get("parent_account") is None and account.get("currency")
 	]
 	datasets = datasets[:-1]
 
diff --git a/erpnext/accounts/report/consolidated_financial_statement/consolidated_financial_statement.py b/erpnext/accounts/report/consolidated_financial_statement/consolidated_financial_statement.py
index 0051ba6..b20f3b3 100644
--- a/erpnext/accounts/report/consolidated_financial_statement/consolidated_financial_statement.py
+++ b/erpnext/accounts/report/consolidated_financial_statement/consolidated_financial_statement.py
@@ -55,9 +55,7 @@
 			fiscal_year, companies, columns, filters
 		)
 	elif filters.get("report") == "Profit and Loss Statement":
-		data, message, chart, report_summary = get_profit_loss_data(
-			fiscal_year, companies, columns, filters
-		)
+		data, message, chart, report_summary = get_profit_loss_data(fiscal_year, companies, columns, filters)
 	else:
 		data, report_summary = get_cash_flow_data(fiscal_year, companies, filters)
 
@@ -81,9 +79,7 @@
 		asset, liability, equity, companies, filters.get("company"), company_currency, True
 	)
 
-	message, opening_balance = prepare_companywise_opening_balance(
-		asset, liability, equity, companies
-	)
+	message, opening_balance = prepare_companywise_opening_balance(asset, liability, equity, companies)
 
 	if opening_balance:
 		unclosed = {
@@ -192,9 +188,7 @@
 
 	expense = get_data(companies, "Expense", "Debit", fiscal_year, filters, True)
 
-	net_profit_loss = get_net_profit_loss(
-		income, expense, companies, filters.company, company_currency, True
-	)
+	net_profit_loss = get_net_profit_loss(income, expense, companies, filters.company, company_currency, True)
 
 	return income, expense, net_profit_loss
 
@@ -323,9 +317,7 @@
 	return columns
 
 
-def get_data(
-	companies, root_type, balance_must_be, fiscal_year, filters=None, ignore_closing_entries=False
-):
+def get_data(companies, root_type, balance_must_be, fiscal_year, filters=None, ignore_closing_entries=False):
 	accounts, accounts_by_name, parent_children_map = get_account_heads(root_type, companies, filters)
 
 	if not accounts:
@@ -349,7 +341,6 @@
 		root_type,
 		as_dict=1,
 	):
-
 		set_gl_entries_by_account(
 			start_date,
 			end_date,
@@ -366,9 +357,7 @@
 	calculate_values(accounts_by_name, gl_entries_by_account, companies, filters, fiscal_year)
 	accumulate_values_into_parents(accounts, accounts_by_name, companies)
 
-	out = prepare_data(
-		accounts, start_date, end_date, balance_must_be, companies, company_currency, filters
-	)
+	out = prepare_data(accounts, start_date, end_date, balance_must_be, companies, company_currency, filters)
 
 	out = filter_out_zero_value_rows(
 		out, parent_children_map, show_zero_values=filters.get("show_zero_values")
@@ -388,9 +377,7 @@
 
 def calculate_values(accounts_by_name, gl_entries_by_account, companies, filters, fiscal_year):
 	start_date = (
-		fiscal_year.year_start_date
-		if filters.filter_based_on == "Fiscal Year"
-		else filters.period_start_date
+		fiscal_year.year_start_date if filters.filter_based_on == "Fiscal Year" else filters.period_start_date
 	)
 
 	for entries in gl_entries_by_account.values():
@@ -422,8 +409,12 @@
 							and parent_company_currency != child_company_currency
 							and filters.get("accumulated_in_group_company")
 						):
-							debit = convert(debit, parent_company_currency, child_company_currency, filters.end_date)
-							credit = convert(credit, parent_company_currency, child_company_currency, filters.end_date)
+							debit = convert(
+								debit, parent_company_currency, child_company_currency, filters.end_date
+							)
+							credit = convert(
+								credit, parent_company_currency, child_company_currency, filters.end_date
+							)
 
 						d[company] = d.get(company, 0.0) + flt(debit) - flt(credit)
 
@@ -507,10 +498,8 @@
 	lft, rgt = frappe.get_cached_value("Company", company, ["lft", "rgt"])
 
 	return frappe.db.sql_list(
-		"""select name from `tabCompany`
-		where lft >= {0} and rgt <= {1} order by lft, rgt""".format(
-			lft, rgt
-		)
+		f"""select name from `tabCompany`
+		where lft >= {lft} and rgt <= {rgt} order by lft, rgt"""
 	)
 
 
@@ -547,9 +536,7 @@
 	return accounts
 
 
-def prepare_data(
-	accounts, start_date, end_date, balance_must_be, companies, company_currency, filters
-):
+def prepare_data(accounts, start_date, end_date, balance_must_be, companies, company_currency, filters):
 	data = []
 
 	for d in accounts:
@@ -559,9 +546,7 @@
 		row = frappe._dict(
 			{
 				"account_name": (
-					"%s - %s" % (_(d.account_number), _(d.account_name))
-					if d.account_number
-					else _(d.account_name)
+					f"{_(d.account_number)} - {_(d.account_name)}" if d.account_number else _(d.account_name)
 				),
 				"account": _(d.name),
 				"parent_account": _(d.parent_account),
@@ -609,9 +594,7 @@
 ):
 	"""Returns a dict like { "account": [gl entries], ... }"""
 
-	company_lft, company_rgt = frappe.get_cached_value(
-		"Company", filters.get("company"), ["lft", "rgt"]
-	)
+	company_lft, company_rgt = frappe.get_cached_value("Company", filters.get("company"), ["lft", "rgt"])
 
 	companies = frappe.db.sql(
 		""" select name, default_currency from `tabCompany`
@@ -739,7 +722,7 @@
 	additional_conditions = []
 
 	if ignore_closing_entries:
-		additional_conditions.append((gle.voucher_type != "Period Closing Voucher"))
+		additional_conditions.append(gle.voucher_type != "Period Closing Voucher")
 
 	if from_date:
 		additional_conditions.append(gle.posting_date >= from_date)
@@ -802,7 +785,7 @@
 	def add_to_list(parent, level):
 		if level < depth:
 			children = parent_children_map.get(parent) or []
-			sort_accounts(children, is_root=True if parent == None else False)
+			sort_accounts(children, is_root=True if parent is None else False)
 
 			for child in children:
 				child.indent = level
diff --git a/erpnext/accounts/report/customer_ledger_summary/customer_ledger_summary.py b/erpnext/accounts/report/customer_ledger_summary/customer_ledger_summary.py
index f4a0175..7b99096 100644
--- a/erpnext/accounts/report/customer_ledger_summary/customer_ledger_summary.py
+++ b/erpnext/accounts/report/customer_ledger_summary/customer_ledger_summary.py
@@ -7,7 +7,7 @@
 from frappe.utils import getdate, nowdate
 
 
-class PartyLedgerSummaryReport(object):
+class PartyLedgerSummaryReport:
 	def __init__(self, filters=None):
 		self.filters = frappe._dict(filters or {})
 		self.filters.from_date = getdate(self.filters.from_date or nowdate())
@@ -21,9 +21,7 @@
 			frappe.throw(_("From Date must be before To Date"))
 
 		self.filters.party_type = args.get("party_type")
-		self.party_naming_by = frappe.db.get_single_value(
-			args.get("naming_by")[0], args.get("naming_by")[1]
-		)
+		self.party_naming_by = frappe.db.get_single_value(args.get("naming_by")[0], args.get("naming_by")[1])
 
 		self.get_gl_entries()
 		self.get_additional_columns()
@@ -49,7 +47,7 @@
 				.select(
 					customer.name, customer.territory, customer.customer_group, customer.default_sales_partner
 				)
-				.where((customer.disabled == 0))
+				.where(customer.disabled == 0)
 				.run(as_dict=True)
 			)
 
@@ -62,7 +60,7 @@
 			result = (
 				frappe.qb.from_(supplier)
 				.select(supplier.name, supplier.supplier_group)
-				.where((supplier.disabled == 0))
+				.where(supplier.disabled == 0)
 				.run(as_dict=True)
 			)
 
@@ -184,9 +182,7 @@
 		return columns
 
 	def get_data(self):
-		company_currency = frappe.get_cached_value(
-			"Company", self.filters.get("company"), "default_currency"
-		)
+		company_currency = frappe.get_cached_value("Company", self.filters.get("company"), "default_currency")
 		invoice_dr_or_cr = "debit" if self.filters.party_type == "Customer" else "credit"
 		reverse_dr_or_cr = "credit" if self.filters.party_type == "Customer" else "debit"
 
@@ -260,7 +256,7 @@
 			join = "left join `tabSupplier` p on gle.party = p.name"
 
 		self.gl_entries = frappe.db.sql(
-			"""
+			f"""
 			select
 				gle.posting_date, gle.party, gle.voucher_type, gle.voucher_no, gle.against_voucher_type,
 				gle.against_voucher, gle.debit, gle.credit, gle.is_opening {join_field}
@@ -270,9 +266,7 @@
 				gle.docstatus < 2 and gle.is_cancelled = 0 and gle.party_type=%(party_type)s and ifnull(gle.party, '') != ''
 				and gle.posting_date <= %(to_date)s {conditions}
 			order by gle.posting_date
-		""".format(
-				join=join, join_field=join_field, conditions=conditions
-			),
+		""",
 			self.filters,
 			as_dict=True,
 		)
@@ -296,22 +290,18 @@
 				)
 
 				conditions.append(
-					"""party in (select name from tabCustomer
-					where exists(select name from `tabCustomer Group` where lft >= {0} and rgt <= {1}
-						and name=tabCustomer.customer_group))""".format(
-						lft, rgt
-					)
+					f"""party in (select name from tabCustomer
+					where exists(select name from `tabCustomer Group` where lft >= {lft} and rgt <= {rgt}
+						and name=tabCustomer.customer_group))"""
 				)
 
 			if self.filters.get("territory"):
 				lft, rgt = frappe.db.get_value("Territory", self.filters.get("territory"), ["lft", "rgt"])
 
 				conditions.append(
-					"""party in (select name from tabCustomer
-					where exists(select name from `tabTerritory` where lft >= {0} and rgt <= {1}
-						and name=tabCustomer.territory))""".format(
-						lft, rgt
-					)
+					f"""party in (select name from tabCustomer
+					where exists(select name from `tabTerritory` where lft >= {lft} and rgt <= {rgt}
+						and name=tabCustomer.territory))"""
 				)
 
 			if self.filters.get("payment_terms_template"):
@@ -331,12 +321,10 @@
 
 				conditions.append(
 					"""exists(select name from `tabSales Team` steam where
-					steam.sales_person in (select name from `tabSales Person` where lft >= {0} and rgt <= {1})
+					steam.sales_person in (select name from `tabSales Person` where lft >= {} and rgt <= {})
 					and ((steam.parent = voucher_no and steam.parenttype = voucher_type)
 						or (steam.parent = against_voucher and steam.parenttype = against_voucher_type)
-						or (steam.parent = party and steam.parenttype = 'Customer')))""".format(
-						lft, rgt
-					)
+						or (steam.parent = party and steam.parenttype = 'Customer')))""".format(lft, rgt)
 				)
 
 		if self.filters.party_type == "Supplier":
@@ -392,7 +380,7 @@
 		)
 
 		gl_entries = frappe.db.sql(
-			"""
+			f"""
 			select
 				posting_date, account, party, voucher_type, voucher_no, debit, credit
 			from
@@ -406,10 +394,7 @@
 					where gle.party_type=%(party_type)s and ifnull(party, '') != ''
 					and gle.posting_date between %(from_date)s and %(to_date)s and gle.docstatus < 2 {conditions}
 				)
-			""".format(
-				accounts_query=accounts_query,
-				conditions=conditions,
-			),
+			""",
 			self.filters,
 			as_dict=True,
 		)
@@ -440,14 +425,14 @@
 
 			if parties and accounts:
 				if len(parties) == 1:
-					party = list(parties.keys())[0]
+					party = next(iter(parties.keys()))
 					for account, amount in accounts.items():
 						self.party_adjustment_accounts.add(account)
 						self.party_adjustment_details.setdefault(party, {})
 						self.party_adjustment_details[party].setdefault(account, 0)
 						self.party_adjustment_details[party][account] += amount
 				elif len(accounts) == 1 and not has_irrelevant_entry:
-					account = list(accounts.keys())[0]
+					account = next(iter(accounts.keys()))
 					self.party_adjustment_accounts.add(account)
 					for party, amount in parties.items():
 						self.party_adjustment_details.setdefault(party, {})
diff --git a/erpnext/accounts/report/deferred_revenue_and_expense/deferred_revenue_and_expense.py b/erpnext/accounts/report/deferred_revenue_and_expense/deferred_revenue_and_expense.py
index eebd61c..7036009 100644
--- a/erpnext/accounts/report/deferred_revenue_and_expense/deferred_revenue_and_expense.py
+++ b/erpnext/accounts/report/deferred_revenue_and_expense/deferred_revenue_and_expense.py
@@ -10,7 +10,7 @@
 from erpnext.accounts.utils import get_fiscal_year
 
 
-class Deferred_Item(object):
+class Deferred_Item:
 	"""
 	Helper class for processing items with deferred revenue/expense
 	"""
@@ -152,13 +152,11 @@
 					if posting.posted == "posted":
 						actual += self.get_amount(posting)
 
-			self.period_total.append(
-				frappe._dict({"key": period.key, "total": period_sum, "actual": actual})
-			)
+			self.period_total.append(frappe._dict({"key": period.key, "total": period_sum, "actual": actual}))
 		return self.period_total
 
 
-class Deferred_Invoice(object):
+class Deferred_Invoice:
 	def __init__(self, invoice, items, filters, period_list):
 		"""
 		Helper class for processing invoices with deferred revenue/expense items
@@ -219,7 +217,7 @@
 		return ret_data
 
 
-class Deferred_Revenue_and_Expense_Report(object):
+class Deferred_Revenue_and_Expense_Report:
 	def __init__(self, filters=None):
 		"""
 		Initialize deferred revenue/expense report with user provided filters or system defaults, if none is provided
diff --git a/erpnext/accounts/report/deferred_revenue_and_expense/test_deferred_revenue_and_expense.py b/erpnext/accounts/report/deferred_revenue_and_expense/test_deferred_revenue_and_expense.py
index 7b1a902..f8a965b 100644
--- a/erpnext/accounts/report/deferred_revenue_and_expense/test_deferred_revenue_and_expense.py
+++ b/erpnext/accounts/report/deferred_revenue_and_expense/test_deferred_revenue_and_expense.py
@@ -1,5 +1,3 @@
-import unittest
-
 import frappe
 from frappe import qb
 from frappe.tests.utils import FrappeTestCase, change_settings
@@ -13,8 +11,6 @@
 )
 from erpnext.accounts.test.accounts_mixin import AccountsTestMixin
 from erpnext.accounts.utils import get_fiscal_year
-from erpnext.buying.doctype.supplier.test_supplier import create_supplier
-from erpnext.stock.doctype.item.test_item import create_item
 
 
 class TestDeferredRevenueAndExpense(FrappeTestCase, AccountsTestMixin):
diff --git a/erpnext/accounts/report/dimension_wise_accounts_balance_report/dimension_wise_accounts_balance_report.py b/erpnext/accounts/report/dimension_wise_accounts_balance_report/dimension_wise_accounts_balance_report.py
index 5939a26..db984e8 100644
--- a/erpnext/accounts/report/dimension_wise_accounts_balance_report/dimension_wise_accounts_balance_report.py
+++ b/erpnext/accounts/report/dimension_wise_accounts_balance_report/dimension_wise_accounts_balance_report.py
@@ -15,7 +15,6 @@
 
 
 def execute(filters=None):
-
 	validate_filters(filters)
 	dimension_list = get_dimensions(filters)
 
@@ -90,9 +89,7 @@
 	gl_filters["dimensions"] = set(dimension_list)
 
 	if filters.get("include_default_book_entries"):
-		gl_filters["company_fb"] = frappe.get_cached_value(
-			"Company", filters.company, "default_finance_book"
-		)
+		gl_filters["company_fb"] = frappe.get_cached_value("Company", filters.company, "default_finance_book")
 
 	gl_entries = frappe.db.sql(
 		"""
@@ -119,7 +116,6 @@
 
 
 def format_gl_entries(gl_entries_by_account, accounts_by_name, dimension_list, dimension_type):
-
 	for entries in gl_entries_by_account.values():
 		for entry in entries:
 			d = accounts_by_name.get(entry.account)
@@ -151,7 +147,7 @@
 			"to_date": filters.to_date,
 			"currency": company_currency,
 			"account_name": (
-				"{} - {}".format(d.account_number, d.account_name) if d.account_number else d.account_name
+				f"{d.account_number} - {d.account_name}" if d.account_number else d.account_name
 			),
 		}
 
@@ -183,7 +179,7 @@
 def get_condition(dimension):
 	conditions = []
 
-	conditions.append("{0} in %(dimensions)s".format(frappe.scrub(dimension)))
+	conditions.append(f"{frappe.scrub(dimension)} in %(dimensions)s")
 
 	return " and {}".format(" and ".join(conditions)) if conditions else ""
 
diff --git a/erpnext/accounts/report/financial_ratios/financial_ratios.py b/erpnext/accounts/report/financial_ratios/financial_ratios.py
index 47b4fd0..c97cd89 100644
--- a/erpnext/accounts/report/financial_ratios/financial_ratios.py
+++ b/erpnext/accounts/report/financial_ratios/financial_ratios.py
@@ -67,7 +67,6 @@
 
 
 def get_ratios_data(filters, period_list, years):
-
 	data = []
 	assets, liabilities, income, expense = get_gl_data(filters, period_list, years)
 
@@ -113,9 +112,7 @@
 	add_solvency_ratios(
 		data, years, total_asset, total_liability, net_sales, cogs, total_income, total_expense
 	)
-	add_turnover_ratios(
-		data, years, period_list, filters, total_asset, net_sales, cogs, direct_expense
-	)
+	add_turnover_ratios(data, years, period_list, filters, total_asset, net_sales, cogs, direct_expense)
 
 	return data
 
@@ -180,9 +177,7 @@
 		profit_after_tax = flt(total_income.get(year)) + flt(total_expense.get(year))
 		share_holder_fund = flt(total_asset.get(year)) - flt(total_liability.get(year))
 
-		debt_equity_ratio[year] = calculate_ratio(
-			total_liability.get(year), share_holder_fund, precision
-		)
+		debt_equity_ratio[year] = calculate_ratio(total_liability.get(year), share_holder_fund, precision)
 		return_on_equity_ratio[year] = calculate_ratio(profit_after_tax, share_holder_fund, precision)
 
 		net_profit_ratio[year] = calculate_ratio(profit_after_tax, net_sales.get(year), precision)
@@ -198,9 +193,7 @@
 	data.append(return_on_equity_ratio)
 
 
-def add_turnover_ratios(
-	data, years, period_list, filters, total_asset, net_sales, cogs, direct_expense
-):
+def add_turnover_ratios(data, years, period_list, filters, total_asset, net_sales, cogs, direct_expense):
 	precision = frappe.db.get_single_value("System Settings", "float_precision")
 	data.append({"ratio": "Turnover Ratios"})
 
@@ -240,7 +233,6 @@
 	net_dict=None,
 	total_net=0,
 ):
-
 	for entry in root_type_data:
 		if not entry.get("parent_account") and entry.get("is_group"):
 			total_dict[year] = entry[year]
@@ -283,9 +275,7 @@
 			company=filters.company,
 			account_type=account_type,
 		)
-		avg_ratio[period["key"]] = flt(
-			(flt(closing_balance) + flt(opening_balance)) / 2, precision=precision
-		)
+		avg_ratio[period["key"]] = flt((flt(closing_balance) + flt(opening_balance)) / 2, precision=precision)
 
 	return avg_ratio
 
diff --git a/erpnext/accounts/report/financial_statements.py b/erpnext/accounts/report/financial_statements.py
index aadd873..6d763597 100644
--- a/erpnext/accounts/report/financial_statements.py
+++ b/erpnext/accounts/report/financial_statements.py
@@ -162,7 +162,6 @@
 	ignore_accumulated_values_for_fy=False,
 	total=True,
 ):
-
 	accounts = get_accounts(company, root_type)
 	if not accounts:
 		return None
@@ -178,7 +177,6 @@
 		root_type,
 		as_dict=1,
 	):
-
 		set_gl_entries_by_account(
 			company,
 			period_list[0]["year_start_date"] if only_current_fiscal_year else None,
@@ -242,7 +240,8 @@
 
 				if entry.posting_date <= period.to_date:
 					if (accumulated_values or entry.posting_date >= period.from_date) and (
-						not ignore_accumulated_values_for_fy or entry.fiscal_year == period.to_date_fiscal_year
+						not ignore_accumulated_values_for_fy
+						or entry.fiscal_year == period.to_date_fiscal_year
 					):
 						d[period.key] = d.get(period.key, 0.0) + flt(entry.debit) - flt(entry.credit)
 
@@ -286,9 +285,7 @@
 				"is_group": d.is_group,
 				"opening_balance": d.get("opening_balance", 0.0) * (1 if balance_must_be == "Debit" else -1),
 				"account_name": (
-					"%s - %s" % (_(d.account_number), _(d.account_name))
-					if d.account_number
-					else _(d.account_name)
+					f"{_(d.account_number)} - {_(d.account_name)}" if d.account_number else _(d.account_name)
 				),
 			}
 		)
@@ -382,7 +379,7 @@
 	def add_to_list(parent, level):
 		if level < depth:
 			children = parent_children_map.get(parent) or []
-			sort_accounts(children, is_root=True if parent == None else False)
+			sort_accounts(children, is_root=True if parent is None else False)
 
 			for child in children:
 				child.indent = level
@@ -573,7 +570,9 @@
 			company_fb = frappe.get_cached_value("Company", filters.company, "default_finance_book")
 
 			if filters.finance_book and company_fb and cstr(filters.finance_book) != cstr(company_fb):
-				frappe.throw(_("To use a different finance book, please uncheck 'Include Default FB Entries'"))
+				frappe.throw(
+					_("To use a different finance book, please uncheck 'Include Default FB Entries'")
+				)
 
 			query = query.where(
 				(gl_entry.finance_book.isin([cstr(filters.finance_book), cstr(company_fb), ""]))
diff --git a/erpnext/accounts/report/general_and_payment_ledger_comparison/general_and_payment_ledger_comparison.py b/erpnext/accounts/report/general_and_payment_ledger_comparison/general_and_payment_ledger_comparison.py
index 696a03b..89cf7e5 100644
--- a/erpnext/accounts/report/general_and_payment_ledger_comparison/general_and_payment_ledger_comparison.py
+++ b/erpnext/accounts/report/general_and_payment_ledger_comparison/general_and_payment_ledger_comparison.py
@@ -7,7 +7,7 @@
 from frappe.query_builder.functions import Sum
 
 
-class General_Payment_Ledger_Comparison(object):
+class General_Payment_Ledger_Comparison:
 	"""
 	A Utility report to compare Voucher-wise balance between General and Payment Ledger
 	"""
@@ -58,10 +58,9 @@
 
 		for acc_type, val in self.account_types.items():
 			if val.accounts:
-
 				filter_criterion = []
 				if self.filters.voucher_no:
-					filter_criterion.append((gle.voucher_no == self.filters.voucher_no))
+					filter_criterion.append(gle.voucher_no == self.filters.voucher_no)
 
 				if self.filters.period_start_date:
 					filter_criterion.append(gle.posting_date.gte(self.filters.period_start_date))
@@ -102,10 +101,9 @@
 
 		for acc_type, val in self.account_types.items():
 			if val.accounts:
-
 				filter_criterion = []
 				if self.filters.voucher_no:
-					filter_criterion.append((ple.voucher_no == self.filters.voucher_no))
+					filter_criterion.append(ple.voucher_no == self.filters.voucher_no)
 
 				if self.filters.period_start_date:
 					filter_criterion.append(ple.posting_date.gte(self.filters.period_start_date))
@@ -141,7 +139,7 @@
 		self.ple_balances = set()
 
 		# consolidate both receivable and payable balances in one set
-		for acc_type, val in self.account_types.items():
+		for _acc_type, val in self.account_types.items():
 			self.gle_balances = set(val.gle) | self.gle_balances
 			self.ple_balances = set(val.ple) | self.ple_balances
 
@@ -177,7 +175,6 @@
 
 	def get_columns(self):
 		self.columns = []
-		options = None
 		self.columns.append(
 			dict(
 				label=_("Company"),
diff --git a/erpnext/accounts/report/general_and_payment_ledger_comparison/test_general_and_payment_ledger_comparison.py b/erpnext/accounts/report/general_and_payment_ledger_comparison/test_general_and_payment_ledger_comparison.py
index 59e906b..afa81b8 100644
--- a/erpnext/accounts/report/general_and_payment_ledger_comparison/test_general_and_payment_ledger_comparison.py
+++ b/erpnext/accounts/report/general_and_payment_ledger_comparison/test_general_and_payment_ledger_comparison.py
@@ -1,5 +1,3 @@
-import unittest
-
 import frappe
 from frappe import qb
 from frappe.tests.utils import FrappeTestCase
@@ -40,9 +38,7 @@
 		)
 
 		# manually edit the payment ledger entry
-		ple = frappe.db.get_all(
-			"Payment Ledger Entry", filters={"voucher_no": sinv.name, "delinked": 0}
-		)[0]
+		ple = frappe.db.get_all("Payment Ledger Entry", filters={"voucher_no": sinv.name, "delinked": 0})[0]
 		frappe.db.set_value("Payment Ledger Entry", ple.name, "amount", sinv.grand_total - 1)
 
 		filters = frappe._dict({"company": self.company})
diff --git a/erpnext/accounts/report/general_ledger/general_ledger.py b/erpnext/accounts/report/general_ledger/general_ledger.py
index cea3a7b..800d7a5 100644
--- a/erpnext/accounts/report/general_ledger/general_ledger.py
+++ b/erpnext/accounts/report/general_ledger/general_ledger.py
@@ -102,9 +102,7 @@
 
 def set_account_currency(filters):
 	if filters.get("account") or (filters.get("party") and len(filters.party) == 1):
-		filters["company_currency"] = frappe.get_cached_value(
-			"Company", filters.company, "default_currency"
-		)
+		filters["company_currency"] = frappe.get_cached_value("Company", filters.company, "default_currency")
 		account_currency = None
 
 		if filters.get("account"):
@@ -164,9 +162,7 @@
 		credit_in_account_currency """
 
 	if filters.get("show_remarks"):
-		if remarks_length := frappe.db.get_single_value(
-			"Accounts Settings", "general_ledger_remarks_length"
-		):
+		if remarks_length := frappe.db.get_single_value("Accounts Settings", "general_ledger_remarks_length"):
 			select_fields += f",substr(remarks, 1, {remarks_length}) as 'remarks'"
 		else:
 			select_fields += """,remarks"""
@@ -197,7 +193,7 @@
 		)
 
 	gl_entries = frappe.db.sql(
-		"""
+		f"""
 		select
 			name as gl_entry, posting_date, account, party_type, party,
 			voucher_type, voucher_subtype, voucher_no, {dimension_fields}
@@ -205,15 +201,9 @@
 			against_voucher_type, against_voucher, account_currency,
 			against, is_opening, creation {select_fields}
 		from `tabGL Entry`
-		where company=%(company)s {conditions}
+		where company=%(company)s {get_conditions(filters)}
 		{order_by_statement}
-	""".format(
-			dimension_fields=dimension_fields,
-			transaction_currency_fields=transaction_currency_fields,
-			select_fields=select_fields,
-			conditions=get_conditions(filters),
-			order_by_statement=order_by_statement,
-		),
+	""",
 		filters,
 		as_dict=1,
 	)
@@ -283,7 +273,9 @@
 			if filters.get("company_fb") and cstr(filters.get("finance_book")) != cstr(
 				filters.get("company_fb")
 			):
-				frappe.throw(_("To use a different finance book, please uncheck 'Include Default FB Entries'"))
+				frappe.throw(
+					_("To use a different finance book, please uncheck 'Include Default FB Entries'")
+				)
 			else:
 				conditions.append("(finance_book in (%(finance_book)s, '') OR finance_book IS NULL)")
 		else:
@@ -315,9 +307,9 @@
 						filters[dimension.fieldname] = get_dimension_with_children(
 							dimension.document_type, filters.get(dimension.fieldname)
 						)
-						conditions.append("{0} in %({0})s".format(dimension.fieldname))
+						conditions.append(f"{dimension.fieldname} in %({dimension.fieldname})s")
 					else:
-						conditions.append("{0} in %({0})s".format(dimension.fieldname))
+						conditions.append(f"{dimension.fieldname} in %({dimension.fieldname})s")
 
 	return "and {}".format(" and ".join(conditions)) if conditions else ""
 
@@ -351,7 +343,7 @@
 	data.append(totals.opening)
 
 	if filters.get("group_by") != "Group by Voucher (Consolidated)":
-		for acc, acc_dict in gle_map.items():
+		for _acc, acc_dict in gle_map.items():
 			# acc
 			if acc_dict.entries:
 				# opening
@@ -383,7 +375,7 @@
 def get_totals_dict():
 	def _get_debit_credit_dict(label):
 		return _dict(
-			account="'{0}'".format(label),
+			account=f"'{label}'",
 			debit=0.0,
 			credit=0.0,
 			debit_in_account_currency=0.0,
@@ -432,9 +424,10 @@
 		data[key].debit_in_account_currency += gle.debit_in_account_currency
 		data[key].credit_in_account_currency += gle.credit_in_account_currency
 
-		if filters.get("show_net_values_in_party_account") and account_type_map.get(
-			data[key].account
-		) in ("Receivable", "Payable"):
+		if filters.get("show_net_values_in_party_account") and account_type_map.get(data[key].account) in (
+			"Receivable",
+			"Payable",
+		):
 			net_value = data[key].debit - data[key].credit
 			net_value_in_account_currency = (
 				data[key].debit_in_account_currency - data[key].credit_in_account_currency
@@ -512,21 +505,19 @@
 
 def get_account_type_map(company):
 	account_type_map = frappe._dict(
-		frappe.get_all(
-			"Account", fields=["name", "account_type"], filters={"company": company}, as_list=1
-		)
+		frappe.get_all("Account", fields=["name", "account_type"], filters={"company": company}, as_list=1)
 	)
 
 	return account_type_map
 
 
 def get_result_as_list(data, filters):
-	balance, balance_in_account_currency = 0, 0
+	balance, _balance_in_account_currency = 0, 0
 	inv_details = get_supplier_invoice_details()
 
 	for d in data:
 		if not d.get("posting_date"):
-			balance, balance_in_account_currency = 0, 0
+			balance, _balance_in_account_currency = 0, 0
 
 		balance = get_balance(d, balance, "debit", "credit")
 		d["balance"] = balance
diff --git a/erpnext/accounts/report/general_ledger/test_general_ledger.py b/erpnext/accounts/report/general_ledger/test_general_ledger.py
index 75f9430..33b356f 100644
--- a/erpnext/accounts/report/general_ledger/test_general_ledger.py
+++ b/erpnext/accounts/report/general_ledger/test_general_ledger.py
@@ -203,9 +203,7 @@
 		revaluation.extend("accounts", accounts)
 		row = revaluation.accounts[0]
 		row.new_exchange_rate = 83
-		row.new_balance_in_base_currency = flt(
-			row.new_exchange_rate * flt(row.balance_in_account_currency)
-		)
+		row.new_balance_in_base_currency = flt(row.new_exchange_rate * flt(row.balance_in_account_currency))
 		row.gain_loss = row.new_balance_in_base_currency - flt(row.balance_in_base_currency)
 		revaluation.set_total_gain_loss()
 		revaluation = revaluation.save().submit()
diff --git a/erpnext/accounts/report/gross_and_net_profit_report/gross_and_net_profit_report.py b/erpnext/accounts/report/gross_and_net_profit_report/gross_and_net_profit_report.py
index a52aaff..00f9c3e 100644
--- a/erpnext/accounts/report/gross_and_net_profit_report/gross_and_net_profit_report.py
+++ b/erpnext/accounts/report/gross_and_net_profit_report/gross_and_net_profit_report.py
@@ -49,9 +49,7 @@
 		total=False,
 	)
 
-	columns = get_columns(
-		filters.periodicity, period_list, filters.accumulated_values, filters.company
-	)
+	columns = get_columns(filters.periodicity, period_list, filters.accumulated_values, filters.company)
 
 	gross_income = get_revenue(income, period_list)
 	gross_expense = get_revenue(expense, period_list)
@@ -119,9 +117,7 @@
 
 
 def get_revenue(data, period_list, include_in_gross=1):
-	revenue = [
-		item for item in data if item["include_in_gross"] == include_in_gross or item["is_group"] == 1
-	]
+	revenue = [item for item in data if item["include_in_gross"] == include_in_gross or item["is_group"] == 1]
 
 	data_to_be_removed = True
 	while data_to_be_removed:
diff --git a/erpnext/accounts/report/gross_profit/gross_profit.py b/erpnext/accounts/report/gross_profit/gross_profit.py
index 25958692..8e2d9c6 100644
--- a/erpnext/accounts/report/gross_profit/gross_profit.py
+++ b/erpnext/accounts/report/gross_profit/gross_profit.py
@@ -158,9 +158,7 @@
 	return columns, data
 
 
-def get_data_when_grouped_by_invoice(
-	columns, gross_profit_data, filters, group_wise_columns, data
-):
+def get_data_when_grouped_by_invoice(columns, gross_profit_data, filters, group_wise_columns, data):
 	column_names = get_column_names()
 
 	# to display item as Item Code: Item Name
@@ -395,7 +393,7 @@
 	)
 
 
-class GrossProfitGenerator(object):
+class GrossProfitGenerator:
 	def __init__(self, filters=None):
 		self.sle = {}
 		self.data = []
@@ -499,7 +497,8 @@
 				for i, row in enumerate(self.grouped[key]):
 					if row.indent == 1.0:
 						if (
-							row.parent in self.returned_invoices and row.item_code in self.returned_invoices[row.parent]
+							row.parent in self.returned_invoices
+							and row.item_code in self.returned_invoices[row.parent]
 						):
 							returned_item_rows = self.returned_invoices[row.parent][row.item_code]
 							for returned_item_row in returned_item_rows:
@@ -512,7 +511,9 @@
 										row.qty = 0
 										returned_item_row.qty += row.qty
 								row.base_amount += flt(returned_item_row.base_amount, self.currency_precision)
-							row.buying_amount = flt(flt(row.qty) * flt(row.buying_rate), self.currency_precision)
+							row.buying_amount = flt(
+								flt(row.qty) * flt(row.buying_rate), self.currency_precision
+							)
 						if flt(row.qty) or row.base_amount:
 							row = self.set_average_rate(row)
 							self.grouped_data.append(row)
@@ -567,9 +568,7 @@
 		new_row.buying_rate = (
 			flt(new_row.buying_amount / new_row.qty, self.float_precision) if new_row.qty else 0
 		)
-		new_row.base_rate = (
-			flt(new_row.base_amount / new_row.qty, self.float_precision) if new_row.qty else 0
-		)
+		new_row.base_rate = flt(new_row.base_amount / new_row.qty, self.float_precision) if new_row.qty else 0
 		return new_row
 
 	def set_average_gross_profit(self, new_row):
@@ -656,7 +655,7 @@
 			elif self.delivery_notes.get((row.parent, row.item_code), None):
 				#  check if Invoice has delivery notes
 				dn = self.delivery_notes.get((row.parent, row.item_code))
-				parenttype, parent, item_row, warehouse = (
+				parenttype, parent, item_row, _warehouse = (
 					"Delivery Note",
 					dn["delivery_note"],
 					dn["item_row"],
@@ -751,7 +750,7 @@
 		conditions += " and (is_return = 0 or (is_return=1 and return_against is null))"
 
 		if self.filters.item_group:
-			conditions += " and {0}".format(get_item_group_condition(self.filters.item_group))
+			conditions += f" and {get_item_group_condition(self.filters.item_group)}"
 
 		if self.filters.sales_person:
 			conditions += """
@@ -770,12 +769,10 @@
 
 		if self.filters.group_by == "Payment Term":
 			payment_term_cols = """,if(`tabSales Invoice`.is_return = 1,
-										'{0}',
-										coalesce(schedule.payment_term, '{1}')) as payment_term,
+										'{}',
+										coalesce(schedule.payment_term, '{}')) as payment_term,
 									schedule.invoice_portion,
-									schedule.payment_amount """.format(
-				_("Sales Return"), _("No Terms")
-			)
+									schedule.payment_amount """.format(_("Sales Return"), _("No Terms"))
 			payment_term_table = """ left join `tabPayment Schedule` schedule on schedule.parent = `tabSales Invoice`.name and
 																				`tabSales Invoice`.is_return = 0 """
 		else:
@@ -949,9 +946,7 @@
 		)
 
 	def get_bundle_item_details(self, item_code):
-		return frappe.db.get_value(
-			"Item", item_code, ["item_name", "description", "item_group", "brand"]
-		)
+		return frappe.db.get_value("Item", item_code, ["item_name", "description", "item_group", "brand"])
 
 	def get_stock_ledger_entries(self, item_code, warehouse):
 		if item_code and warehouse:
diff --git a/erpnext/accounts/report/gross_profit/test_gross_profit.py b/erpnext/accounts/report/gross_profit/test_gross_profit.py
index aa820aa..8d15900 100644
--- a/erpnext/accounts/report/gross_profit/test_gross_profit.py
+++ b/erpnext/accounts/report/gross_profit/test_gross_profit.py
@@ -1,7 +1,7 @@
 import frappe
 from frappe import qb
 from frappe.tests.utils import FrappeTestCase
-from frappe.utils import add_days, flt, nowdate
+from frappe.utils import flt, nowdate
 
 from erpnext.accounts.doctype.sales_invoice.sales_invoice import make_delivery_note
 from erpnext.accounts.doctype.sales_invoice.test_sales_invoice import create_sales_invoice
diff --git a/erpnext/accounts/report/inactive_sales_items/inactive_sales_items.py b/erpnext/accounts/report/inactive_sales_items/inactive_sales_items.py
index 230b18c..df3fc48 100644
--- a/erpnext/accounts/report/inactive_sales_items/inactive_sales_items.py
+++ b/erpnext/accounts/report/inactive_sales_items/inactive_sales_items.py
@@ -92,7 +92,6 @@
 
 
 def get_sales_details(filters):
-	data = []
 	item_details_map = {}
 
 	date_field = "s.transaction_date" if filters["based_on"] == "Sales Order" else "s.posting_date"
@@ -116,7 +115,6 @@
 
 
 def get_territories(filters):
-
 	filter_dict = {}
 	if filters.get("territory"):
 		filter_dict.update({"name": filters["territory"]})
diff --git a/erpnext/accounts/report/item_wise_purchase_register/item_wise_purchase_register.py b/erpnext/accounts/report/item_wise_purchase_register/item_wise_purchase_register.py
index 9c6e2d0..4e7ab1b 100644
--- a/erpnext/accounts/report/item_wise_purchase_register/item_wise_purchase_register.py
+++ b/erpnext/accounts/report/item_wise_purchase_register/item_wise_purchase_register.py
@@ -140,7 +140,6 @@
 
 
 def get_columns(additional_table_columns, filters):
-
 	columns = []
 
 	if filters.get("group_by") != ("Item"):
@@ -194,7 +193,12 @@
 					"options": "Supplier",
 					"width": 120,
 				},
-				{"label": _("Supplier Name"), "fieldname": "supplier_name", "fieldtype": "Data", "width": 120},
+				{
+					"label": _("Supplier Name"),
+					"fieldname": "supplier_name",
+					"fieldtype": "Data",
+					"width": 120,
+				},
 			]
 		)
 
@@ -313,7 +317,7 @@
 	if additional_query_columns:
 		additional_query_columns = "," + ",".join(additional_query_columns)
 	return frappe.db.sql(
-		"""
+		f"""
 		select
 			`tabPurchase Invoice Item`.`name`, `tabPurchase Invoice Item`.`parent`,
 			`tabPurchase Invoice`.posting_date, `tabPurchase Invoice`.credit_to, `tabPurchase Invoice`.company,
@@ -326,14 +330,12 @@
 			`tabPurchase Invoice Item`.`purchase_receipt`, `tabPurchase Invoice Item`.`po_detail`,
 			`tabPurchase Invoice Item`.`expense_account`, `tabPurchase Invoice Item`.`stock_qty`,
 			`tabPurchase Invoice Item`.`stock_uom`, `tabPurchase Invoice Item`.`base_net_amount`,
-			`tabPurchase Invoice`.`supplier_name`, `tabPurchase Invoice`.`mode_of_payment` {0}
+			`tabPurchase Invoice`.`supplier_name`, `tabPurchase Invoice`.`mode_of_payment` {additional_query_columns}
 		from `tabPurchase Invoice`, `tabPurchase Invoice Item`, `tabItem`
 		where `tabPurchase Invoice`.name = `tabPurchase Invoice Item`.`parent` and
 			`tabItem`.name = `tabPurchase Invoice Item`.`item_code` and
-			`tabPurchase Invoice`.docstatus = 1 {1}
-	""".format(
-			additional_query_columns, conditions
-		),
+			`tabPurchase Invoice`.docstatus = 1 {conditions}
+	""",
 		filters,
 		as_dict=1,
 	)
diff --git a/erpnext/accounts/report/item_wise_sales_register/item_wise_sales_register.py b/erpnext/accounts/report/item_wise_sales_register/item_wise_sales_register.py
index a4f01fa..ce04af1 100644
--- a/erpnext/accounts/report/item_wise_sales_register/item_wise_sales_register.py
+++ b/erpnext/accounts/report/item_wise_sales_register/item_wise_sales_register.py
@@ -224,7 +224,12 @@
 					"options": "Customer",
 					"width": 120,
 				},
-				{"label": _("Customer Name"), "fieldname": "customer_name", "fieldtype": "Data", "width": 120},
+				{
+					"label": _("Customer Name"),
+					"fieldname": "customer_name",
+					"fieldtype": "Data",
+					"width": 120,
+				},
 			]
 		)
 
@@ -379,9 +384,7 @@
 		"""
 
 	if not filters.get("group_by"):
-		conditions += (
-			"ORDER BY `tabSales Invoice`.posting_date desc, `tabSales Invoice Item`.item_group desc"
-		)
+		conditions += "ORDER BY `tabSales Invoice`.posting_date desc, `tabSales Invoice Item`.item_group desc"
 	else:
 		conditions += get_group_by_conditions(filters, "Sales Invoice")
 
@@ -390,13 +393,13 @@
 
 def get_group_by_conditions(filters, doctype):
 	if filters.get("group_by") == "Invoice":
-		return "ORDER BY `tab{0} Item`.parent desc".format(doctype)
+		return f"ORDER BY `tab{doctype} Item`.parent desc"
 	elif filters.get("group_by") == "Item":
-		return "ORDER BY `tab{0} Item`.`item_code`".format(doctype)
+		return f"ORDER BY `tab{doctype} Item`.`item_code`"
 	elif filters.get("group_by") == "Item Group":
-		return "ORDER BY `tab{0} Item`.{1}".format(doctype, frappe.scrub(filters.get("group_by")))
+		return "ORDER BY `tab{} Item`.{}".format(doctype, frappe.scrub(filters.get("group_by")))
 	elif filters.get("group_by") in ("Customer", "Customer Group", "Territory", "Supplier"):
-		return "ORDER BY `tab{0}`.{1}".format(doctype, frappe.scrub(filters.get("group_by")))
+		return "ORDER BY `tab{}`.{}".format(doctype, frappe.scrub(filters.get("group_by")))
 
 
 def get_items(filters, additional_query_columns, additional_conditions=None):
@@ -423,14 +426,12 @@
 			`tabSales Invoice Item`.stock_qty, `tabSales Invoice Item`.stock_uom,
 			`tabSales Invoice Item`.base_net_rate, `tabSales Invoice Item`.base_net_amount,
 			`tabSales Invoice`.customer_name, `tabSales Invoice`.customer_group, `tabSales Invoice Item`.so_detail,
-			`tabSales Invoice`.update_stock, `tabSales Invoice Item`.uom, `tabSales Invoice Item`.qty {0}
+			`tabSales Invoice`.update_stock, `tabSales Invoice Item`.uom, `tabSales Invoice Item`.qty {}
 		from `tabSales Invoice`, `tabSales Invoice Item`, `tabItem`
 		where `tabSales Invoice`.name = `tabSales Invoice Item`.parent and
 			`tabItem`.name = `tabSales Invoice Item`.`item_code` and
-			`tabSales Invoice`.docstatus = 1 {1}
-		""".format(
-			additional_query_columns, conditions
-		),
+			`tabSales Invoice`.docstatus = 1 {}
+		""".format(additional_query_columns, conditions),
 		filters,
 		as_dict=1,
 	)  # nosec
@@ -460,20 +461,15 @@
 
 
 def get_grand_total(filters, doctype):
-
 	return frappe.db.sql(
-		""" SELECT
-		SUM(`tab{0}`.base_grand_total)
-		FROM `tab{0}`
-		WHERE `tab{0}`.docstatus = 1
+		f""" SELECT
+		SUM(`tab{doctype}`.base_grand_total)
+		FROM `tab{doctype}`
+		WHERE `tab{doctype}`.docstatus = 1
 		and posting_date between %s and %s
-	""".format(
-			doctype
-		),
+	""",
 		(filters.get("from_date"), filters.get("to_date")),
-	)[0][
-		0
-	]  # nosec
+	)[0][0]  # nosec
 
 
 def get_tax_accounts(
@@ -492,9 +488,7 @@
 	add_deduct_tax = "charge_type"
 
 	tax_amount_precision = (
-		get_field_precision(
-			frappe.get_meta(tax_doctype).get_field("tax_amount"), currency=company_currency
-		)
+		get_field_precision(frappe.get_meta(tax_doctype).get_field("tax_amount"), currency=company_currency)
 		or 2
 	)
 
@@ -504,11 +498,13 @@
 
 	conditions = ""
 	if doctype == "Purchase Invoice":
-		conditions = " and category in ('Total', 'Valuation and Total') and base_tax_amount_after_discount_amount != 0"
+		conditions = (
+			" and category in ('Total', 'Valuation and Total') and base_tax_amount_after_discount_amount != 0"
+		)
 		add_deduct_tax = "add_deduct_tax"
 
 	tax_details = frappe.db.sql(
-		"""
+		f"""
 		select
 			name, parent, description, item_wise_tax_detail, account_head,
 			charge_type, {add_deduct_tax}, base_tax_amount_after_discount_amount
@@ -519,11 +515,9 @@
 			and parent in (%s)
 			%s
 		order by description
-	""".format(
-			add_deduct_tax=add_deduct_tax
-		)
+	"""
 		% (tax_doctype, "%s", ", ".join(["%s"] * len(invoice_item_row)), conditions),
-		tuple([doctype] + list(invoice_item_row)),
+		tuple([doctype, *list(invoice_item_row)]),
 	)
 
 	account_doctype = frappe.qb.DocType("Account")
@@ -531,13 +525,13 @@
 	query = (
 		frappe.qb.from_(account_doctype)
 		.select(account_doctype.name)
-		.where((account_doctype.account_type == "Tax"))
+		.where(account_doctype.account_type == "Tax")
 	)
 
 	tax_accounts = query.run()
 
 	for (
-		name,
+		_name,
 		parent,
 		description,
 		item_wise_tax_detail,
@@ -598,7 +592,9 @@
 				itemised_tax.setdefault(d.name, {})[description] = frappe._dict(
 					{
 						"tax_rate": "NA",
-						"tax_amount": flt((tax_amount * d.base_net_amount) / d.base_net_total, tax_amount_precision),
+						"tax_amount": flt(
+							(tax_amount * d.base_net_amount) / d.base_net_total, tax_amount_precision
+						),
 					}
 				)
 
diff --git a/erpnext/accounts/report/payment_ledger/payment_ledger.py b/erpnext/accounts/report/payment_ledger/payment_ledger.py
index 8875d27..9852c6e 100644
--- a/erpnext/accounts/report/payment_ledger/payment_ledger.py
+++ b/erpnext/accounts/report/payment_ledger/payment_ledger.py
@@ -8,7 +8,7 @@
 from frappe.query_builder import Criterion
 
 
-class PaymentLedger(object):
+class PaymentLedger:
 	def __init__(self, filters=None):
 		self.filters = filters
 		self.columns, self.data = [], []
diff --git a/erpnext/accounts/report/payment_ledger/test_payment_ledger.py b/erpnext/accounts/report/payment_ledger/test_payment_ledger.py
index 5ae9b87..c982f31 100644
--- a/erpnext/accounts/report/payment_ledger/test_payment_ledger.py
+++ b/erpnext/accounts/report/payment_ledger/test_payment_ledger.py
@@ -1,5 +1,3 @@
-import unittest
-
 import frappe
 from frappe import qb
 from frappe.tests.utils import FrappeTestCase
@@ -57,7 +55,7 @@
 			income_account=self.income_account,
 			warehouse=self.warehouse,
 		)
-		pe = get_payment_entry(sinv.doctype, sinv.name).save().submit()
+		get_payment_entry(sinv.doctype, sinv.name).save().submit()
 
 		filters = frappe._dict({"company": self.company})
 		columns, data = execute(filters=filters)
diff --git a/erpnext/accounts/report/payment_period_based_on_invoice_date/payment_period_based_on_invoice_date.py b/erpnext/accounts/report/payment_period_based_on_invoice_date/payment_period_based_on_invoice_date.py
index eaeaa62..834eb5f 100644
--- a/erpnext/accounts/report/payment_period_based_on_invoice_date/payment_period_based_on_invoice_date.py
+++ b/erpnext/accounts/report/payment_period_based_on_invoice_date/payment_period_based_on_invoice_date.py
@@ -163,10 +163,8 @@
 		"""select
 		voucher_type, voucher_no, party_type, party, posting_date, debit, credit, remarks, against_voucher
 		from `tabGL Entry`
-		where company=%(company)s and voucher_type in ('Journal Entry', 'Payment Entry') and is_cancelled = 0 {0}
-	""".format(
-			get_conditions(filters)
-		),
+		where company=%(company)s and voucher_type in ('Journal Entry', 'Payment Entry') and is_cancelled = 0 {}
+	""".format(get_conditions(filters)),
 		filters,
 		as_dict=1,
 	)
@@ -175,7 +173,7 @@
 def get_invoice_posting_date_map(filters):
 	invoice_details = {}
 	dt = "Sales Invoice" if filters.get("payment_type") == _("Incoming") else "Purchase Invoice"
-	for t in frappe.db.sql("select name, posting_date, due_date from `tab{0}`".format(dt), as_dict=1):
+	for t in frappe.db.sql(f"select name, posting_date, due_date from `tab{dt}`", as_dict=1):
 		invoice_details[t.name] = t
 
 	return invoice_details
diff --git a/erpnext/accounts/report/pos_register/pos_register.py b/erpnext/accounts/report/pos_register/pos_register.py
index 488bb99..7640ae8 100644
--- a/erpnext/accounts/report/pos_register/pos_register.py
+++ b/erpnext/accounts/report/pos_register/pos_register.py
@@ -50,17 +50,19 @@
 	order_by = "p.posting_date"
 	select_mop_field, from_sales_invoice_payment, group_by_mop_condition = "", "", ""
 	if group_by_field == "mode_of_payment":
-		select_mop_field = ", sip.mode_of_payment, sip.base_amount - IF(sip.type='Cash', p.change_amount, 0) as paid_amount"
+		select_mop_field = (
+			", sip.mode_of_payment, sip.base_amount - IF(sip.type='Cash', p.change_amount, 0) as paid_amount"
+		)
 		from_sales_invoice_payment = ", `tabSales Invoice Payment` sip"
 		group_by_mop_condition = "sip.parent = p.name AND ifnull(sip.base_amount - IF(sip.type='Cash', p.change_amount, 0), 0) != 0 AND"
 		order_by += ", sip.mode_of_payment"
 
 	elif group_by_field:
-		order_by += ", p.{}".format(group_by_field)
+		order_by += f", p.{group_by_field}"
 		select_mop_field = ", p.base_paid_amount - p.change_amount  as paid_amount "
 
 	return frappe.db.sql(
-		"""
+		f"""
 		SELECT
 			p.posting_date, p.name as pos_invoice, p.pos_profile,
 			p.owner, p.customer, p.is_return, p.base_grand_total as grand_total {select_mop_field}
@@ -72,13 +74,7 @@
 			{conditions}
 		ORDER BY
 			{order_by}
-		""".format(
-			select_mop_field=select_mop_field,
-			from_sales_invoice_payment=from_sales_invoice_payment,
-			group_by_mop_condition=group_by_mop_condition,
-			conditions=conditions,
-			order_by=order_by,
-		),
+		""",
 		filters,
 		as_dict=1,
 	)
@@ -131,9 +127,7 @@
 
 
 def get_conditions(filters):
-	conditions = (
-		"company = %(company)s AND posting_date >= %(from_date)s AND posting_date <= %(to_date)s"
-	)
+	conditions = "company = %(company)s AND posting_date >= %(from_date)s AND posting_date <= %(to_date)s"
 
 	if filters.get("pos_profile"):
 		conditions += " AND pos_profile = %(pos_profile)s"
diff --git a/erpnext/accounts/report/profit_and_loss_statement/profit_and_loss_statement.py b/erpnext/accounts/report/profit_and_loss_statement/profit_and_loss_statement.py
index 12a8554..58610b2 100644
--- a/erpnext/accounts/report/profit_and_loss_statement/profit_and_loss_statement.py
+++ b/erpnext/accounts/report/profit_and_loss_statement/profit_and_loss_statement.py
@@ -57,9 +57,7 @@
 	if net_profit_loss:
 		data.append(net_profit_loss)
 
-	columns = get_columns(
-		filters.periodicity, period_list, filters.accumulated_values, filters.company
-	)
+	columns = get_columns(filters.periodicity, period_list, filters.accumulated_values, filters.company)
 
 	chart = get_chart_data(filters, columns, income, expense, net_profit_loss)
 
diff --git a/erpnext/accounts/report/profit_and_loss_statement/test_profit_and_loss_statement.py b/erpnext/accounts/report/profit_and_loss_statement/test_profit_and_loss_statement.py
index b4423ab..816c2b9 100644
--- a/erpnext/accounts/report/profit_and_loss_statement/test_profit_and_loss_statement.py
+++ b/erpnext/accounts/report/profit_and_loss_statement/test_profit_and_loss_statement.py
@@ -3,7 +3,7 @@
 
 import frappe
 from frappe.tests.utils import FrappeTestCase
-from frappe.utils import add_days, getdate, today
+from frappe.utils import getdate, today
 
 from erpnext.accounts.doctype.sales_invoice.test_sales_invoice import create_sales_invoice
 from erpnext.accounts.report.financial_statements import get_period_list
@@ -61,7 +61,7 @@
 		)
 
 	def test_profit_and_loss_output_and_summary(self):
-		si = self.create_sales_invoice(qty=1, rate=150)
+		self.create_sales_invoice(qty=1, rate=150)
 
 		filters = self.get_report_filters()
 		period_list = get_period_list(
@@ -75,9 +75,7 @@
 		)
 
 		result = execute(filters)[1]
-		current_period = [x for x in period_list if x.from_date <= getdate() and x.to_date >= getdate()][
-			0
-		]
+		current_period = next(x for x in period_list if x.from_date <= getdate() and x.to_date >= getdate())
 		current_period_key = current_period.key
 		without_current_period = [x for x in period_list if x.key != current_period.key]
 		# all period except current period(whence invoice was posted), should be '0'
diff --git a/erpnext/accounts/report/purchase_register/purchase_register.py b/erpnext/accounts/report/purchase_register/purchase_register.py
index 39eb312..504c74b 100644
--- a/erpnext/accounts/report/purchase_register/purchase_register.py
+++ b/erpnext/accounts/report/purchase_register/purchase_register.py
@@ -316,16 +316,12 @@
 			tuple([inv.name for inv in invoice_list]),
 		)
 
-		purchase_taxes_query = get_taxes_query(
-			invoice_list, "Purchase Taxes and Charges", "Purchase Invoice"
-		)
+		purchase_taxes_query = get_taxes_query(invoice_list, "Purchase Taxes and Charges", "Purchase Invoice")
 		purchase_tax_accounts = purchase_taxes_query.run(as_dict=True, pluck="account_head")
 		tax_accounts = purchase_tax_accounts
 
 		if include_payments:
-			advance_taxes_query = get_taxes_query(
-				invoice_list, "Advance Taxes and Charges", "Payment Entry"
-			)
+			advance_taxes_query = get_taxes_query(invoice_list, "Advance Taxes and Charges", "Payment Entry")
 			advance_tax_accounts = advance_taxes_query.run(as_dict=True, pluck="account_head")
 			tax_accounts = set(tax_accounts + advance_tax_accounts)
 
@@ -399,7 +395,7 @@
 			pi.outstanding_amount,
 			pi.mode_of_payment,
 		)
-		.where((pi.docstatus == 1))
+		.where(pi.docstatus == 1)
 		.orderby(pi.posting_date, pi.name, order=Order.desc)
 	)
 
@@ -443,9 +439,7 @@
 		account_fieldname="paid_to",
 		party="supplier",
 		party_name="supplier_name",
-		party_account=get_party_account(
-			"Supplier", filters.supplier, filters.company, include_advance=True
-		),
+		party_account=get_party_account("Supplier", filters.supplier, filters.company, include_advance=True),
 	)
 	payment_entries = get_payment_entries(filters, args)
 	journal_entries = get_journal_entries(filters, args)
@@ -491,9 +485,7 @@
 	return internal_invoice_map
 
 
-def get_invoice_tax_map(
-	invoice_list, invoice_expense_map, expense_accounts, include_payments=False
-):
+def get_invoice_tax_map(invoice_list, invoice_expense_map, expense_accounts, include_payments=False):
 	tax_details = frappe.db.sql(
 		"""
 		select parent, account_head, case add_deduct_tax when "Add" then sum(base_tax_amount_after_discount_amount)
@@ -558,9 +550,7 @@
 			invoice_po_pr_map.setdefault(d.parent, frappe._dict()).setdefault("purchase_receipt", pr_list)
 
 		if d.project:
-			invoice_po_pr_map.setdefault(d.parent, frappe._dict()).setdefault("project", []).append(
-				d.project
-			)
+			invoice_po_pr_map.setdefault(d.parent, frappe._dict()).setdefault("project", []).append(d.project)
 
 	return invoice_po_pr_map
 
diff --git a/erpnext/accounts/report/purchase_register/test_purchase_register.py b/erpnext/accounts/report/purchase_register/test_purchase_register.py
index 6903662..a7a5c07 100644
--- a/erpnext/accounts/report/purchase_register/test_purchase_register.py
+++ b/erpnext/accounts/report/purchase_register/test_purchase_register.py
@@ -3,7 +3,7 @@
 
 import frappe
 from frappe.tests.utils import FrappeTestCase
-from frappe.utils import add_months, getdate, today
+from frappe.utils import add_months, today
 
 from erpnext.accounts.report.purchase_register.purchase_register import execute
 
@@ -13,9 +13,7 @@
 		frappe.db.sql("delete from `tabPurchase Invoice` where company='_Test Company 6'")
 		frappe.db.sql("delete from `tabGL Entry` where company='_Test Company 6'")
 
-		filters = frappe._dict(
-			company="_Test Company 6", from_date=add_months(today(), -1), to_date=today()
-		)
+		filters = frappe._dict(company="_Test Company 6", from_date=add_months(today(), -1), to_date=today())
 
 		pi = make_purchase_invoice()
 
@@ -40,7 +38,7 @@
 			supplier="_Test Supplier",
 		)
 
-		pi = make_purchase_invoice()
+		make_purchase_invoice()
 		pe = make_payment_entry()
 
 		report_results = execute(filters)
@@ -58,7 +56,7 @@
 	from erpnext.accounts.doctype.cost_center.test_cost_center import create_cost_center
 	from erpnext.stock.doctype.warehouse.test_warehouse import create_warehouse
 
-	gst_acc = create_account(
+	create_account(
 		account_name="GST",
 		account_type="Tax",
 		parent_account="Duties and Taxes - _TC6",
diff --git a/erpnext/accounts/report/sales_payment_summary/sales_payment_summary.py b/erpnext/accounts/report/sales_payment_summary/sales_payment_summary.py
index 0577214..7c2bf7e 100644
--- a/erpnext/accounts/report/sales_payment_summary/sales_payment_summary.py
+++ b/erpnext/accounts/report/sales_payment_summary/sales_payment_summary.py
@@ -144,9 +144,9 @@
 		"ON ("
 		"t1.parent = a.name and t1.base_total = a.base_total) "
 		"WHERE a.docstatus = 1"
-		" AND {conditions} "
+		f" AND {conditions} "
 		"GROUP BY "
-		"owner, posting_date, warehouse".format(conditions=conditions),
+		"owner, posting_date, warehouse",
 		filters,
 		as_dict=1,
 	)
@@ -156,7 +156,7 @@
 def get_sales_invoice_data(filters):
 	conditions = get_conditions(filters)
 	return frappe.db.sql(
-		"""
+		f"""
 		select
 			a.posting_date, a.owner,
 			sum(a.net_total) as "net_total",
@@ -168,9 +168,7 @@
 			and {conditions}
 			group by
 			a.owner, a.posting_date
-	""".format(
-			conditions=conditions
-		),
+	""",
 		filters,
 		as_dict=1,
 	)
@@ -182,7 +180,7 @@
 	invoice_list_names = ",".join("'" + invoice["name"] + "'" for invoice in invoice_list)
 	if invoice_list:
 		inv_mop = frappe.db.sql(
-			"""select a.owner,a.posting_date, ifnull(b.mode_of_payment, '') as mode_of_payment
+			f"""select a.owner,a.posting_date, ifnull(b.mode_of_payment, '') as mode_of_payment
 			from `tabSales Invoice` a, `tabSales Invoice Payment` b
 			where a.name = b.parent
 			and a.docstatus = 1
@@ -202,9 +200,7 @@
 			and a.docstatus = 1
 			and b.reference_type = 'Sales Invoice'
 			and b.reference_name in ({invoice_list_names})
-			""".format(
-				invoice_list_names=invoice_list_names
-			),
+			""",
 			as_dict=1,
 		)
 		for d in inv_mop:
@@ -215,11 +211,9 @@
 def get_invoices(filters):
 	conditions = get_conditions(filters)
 	return frappe.db.sql(
-		"""select a.name
+		f"""select a.name
 		from `tabSales Invoice` a
-		where a.docstatus = 1 and {conditions}""".format(
-			conditions=conditions
-		),
+		where a.docstatus = 1 and {conditions}""",
 		filters,
 		as_dict=1,
 	)
@@ -231,7 +225,7 @@
 	invoice_list_names = ",".join("'" + invoice["name"] + "'" for invoice in invoice_list)
 	if invoice_list:
 		inv_mop_detail = frappe.db.sql(
-			"""
+			f"""
 			select t.owner,
 			       t.posting_date,
 				   t.mode_of_payment,
@@ -264,23 +258,19 @@
 				group by a.owner, a.posting_date, mode_of_payment
 			) t
 			group by t.owner, t.posting_date, t.mode_of_payment
-			""".format(
-				invoice_list_names=invoice_list_names
-			),
+			""",
 			as_dict=1,
 		)
 
 		inv_change_amount = frappe.db.sql(
-			"""select a.owner, a.posting_date,
+			f"""select a.owner, a.posting_date,
 			ifnull(b.mode_of_payment, '') as mode_of_payment, sum(a.base_change_amount) as change_amount
 			from `tabSales Invoice` a, `tabSales Invoice Payment` b
 			where a.name = b.parent
 			and a.name in ({invoice_list_names})
 			and b.type = 'Cash'
 			and a.base_change_amount > 0
-			group by a.owner, a.posting_date, mode_of_payment""".format(
-				invoice_list_names=invoice_list_names
-			),
+			group by a.owner, a.posting_date, mode_of_payment""",
 			as_dict=1,
 		)
 
diff --git a/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py b/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py
index 3ad0ff2..3be96c6 100644
--- a/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py
+++ b/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py
@@ -33,7 +33,7 @@
 	def test_get_mode_of_payments(self):
 		filters = get_filters()
 
-		for dummy in range(2):
+		for _dummy in range(2):
 			si = create_sales_invoice_record()
 			si.insert()
 			si.submit()
@@ -53,8 +53,8 @@
 			pe.submit()
 
 		mop = get_mode_of_payments(filters)
-		self.assertTrue("Credit Card" in list(mop.values())[0])
-		self.assertTrue("Cash" in list(mop.values())[0])
+		self.assertTrue("Credit Card" in next(iter(mop.values())))
+		self.assertTrue("Cash" in next(iter(mop.values())))
 
 		# Cancel all Cash payment entry and check if this mode of payment is still fetched.
 		payment_entries = frappe.get_all(
@@ -67,13 +67,13 @@
 			pe.cancel()
 
 		mop = get_mode_of_payments(filters)
-		self.assertTrue("Credit Card" in list(mop.values())[0])
-		self.assertTrue("Cash" not in list(mop.values())[0])
+		self.assertTrue("Credit Card" in next(iter(mop.values())))
+		self.assertTrue("Cash" not in next(iter(mop.values())))
 
 	def test_get_mode_of_payments_details(self):
 		filters = get_filters()
 
-		for dummy in range(2):
+		for _dummy in range(2):
 			si = create_sales_invoice_record()
 			si.insert()
 			si.submit()
@@ -94,7 +94,7 @@
 
 		mopd = get_mode_of_payment_details(filters)
 
-		mopd_values = list(mopd.values())[0]
+		mopd_values = next(iter(mopd.values()))
 		for mopd_value in mopd_values:
 			if mopd_value[0] == "Credit Card":
 				cc_init_amount = mopd_value[1]
@@ -110,7 +110,7 @@
 			pe.cancel()
 
 		mopd = get_mode_of_payment_details(filters)
-		mopd_values = list(mopd.values())[0]
+		mopd_values = next(iter(mopd.values()))
 		for mopd_value in mopd_values:
 			if mopd_value[0] == "Credit Card":
 				cc_final_amount = mopd_value[1]
diff --git a/erpnext/accounts/report/sales_register/sales_register.py b/erpnext/accounts/report/sales_register/sales_register.py
index ec6dd72..f275695 100644
--- a/erpnext/accounts/report/sales_register/sales_register.py
+++ b/erpnext/accounts/report/sales_register/sales_register.py
@@ -129,7 +129,8 @@
 			if tax_acc not in income_accounts:
 				tax_amount_precision = (
 					get_field_precision(
-						frappe.get_meta("Sales Taxes and Charges").get_field("tax_amount"), currency=company_currency
+						frappe.get_meta("Sales Taxes and Charges").get_field("tax_amount"),
+						currency=company_currency,
 					)
 					or 2
 				)
@@ -357,9 +358,7 @@
 		tax_accounts = sales_tax_accounts
 
 		if include_payments:
-			advance_taxes_query = get_taxes_query(
-				invoice_list, "Advance Taxes and Charges", "Payment Entry"
-			)
+			advance_taxes_query = get_taxes_query(invoice_list, "Advance Taxes and Charges", "Payment Entry")
 			advance_tax_accounts = advance_taxes_query.run(as_dict=True, pluck="account_head")
 			tax_accounts = set(tax_accounts + advance_tax_accounts)
 
@@ -438,7 +437,7 @@
 			si.represents_company,
 			si.company,
 		)
-		.where((si.docstatus == 1))
+		.where(si.docstatus == 1)
 		.orderby(si.posting_date, si.name, order=Order.desc)
 	)
 
@@ -480,9 +479,7 @@
 		account_fieldname="paid_from",
 		party="customer",
 		party_name="customer_name",
-		party_account=get_party_account(
-			"Customer", filters.customer, filters.company, include_advance=True
-		),
+		party_account=get_party_account("Customer", filters.customer, filters.company, include_advance=True),
 	)
 	payment_entries = get_payment_entries(filters, args)
 	journal_entries = get_journal_entries(filters, args)
diff --git a/erpnext/accounts/report/share_balance/share_balance.py b/erpnext/accounts/report/share_balance/share_balance.py
index d02f53b..1d02a99 100644
--- a/erpnext/accounts/report/share_balance/share_balance.py
+++ b/erpnext/accounts/report/share_balance/share_balance.py
@@ -15,7 +15,7 @@
 
 	columns = get_columns(filters)
 
-	date = filters.get("date")
+	filters.get("date")
 
 	data = []
 
diff --git a/erpnext/accounts/report/share_ledger/share_ledger.py b/erpnext/accounts/report/share_ledger/share_ledger.py
index 629528e..ed65687 100644
--- a/erpnext/accounts/report/share_ledger/share_ledger.py
+++ b/erpnext/accounts/report/share_ledger/share_ledger.py
@@ -26,9 +26,9 @@
 		for transfer in transfers:
 			if transfer.transfer_type == "Transfer":
 				if transfer.from_shareholder == filters.get("shareholder"):
-					transfer.transfer_type += " to {}".format(transfer.to_shareholder)
+					transfer.transfer_type += f" to {transfer.to_shareholder}"
 				else:
-					transfer.transfer_type += " from {}".format(transfer.from_shareholder)
+					transfer.transfer_type += f" from {transfer.from_shareholder}"
 			row = [
 				filters.get("shareholder"),
 				transfer.date,
@@ -66,13 +66,11 @@
 	# if company:
 	# 	condition = 'AND company = %(company)s '
 	return frappe.db.sql(
-		"""SELECT * FROM `tabShare Transfer`
+		f"""SELECT * FROM `tabShare Transfer`
 		WHERE ((DATE(date) <= %(date)s AND from_shareholder = %(shareholder)s {condition})
 		OR (DATE(date) <= %(date)s AND to_shareholder = %(shareholder)s {condition}))
 		AND docstatus = 1
-		ORDER BY date""".format(
-			condition=condition
-		),
+		ORDER BY date""",
 		{"date": date, "shareholder": shareholder},
 		as_dict=1,
 	)
diff --git a/erpnext/accounts/report/tax_withholding_details/tax_withholding_details.py b/erpnext/accounts/report/tax_withholding_details/tax_withholding_details.py
index b18570b..ab50fcd 100644
--- a/erpnext/accounts/report/tax_withholding_details/tax_withholding_details.py
+++ b/erpnext/accounts/report/tax_withholding_details/tax_withholding_details.py
@@ -37,9 +37,7 @@
 		frappe.throw(_("From Date must be before To Date"))
 
 
-def get_result(
-	filters, tds_docs, tds_accounts, tax_category_map, journal_entry_party_map, net_total_map
-):
+def get_result(filters, tds_docs, tds_accounts, tax_category_map, journal_entry_party_map, net_total_map):
 	party_map = get_party_pan_map(filters.get("party_type"))
 	tax_rate_map = get_tax_rate_map(filters)
 	gle_map = get_gle_map(tds_docs)
@@ -92,9 +90,9 @@
 					party_type = "customer_type"
 
 				row = {
-					"pan"
-					if frappe.db.has_column(filters.party_type, "pan")
-					else "tax_id": party_map.get(party, {}).get("pan"),
+					"pan" if frappe.db.has_column(filters.party_type, "pan") else "tax_id": party_map.get(
+						party, {}
+					).get("pan"),
 					"party": party_map.get(party, {}).get("name"),
 				}
 
@@ -281,7 +279,7 @@
 	journal_entries = []
 	tax_category_map = frappe._dict()
 	net_total_map = frappe._dict()
-	or_filters = frappe._dict()
+	frappe._dict()
 	journal_entry_party_map = frappe._dict()
 	bank_accounts = frappe.get_all("Account", {"is_group": 0, "account_type": "Bank"}, pluck="name")
 
@@ -344,7 +342,7 @@
 	query = (
 		frappe.qb.from_(gle)
 		.select("voucher_no", "voucher_type", "against", "party")
-		.where((gle.is_cancelled == 0))
+		.where(gle.is_cancelled == 0)
 	)
 
 	if filters.get("from_date"):
diff --git a/erpnext/accounts/report/tds_computation_summary/tds_computation_summary.py b/erpnext/accounts/report/tds_computation_summary/tds_computation_summary.py
index 2b5566f..e14d932 100644
--- a/erpnext/accounts/report/tds_computation_summary/tds_computation_summary.py
+++ b/erpnext/accounts/report/tds_computation_summary/tds_computation_summary.py
@@ -67,13 +67,13 @@
 			},
 		)
 
-		party_category_wise_map.get((row.get("party"), row.get("section_code")))[
-			"total_amount"
-		] += row.get("total_amount", 0.0)
+		party_category_wise_map.get((row.get("party"), row.get("section_code")))["total_amount"] += row.get(
+			"total_amount", 0.0
+		)
 
-		party_category_wise_map.get((row.get("party"), row.get("section_code")))[
-			"tax_amount"
-		] += row.get("tax_amount", 0.0)
+		party_category_wise_map.get((row.get("party"), row.get("section_code")))["tax_amount"] += row.get(
+			"tax_amount", 0.0
+		)
 
 	final_result = get_final_result(party_category_wise_map)
 
@@ -82,7 +82,7 @@
 
 def get_final_result(party_category_wise_map):
 	out = []
-	for key, value in party_category_wise_map.items():
+	for _key, value in party_category_wise_map.items():
 		out.append(value)
 
 	return out
diff --git a/erpnext/accounts/report/trial_balance/trial_balance.py b/erpnext/accounts/report/trial_balance/trial_balance.py
index 2ff0eff..f216ece 100644
--- a/erpnext/accounts/report/trial_balance/trial_balance.py
+++ b/erpnext/accounts/report/trial_balance/trial_balance.py
@@ -120,9 +120,7 @@
 		ignore_opening_entries=True,
 	)
 
-	calculate_values(
-		accounts, gl_entries_by_account, opening_balances, filters.get("show_net_values")
-	)
+	calculate_values(accounts, gl_entries_by_account, opening_balances, filters.get("show_net_values"))
 	accumulate_values_into_parents(accounts, accounts_by_name)
 
 	data = prepare_data(accounts, filters, parent_children_map, company_currency)
@@ -170,9 +168,7 @@
 		)
 
 		# Report getting generate from the mid of a fiscal year
-		if getdate(last_period_closing_voucher[0].posting_date) < getdate(
-			add_days(filters.from_date, -1)
-		):
+		if getdate(last_period_closing_voucher[0].posting_date) < getdate(add_days(filters.from_date, -1)):
 			start_date = add_days(last_period_closing_voucher[0].posting_date, 1)
 			gle += get_opening_balance(
 				"GL Entry", filters, report_type, accounting_dimensions, start_date=start_date
@@ -253,9 +249,7 @@
 		if doctype == "Account Closing Balance":
 			opening_balance = opening_balance.where(closing_balance.is_period_closing_voucher_entry == 0)
 		else:
-			opening_balance = opening_balance.where(
-				closing_balance.voucher_type != "Period Closing Voucher"
-			)
+			opening_balance = opening_balance.where(closing_balance.voucher_type != "Period Closing Voucher")
 
 	if filters.cost_center:
 		lft, rgt = frappe.db.get_value("Cost Center", filters.cost_center, ["lft", "rgt"])
@@ -388,7 +382,7 @@
 			"to_date": filters.to_date,
 			"currency": company_currency,
 			"account_name": (
-				"{} - {}".format(d.account_number, d.account_name) if d.account_number else d.account_name
+				f"{d.account_number} - {d.account_name}" if d.account_number else d.account_name
 			),
 		}
 
diff --git a/erpnext/accounts/report/trial_balance_for_party/trial_balance_for_party.py b/erpnext/accounts/report/trial_balance_for_party/trial_balance_for_party.py
index ee22348..dd1a125 100644
--- a/erpnext/accounts/report/trial_balance_for_party/trial_balance_for_party.py
+++ b/erpnext/accounts/report/trial_balance_for_party/trial_balance_for_party.py
@@ -22,7 +22,7 @@
 
 def get_data(filters, show_party_name):
 	if filters.get("party_type") in ("Customer", "Supplier", "Employee", "Member"):
-		party_name_field = "{0}_name".format(frappe.scrub(filters.get("party_type")))
+		party_name_field = "{}_name".format(frappe.scrub(filters.get("party_type")))
 	elif filters.get("party_type") == "Shareholder":
 		party_name_field = "title"
 	else:
@@ -65,9 +65,7 @@
 		row.update({"debit": debit, "credit": credit})
 
 		# closing
-		closing_debit, closing_credit = toggle_debit_credit(
-			opening_debit + debit, opening_credit + credit
-		)
+		closing_debit, closing_credit = toggle_debit_credit(opening_debit + debit, opening_credit + credit)
 		row.update({"closing_debit": closing_debit, "closing_credit": closing_credit})
 
 		# totals
@@ -92,13 +90,12 @@
 
 
 def get_opening_balances(filters):
-
 	account_filter = ""
 	if filters.get("account"):
 		account_filter = "and account = %s" % (frappe.db.escape(filters.get("account")))
 
 	gle = frappe.db.sql(
-		"""
+		f"""
 		select party, sum(debit) as opening_debit, sum(credit) as opening_credit
 		from `tabGL Entry`
 		where company=%(company)s
@@ -106,9 +103,7 @@
 			and ifnull(party_type, '') = %(party_type)s and ifnull(party, '') != ''
 			and (posting_date < %(from_date)s or (ifnull(is_opening, 'No') = 'Yes' and posting_date <= %(to_date)s))
 			{account_filter}
-		group by party""".format(
-			account_filter=account_filter
-		),
+		group by party""",
 		{
 			"company": filters.company,
 			"from_date": filters.from_date,
@@ -127,13 +122,12 @@
 
 
 def get_balances_within_period(filters):
-
 	account_filter = ""
 	if filters.get("account"):
 		account_filter = "and account = %s" % (frappe.db.escape(filters.get("account")))
 
 	gle = frappe.db.sql(
-		"""
+		f"""
 		select party, sum(debit) as debit, sum(credit) as credit
 		from `tabGL Entry`
 		where company=%(company)s
@@ -142,9 +136,7 @@
 			and posting_date >= %(from_date)s and posting_date <= %(to_date)s
 			and ifnull(is_opening, 'No') = 'No'
 			{account_filter}
-		group by party""".format(
-			account_filter=account_filter
-		),
+		group by party""",
 		{
 			"company": filters.company,
 			"from_date": filters.from_date,
diff --git a/erpnext/accounts/report/utils.py b/erpnext/accounts/report/utils.py
index aed338a7..bd1b355 100644
--- a/erpnext/accounts/report/utils.py
+++ b/erpnext/accounts/report/utils.py
@@ -78,10 +78,10 @@
 	:return: Retrieved exchange rate
 	"""
 
-	rate = __exchange_rates.get("{0}-{1}@{2}".format(from_currency, to_currency, date))
+	rate = __exchange_rates.get(f"{from_currency}-{to_currency}@{date}")
 	if not rate:
 		rate = get_exchange_rate(from_currency, to_currency, date) or 1
-		__exchange_rates["{0}-{1}@{2}".format(from_currency, to_currency, date)] = rate
+		__exchange_rates[f"{from_currency}-{to_currency}@{date}"] = rate
 
 	return rate
 
@@ -136,9 +136,7 @@
 
 
 @frappe.whitelist()
-def get_invoiced_item_gross_margin(
-	sales_invoice=None, item_code=None, company=None, with_item_data=False
-):
+def get_invoiced_item_gross_margin(sales_invoice=None, item_code=None, company=None, with_item_data=False):
 	from erpnext.accounts.report.gross_profit.gross_profit import GrossProfitGenerator
 
 	sales_invoice = sales_invoice or frappe.form_dict.get("sales_invoice")
diff --git a/erpnext/accounts/report/voucher_wise_balance/voucher_wise_balance.py b/erpnext/accounts/report/voucher_wise_balance/voucher_wise_balance.py
index bd9e9fc..1918165 100644
--- a/erpnext/accounts/report/voucher_wise_balance/voucher_wise_balance.py
+++ b/erpnext/accounts/report/voucher_wise_balance/voucher_wise_balance.py
@@ -43,9 +43,7 @@
 	gle = frappe.qb.DocType("GL Entry")
 	query = (
 		frappe.qb.from_(gle)
-		.select(
-			gle.voucher_type, gle.voucher_no, Sum(gle.debit).as_("debit"), Sum(gle.credit).as_("credit")
-		)
+		.select(gle.voucher_type, gle.voucher_no, Sum(gle.debit).as_("debit"), Sum(gle.credit).as_("credit"))
 		.where(gle.is_cancelled == 0)
 		.groupby(gle.voucher_no)
 	)
diff --git a/erpnext/accounts/test/test_reports.py b/erpnext/accounts/test/test_reports.py
index 609f74e..c2e10f8 100644
--- a/erpnext/accounts/test/test_reports.py
+++ b/erpnext/accounts/test/test_reports.py
@@ -1,5 +1,4 @@
 import unittest
-from typing import List, Tuple
 
 from erpnext.tests.utils import ReportFilters, ReportName, execute_script_report
 
@@ -12,7 +11,7 @@
 }
 
 
-REPORT_FILTER_TEST_CASES: List[Tuple[ReportName, ReportFilters]] = [
+REPORT_FILTER_TEST_CASES: list[tuple[ReportName, ReportFilters]] = [
 	("General Ledger", {"group_by": "Group by Voucher (Consolidated)"}),
 	("General Ledger", {"group_by": "Group by Voucher (Consolidated)", "include_dimensions": 1}),
 	("Accounts Payable", {"range1": 30, "range2": 60, "range3": 90, "range4": 120}),
diff --git a/erpnext/accounts/test/test_utils.py b/erpnext/accounts/test/test_utils.py
index c439d4b..59cbc11 100644
--- a/erpnext/accounts/test/test_utils.py
+++ b/erpnext/accounts/test/test_utils.py
@@ -10,7 +10,6 @@
 	get_future_stock_vouchers,
 	get_voucherwise_gl_entries,
 	sort_stock_vouchers_by_posting_date,
-	update_reference_in_payment_entry,
 )
 from erpnext.stock.doctype.item.test_item import make_item
 from erpnext.stock.doctype.purchase_receipt.test_purchase_receipt import make_purchase_receipt
@@ -20,7 +19,7 @@
 class TestUtils(unittest.TestCase):
 	@classmethod
 	def setUpClass(cls):
-		super(TestUtils, cls).setUpClass()
+		super().setUpClass()
 		make_test_objects("Address", ADDRESS_RECORDS)
 
 	@classmethod
@@ -36,7 +35,6 @@
 		self.assertEqual(address, "_Test Shipping Address 2 Title-Shipping")
 
 	def test_get_voucher_wise_gl_entry(self):
-
 		pr = make_purchase_receipt(
 			item_code="_Test Item",
 			posting_date="2021-02-01",
@@ -144,12 +142,8 @@
 		frappe.db.set_default("supp_master_name", "Auto Name")
 
 		# Configure Autoname in Supplier DocType
-		make_property_setter(
-			"Supplier", None, "naming_rule", "Expression", "Data", for_doctype="Doctype"
-		)
-		make_property_setter(
-			"Supplier", None, "autoname", "SUP-.FY.-.#####", "Data", for_doctype="Doctype"
-		)
+		make_property_setter("Supplier", None, "naming_rule", "Expression", "Data", for_doctype="Doctype")
+		make_property_setter("Supplier", None, "autoname", "SUP-.FY.-.#####", "Data", for_doctype="Doctype")
 
 		fiscal_year = get_fiscal_year(nowdate())[0]
 
@@ -171,9 +165,7 @@
 		"address_title": "_Test Billing Address Title",
 		"city": "Lagos",
 		"country": "Nigeria",
-		"links": [
-			{"link_doctype": "Customer", "link_name": "_Test Customer 2", "doctype": "Dynamic Link"}
-		],
+		"links": [{"link_doctype": "Customer", "link_name": "_Test Customer 2", "doctype": "Dynamic Link"}],
 	},
 	{
 		"doctype": "Address",
@@ -182,9 +174,7 @@
 		"address_title": "_Test Shipping Address 1 Title",
 		"city": "Lagos",
 		"country": "Nigeria",
-		"links": [
-			{"link_doctype": "Customer", "link_name": "_Test Customer 2", "doctype": "Dynamic Link"}
-		],
+		"links": [{"link_doctype": "Customer", "link_name": "_Test Customer 2", "doctype": "Dynamic Link"}],
 	},
 	{
 		"doctype": "Address",
@@ -194,9 +184,7 @@
 		"city": "Lagos",
 		"country": "Nigeria",
 		"is_shipping_address": "1",
-		"links": [
-			{"link_doctype": "Customer", "link_name": "_Test Customer 2", "doctype": "Dynamic Link"}
-		],
+		"links": [{"link_doctype": "Customer", "link_name": "_Test Customer 2", "doctype": "Dynamic Link"}],
 	},
 	{
 		"doctype": "Address",
@@ -206,8 +194,6 @@
 		"city": "Lagos",
 		"country": "Nigeria",
 		"is_shipping_address": "1",
-		"links": [
-			{"link_doctype": "Customer", "link_name": "_Test Customer 1", "doctype": "Dynamic Link"}
-		],
+		"links": [{"link_doctype": "Customer", "link_name": "_Test Customer 1", "doctype": "Dynamic Link"}],
 	},
 ]
diff --git a/erpnext/accounts/utils.py b/erpnext/accounts/utils.py
index 02012ad..b61f195 100644
--- a/erpnext/accounts/utils.py
+++ b/erpnext/accounts/utils.py
@@ -3,7 +3,7 @@
 
 
 from json import loads
-from typing import TYPE_CHECKING, List, Optional, Tuple
+from typing import TYPE_CHECKING, Optional
 
 import frappe
 import frappe.defaults
@@ -29,7 +29,7 @@
 import erpnext
 
 # imported to enable erpnext.accounts.utils.get_account_currency
-from erpnext.accounts.doctype.account.account import get_account_currency  # noqa
+from erpnext.accounts.doctype.account.account import get_account_currency
 from erpnext.accounts.doctype.accounting_dimension.accounting_dimension import get_dimensions
 from erpnext.stock import get_warehouse_account_map
 from erpnext.stock.utils import get_stock_value_on
@@ -81,9 +81,7 @@
 		FY = DocType("Fiscal Year")
 
 		query = (
-			frappe.qb.from_(FY)
-			.select(FY.name, FY.year_start_date, FY.year_end_date)
-			.where(FY.disabled == 0)
+			frappe.qb.from_(FY).select(FY.name, FY.year_start_date, FY.year_end_date).where(FY.disabled == 0)
 		)
 
 		if fiscal_year:
@@ -130,9 +128,7 @@
 			else:
 				return ((fy.name, fy.year_start_date, fy.year_end_date),)
 
-	error_msg = _("""{0} {1} is not in any active Fiscal Year""").format(
-		label, formatdate(transaction_date)
-	)
+	error_msg = _("""{0} {1} is not in any active Fiscal Year""").format(label, formatdate(transaction_date))
 	if company:
 		error_msg = _("""{0} for {1}""").format(error_msg, frappe.bold(company))
 
@@ -209,12 +205,12 @@
 		acc = frappe.get_doc("Account", account)
 
 	try:
-		year_start_date = get_fiscal_year(date, company=company, verbose=0)[1]
+		get_fiscal_year(date, company=company, verbose=0)[1]
 	except FiscalYearError:
 		if getdate(date) > getdate(nowdate()):
 			# if fiscal year not found and the date is greater than today
 			# get fiscal year for today's date and its corresponding year start date
-			year_start_date = get_fiscal_year(nowdate(), verbose=1)[1]
+			get_fiscal_year(nowdate(), verbose=1)[1]
 		else:
 			# this indicates that it is a date older than any existing fiscal year.
 			# hence, assuming balance as 0.0
@@ -229,15 +225,14 @@
 		cc = frappe.get_doc("Cost Center", cost_center)
 		if cc.is_group:
 			cond.append(
-				""" exists (
+				f""" exists (
 				select 1 from `tabCost Center` cc where cc.name = gle.cost_center
-				and cc.lft >= %s and cc.rgt <= %s
+				and cc.lft >= {cc.lft} and cc.rgt <= {cc.rgt}
 			)"""
-				% (cc.lft, cc.rgt)
 			)
 
 		else:
-			cond.append("""gle.cost_center = %s """ % (frappe.db.escape(cost_center),))
+			cond.append(f"""gle.cost_center = {frappe.db.escape(cost_center)} """)
 
 	if account:
 		if not (frappe.flags.ignore_account_permission or ignore_account_permission):
@@ -246,11 +241,10 @@
 		# different filter for group and ledger - improved performance
 		if acc.is_group:
 			cond.append(
-				"""exists (
+				f"""exists (
 				select name from `tabAccount` ac where ac.name = gle.account
-				and ac.lft >= %s and ac.rgt <= %s
+				and ac.lft >= {acc.lft} and ac.rgt <= {acc.rgt}
 			)"""
-				% (acc.lft, acc.rgt)
 			)
 
 			# If group and currency same as company,
@@ -258,7 +252,7 @@
 			if acc.account_currency == frappe.get_cached_value("Company", acc.company, "default_currency"):
 				in_account_currency = False
 		else:
-			cond.append("""gle.account = %s """ % (frappe.db.escape(account),))
+			cond.append(f"""gle.account = {frappe.db.escape(account)} """)
 
 	if account_type:
 		accounts = frappe.db.get_all(
@@ -277,8 +271,7 @@
 
 	if party_type and party:
 		cond.append(
-			"""gle.party_type = %s and gle.party = %s """
-			% (frappe.db.escape(party_type), frappe.db.escape(party))
+			f"""gle.party_type = {frappe.db.escape(party_type)} and gle.party = {frappe.db.escape(party)} """
 		)
 
 	if company:
@@ -295,11 +288,9 @@
 
 		bal = frappe.db.sql(
 			"""
-			SELECT {0}
+			SELECT {}
 			FROM `tabGL Entry` gle
-			WHERE {1}""".format(
-				select_field, " and ".join(cond)
-			),
+			WHERE {}""".format(select_field, " and ".join(cond)),
 			(precision, precision),
 		)[0][0]
 		# if bal is None, return 0
@@ -334,30 +325,25 @@
 
 		# for pl accounts, get balance within a fiscal year
 		if acc.report_type == "Profit and Loss":
-			cond.append(
-				"posting_date >= '%s' and voucher_type != 'Period Closing Voucher'" % year_start_date
-			)
+			cond.append("posting_date >= '%s' and voucher_type != 'Period Closing Voucher'" % year_start_date)
 
 		# different filter for group and ledger - improved performance
 		if acc.is_group:
 			cond.append(
-				"""exists (
+				f"""exists (
 				select name from `tabAccount` ac where ac.name = gle.account
-				and ac.lft >= %s and ac.rgt <= %s
+				and ac.lft >= {acc.lft} and ac.rgt <= {acc.rgt}
 			)"""
-				% (acc.lft, acc.rgt)
 			)
 		else:
-			cond.append("""gle.account = %s """ % (frappe.db.escape(account),))
+			cond.append(f"""gle.account = {frappe.db.escape(account)} """)
 
 		entries = frappe.db.sql(
 			"""
 			SELECT name, posting_date, account, party_type, party,debit,credit,
 				voucher_type, voucher_no, against_voucher_type, against_voucher
 			FROM `tabGL Entry` gle
-			WHERE {0}""".format(
-				" and ".join(cond)
-			),
+			WHERE {}""".format(" and ".join(cond)),
 			as_dict=True,
 		)
 
@@ -380,13 +366,11 @@
 					or (gle.against_voucher == gle.voucher_no and gle.get(dr_or_cr) > 0)
 				):
 					payment_amount = frappe.db.sql(
-						"""
-						SELECT {0}
+						f"""
+						SELECT {select_fields}
 						FROM `tabGL Entry` gle
 						WHERE docstatus < 2 and posting_date <= %(date)s and against_voucher = %(voucher_no)s
-						and party = %(party)s and name != %(name)s""".format(
-							select_fields
-						),
+						and party = %(party)s and name != %(name)s""",
 						{"date": date, "voucher_no": gle.voucher_no, "party": gle.party, "name": gle.name},
 					)[0][0]
 
@@ -441,7 +425,7 @@
 	args = make_tree_args(**args)
 
 	if args.parent_cost_center == args.company:
-		args.parent_cost_center = "{0} - {1}".format(
+		args.parent_cost_center = "{} - {}".format(
 			args.parent_cost_center, frappe.get_cached_value("Company", args.company, "abbr")
 		)
 
@@ -457,7 +441,7 @@
 
 
 def _build_dimensions_dict_for_exc_gain_loss(
-	entry: dict | object = None, active_dimensions: list = None
+	entry: dict | object = None, active_dimensions: list | None = None
 ):
 	dimensions_dict = frappe._dict()
 	if entry and active_dimensions:
@@ -535,7 +519,11 @@
 		# Only update outstanding for newly linked vouchers
 		for entry in entries:
 			update_voucher_outstanding(
-				entry.against_voucher_type, entry.against_voucher, entry.account, entry.party_type, entry.party
+				entry.against_voucher_type,
+				entry.against_voucher,
+				entry.account,
+				entry.party_type,
+				entry.party,
 			)
 		# update advance paid in Advance Receivable/Payable doctypes
 		if update_advance_paid:
@@ -566,15 +554,15 @@
 			.select(journal_acc[args.get("dr_or_cr")])
 			.where(
 				(journal_acc.account == args.get("account"))
-				& ((journal_acc.party_type == args.get("party_type")))
-				& ((journal_acc.party == args.get("party")))
+				& (journal_acc.party_type == args.get("party_type"))
+				& (journal_acc.party == args.get("party"))
 				& (
 					(journal_acc.reference_type.isnull())
 					| (journal_acc.reference_type.isin(["", "Sales Order", "Purchase Order"]))
 				)
-				& ((journal_entry.name == args.get("voucher_no")))
-				& ((journal_acc.name == args.get("voucher_detail_no")))
-				& ((journal_entry.docstatus == 1))
+				& (journal_entry.name == args.get("voucher_no"))
+				& (journal_acc.name == args.get("voucher_detail_no"))
+				& (journal_entry.docstatus == 1)
 			)
 		)
 
@@ -614,9 +602,7 @@
 
 
 def validate_allocated_amount(args):
-	precision = args.get("precision") or frappe.db.get_single_value(
-		"System Settings", "currency_precision"
-	)
+	precision = args.get("precision") or frappe.db.get_single_value("System Settings", "currency_precision")
 	if args.get("allocated_amount") < 0:
 		throw(_("Allocated amount cannot be negative"))
 	elif flt(args.get("allocated_amount"), precision) > flt(args.get("unadjusted_amount"), precision):
@@ -631,9 +617,9 @@
 
 	# Update Advance Paid in SO/PO since they might be getting unlinked
 	update_advance_paid = []
-	advance_payment_doctypes = frappe.get_hooks(
-		"advance_payment_receivable_doctypes"
-	) + frappe.get_hooks("advance_payment_payable_doctypes")
+	advance_payment_doctypes = frappe.get_hooks("advance_payment_receivable_doctypes") + frappe.get_hooks(
+		"advance_payment_payable_doctypes"
+	)
 	if jv_detail.get("reference_type") in advance_payment_doctypes:
 		update_advance_paid.append((jv_detail.reference_type, jv_detail.reference_name))
 
@@ -709,9 +695,9 @@
 		existing_row = payment_entry.get("references", {"name": d["voucher_detail_no"]})[0]
 
 		# Update Advance Paid in SO/PO since they are getting unlinked
-		advance_payment_doctypes = frappe.get_hooks(
-			"advance_payment_receivable_doctypes"
-		) + frappe.get_hooks("advance_payment_payable_doctypes")
+		advance_payment_doctypes = frappe.get_hooks("advance_payment_receivable_doctypes") + frappe.get_hooks(
+			"advance_payment_payable_doctypes"
+		)
 		if existing_row.get("reference_doctype") in advance_payment_doctypes:
 			update_advance_paid.append((existing_row.reference_doctype, existing_row.reference_name))
 
@@ -747,7 +733,7 @@
 
 
 def cancel_exchange_gain_loss_journal(
-	parent_doc: dict | object, referenced_dt: str = None, referenced_dn: str = None
+	parent_doc: dict | object, referenced_dt: str | None = None, referenced_dn: str | None = None
 ) -> None:
 	"""
 	Cancel Exchange Gain/Loss for Sales/Purchase Invoice, if they have any.
@@ -790,7 +776,7 @@
 
 
 def update_accounting_ledgers_after_reference_removal(
-	ref_type: str = None, ref_no: str = None, payment_name: str = None
+	ref_type: str | None = None, ref_no: str | None = None, payment_name: str | None = None
 ):
 	# General Ledger
 	gle = qb.DocType("GL Entry")
@@ -816,9 +802,7 @@
 		.set(ple.modified, now())
 		.set(ple.modified_by, frappe.session.user)
 		.where(
-			(ple.against_voucher_type == ref_type)
-			& (ple.against_voucher_no == ref_no)
-			& (ple.delinked == 0)
+			(ple.against_voucher_type == ref_type) & (ple.against_voucher_no == ref_no) & (ple.delinked == 0)
 		)
 	)
 
@@ -835,7 +819,7 @@
 		qb.from_(adv_type).delete().where(adv_type.parent == ref_doc.name).run()
 
 
-def unlink_ref_doc_from_payment_entries(ref_doc: object = None, payment_name: str = None):
+def unlink_ref_doc_from_payment_entries(ref_doc: object = None, payment_name: str | None = None):
 	remove_ref_doc_link_from_jv(ref_doc.doctype, ref_doc.name, payment_name)
 	remove_ref_doc_link_from_pe(ref_doc.doctype, ref_doc.name, payment_name)
 	update_accounting_ledgers_after_reference_removal(ref_doc.doctype, ref_doc.name, payment_name)
@@ -843,7 +827,7 @@
 
 
 def remove_ref_doc_link_from_jv(
-	ref_type: str = None, ref_no: str = None, payment_name: str = None
+	ref_type: str | None = None, ref_no: str | None = None, payment_name: str | None = None
 ):
 	jea = qb.DocType("Journal Entry Account")
 
@@ -883,7 +867,7 @@
 
 
 def remove_ref_doc_link_from_pe(
-	ref_type: str = None, ref_no: str = None, payment_name: str = None
+	ref_type: str | None = None, ref_no: str | None = None, payment_name: str | None = None
 ):
 	per = qb.DocType("Payment Entry Reference")
 	pay = qb.DocType("Payment Entry")
@@ -891,9 +875,7 @@
 	linked_pe = (
 		qb.from_(per)
 		.select(per.parent)
-		.where(
-			(per.reference_doctype == ref_type) & (per.reference_name == ref_no) & (per.docstatus.lt(2))
-		)
+		.where((per.reference_doctype == ref_type) & (per.reference_name == ref_no) & (per.docstatus.lt(2)))
 		.run(as_list=1)
 	)
 	linked_pe = convert_to_list(linked_pe)
@@ -906,9 +888,7 @@
 			.set(per.allocated_amount, 0)
 			.set(per.modified, now())
 			.set(per.modified_by, frappe.session.user)
-			.where(
-				(per.docstatus.lt(2) & (per.reference_doctype == ref_type) & (per.reference_name == ref_no))
-			)
+			.where(per.docstatus.lt(2) & (per.reference_doctype == ref_type) & (per.reference_name == ref_no))
 		)
 
 		if payment_name:
@@ -923,13 +903,15 @@
 
 				# Call cancel on only removed reference
 				references = [
-					x for x in pe_doc.references if x.reference_doctype == ref_type and x.reference_name == ref_no
+					x
+					for x in pe_doc.references
+					if x.reference_doctype == ref_type and x.reference_name == ref_no
 				]
 				[pe_doc.make_advance_gl_entries(x, cancel=1) for x in references]
 
 				pe_doc.clear_unallocated_reference_document_rows()
 				pe_doc.validate_payment_type_with_outstanding()
-			except Exception as e:
+			except Exception:
 				msg = _("There were issues unlinking payment entry {0}.").format(pe_doc.name)
 				msg += "<br>"
 				msg += _("Please cancel payment entry manually first")
@@ -939,9 +921,7 @@
 				pay.base_total_allocated_amount, pe_doc.base_total_allocated_amount
 			).set(pay.unallocated_amount, pe_doc.unallocated_amount).set(pay.modified, now()).set(
 				pay.modified_by, frappe.session.user
-			).where(
-				pay.name == pe
-			).run()
+			).where(pay.name == pe).run()
 
 		frappe.msgprint(_("Payment Entries {0} are un-linked").format("\n".join(linked_pe)))
 
@@ -975,9 +955,10 @@
 			dr_or_cr = d.voucher_type == "Sales Invoice" and "credit" or "debit"
 
 			frappe.db.sql(
-				"""update `tabGL Entry` set %s = %s + %s
-				where voucher_type = %s and voucher_no = %s and %s > 0 limit 1"""
-				% (dr_or_cr, dr_or_cr, "%s", "%s", "%s", dr_or_cr),
+				"""update `tabGL Entry` set {} = {} + {}
+				where voucher_type = {} and voucher_no = {} and {} > 0 limit 1""".format(
+					dr_or_cr, dr_or_cr, "%s", "%s", "%s", dr_or_cr
+				),
 				(d.diff, d.voucher_type, d.voucher_no),
 			)
 
@@ -1020,7 +1001,6 @@
 	limit=None,  # passed by reconciliation tool
 	voucher_no=None,  # filter passed by reconciliation tool
 ):
-
 	ple = qb.DocType("Payment Ledger Entry")
 	outstanding_invoices = []
 	precision = frappe.get_precision("Sales Invoice", "outstanding_amount") or 2
@@ -1083,15 +1063,11 @@
 					)
 				)
 
-	outstanding_invoices = sorted(
-		outstanding_invoices, key=lambda k: k["due_date"] or getdate(nowdate())
-	)
+	outstanding_invoices = sorted(outstanding_invoices, key=lambda k: k["due_date"] or getdate(nowdate()))
 	return outstanding_invoices
 
 
-def get_account_name(
-	account_type=None, root_type=None, is_group=None, account_currency=None, company=None
-):
+def get_account_name(account_type=None, root_type=None, is_group=None, account_currency=None, company=None):
 	"""return account based on matching conditions"""
 	return frappe.db.get_value(
 		"Account",
@@ -1124,7 +1100,7 @@
 	if frappe.db.has_column(doctype, "disabled") and not include_disabled:
 		filters.append(["disabled", "=", False])
 
-	filters.append(['ifnull(`{0}`,"")'.format(parent_fieldname), "=", "" if is_root else parent])
+	filters.append([f'ifnull(`{parent_fieldname}`,"")', "=", "" if is_root else parent])
 
 	if is_root:
 		fields += ["root_type", "report_type", "account_currency"] if doctype == "Account" else []
@@ -1144,7 +1120,6 @@
 
 @frappe.whitelist()
 def get_account_balances(accounts, company):
-
 	if isinstance(accounts, str):
 		accounts = loads(accounts)
 
@@ -1155,9 +1130,7 @@
 
 	for account in accounts:
 		account["company_currency"] = company_currency
-		account["balance"] = flt(
-			get_balance_on(account["value"], in_account_currency=False, company=company)
-		)
+		account["balance"] = flt(get_balance_on(account["value"], in_account_currency=False, company=company))
 		if account["account_currency"] and account["account_currency"] != company_currency:
 			account["balance_in_account_currency"] = flt(get_balance_on(account["value"], company=company))
 
@@ -1307,20 +1280,17 @@
 	warehouse_account=None,
 	company=None,
 ):
-	stock_vouchers = get_future_stock_vouchers(
-		posting_date, posting_time, for_warehouses, for_items, company
-	)
+	stock_vouchers = get_future_stock_vouchers(posting_date, posting_time, for_warehouses, for_items, company)
 	repost_gle_for_stock_vouchers(stock_vouchers, posting_date, company, warehouse_account)
 
 
 def repost_gle_for_stock_vouchers(
-	stock_vouchers: List[Tuple[str, str]],
+	stock_vouchers: list[tuple[str, str]],
 	posting_date: str,
-	company: Optional[str] = None,
+	company: str | None = None,
 	warehouse_account=None,
 	repost_doc: Optional["RepostItemValuation"] = None,
 ):
-
 	from erpnext.accounts.general_ledger import toggle_debit_credit_if_negative
 
 	if not stock_vouchers:
@@ -1366,16 +1336,12 @@
 
 def _delete_pl_entries(voucher_type, voucher_no):
 	ple = qb.DocType("Payment Ledger Entry")
-	qb.from_(ple).delete().where(
-		(ple.voucher_type == voucher_type) & (ple.voucher_no == voucher_no)
-	).run()
+	qb.from_(ple).delete().where((ple.voucher_type == voucher_type) & (ple.voucher_no == voucher_no)).run()
 
 
 def _delete_gl_entries(voucher_type, voucher_no):
 	gle = qb.DocType("GL Entry")
-	qb.from_(gle).delete().where(
-		(gle.voucher_type == voucher_type) & (gle.voucher_no == voucher_no)
-	).run()
+	qb.from_(gle).delete().where((gle.voucher_type == voucher_type) & (gle.voucher_no == voucher_no)).run()
 
 
 def _delete_accounting_ledger_entries(voucher_type, voucher_no):
@@ -1386,9 +1352,7 @@
 	_delete_pl_entries(voucher_type, voucher_no)
 
 
-def sort_stock_vouchers_by_posting_date(
-	stock_vouchers: List[Tuple[str, str]]
-) -> List[Tuple[str, str]]:
+def sort_stock_vouchers_by_posting_date(stock_vouchers: list[tuple[str, str]]) -> list[tuple[str, str]]:
 	sle = frappe.qb.DocType("Stock Ledger Entry")
 	voucher_nos = [v[1] for v in stock_vouchers]
 
@@ -1409,10 +1373,7 @@
 	return sorted_vouchers
 
 
-def get_future_stock_vouchers(
-	posting_date, posting_time, for_warehouses=None, for_items=None, company=None
-):
-
+def get_future_stock_vouchers(posting_date, posting_time, for_warehouses=None, for_items=None, company=None):
 	values = []
 	condition = ""
 	if for_items:
@@ -1428,16 +1389,14 @@
 		values.append(company)
 
 	future_stock_vouchers = frappe.db.sql(
-		"""select distinct sle.voucher_type, sle.voucher_no
+		f"""select distinct sle.voucher_type, sle.voucher_no
 		from `tabStock Ledger Entry` sle
 		where
 			timestamp(sle.posting_date, sle.posting_time) >= timestamp(%s, %s)
 			and is_cancelled = 0
 			{condition}
-		order by timestamp(sle.posting_date, sle.posting_time) asc, creation asc for update""".format(
-			condition=condition
-		),
-		tuple([posting_date, posting_time] + values),
+		order by timestamp(sle.posting_date, sle.posting_time) asc, creation asc for update""",
+		tuple([posting_date, posting_time, *values]),
 		as_dict=True,
 	)
 
@@ -1464,9 +1423,8 @@
 		select name, account, credit, debit, cost_center, project, voucher_type, voucher_no
 			from `tabGL Entry`
 		where
-			posting_date >= %s and voucher_no in (%s)"""
-		% ("%s", ", ".join(["%s"] * len(voucher_nos))),
-		tuple([posting_date] + voucher_nos),
+			posting_date >= {} and voucher_no in ({})""".format("%s", ", ".join(["%s"] * len(voucher_nos))),
+		tuple([posting_date, *voucher_nos]),
 		as_dict=1,
 	)
 
@@ -1505,16 +1463,16 @@
 def get_stock_accounts(company, voucher_type=None, voucher_no=None):
 	stock_accounts = [
 		d.name
-		for d in frappe.db.get_all(
-			"Account", {"account_type": "Stock", "company": company, "is_group": 0}
-		)
+		for d in frappe.db.get_all("Account", {"account_type": "Stock", "company": company, "is_group": 0})
 	]
 	if voucher_type and voucher_no:
 		if voucher_type == "Journal Entry":
 			stock_accounts = [
 				d.account
 				for d in frappe.db.get_all(
-					"Journal Entry Account", {"parent": voucher_no, "account": ["in", stock_accounts]}, "account"
+					"Journal Entry Account",
+					{"parent": voucher_no, "account": ["in", stock_accounts]},
+					"account",
 				)
 			]
 
@@ -1523,7 +1481,11 @@
 				d.account
 				for d in frappe.db.get_all(
 					"GL Entry",
-					{"voucher_type": voucher_type, "voucher_no": voucher_no, "account": ["in", stock_accounts]},
+					{
+						"voucher_type": voucher_type,
+						"voucher_no": voucher_no,
+						"account": ["in", stock_accounts],
+					},
 					"account",
 				)
 			]
@@ -1554,9 +1516,7 @@
 
 
 def get_journal_entry(account, stock_adjustment_account, amount):
-	db_or_cr_warehouse_account = (
-		"credit_in_account_currency" if amount < 0 else "debit_in_account_currency"
-	)
+	db_or_cr_warehouse_account = "credit_in_account_currency" if amount < 0 else "debit_in_account_currency"
 	db_or_cr_stock_adjustment_account = (
 		"debit_in_account_currency" if amount < 0 else "credit_in_account_currency"
 	)
@@ -1577,7 +1537,7 @@
 			frappe.delete_doc("Desktop Icon", icon)
 
 
-def create_err_and_its_journals(companies: list = None) -> None:
+def create_err_and_its_journals(companies: list | None = None) -> None:
 	if companies:
 		for company in companies:
 			err = frappe.new_doc("Exchange Rate Revaluation")
@@ -1634,9 +1594,7 @@
 		accounts_with_types = (
 			qb.from_(account)
 			.select(account.name, account.account_type)
-			.where(
-				(account.account_type.isin(["Receivable", "Payable"]) & (account.company.isin(companies)))
-			)
+			.where(account.account_type.isin(["Receivable", "Payable"]) & (account.company.isin(companies)))
 			.run(as_dict=True)
 		)
 		receivable_or_payable_accounts = [y.name for y in accounts_with_types]
@@ -1703,7 +1661,6 @@
 		ple_map = get_payment_ledger_entries(gl_entries, cancel=cancel)
 
 		for entry in ple_map:
-
 			ple = frappe.get_doc(entry)
 
 			if cancel:
@@ -1781,7 +1738,7 @@
 		query.run()
 
 
-class QueryPaymentLedger(object):
+class QueryPaymentLedger:
 	"""
 	Helper Class for Querying Payment Ledger Entry
 	"""
@@ -1949,7 +1906,8 @@
 				Table("outstanding").amount_in_account_currency.as_("outstanding_in_account_currency"),
 				(Table("vouchers").amount - Table("outstanding").amount).as_("paid_amount"),
 				(
-					Table("vouchers").amount_in_account_currency - Table("outstanding").amount_in_account_currency
+					Table("vouchers").amount_in_account_currency
+					- Table("outstanding").amount_in_account_currency
 				).as_("paid_amount_in_account_currency"),
 				Table("vouchers").due_date,
 				Table("vouchers").currency,