fixes to main.py

This commit is contained in:
John Wiegley 2004-09-17 19:33:10 -04:00
parent 79b664f6f0
commit a2bbd7dc8f
3 changed files with 47 additions and 4 deletions

View file

@ -578,6 +578,9 @@ void export_journal()
class_< transaction_t > ("Transaction")
.def(init<account_t *, amount_t, optional<unsigned int, std::string> >())
.def(self == self)
.def(self != self)
.add_property("entry",
make_getter(&transaction_t::entry,
return_value_policy<reference_existing_object>()))
@ -593,6 +596,9 @@ void export_journal()
class_< account_t >
("Account", init<optional<account_t *, std::string, std::string> >())
.def(self == self)
.def(self != self)
.def_readwrite("parent", &account_t::parent)
.def_readwrite("name", &account_t::name)
.def_readwrite("note", &account_t::note)
@ -615,11 +621,18 @@ void export_journal()
;
class_< journal_t > ("Journal")
.def(self == self)
.def(self != self)
.def_readonly("sources", &journal_t::sources)
.def("__len__", entries_len)
#if 0
.def("__getitem__", entries_getitem, return_internal_reference<1>())
#else
.def("__getitem__", entries_getitem,
return_value_policy<reference_existing_object>())
#endif
.def("add_account", &journal_t::add_account)
.def("remove_account", &journal_t::remove_account)
.def("find_account", py_find_account_1, return_internal_reference<1>())
@ -634,6 +647,9 @@ void export_journal()
;
scope in_entry = class_< entry_t > ("Entry")
.def(self == self)
.def(self != self)
.def_readwrite("date", &entry_t::date)
.def_readwrite("state", &entry_t::state)
.def_readwrite("code", &entry_t::code)

View file

@ -62,6 +62,13 @@ class transaction_t
delete cost;
}
bool operator==(const transaction_t& xact) {
return this == &xact;
}
bool operator!=(const transaction_t& xact) {
return ! (*this == xact);
}
bool valid() const;
};
@ -96,6 +103,13 @@ class entry_t
(*i)->~transaction_t();
}
bool operator==(const entry_t& entry) {
return this == &entry;
}
bool operator!=(const entry_t& entry) {
return ! (*this == entry);
}
void add_transaction(transaction_t * xact);
bool remove_transaction(transaction_t * xact);
@ -129,6 +143,13 @@ class account_t
~account_t();
bool operator==(const account_t& account) {
return this == &account;
}
bool operator!=(const account_t& account) {
return ! (*this == account);
}
std::string fullname() const;
void add_account(account_t * acct) {
@ -183,6 +204,13 @@ class journal_t
}
~journal_t();
bool operator==(const journal_t& journal) {
return this == &journal;
}
bool operator!=(const journal_t& journal) {
return ! (*this == journal);
}
void add_account(account_t * acct) {
master->add_account(acct);
}

View file

@ -106,7 +106,8 @@ class FormatTransaction (TransactionHandler):
self.output.flush ()
def __call__ (self, xact):
if self.nformatter is not None and xact.entry is self.last_entry:
if self.nformatter is not None and self.last_entry is not None and \
xact.entry.payee == self.last_entry.payee:
self.output.write(self.nformatter.format(xact))
else:
self.output.write(self.formatter.format(xact))
@ -150,9 +151,7 @@ if 0:
else:
# These for loops are equivalent to `walk_entries', but far slower
for entry in journal:
#print "1:", entry
for xact in entry:
#print "2:", xact.entry
handler (xact)
handler.flush ()