Show
Ignore:
Timestamp:
01/20/09 09:37:29 (19 months ago)
Author:
Ga?tan de Menten <ged@…>
Branch:
default
Message:

made factory and loader arguments of the Report constructor optional (use
defaults)

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • relatorio/reporting.py

    r79 r92  
    8282            cls.mime_func.append(id_function) 
    8383 
     84default_loader = MIMETemplateLoader(auto_reload=True) 
     85 
     86class DefaultFactory: 
     87    """This is the default factory used by relatorio. 
     88 
     89    It just returns a copy of the data it receives""" 
     90 
     91    def __call__(self, **kwargs): 
     92        data = kwargs.copy() 
     93        return data 
     94 
     95default_factory = DefaultFactory() 
    8496 
    8597class Report: 
     
    8799    """ 
    88100 
    89     def __init__(self, path, mimetype, factory, loader): 
     101    def __init__(self, path, mimetype, 
     102                 factory=default_factory, loader=default_loader): 
    90103        self.fpath = path 
    91104        self.mimetype = mimetype 
     
    102115        return '<relatorio report on %s>' % self.fpath 
    103116 
    104  
    105 class DefaultFactory: 
    106     """This is the default factory used by relatorio. 
    107      
    108     It just returns a copy of the data it receives""" 
    109  
    110     def __call__(self, **kwargs): 
    111         data = kwargs.copy() 
    112         return data 
    113117 
    114118 
     
    130134        self.classes = {} 
    131135        self.default_factory = datafactory 
    132         self.loader = MIMETemplateLoader(auto_reload=True) 
     136        self.loader = default_loader 
    133137 
    134138    def add_report(self, klass, mimetype, template_path, data_factory=None, 
     
    136140        """adds a report to the repository. 
    137141 
    138         You will be able to find the report via  
     142        You will be able to find the report via 
    139143            - the class it is working on 
    140144            - the mimetype it outputs 
    141145            - the name of the report 
    142          
     146 
    143147        You also have the opportunity to define a specific data_factory. 
    144148        """ 
     
    149153                        self.loader) 
    150154        reports.ids[report_name] = report, mimetype 
    151         reports.mimetypes.setdefault(mimetype, []).append((report, report_name)) 
     155        reports.mimetypes.setdefault(mimetype, []) \ 
     156                         .append((report, report_name)) 
    152157 
    153158    def by_mime(self, klass, mimetype):