Changeset 72:ff1bfd773909
- Timestamp:
- 11/07/08 10:05:38 (22 months ago)
- Author:
- Nicolas ?vrard <nicoe@…>
- Branch:
- default
- Message:
-
Do not use the entrypoint stuff anymore.
- Files:
-
Legend:
- Unmodified
- Added
- Removed
-
|
r64
|
r72
|
|
| 11 | 11 | """ |
| 12 | 12 | from relatorio.reporting import MIMETemplateLoader, ReportRepository, Report |
| 13 | | MIMETemplateLoader.load_template_engines() |
| | 13 | import templates |
| 14 | 14 | |
| 15 | 15 | __version__ = '0.4.0' |
-
|
r67
|
r72
|
|
| 85 | 85 | cls.mime_func.append(id_function) |
| 86 | 86 | |
| 87 | | @classmethod |
| 88 | | def load_template_engines(cls): |
| 89 | | """loads template engines found via PEAK's pkg_resources""" |
| 90 | | for entrypoint in pkg_resources.iter_entry_points( |
| 91 | | 'relatorio.templates.engines'): |
| 92 | | try: |
| 93 | | engine = entrypoint.load() |
| 94 | | if hasattr(engine, 'id_function'): |
| 95 | | cls.add_factory(entrypoint.name, engine, engine.id_function) |
| 96 | | else: |
| 97 | | cls.add_factory(entrypoint.name, engine) |
| 98 | | except ImportError: |
| 99 | | warnings.warn('We were not able to load %s. You will not ' |
| 100 | | 'be able to use its functonlities' % |
| 101 | | entrypoint.module_name) |
| 102 | | |
| 103 | 87 | |
| 104 | 88 | class Report: |
-
|
r62
|
r72
|
|
| 19 | 19 | ############################################################################### |
| 20 | 20 | |
| 21 | | __metaclass__ = type |
| | 21 | import warnings |
| 22 | 22 | |
| 23 | | import genshi.core |
| | 23 | plugins = ['opendocument', 'pdf', 'chart'] |
| 24 | 24 | |
| 25 | | |
| 26 | | class RelatorioStream(genshi.core.Stream): |
| 27 | | "Base class for the relatorio streams." |
| 28 | | |
| 29 | | def render(self, method=None, encoding='utf-8', out=None, **kwargs): |
| 30 | | "calls the serializer to render the template" |
| 31 | | return self.serializer(self.events) |
| 32 | | |
| 33 | | def serialize(self, method='xml', **kwargs): |
| 34 | | "generates the bitstream corresponding to the template" |
| 35 | | return self.render(method, **kwargs) |
| 36 | | |
| 37 | | def __or__(self, function): |
| 38 | | "Support for the bitwise operator" |
| 39 | | return RelatorioStream(self.events | function, self.serializer) |
| | 25 | for name in plugins: |
| | 26 | try: |
| | 27 | __import__('relatorio.templates.%s' % name) |
| | 28 | except: |
| | 29 | warnings.warn("Unable to load plugin '%s', you will not be able " |
| | 30 | "to use it" % name) |
-
|
r70
|
r72
|
|
| 28 | 28 | from genshi.template import NewTextTemplate |
| 29 | 29 | |
| 30 | | from relatorio.templates import RelatorioStream |
| | 30 | from relatorio.templates.base import RelatorioStream |
| | 31 | from relatorio.reporting import MIMETemplateLoader |
| 31 | 32 | |
| 32 | 33 | import cairo |
| … |
… |
|
| 90 | 91 | return result |
| 91 | 92 | |
| | 93 | MIMETemplateLoader.add_factory('chart', Template, Template.id_function) |
-
|
r71
|
r72
|
|
| 35 | 35 | from genshi.template import MarkupTemplate |
| 36 | 36 | |
| 37 | | from relatorio.templates import RelatorioStream |
| 38 | | from relatorio.reporting import Report |
| | 37 | from relatorio.templates.base import RelatorioStream |
| | 38 | from relatorio.reporting import Report, MIMETemplateLoader |
| 39 | 39 | |
| 40 | 40 | GENSHI_EXPR = re.compile(r'''((/)?(for|choose|otherwise|when|if|with)\s*(\s(\w+)=["'](.*)["']|$)|.*)''') |
| … |
… |
|
| 121 | 121 | |
| 122 | 122 | def insert_directives(self, content): |
| 123 | | """adds to genshi directives, handle the images and the innerdocs. |
| | 123 | """adds the genshi directives, handle the images and the innerdocs. |
| 124 | 124 | """ |
| 125 | 125 | tree = lxml.etree.parse(StringIO(content)) |
| … |
… |
|
| 327 | 327 | |
| 328 | 328 | return self.new_oo.getvalue() |
| | 329 | |
| | 330 | MIMETemplateLoader.add_factory('oo.org', Template) |
-
|
r62
|
r72
|
|
| 31 | 31 | from genshi.template import NewTextTemplate |
| 32 | 32 | |
| 33 | | from relatorio.templates import RelatorioStream |
| | 33 | from relatorio.templates.base import RelatorioStream |
| | 34 | from relatorio.reporting import MIMETemplateLoader |
| 34 | 35 | |
| 35 | 36 | TEXEXEC_PATH = '/usr/bin/texexec' |
| … |
… |
|
| 66 | 67 | return pdf |
| 67 | 68 | |
| | 69 | MIMETemplateLoader.add_factory('pdf', Template) |
-
|
r64
|
r72
|
|
| 27 | 27 | ], |
| 28 | 28 | test_suite="nose.collector", |
| 29 | | entry_points={ |
| 30 | | "relatorio.templates.engines": [ |
| 31 | | "oo.org = relatorio.templates.opendocument:Template", |
| 32 | | "pdf = relatorio.templates.pdf:Template", |
| 33 | | "text = genshi.template:TextTemplate", |
| 34 | | "xml = genshi.template:MarkupTemplate", |
| 35 | | "chart = relatorio.templates.chart:Template", |
| 36 | | ], |
| 37 | 29 | }) |