Changeset 808
- Timestamp:
- 11/10/05 13:54:36
- Files:
-
- trunk/cherrypy/__init__.py (modified) (1 diff)
- trunk/cherrypy/_cphttptools.py (modified) (1 diff)
- trunk/cherrypy/_cpserver.py (modified) (2 diffs)
- trunk/cherrypy/filters (added)
- trunk/cherrypy/filters/__init__.py (copied) (copied from trunk/cherrypy/lib/filter/__init__.py) (1 diff)
- trunk/cherrypy/filters/basefilter.py (moved) (moved from trunk/cherrypy/lib/filter/basefilter.py)
- trunk/cherrypy/filters/baseurlfilter.py (moved) (moved from trunk/cherrypy/lib/filter/baseurlfilter.py)
- trunk/cherrypy/filters/cachefilter.py (moved) (moved from trunk/cherrypy/lib/filter/cachefilter.py)
- trunk/cherrypy/filters/decodingfilter.py (moved) (moved from trunk/cherrypy/lib/filter/decodingfilter.py)
- trunk/cherrypy/filters/encodingfilter.py (moved) (moved from trunk/cherrypy/lib/filter/encodingfilter.py)
- trunk/cherrypy/filters/gzipfilter.py (moved) (moved from trunk/cherrypy/lib/filter/gzipfilter.py)
- trunk/cherrypy/filters/logdebuginfofilter.py (moved) (moved from trunk/cherrypy/lib/filter/logdebuginfofilter.py)
- trunk/cherrypy/filters/nsgmlsfilter.py (moved) (moved from trunk/cherrypy/lib/filter/nsgmlsfilter.py)
- trunk/cherrypy/filters/sessionauthenticatefilter.py (moved) (moved from trunk/cherrypy/lib/filter/sessionauthenticatefilter.py)
- trunk/cherrypy/filters/sessionfilter.py (moved) (moved from trunk/cherrypy/lib/filter/sessionfilter.py)
- trunk/cherrypy/filters/staticfilter.py (moved) (moved from trunk/cherrypy/lib/filter/staticfilter.py)
- trunk/cherrypy/filters/tidyfilter.py (moved) (moved from trunk/cherrypy/lib/filter/tidyfilter.py)
- trunk/cherrypy/filters/xmlrpcfilter.py (moved) (moved from trunk/cherrypy/lib/filter/xmlrpcfilter.py)
- trunk/cherrypy/lib/filter/__init__.py (modified) (1 diff)
- trunk/cherrypy/test/helper.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/cherrypy/__init__.py
r768 r808 51 51 52 52 # Create variables needed for session (see lib/sessionfilter.py for more info) 53 from lib.filterimport sessionfilter53 from filters import sessionfilter 54 54 session = sessionfilter.SessionWrapper() 55 55 _sessionDataHolder = {} # Needed for RAM sessions only trunk/cherrypy/_cphttptools.py
r807 r808 8 8 import cherrypy 9 9 from cherrypy import _cputil, _cpcgifs, _cpwsgiserver 10 from cherrypy. lib.filterimport applyFilters10 from cherrypy.filters import applyFilters 11 11 from cherrypy.lib import cptools, httptools 12 12 trunk/cherrypy/_cpserver.py
r807 r808 7 7 8 8 import cherrypy 9 from cherrypy import _cphttptools 10 from cherrypy.lib import autoreload, profiler, filter,cptools9 from cherrypy import _cphttptools, filters 10 from cherrypy.lib import autoreload, profiler, cptools 11 11 12 12 # Use a flag to indicate the state of the application server. … … 278 278 279 279 # Initialize the built in filters 280 filter .init()280 filters.init() 281 281 282 282 trunk/cherrypy/filters/__init__.py
r807 r808 3 3 4 4 # Filters that are always included 5 from cherrypy. lib.filterimport baseurlfilter, cachefilter, \5 from cherrypy.filters import baseurlfilter, cachefilter, \ 6 6 decodingfilter, encodingfilter, gzipfilter, logdebuginfofilter, \ 7 7 staticfilter, nsgmlsfilter, tidyfilter, \ trunk/cherrypy/lib/filter/__init__.py
r807 r808 1 import cherrypy2 from cherrypy import _cputil 1 import warnings 2 warnings.warn("cherrypy.lib.filter has been superseded by cherrypy.filters and will be removed in CP 2.3") 3 3 4 # Filters that are always included 5 from cherrypy.lib.filter import baseurlfilter, cachefilter, \ 6 decodingfilter, encodingfilter, gzipfilter, logdebuginfofilter, \ 7 staticfilter, nsgmlsfilter, tidyfilter, \ 8 xmlrpcfilter, sessionauthenticatefilter, \ 9 sessionfilter 10 11 # this contains the classes for each filter type 12 # we do not store the instances here because the test 13 # suite must reinitialize the filters without restarting 14 # the server 15 _classes = { 16 'BaseUrlFilter' : baseurlfilter.BaseUrlFilter, 17 'CacheFilter' : cachefilter.CacheFilter, 18 'DecodingFilter' : decodingfilter.DecodingFilter, 19 'EncodingFilter' : encodingfilter.EncodingFilter, 20 'GzipFilter' : gzipfilter.GzipFilter, 21 'LogDebugInfoFilter' : logdebuginfofilter.LogDebugInfoFilter, 22 'NsgmlsFilter' : nsgmlsfilter.NsgmlsFilter, 23 'SessionAuthenticateFilter' : sessionauthenticatefilter.SessionAuthenticateFilter, 24 'SessionFilter' : sessionfilter.SessionFilter, 25 'StaticFilter' : staticfilter.StaticFilter, 26 'TidyFilter' : tidyfilter.TidyFilter, 27 'XmlRpcFilter' : xmlrpcfilter.XmlRpcFilter, 28 } 29 30 # These are in order for a reason! 31 # They must be strings matching keys in _classes 32 _input_order = [ 33 'CacheFilter', 34 'LogDebugInfoFilter', 35 'BaseUrlFilter', 36 'DecodingFilter', 37 'SessionFilter', 38 'SessionAuthenticateFilter', 39 'StaticFilter', 40 'NsgmlsFilter', 41 'TidyFilter', 42 'XmlRpcFilter', 43 ] 44 45 _output_order = [ 46 'XmlRpcFilter', 47 'EncodingFilter', 48 'TidyFilter', 49 'NsgmlsFilter', 50 'LogDebugInfoFilter', 51 'GzipFilter', 52 'SessionFilter', 53 'CacheFilter', 54 ] 55 56 _input_methods = ['onStartResource', 'beforeRequestBody', 'beforeMain'] 57 _output_methods = ['beforeFinalize', 'onEndResource', 58 'beforeErrorResponse', 'afterErrorResponse'] 59 60 61 def init(): 62 """Initialize the filters.""" 63 instances = {} 64 inputs, outputs = [], [] 65 66 conf = cherrypy.config.get 67 68 for name in _input_order + conf('server.inputFilters', []): 69 f = instances.get(name) 70 if f is None: 71 f = instances[name] = _classes[name]() 72 inputs.append(f) 73 74 for name in conf('server.outputFilters', []) + _output_order: 75 f = instances.get(name) 76 if f is None: 77 f = instances[name] = _classes[name]() 78 outputs.append(f) 79 80 # Transform the instance lists into a dict of methods 81 _filterhooks.clear() 82 for name in _input_methods: 83 _filterhooks[name] = [] 84 for f in inputs: 85 method = getattr(f, name, None) 86 if method: 87 _filterhooks[name].append(method) 88 for name in _output_methods: 89 _filterhooks[name] = [] 90 for f in outputs: 91 method = getattr(f, name, None) 92 if method: 93 _filterhooks[name].append(method) 94 95 96 _filterhooks = {} 97 98 99 def applyFilters(methodName): 100 """Execute the given method for all registered filters.""" 101 special_methods = [] 102 for f in _cputil.getSpecialAttribute("_cpFilterList"): 103 method = getattr(f, methodName, None) 104 if method: 105 special_methods.append(method) 106 107 if methodName in _input_methods: 108 # Run special filters after defaults. 109 for method in _filterhooks[methodName] + special_methods: 110 method() 111 else: 112 # Run special filters before defaults. 113 for method in special_methods + _filterhooks[methodName]: 114 method() 4 from cherrypy.filters import * trunk/cherrypy/test/helper.py
r807 r808 193 193 cherrypy.config.reset() 194 194 setConfig(conf) 195 from cherrypy .lib import filter196 filter .init()195 from cherrypy import filters 196 filters.init() 197 197 198 198 suite = CPTestLoader.loadTestsFromName(testmod) … … 209 209 def _test_main_thread(): 210 210 cherrypy.server.wait() 211 from cherrypy .lib import filter212 filter .init()211 from cherrypy import filters 212 filters.init() 213 213 try: 214 214 webtest.main()

