entries = entries._replace.....
Paul
"""
For example, a possible configuration could be:
plugin "tagaccount`" "{
'accounts': {
'Assets:Cash:Bank',
'Assets:Cash:Float' },
'tag': 'CASH'
}"
"""
__author__ = 'Paul Hamshere'
from beancount.core import data
from beancount.core import account_types
__plugins__ = ['tagaccount']
def tagaccount(entries, options_map, config):
"""
Args:
entries: a list of entry instances
options_map: a dict of options parsed from the file
config: A configuration string, which is intended to be a Python dict
Returns:
A tuple of entries and errors.
"""
# Parse and extract configuration values.
config_obj = eval(config, {}, {})
if not isinstance(config_obj, dict):
raise RuntimeError("Invalid plugin configuration: should be a single dict.")
accounts = config_obj.pop('accounts', {})
tagged = config_obj.pop('tag',{})
new_entries = []
for entry in entries:
if isinstance(entry, data.Transaction):
orig_entry = entry
for posting in entry.postings:
if (posting.account in accounts):
tagset = entry.tags
tagset = (tagset or set()) | set((tagged,))
entry = entry._replace(tags=tagset)
new_entries.append(entry)
return new_entries, []
--
You received this message because you are subscribed to the Google Groups "Beancount" group.
To unsubscribe from this group and stop receiving emails from it, send an email to beancount+unsubscribe@googlegroups.com.
To post to this group, send email to bean...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/beancount/68c72034-53d7-4f1c-91f2-3a66ec32aaab%40googlegroups.com.
To unsubscribe from this group and stop receiving emails from it, send an email to beancount+...@googlegroups.com.
To post to this group, send email to bean...@googlegroups.com.
To unsubscribe from this group and stop receiving emails from it, send an email to beancount+unsubscribe@googlegroups.com.
To post to this group, send email to bean...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/beancount/c6267881-9785-42cb-a568-5bf5e52530e7%40googlegroups.com.