Jason R. Coombs avatar Jason R. Coombs committed 997532f

Adding a query to a ledger

Comments (0)

Files changed (1)

jaraco/financial/ledger.py

 	def balance(self):
 		return sum(txn.amount for txn in self)
 
+	def query(self, descriptor=None, amount=None):
+		for txn in self:
+			for designation in always_iterable(txn.designation):
+				if descriptor and designation.descriptor != descriptor:
+					continue
+				if amount is not None and designation.amount != amount:
+					continue
+				yield txn
+				# don't yield any transaction more than once
+				break
+
 class Named(object):
 	def __init__(self, name, *args, **kwargs):
 		super(Named, self).__init__(*args, **kwargs)
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.