home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2010 November / maximum-cd-2010-11.iso / DiscContents / calibre-0.7.13.msi / file_2392 (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2010-08-06  |  2.6 KB  |  87 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import threading
  5. import sys
  6.  
  7. class _RequestConfig(object):
  8.     _RequestConfig__shared_state = threading.local()
  9.     
  10.     def __getattr__(self, name):
  11.         return getattr(self._RequestConfig__shared_state, name)
  12.  
  13.     
  14.     def __setattr__(self, name, value):
  15.         if name == 'environ':
  16.             self.load_wsgi_environ(value)
  17.             return self._RequestConfig__shared_state.__setattr__(name, value)
  18.         return self._RequestConfig__shared_state.__setattr__(name, value)
  19.  
  20.     
  21.     def __delattr__(self, name):
  22.         delattr(self._RequestConfig__shared_state, name)
  23.  
  24.     
  25.     def load_wsgi_environ(self, environ):
  26.         if 'HTTPS' in environ and environ.get('wsgi.url_scheme') == 'https' or environ.get('HTTP_X_FORWARDED_PROTO') == 'https':
  27.             self._RequestConfig__shared_state.protocol = 'https'
  28.         else:
  29.             self._RequestConfig__shared_state.protocol = 'http'
  30.         
  31.         try:
  32.             self.mapper.environ = environ
  33.         except AttributeError:
  34.             pass
  35.  
  36.         
  37.         try:
  38.             if 'PATH_INFO' in environ:
  39.                 mapper = self.mapper
  40.                 path = environ['PATH_INFO']
  41.                 result = mapper.routematch(path)
  42.                 if result is not None:
  43.                     self._RequestConfig__shared_state.mapper_dict = result[0]
  44.                     self._RequestConfig__shared_state.route = result[1]
  45.                 else:
  46.                     self._RequestConfig__shared_state.mapper_dict = None
  47.                     self._RequestConfig__shared_state.route = None
  48.         except AttributeError:
  49.             pass
  50.  
  51.         if 'HTTP_X_FORWARDED_HOST' in environ:
  52.             self._RequestConfig__shared_state.host = environ['HTTP_X_FORWARDED_HOST']
  53.         elif 'HTTP_HOST' in environ:
  54.             self._RequestConfig__shared_state.host = environ['HTTP_HOST']
  55.         else:
  56.             self._RequestConfig__shared_state.host = environ['SERVER_NAME']
  57.             if environ['wsgi.url_scheme'] == 'https':
  58.                 if environ['SERVER_PORT'] != '443':
  59.                     self._RequestConfig__shared_state.host += ':' + environ['SERVER_PORT']
  60.                 
  61.             elif environ['SERVER_PORT'] != '80':
  62.                 self._RequestConfig__shared_state.host += ':' + environ['SERVER_PORT']
  63.             
  64.  
  65.  
  66.  
  67. def request_config(original = False):
  68.     obj = _RequestConfig()
  69.     
  70.     try:
  71.         if obj.request_local and original is False:
  72.             return getattr(obj, 'request_local')()
  73.     except AttributeError:
  74.         obj.request_local = False
  75.         obj.using_request_local = False
  76.  
  77.     return _RequestConfig()
  78.  
  79. from routes.mapper import Mapper
  80. from routes.util import redirect_to, url_for, URLGenerator
  81. __all__ = [
  82.     'Mapper',
  83.     'url_for',
  84.     'URLGenerator',
  85.     'redirect_to',
  86.     'request_config']
  87.