Ejemplo n.º 1
0
def main(global_config, **settings):
    """ This function returns a WSGI application.
    """
    engine = engine_from_config(settings, 'sqlalchemy.')
    initialize_sql(engine)
    authn_policy = AuthTktAuthenticationPolicy(
        'sosecret', callback=groupfinder)
    authz_policy = ACLAuthorizationPolicy()
    config = Configurator(settings=settings,
                          root_factory='tutorial.models.RootFactory',
                          authentication_policy=authn_policy,
                          authorization_policy=authz_policy)
    config.add_static_view('static', 'tutorial:static')
    config.add_route('view_wiki', '/', view='tutorial.views.view_wiki')
    config.add_route('login', '/login',
                     view='tutorial.login.login',
                     view_renderer='tutorial:templates/login.pt')
    config.add_route('logout', '/logout',
                     view='tutorial.login.logout')
    config.add_route('view_page', '/{pagename}',
                     view='tutorial.views.view_page',
                     view_renderer='tutorial:templates/view.pt')
    config.add_route('add_page', '/add_page/{pagename}',
                     view='tutorial.views.add_page',
                     view_renderer='tutorial:templates/edit.pt',
                     view_permission='edit')
    config.add_route('edit_page', '/{pagename}/edit_page',
                     view='tutorial.views.edit_page',
                     view_renderer='tutorial:templates/edit.pt',
                     view_permission='edit')
    config.add_view('tutorial.login.login',
                    renderer='tutorial:templates/login.pt',
                    context='pyramid.exceptions.Forbidden')
    return config.make_wsgi_app()
Ejemplo n.º 2
0
def app(global_config, **settings):
    """ This function returns a WSGI application.
    
    It is usually called by the PasteDeploy framework during 
    ``paster serve``.
    """
    config = Configurator(root_factory=get_root, settings=settings)
    config.begin()
    session_factory = session_factory_from_settings(settings)
    config.set_session_factory(session_factory)

    tictactroll.gamestate.set_db_path(settings.get('db_path'))

    config.add_view("tictactroll.views.game", name="game",
                    renderer="tictactroll:templates/game.mako")
    config.add_view("tictactroll.views.about", name="about",
                    renderer="tictactroll:templates/about.mako")
    config.add_view("tictactroll.views.welcome",
                    renderer="tictactroll:templates/welcome.mako")
    config.add_view("tictactroll.views.enter_game", name="enter_game")
    config.add_view("tictactroll.views.new_game", name="new_game")

    config.add_view("tictactroll.views.add_grid", name="add_grid",
                    renderer="json")

    config.add_view("tictactroll.views.next_troll_grid",
                    name="next_troll_grid", renderer="json")

    config.add_view("tictactroll.views.gameover_html", name="gameover",
                    renderer="tictactroll:templates/gameover.mako")

    config.add_static_view("static", "tictactroll:static")
    config.end()
    return config.make_wsgi_app()
Ejemplo n.º 3
0
def app(global_config, **settings):
    """ This function returns a WSGI application.
    
    It is usually called by the PasteDeploy framework during 
    ``paster serve``.
    """
    db_string = settings.get('db_string')
    if db_string is None:
        raise ValueError("No 'db_string' value in application configuration.")
    db_echo = settings.get('db_echo', 'false')
    initialize_sql(db_string, asbool(db_echo))
    config = Configurator(settings=settings)
    config.begin()
    config.add_static_view('static', 'tutorial:static')
    config.add_route('home', '/', view='tutorial.views.view_wiki')
    config.add_route('view_page', '/:pagename',
                     view='tutorial.views.view_page',
                     view_renderer='tutorial:templates/view.pt')
    config.add_route('add_page', '/add_page/:pagename',
                     view='tutorial.views.add_page',
                     view_renderer='tutorial:templates/edit.pt')
    config.add_route('edit_page', '/:pagename/edit_page',
                     view='tutorial.views.edit_page',
                     view_renderer='tutorial:templates/edit.pt')
    config.end()
    return config.make_wsgi_app()
