[py3] Convert filter object to list (#15260)

diff --git a/erpnext/hr/doctype/upload_attendance/upload_attendance.py b/erpnext/hr/doctype/upload_attendance/upload_attendance.py
index 78d5aee..e8b4698 100644
--- a/erpnext/hr/doctype/upload_attendance/upload_attendance.py
+++ b/erpnext/hr/doctype/upload_attendance/upload_attendance.py
@@ -98,7 +98,7 @@
 	from frappe.modules import scrub
 
 	rows = read_csv_content_from_uploaded_file()
-	rows = filter(lambda x: x and any(x), rows)
+	rows = list(filter(lambda x: x and any(x), rows))
 	if not rows:
 		msg = [_("Please select a csv file")]
 		return {"messages": msg, "error": msg}
diff --git a/erpnext/setup/doctype/email_digest/email_digest.py b/erpnext/setup/doctype/email_digest/email_digest.py
index eadb9b1..e6027c2 100644
--- a/erpnext/setup/doctype/email_digest/email_digest.py
+++ b/erpnext/setup/doctype/email_digest/email_digest.py
@@ -45,8 +45,8 @@
 		# send email only to enabled users
 		valid_users = [p[0] for p in frappe.db.sql("""select name from `tabUser`
 			where enabled=1""")]
-		recipients = filter(lambda r: r in valid_users,
-			self.recipient_list.split("\n"))
+		recipients = list(filter(lambda r: r in valid_users,
+			self.recipient_list.split("\n")))
 
 		original_user = frappe.session.user
 
diff --git a/erpnext/setup/doctype/naming_series/naming_series.py b/erpnext/setup/doctype/naming_series/naming_series.py
index 54c5d17..4e08105 100644
--- a/erpnext/setup/doctype/naming_series/naming_series.py
+++ b/erpnext/setup/doctype/naming_series/naming_series.py
@@ -49,7 +49,7 @@
 		}
 
 	def scrub_options_list(self, ol):
-		options = filter(lambda x: x, [cstr(n).strip() for n in ol])
+		options = list(filter(lambda x: x, [cstr(n).strip() for n in ol]))
 		return options
 
 	def update_series(self, arg=None):
diff --git a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py
index 43a66a8..58255d4 100644
--- a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py
+++ b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py
@@ -61,7 +61,7 @@
 					- flt(qty, item.precision("qty")) * flt(rate, item.precision("valuation_rate")))
 				return True
 
-		items = filter(lambda d: _changed(d), self.items)
+		items = list(filter(lambda d: _changed(d), self.items))
 
 		if not items:
 			frappe.throw(_("None of the items have any change in quantity or value."),