Changeset 72:ff1bfd773909

Show
Ignore:
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:
1 added
7 modified

Legend:

Unmodified
Added
Removed
  • relatorio/__init__.py

    r64 r72  
    1111""" 
    1212from relatorio.reporting import MIMETemplateLoader, ReportRepository, Report 
    13 MIMETemplateLoader.load_template_engines() 
     13import templates 
    1414 
    1515__version__ = '0.4.0' 
  • relatorio/reporting.py

    r67 r72  
    8585            cls.mime_func.append(id_function) 
    8686 
    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  
    10387 
    10488class Report: 
  • relatorio/templates/__init__.py

    r62 r72  
    1919############################################################################### 
    2020 
    21 __metaclass__ = type 
     21import warnings 
    2222 
    23 import genshi.core 
     23plugins = ['opendocument', 'pdf', 'chart'] 
    2424 
    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) 
     25for 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) 
  • relatorio/templates/chart.py

    r70 r72  
    2828from genshi.template import NewTextTemplate 
    2929 
    30 from relatorio.templates import RelatorioStream 
     30from relatorio.templates.base import RelatorioStream 
     31from relatorio.reporting import MIMETemplateLoader 
    3132 
    3233import cairo 
     
    9091        return result 
    9192 
     93MIMETemplateLoader.add_factory('chart', Template, Template.id_function) 
  • relatorio/templates/opendocument.py

    r71 r72  
    3535from genshi.template import MarkupTemplate 
    3636 
    37 from relatorio.templates import RelatorioStream 
    38 from relatorio.reporting import Report 
     37from relatorio.templates.base import RelatorioStream 
     38from relatorio.reporting import Report, MIMETemplateLoader 
    3939 
    4040GENSHI_EXPR = re.compile(r'''((/)?(for|choose|otherwise|when|if|with)\s*(\s(\w+)=["'](.*)["']|$)|.*)''') 
     
    121121 
    122122    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. 
    124124        """ 
    125125        tree = lxml.etree.parse(StringIO(content)) 
     
    327327 
    328328        return self.new_oo.getvalue() 
     329 
     330MIMETemplateLoader.add_factory('oo.org', Template) 
  • relatorio/templates/pdf.py

    r62 r72  
    3131from genshi.template import NewTextTemplate 
    3232 
    33 from relatorio.templates import RelatorioStream 
     33from relatorio.templates.base import RelatorioStream 
     34from relatorio.reporting import MIMETemplateLoader 
    3435 
    3536TEXEXEC_PATH = '/usr/bin/texexec' 
     
    6667        return pdf 
    6768 
     69MIMETemplateLoader.add_factory('pdf', Template) 
  • setup.py

    r64 r72  
    2727    ], 
    2828    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         ], 
    3729    })