Ejemplo n.º 4
0
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """

    import logging
    logging.basicConfig(level=logging.DEBUG)

    config = Configurator(root_factory=get_root, settings=settings)
    config.begin()

    from pyramid_jinja2 import renderer_factory
    config.add_renderer('.jinja2', renderer_factory)

    # configure views, templates
    configure(config) 

    # configure session
    import pyramid_beaker
    session_factory = pyramid_beaker.session_factory_from_settings(settings)
    config.set_session_factory(session_factory)

    # configure OpenID-specific storage
    import stucco_openid.models
    from openid.store import filestore
    stucco_openid.models.root.store = \
        filestore.FileOpenIDStore(settings['openid.store_file_path'])

    config.end()
    return config.make_wsgi_app()
Ejemplo n.º 5
0
def app(global_config, **settings):
    """ This function returns a WSGI application.
    
    It is usually called by the PasteDeploy framework during 
    ``paster serve``.
    """
    db_string = settings.get("db_string")
    if db_string is None:
        raise ValueError("No 'db_string' value in application configuration.")
    db_echo = settings.get("db_echo", "false")
    initialize_sql(db_string, asbool(db_echo))
    config = Configurator(settings=settings)
    config.begin()
    config.add_static_view("static", "tutorial:static")
    config.add_route("home", "/", view="tutorial.views.view_wiki")
    config.add_route(
        "view_page", "/:pagename", view="tutorial.views.view_page", view_renderer="tutorial:templates/view.pt"
    )
    config.add_route(
        "add_page", "/add_page/:pagename", view="tutorial.views.add_page", view_renderer="tutorial:templates/view.pt"
    )
    config.add_route(
        "edit_page", "/:pagename/edit_page", view="tutorial.views.edit_page", view_renderer="tutorial:templates/edit.pt"
    )
    config.end()
    return config.make_wsgi_app()
Ejemplo n.º 6
0
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """
    engine = engine_from_config(settings, "sqlalchemy.")
    initialize_sql(engine)
    config = Configurator(settings=settings)
    config.add_static_view("static", "tutorial:static")
    config.add_route("home", "/", view="tutorial.views.my_view", view_renderer="templates/mytemplate.pt")
    return config.make_wsgi_app()
Ejemplo n.º 7
0
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """
    config = Configurator(root_factory=get_root, settings=settings)
    config.add_view('myproject.views.my_view',
                    context='myproject.models.MyModel',
                    renderer='myproject:templates/mytemplate.pt')
    config.add_static_view('static', 'myproject:static')
    return config.make_wsgi_app()
Ejemplo n.º 8
0
 def setUp(self):
     from pyramid.configuration import Configurator
     config = Configurator(root_factory=self.root_factory)
     config.begin()
     config.load_zcml(self.config)
     app = config.make_wsgi_app()
     from webtest import TestApp
     self.testapp = TestApp(app)
     self.config = config
Ejemplo n.º 9
0
def app(global_config, **settings):
    """ This function returns a WSGI application.
    
    It is usually called by the PasteDeploy framework during 
    ``paster serve``.
    """
    config = Configurator(root_factory=get_root, settings=settings)
    config.begin()
    config.load_zcml('configure.zcml')
    config.end()
    return config.make_wsgi_app()
Ejemplo n.º 10
0
def app(global_config, **settings):
    db_uri = settings.get('db_uri')
    db_name = settings.get('db_name')
    if db_uri is None or db_name is None:
        raise ValueError("db_uri AND db_name must be defined"
                         " in application initilization configuration file")
    zcml_file = settings.get('configure_zcml', 'configure.zcml')
    config = Configurator(root_factory=RootFactory, settings=settings)
    config.begin()
    config.load_zcml(zcml_file)
    config.end()
    return config.make_wsgi_app()
Ejemplo n.º 11
0
def app(global_config, **settings):
    """ This function returns a ``pyramid`` application object.  It
    is usually called by the PasteDeploy framework during ``paster
    serve``"""
    combined_config = {}
    combined_config.update(global_config)
    combined_config.update(settings)
    setup_model(**combined_config)
    config = Configurator(root_factory=get_root, settings=combined_config)
    config.scan()
    config.add_static_view(name="static", path="spazzer.web:templates/static")
    return config.make_wsgi_app()
Ejemplo n.º 12
0
def main(global_config, **settings):
    """ This function returns a WSGI application.
    """
    db_string = settings.get('db_string')
    if db_string is None:
        raise ValueError("No 'db_string' value in application configuration.")
    db_echo = settings.get('db_echo', 'false')
    initialize_sql(db_string, asbool(db_echo))
    config = Configurator(settings=settings)
    config.add_static_view('static', 'tutorial:static')
    config.add_route('home', '/', view='tutorial.views.my_view',
                     view_renderer='templates/mytemplate.pt')
    return config.make_wsgi_app()
Ejemplo n.º 13
0
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """
    zodb_uri = settings.get('zodb_uri')
    if zodb_uri is None:
        raise ValueError("No 'zodb_uri' in application configuration.")

    finder = PersistentApplicationFinder(zodb_uri, appmaker)
    def get_root(request):
        return finder(request.environ)
    config = Configurator(root_factory=get_root, settings=settings)
    config.load_zcml('configure.zcml')
    return config.make_wsgi_app()
