A modest string writer

gmon.py 957B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. # -*- coding: utf-8 -*-
  2. class GmonPluginError(Exception):
  3. pass
  4. class XGPRenderer(object):
  5. def __init__(self, txt=None):
  6. self.txt = txt
  7. self.img = None
  8. self.tool = txt
  9. self.bar = None
  10. self.click = None
  11. self._fields = ['txt', 'img', 'tool', 'bar', 'click']
  12. def __str__(self):
  13. out = ""
  14. for field in self._fields:
  15. value = getattr(self, field, None)
  16. if value is not None:
  17. out += "<%(f)s>%(v)s</%(f)s>" % {'f': field, 'v': value}
  18. return out
  19. class BasePlugin(object):
  20. def __init__(self, data):
  21. self.data = data
  22. def render(self):
  23. method_n = "render_" + self.data.fmt
  24. def ex(__):
  25. raise GmonPluginError("method not defined: " + method_n)
  26. render_fn = getattr(self, method_n, ex)
  27. return render_fn()
  28. def render_xgp(self):
  29. return XGPRenderer(self.render_plain())