summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xstocks.py25
1 files 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
</tr>
- #for $iplace, $qty in $i.itersortedqty
+ #for $iplace, $qty in $i.qty.itersorted
<tr class="place">
<td colspan="3"></td>
<td>$iplace</td>