Ejemplo n.º 14
0
def main(global_config, **settings):
    """ This function returns a WSGI application.
    """
    db_string = settings.get("db_string")
    if db_string is None:
        raise ValueError("No 'db_string' value in application configuration.")
    db_echo = settings.get("db_echo", "false")
    get_root = appmaker(db_string, asbool(db_echo))
    config = Configurator(settings=settings, root_factory=get_root)
    config.add_static_view("static", "meteoglobal:static")
    config.add_view("meteoglobal.views.view_root", context="meteoglobal.models.MyApp", renderer="templates/root.pt")
    config.add_view("meteoglobal.views.view_model", context="meteoglobal.models.MyModel", renderer="templates/model.pt")
    return config.make_wsgi_app()
Ejemplo n.º 15
0
def app(global_config, **settings):
    """ This function returns a WSGI application.
    
    It is usually called by the PasteDeploy framework during 
    ``paster serve``.
    """
    config = Configurator(root_factory=get_root, settings=settings)
    config.begin()
    config.add_view('myproject.views.my_view',
                    context='myproject.models.MyModel',
                    renderer='myproject:templates/mytemplate.pt')
    config.add_static_view('static', 'myproject:static')
    config.end()
    return config.make_wsgi_app()
Ejemplo n.º 16
0
def make_pyramid_app(global_config, **kwargs):
    """ This function returns a WSGI application.
    """

    settings = dict(global_config)
    settings.update(kwargs)
    config = Configurator(root_factory=get_root,
                          settings=init_settings(global_config))
    config.add_renderer('.html', renderer_factory)
    config.add_static_view('static', 'academe:static')
    config.scan('academe')

    pyramid_app = config.make_wsgi_app()

    return pyramid_app
Ejemplo n.º 17
0
def main(global_config, **settings):
    """ This function returns a WSGI application.
    
    It is usually called by the PasteDeploy framework during 
    ``paster serve``.
    """
    zodb_uri = settings.get('zodb_uri')
    if zodb_uri is None:
        raise ValueError("No 'zodb_uri' in application configuration.")

    finder = PersistentApplicationFinder(zodb_uri, appmaker)
    def get_root(request):
        return finder(request.environ)
    config = Configurator(root_factory=get_root, settings=settings)
    config.load_zcml('configure.zcml')
    return config.make_wsgi_app()
Ejemplo n.º 18
0
def app(global_config, **settings):
    """ This function returns a WSGI application.
    
    It is usually called by the PasteDeploy framework during 
    ``paster serve``.
    """
    config = Configurator(settings=settings)
    config.begin()
    config.add_static_view('static', 'pyramidapp:static')
    config.add_route('home', '/',
                    view='pyramidapp.views.main_view',
                    view_renderer='pyramidapp:templates/mytemplate.pt')
    config.add_route('tab', '/tab/{name}',
                    view=view_tab)
    config.end()
    return config.make_wsgi_app()
