diff options
Diffstat (limited to 'pecan/__init__.py')
-rw-r--r-- | pecan/__init__.py | 134 |
1 files changed, 0 insertions, 134 deletions
diff --git a/pecan/__init__.py b/pecan/__init__.py deleted file mode 100644 index 1adcc71..0000000 --- a/pecan/__init__.py +++ /dev/null @@ -1,134 +0,0 @@ -from .core import ( - abort, override_template, Pecan, Request, Response, load_app, - redirect, render, request, response -) -from .decorators import expose -from .hooks import RequestViewerHook - -from .middleware.debug import DebugMiddleware -from .middleware.errordocument import ErrorDocumentMiddleware -from .middleware.recursive import RecursiveMiddleware -from .middleware.static import StaticFileMiddleware -from .routing import route - -from .configuration import set_config, Config -from .configuration import _runtime_conf as conf -from . import middleware - -try: - from logging.config import dictConfig as load_logging_config -except ImportError: - from logutils.dictconfig import dictConfig as load_logging_config # noqa - -import warnings - - -__all__ = [ - 'make_app', 'load_app', 'Pecan', 'Request', 'Response', 'request', - 'response', 'override_template', 'expose', 'conf', 'set_config', 'render', - 'abort', 'redirect', 'route' -] - - -def make_app(root, **kw): - ''' - Utility for creating the Pecan application object. This function should - generally be called from the ``setup_app`` function in your project's - ``app.py`` file. - - :param root: A string representing a root controller object (e.g., - "myapp.controller.root.RootController") - :param static_root: The relative path to a directory containing static - files. Serving static files is only enabled when - debug mode is set. - :param debug: A flag to enable debug mode. This enables the debug - middleware and serving static files. - :param wrap_app: A function or middleware class to wrap the Pecan app. - This must either be a wsgi middleware class or a - function that returns a wsgi application. This wrapper - is applied first before wrapping the application in - other middlewares such as Pecan's debug middleware. - This should be used if you want to use middleware to - perform authentication or intercept all requests before - they are routed to the root controller. - :param logging: A dictionary used to configure logging. This uses - ``logging.config.dictConfig``. - - All other keyword arguments are passed in to the Pecan app constructor. - - :returns: a ``Pecan`` object. - ''' - # Pass logging configuration (if it exists) on to the Python logging module - logging = kw.get('logging', {}) - debug = kw.get('debug', False) - if logging: - if debug: - try: - # - # By default, Python 2.7+ silences DeprecationWarnings. - # However, if conf.app.debug is True, we should probably ensure - # that users see these types of warnings. - # - from logging import captureWarnings - captureWarnings(True) - warnings.simplefilter("default", DeprecationWarning) - except ImportError: - # No captureWarnings on Python 2.6, DeprecationWarnings are on - pass - - if isinstance(logging, Config): - logging = logging.to_dict() - if 'version' not in logging: - logging['version'] = 1 - load_logging_config(logging) - - # Instantiate the WSGI app by passing **kw onward - app = Pecan(root, **kw) - - # Optionally wrap the app in another WSGI app - wrap_app = kw.get('wrap_app', None) - if wrap_app: - app = wrap_app(app) - - # Configuration for serving custom error messages - errors = kw.get('errors', getattr(conf.app, 'errors', {})) - if errors: - app = middleware.errordocument.ErrorDocumentMiddleware(app, errors) - - # Included for internal redirect support - app = middleware.recursive.RecursiveMiddleware(app) - - # When in debug mode, load exception debugging middleware - static_root = kw.get('static_root', None) - if debug: - debug_kwargs = getattr(conf, 'debug', {}) - debug_kwargs.setdefault('context_injectors', []).append( - lambda environ: { - 'request': environ.get('pecan.locals', {}).get('request') - } - ) - app = DebugMiddleware( - app, - **debug_kwargs - ) - - # Support for serving static files (for development convenience) - if static_root: - app = middleware.static.StaticFileMiddleware(app, static_root) - - elif static_root: - warnings.warn( - "`static_root` is only used when `debug` is True, ignoring", - RuntimeWarning - ) - - if hasattr(conf, 'requestviewer'): - warnings.warn(''.join([ - "`pecan.conf.requestviewer` is deprecated. To apply the ", - "`RequestViewerHook` to your application, add it to ", - "`pecan.conf.app.hooks` or manually in your project's `app.py` ", - "file."]), - DeprecationWarning - ) - - return app |