.. _`paste.reloader`: http://pythonpaste.org/modules/reloader.html """ __all__ = ["MemoryCachedStaticURLGenerator"] import logging from os.path import join from zope.component import adapts from zope.interface import implements from interfaces import IRequest, ISettings, IStaticURLGenerator from settings import require_setting from utils import generate_hash require_setting("static_files_path") require_setting("static_url_prefix", default=u"/static/") class MemoryCachedStaticURLGenerator(object): """ Adapter to generate static URLs from a request. """ _cache = {} adapts(IRequest, ISettings) implements(IStaticURLGenerator) def __init__(self, request, settings, join_path_=None, open_file_=None, generate_hash_=None): """ ``request.host_url`` is available as ``self._host_url``::
.. _`paste.reloader`: http://pythonpaste.org/modules/reloader.html """ __all__ = ['MemoryCachedStaticURLGenerator'] import logging from os.path import join from zope.component import adapts from zope.interface import implements from interfaces import IRequest, ISettings, IStaticURLGenerator from settings import require_setting from utils import generate_hash require_setting('static_files_path') require_setting('static_url_prefix', default=u'/static/') class MemoryCachedStaticURLGenerator(object): """ Adapter to generate static URLs from a request. """ _cache = {} adapts(IRequest, ISettings) implements(IStaticURLGenerator) def __init__(self, request, settings,
from zope.component import adapts from zope.interface import implements from mako.lookup import TemplateLookup from interfaces import ISettings, ITemplateRenderer from settings import require_setting DEFAULT_BUILT_INS = { "escape": utils.xhtml_escape, "url_escape": utils.url_escape, "json_encode": utils.json_encode, "datetime": datetime } require_setting('template_directories') class MakoTemplateRenderer(object): """ `Mako <http://www.makotemplates.org/>`_ template renderer. """ adapts(ISettings) implements(ITemplateRenderer) def __init__( self, settings, built_ins=None, template_lookup_class=None, module_directory='/tmp/mako_modules', input_encoding='utf-8',
from zope.component import adapts from zope.interface import implements from mako.lookup import TemplateLookup from interfaces import ISettings, ITemplateRenderer from settings import require_setting DEFAULT_BUILT_INS = { "escape": utils.xhtml_escape, "url_escape": utils.url_escape, "json_encode": utils.json_encode, "datetime": datetime } require_setting('template_directories') class MakoTemplateRenderer(object): """ `Mako <http://www.makotemplates.org/>`_ template renderer. """ adapts(ISettings) implements(ITemplateRenderer) def __init__(self, settings, built_ins=None, template_lookup_class=None, module_directory='/tmp/mako_modules', input_encoding='utf-8',
from zope.component import adapts from zope.interface import implements from component import registry from interfaces import IRequest, IResponse, IRequestHandler from interfaces import ISettings from interfaces import ITemplateRenderer, IStaticURLGenerator from interfaces import IAuthenticationManager, ISecureCookieWrapper from interfaces import IMethodSelector, IResponseNormaliser from settings import require_setting from utils import encode_to_utf8, generate_hash, xhtml_escape require_setting('check_xsrf', default=True) class XSRFError(ValueError): """ Raised when xsrf validation fails. """ class BaseHandler(object): """ A request handler (aka view class) implementation. """ adapts(IRequest, IResponse, ISettings) implements(IRequestHandler) check_xsrf = True
import base64 import datetime import hashlib import hmac import logging import time from zope.component import adapts from zope.interface import implements from interfaces import IRequest, IResponse, ISettings from interfaces import ISecureCookieWrapper from settings import require_setting from utils import encode_to_utf8 require_setting('cookie_secret', help='a long, random sequence of bytes') def _time_independent_equals(a, b): """ Logically equal to ``a == b``:: >>> _time_independent_equals('a', 'a') True >>> _time_independent_equals('b', u'b') True >>> _time_independent_equals('a', 'b') False >>> _time_independent_equals('abc', 'acb') False As long as you give it ``basestring``s::