Ejemplo n.º 19
0
def main(global_config, **settings):
    """ This function returns a WSGI application.
    """
    engine = engine_from_config(settings, 'sqlalchemy.')
    initialize_sql(engine)
    config = Configurator(settings=settings)
    config.add_static_view('static', 'tutorial:static')
    config.add_route('home', '/', view='tutorial.views.view_wiki')
    config.add_route('view_page', '/{pagename}',
                     view='tutorial.views.view_page',
                     view_renderer='tutorial:templates/view.pt')
    config.add_route('add_page', '/add_page/{pagename}',
                     view='tutorial.views.add_page',
                     view_renderer='tutorial:templates/edit.pt')
    config.add_route('edit_page', '/{pagename}/edit_page',
                     view='tutorial.views.edit_page',
                     view_renderer='tutorial:templates/edit.pt')
    return config.make_wsgi_app()
Ejemplo n.º 20
0
def app(global_config, **settings):
    """ This function returns a WSGI application.
    
    It is usually called by the PasteDeploy framework during 
    ``paster serve``.
    """
    zcml_file = settings.get('configure_zcml', 'configure.zcml')
    db_string = settings.get('db_string')
    if db_string is None:
        raise ValueError(
            "No 'db_string' value in application configuration.")
    db_echo = settings.get('db_echo', 'false')
    initialize_sql(db_string, asbool(db_echo))
    config = Configurator(settings=settings)
    config.begin()
    config.load_zcml(zcml_file)
    config.end()
    return config.make_wsgi_app()
Ejemplo n.º 21
0
def app(global_config, **settings):
    """ This function returns a WSGI application.
    
    It is usually called by the PasteDeploy framework during 
    ``paster serve``.
    """
    db_string = settings.get('db_string')
    if db_string is None:
        raise ValueError("No 'db_string' value in application configuration.")
    db_echo = settings.get('db_echo', 'false')
    initialize_sql(db_string, asbool(db_echo))
    authn_policy = AuthTktAuthenticationPolicy(
        'sosecret', callback=groupfinder)
    authz_policy = ACLAuthorizationPolicy()
    config = Configurator(settings=settings,
                          root_factory='tutorial.models.RootFactory',
                          authentication_policy=authn_policy,
                          authorization_policy=authz_policy)
    config.begin()
    config.add_static_view('static', 'tutorial:static')
    config.add_route('view_wiki', '/', view='tutorial.views.view_wiki')
    config.add_route('login', '/login',
                     view='tutorial.login.login',
                     view_renderer='tutorial:templates/login.pt')
    config.add_route('logout', '/logout',
                     view='tutorial.login.logout')
    config.add_route('view_page', '/:pagename',
                     view='tutorial.views.view_page',
                     view_renderer='tutorial:templates/view.pt')
    config.add_route('add_page', '/add_page/:pagename',
                     view='tutorial.views.add_page',
                     view_renderer='tutorial:templates/edit.pt',
                     view_permission='edit')
    config.add_route('edit_page', '/:pagename/edit_page',
                     view='tutorial.views.edit_page',
                     view_renderer='tutorial:templates/edit.pt',
                     view_permission='edit')
    config.add_view('tutorial.login.login',
                    renderer='tutorial:templates/login.pt',
                    context='pyramid.exceptions.Forbidden')
    config.end()
    return config.make_wsgi_app()
Ejemplo n.º 22
0
def main(global_config, **settings):
    config = Configurator(settings=settings)

    # Maintenance
    config.add_route('blitz-io-verification',
                     '/mu-1e32b3b5-6f6be39c-4bc74834-6b7586e8')
    config.add_route('maintenance-200', '/maintenance/200')

    # Internal
    config.add_route('saasy-subscriptions', '/services/saasy/subscriptions')

    # API routing
    config = v_0_1_routing(config)
    config = v_0_2_routing(config)
    config.scan('tickee_api.resources')

    # OAuth 2 routing
    configure_oauth2_routing(config)
    config.scan('pyramid_oauth2.views')
    return config.make_wsgi_app()
