From 1018efba761d58630f5b713af2fecc867810a6ca Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Wed, 4 Apr 2012 22:28:04 +0200 Subject: do not save 0 qty --- stocks.py | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/stocks.py b/stocks.py index 5c7bb52..5fd68c1 100755 --- a/stocks.py +++ b/stocks.py @@ -24,26 +24,35 @@ class StocksParseError (StocksError): def __str__ (self): return '%s:%d: %s' % (self.filename, self.line, self.message) +class StocksItemQty (dict): + """Quantity dict of StocksItem.""" + + def __setitem__ (self, key, value): + if value: + dict.__setitem__ (self, key, value) + else: + del self[key] + + def itersorted (self, withmain = False): + for k in sorted (self.keys ()): + if withmain or k != 'main': + yield k, self[k] + class StocksItem: """A specific stock item.""" def __init__ (self, code, cmd, qty, desc = None): self.code = code self.cmd = cmd - self.qty = { 'main': qty } + self.qty = StocksItemQty (main = qty) self.desc = desc - def itersortedqty (self, withmain = False): - for k in sorted (self.qty.keys ()): - if withmain or k != 'main': - yield k, self.qty[k] - def __str__ (self): s = [ ] s.append ('%s\t%s\t%d' % (self.code, self.cmd, self.qty['main'])) if self.desc: s.extend (('\t', self.desc)) - for place, qty in self.itersortedqty (): + for place, qty in self.qty.itersorted (): s.append ('\n\t%s\t%d' % (place, qty)) return ''.join (s) @@ -258,7 +267,7 @@ $stylesheet $command_mode($i) #end filter - #for $iplace, $qty in $i.itersortedqty + #for $iplace, $qty in $i.qty.itersorted $iplace -- cgit v1.2.3