Download Install Tutorial Docs FAQ Tools WikiLicense Team IRC Planet Involvement Shop Book

Changeset 858

Show
Ignore:
Timestamp:
12/05/05 12:03:33
Author:
rdelon
Message:

Restored backward compatibility for custom filters (was broken in [856])

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/cherrypy/_cphttptools.py

    r856 r858  
    3434            self.closed = True 
    3535            try: 
    36                 applyFilters('on_end_request', 'onEndRequest'
     36                applyFilters('on_end_request'
    3737            except (KeyboardInterrupt, SystemExit): 
    3838                raise 
     
    8080             
    8181            try: 
    82                 applyFilters('on_start_resource', 'onStartResource'
     82                applyFilters('on_start_resource'
    8383                 
    8484                try: 
    8585                    self.processHeaders() 
    8686                     
    87                     applyFilters('before_request_body', 'beforeRequestBody'
     87                    applyFilters('before_request_body'
    8888                    if self.processRequestBody: 
    8989                        self.processBody() 
    9090                     
    91                     applyFilters('before_main', 'beforeMain'
     91                    applyFilters('before_main'
    9292                    if self.executeMain: 
    9393                        self.main() 
    9494                     
    95                     applyFilters('before_finalize', 'beforeFinalize'
     95                    applyFilters('before_finalize'
    9696                    cherrypy.response.finalize() 
    9797                except cherrypy.RequestHandled: 
     
    102102                    # we return the redirect or error page immediately 
    103103                    inst.set_response() 
    104                     applyFilters('before_finalize', 'before_finalize'
     104                    applyFilters('before_finalize'
    105105                    cherrypy.response.finalize() 
    106106            finally: 
    107                 applyFilters('on_end_resource', 'onEndResource'
     107                applyFilters('on_end_resource'
    108108        except (KeyboardInterrupt, SystemExit): 
    109109            raise 
     
    304304            icofile = os.path.join(os.path.dirname(__file__), "favicon.ico") 
    305305            cptools.serveFile(icofile) 
    306             applyFilters('before_finalize', 'beforeFinalize'
     306            applyFilters('before_finalize'
    307307            cherrypy.response.finalize() 
    308308            raise cherrypy.RequestHandled() 
     
    448448        """Set status, headers, and body when an unanticipated error occurs.""" 
    449449        try: 
    450             applyFilters('before_error_response', 'beforeErrorResponse'
     450            applyFilters('before_error_response'
    451451            
    452452            # _cp_on_error will probably change self.body. 
     
    456456            self.finalize() 
    457457             
    458             applyFilters('after_error_response', 'afterErrorResponse'
     458            applyFilters('after_error_response'
    459459            return 
    460460        except cherrypy.HTTPRedirect, inst: 
  • trunk/cherrypy/filters/__init__.py

    r856 r858  
    2828] 
    2929 
    30 _input_methods = ['on_start_resource', 'onStartResource', 
    31         'before_request_body', 'beforeRequestBody', 
    32         'before_main', 'beforeMain'] 
    33 _output_methods = ['before_finalize', 'beforeFinalize', 
    34         'on_end_resource', 'onEndResource', 
    35         'on_end_request', 'onEndRequest', 
    36         'before_error_response', 'beforeErrorResponse', 
    37         'after_error_response', 'afterErrorResponse'] 
     30_input_methods = ['on_start_resource', 'before_request_body', 'before_main'] 
     31_output_methods = ['before_finalize', 'on_end_resource', 'on_end_request', 
     32        'before_error_response', 'after_error_response'] 
    3833 
     34backward_compatibility_dict = { 
     35    'on_start_resource': 'onStartResource', 
     36    'before_request_body': 'beforeRequestBody', 
     37    'before_main': 'beforeMain', 
     38    'before_finalize': 'beforeFinalize', 
     39    'on_end_resource': 'onEndResource', 
     40    'on_end_request': 'onEndRequest', 
     41    'before_error_response': 'beforeErrorResponse', 
     42    'after_error_response': 'afterErrorResponse' 
     43} 
    3944 
    4045def init(): 
     
    99104 
    100105 
    101 def applyFilters(method_name, alternate_method_name = None): 
     106def applyFilters(method_name): 
    102107    """Execute the given method for all registered filters.""" 
    103108    special_methods = [] 
    104109    for f in _cputil.get_special_attribute("_cp_filters", "_cpFilterList"): 
    105         method = getattr(f, method_name, None) 
    106         if (method is None) and alternate_method_name: 
    107             # alternate_method_name is for backward compatibility 
    108             method = getattr(f, alternate_method_name, None) 
     110        # Try old name first 
     111        old_method_name = backward_compatibility_dict.get(method_name) 
     112        method = getattr(f, old_method_name, None) 
     113        if (method is None): 
     114            method = getattr(f, method_name, None) 
    109115        if method: 
    110116            special_methods.append(method) 
    111      
     117 
    112118    if method_name in _input_methods: 
    113119        # Run special filters after defaults. 

Hosted by WebFaction

Log in as guest/cpguest to create tickets