Ejemplo n.º 23
0
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """
    from pyramid.configuration import Configurator
    config = Configurator(settings=settings)
    config.add_renderer(name = 'nt', factory='.renderers.NTriplesGraphRenderer')
    config.add_renderer(name = 'rdfxml', factory='.renderers.RDFXMLGraphRenderer')
    config.add_renderer(name = 'n3', factory='.renderers.N3GraphRenderer')
    
    session_factory = session_factory_from_settings(settings)
    config.set_session_factory(session_factory)
    
    config.registry['sparql.url'] = settings['sparql.url']

    config.add_static_view('static', 'sparql_shim:static/')
    config.add_handler('direct_graph', '/{name:.+}', '.handlers:GraphHandler',
                       action='graph')
    config.add_handler('indirect_graph', '/', '.handlers:GraphHandler',
                       action='graph')
    config.scan('sparql_shim.subscribers')
    return config.make_wsgi_app()
Ejemplo n.º 24
0
def mailin_monitor_view(context, request):
    """
    Dispatches to a subapp from repoze.mailin.monitor.  I know this looks kind
    of horrible, but this is the best way I know how to mount another object
    graph onto the root object graph in BFG 1.2.  BFG 1.3 will theoretically
    allow SCRIPT_NAME/PATH_INFO rewriting for routes of the form
    '/some/path/*traverse', making it easier to do this with just a route,
    rather than actually constituting a whole new bfg app just to serve this
    subtree.
    """
    global _mailin_monitor_app
    if _mailin_monitor_app is None:
        # Keep imports local in hopes that this can be removed when BFG 1.3
        # comes out.
        from pyramid.authorization import ACLAuthorizationPolicy
        from pyramid.configuration import Configurator
        from karl.models.mailin_monitor import KarlMailInMonitor
        from karl.security.policy import get_groups
        from pyramid.authentication import RepozeWho1AuthenticationPolicy

        authentication_policy = RepozeWho1AuthenticationPolicy(
            callback=get_groups
        )
        authorization_policy = ACLAuthorizationPolicy()
        config = Configurator(root_factory=KarlMailInMonitor(),
                              authentication_policy=authentication_policy,
                              authorization_policy=authorization_policy)
        config.begin()
        config.load_zcml('repoze.mailin.monitor:configure.zcml')
        config.end()
        _mailin_monitor_app = config.make_wsgi_app()

    # Dispatch to subapp
    from pyramid.request import Request
    sub_environ = request.environ.copy()
    sub_environ['SCRIPT_NAME'] = '/%s/%s' % (resource_path(context),
                                            request.view_name)
    sub_environ['PATH_INFO'] = '/' + '/'.join(request.subpath)
    sub_request = Request(sub_environ)
    return sub_request.get_response(_mailin_monitor_app)
Ejemplo n.º 25
0
def app(global_config, **settings):
    """ This function returns a WSGI application.
    
    It is usually called by the PasteDeploy framework during 
    ``paster serve``.
    """
    
    zcml_file = settings.get('configure_zcml', 'configure.zcml')

    auth = RepozeWho1AuthenticationPolicy(identifier_name='basicauth')
    acl = ACLAuthorizationPolicy()

    config =  Configurator(
        root_factory=get_root,
        settings=settings,
        authorization_policy = acl,
        authentication_policy = auth,
        )
    config.begin()
    config.load_zcml(zcml_file)
    config.end() 
    return config.make_wsgi_app()
Ejemplo n.º 26
0
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """
    config = Configurator()
    config.begin()
    
    db_uri = settings['db_uri']
    server_url = settings['server_url']
    conn = Connection(db_uri)
    config.registry.settings['db_conn'] = conn
    config.registry.settings['server_url'] = server_url
    config.registry.settings['db_name'] = settings['db_name']
    config.add_subscriber(add_mongo_db, NewRequest)

    config.include('pyramid_zcml')
    config.load_zcml('configure.zcml')
    config.end()

    #add renderer
    #Fixme: try to insert this on zcml file 
    config.add_renderer('jsonp', JSONP(param_name='callback'))
      
    return config.make_wsgi_app()
Ejemplo n.º 27
0
import urllib
import json as simplejson

from pyramid.configuration import Configurator
from paste.httpserver import serve

from beaker.cache import cache_regions, cache_region
cache_regions['short_term'] = dict(type='memory', expire=30*60)

def index(request):
    fml_endpoint = 'http://graph.facebook.com/search?q="so%20starving&type=post'
    
    @cache_region('short_term')   
    def fb_data(key=None):
        fb_response = urllib.urlopen(key,).read()
        return simplejson.loads(fb_response)["data"]
        
    return {'data': fb_data(fml_endpoint)}

if __name__ == '__main__':
    settings = {}
    settings['mako.directories'] = './templates'
    config = Configurator(settings=settings)
    config.begin()
    config.add_view(index, name='', renderer='index.mako')
    config.end()
    app = config.make_wsgi_app()
    serve(app, host='0.0.0.0')
Ejemplo n.º 28
0
    try:
        form.validate(request)
    except formish.FormError, e:
        log.debug(e)
    except Exception, e:
        log.debug(e)

    return {'form':form, 'form2':form}

def goodbye_world(request):
    return Response('Goodbye world!')

class QuietHandler(simple_server.WSGIRequestHandler):
    def log_message(self, format, *args): pass

if __name__ == '__main__':
    import logging
    logging.basicConfig(level=logging.DEBUG)
    config = Configurator(settings={'reload_templates':True})
    config.begin()
    sm = zope.component.getSiteManager()
    sm.registerUtility([resource_filename('pyramid_uniform', 'templates/zpt')],
            pyramid_formish.IFormishSearchPath)
    config.add_static_view('static', 'pyramid_uniform:templates/static')
    config.add_view(sample_form, renderer="pyramid_uniform:templates/index.pt")
    config.end()
    app = config.make_wsgi_app()
    simple_server.make_server('', 9876, app, handler_class=QuietHandler).serve_forever()

Ejemplo n.º 29
0
import json as simplejson

from pyramid.configuration import Configurator
from paste.httpserver import serve

from beaker.cache import cache_regions, cache_region
cache_regions['short_term'] = dict(type='memory', expire=30*60)

def index(request):
    fml_endpoint = 'http://graph.facebook.com/search?q="so%20starving&type=post'
    
    @cache_region('short_term')   
    def fb_data(key=None):
        fb_response = urllib.urlopen(key,).read()
        return simplejson.loads(fb_response)["data"]
        
    return {'data': fb_data(fml_endpoint)}

settings = {}
settings['mako.directories'] = './templates'
config = Configurator(settings=settings)
config.begin()
config.add_view(index, name='', renderer='index.mako')
config.end()

application = config.make_wsgi_app()

if __name__ == '__main__':
    serve(application, host='0.0.0.0')

Ejemplo n.º 30
0
from pyramid.configuration import Configurator
from paste.httpserver import serve

from beaker.cache import cache_regions, cache_region

cache_regions["short_term"] = dict(type="memory", expire=30 * 60)


def index(request):
    fml_endpoint = 'http://graph.facebook.com/search?q="so%20starving&type=post'

    @cache_region("short_term")
    def fb_data(key=None):
        fb_response = urllib.urlopen(key).read()
        return simplejson.loads(fb_response)["data"]

    return {"data": fb_data(fml_endpoint)}


settings = {}
settings["mako.directories"] = "./templates"
config = Configurator(settings=settings)
config.begin()
config.add_view(index, name="", renderer="index.mako")
config.end()

application = config.make_wsgi_app()

if __name__ == "__main__":
    serve(application, host="0.0.0.0")