コード例 #1
0
ファイル: handlers.py プロジェクト: pkeane/simplerepo
def main():
  app = Selector(wrap=Yaro)  
  app.add('401', GET=get_401)  
  app.add('', GET=get_index)  
  app.add('/', GET=get_index)  
  app.add('/items.json', GET=get_items_json)  
  app.add('/items', GET=get_item)  
  app.add('/item/{id}', GET=get_item)  
  app.add('/dropbox', POST=post_to_dropbox,GET=get_dropbox)  
  app.add('/notes', POST=post_to_notes,GET=get_notes)  
  app.add('/note/{id}', DELETE=delete_note)  
  app.add('/dropbox/{id}', GET=get_dropbox_item)  
  app.add('/thumbnail/{blob_key}', GET=get_thumbnail)  
  app.add('/serve/{blob_key}', GET=serve_blob)  
  app.add('/attributes', GET=get_attributes,POST=post_to_attributes)  
  app.add('/attribute/{ascii_id}', GET=get_attribute,DELETE=delete_attribute)  
  app.add('/upload/{user_id}', POST=process_upload)  
  app.add('/formupload/{user_id}', POST=process_formupload)  
  app.add('/upload_url', GET=get_upload_url)  
  run_wsgi_app(app)
コード例 #2
0
            body += '<div id="pos">'
            body += '<span id="pos_display">'
            for leaf, n in izip(
                    leaves(bundle.derivation, lambda e: not is_ignored(e)),
                    count()):
                body += '<span id="pos%d" style="display:none">%s</span>' % (
                    n, leaf.tag)
            body += '</span>'
            body += '</div>'

            yield layout(body)
        else:
            yield error_document()

    else:
        yield error_document()


def error_document():
    return 'Error'


routes = Selector()
routes.add('/view/{doc}/{deriv}', GET=view_deriv)

from wsgiref import simple_server
srv = simple_server.WSGIServer(('', 8000), simple_server.WSGIRequestHandler)

srv.set_app(routes)
srv.serve_forever()
コード例 #3
0
ファイル: app.py プロジェクト: jacobian/chucks
import barrel.cooper
import static
import json
from selector import Selector
from unipath import FSPath as Path

app = Selector()
base = Path(__file__).parent
for course in base.listdir(filter=Path.isdir):
    subapp = static.Cling(course.child('html'))
    if course.child('auth.json').exists():
        users = json.load(open(course.child('auth.json')))
        auth = barrel.cooper.basicauth(users=users, realm="Course Material")    # FIXME: worth allowing customization here?
        subapp = auth(subapp)
    app.add("/%s|" % course.name, GET=subapp)
コード例 #4
0
ファイル: police_box.py プロジェクト: jmatt/tardis-apis
# something less like gunicorn/etc.  Oh... You're welcome.
__all__ = ['application']

def say_hello(environ, start_response):
    """
    Test app...
    """
    args, kwargs = environ['wsgiorg.routing_args']
    print args
    start_response("200 OK", [('Content-type', 'text/plain')])
    return ["Hello, %s!" % kwargs['name']]

# I know - a long variable name, but don't change it - see the above
# message above ``__all__`` for more context...
application = Selector()

# include for smoke testing
application.add('/hello/{name}', GET=say_hello)
application.add(ENDPT_PREFIX + '/hello/{name}', GET=say_hello)

# Change to include a version number as a prefix
application.add(ENDPT_PREFIX + '/lookup[/]', GET=lookup)
application.add(ENDPT_PREFIX +
    '/register/{object_id:word}/{object_name:segment}/' +
    '{object_desc:segment[/{parent_uuid:word}][/]', POST=register)
application.add(ENDPT_PREFIX +
    '/provenance/{uuid:word}/{username}/{service_name}/' +
    '{event_name}/{category_name}[/]', POST=provenance)
application.add(ENDPT_PREFIX +
    '/provenance/{service_name}/{event_name}/{category_name}[/]',
    POST=prov_post)
コード例 #5
0
def say_hello(environ, start_response):
    """
    Test app...
    """
    args, kwargs = environ['wsgiorg.routing_args']
    print args
    start_response("200 OK", [('Content-type', 'text/plain')])
    return ["Hello, %s!" % kwargs['name']]

# I know - a long variable name, but don't change it - see the above
# message above ``__all__`` for more context...
application = Selector()

# include for smoke testing
application.add('/hello/{name}', GET=say_hello)
application.add(ENDPT_PREFIX + '/hello/{name}', GET=say_hello)

# include for configuration verification
application.add(ENDPT_PREFIX + '/summary', GET=summary)

# Change to include a version number as a prefix
application.add(ENDPT_PREFIX + '/lookup[/]', GET=lookup)
application.add(ENDPT_PREFIX +
    '/register/{service_key}/{object_id:segment}/{object_name:segment}/' +
    '{object_desc:segment[/{parent_uuid:word}][/]', POST=register)
application.add(ENDPT_PREFIX +
    '/provenance/{uuid:word}/{username}/{service_name}/' +
    '{event_name}/{category_name}[/]', POST=provenance)
application.add(ENDPT_PREFIX +
    '/provenance/{service_name}/{event_name}/{category_name}[/]',
コード例 #6
0
ファイル: __init__.py プロジェクト: 3rdandUrban-dev/Nuxleus
class OpenIdGateway(object):

    def __init__(self, app_conf):
        self.app_conf = app_conf
        self.sess_key = 'openid.amp.fm.gateway'        
        self.base_url = self.app_conf['base_url']
        self.ekey = 'openidgateway'
        self.urls = [
            ('[/]', {'GET': self.index}),
            ('/login[/]', {'GET': self.login, 'POST': self.login}),
            ('/complete[/]', {'GET': self.complete, 'POST': self.complete}),
            ('/transform/openid-redirect.xsl', {'GET': self.openid_redirect_xslt}),
        ]
        self._s = Selector(self.urls)
        if self.app_conf.get('debug', False):
            self._s.add('/forms[/]', {'GET': self.forms})
        self.store = filestore.FileOpenIDStore('./cache')

    def __call__(self, environ, start_response):
        return self._s(environ, start_response)

    def get_consumer(self, sess):
        return consumer.Consumer(sess, self.store)

    def index(self, environ, start_response):
        url = ''.join([self.base_url, 'login'])
        raise HTTPSeeOther(location=url)

    def login(self, environ, start_response):
        req = Request(environ)
        set_template(environ, 'login.xslt')
        sess = environ['beaker.session']
        params = {'base_uri': self.base_url}
        if not sess.get(self.ekey):
            sess[self.ekey] = {}
            sess.save()

        headers = [('Content-Type', 'application/xml')]
        if not (req.params.get('uname') or req.params.get('return_location')):
            message ='There must be a uname and return_location in the query string'
            raise HTTPBadRequest(detail=message)
        
        openid_url = req.params['uname']
        sess[self.ekey]['return_location'] = req.params['return_location']

        if not openid_url:
            # this seems better ...
            # raise HTTPBadRequest("need openid_url")
            params['message'] = "Don't leave your name blank."
            params['status'] = 'failure'
            set_params(environ, params)
            start_response('200 OK', headers)
            return []

        consumer = self.get_consumer(sess[self.ekey])
        try:
            request = consumer.begin(openid_url)
        except Exception, exc:
            params['message'] = 'Error in discovery: %s' % (cgi.escape(str(exc[0])))
            params['status'] = 'failure'
            set_params(environ, params)
            start_response('200 OK', headers)
            return []
        if request is None:
            errcode = cgi.escape(post['openid_url'])
            params['message'] = 'No OpenID services found for <code>%s</code>' % (errcode)
            params['status'] = 'failure'
            set_params(environ, params)            
            start_response('200 OK', headers)
            return []
        #sreg_request = sreg.SRegRequest(required=['nickname'])
        #request.addExtension(sreg_request)
        return_to = '%scomplete'% self.base_url
        return_to = '%s?identity=%s' % (return_to, openid_url)
        trusted_root = self.base_url
        
        sess[self.ekey]['trusted_root'] = trusted_root

        redirect_url = request.redirectURL(trusted_root, return_to)

        set_params(environ, {'redirect_url': redirect_url})
        params['status'] = 'redirect'
        params['message'] = 'OpendID Login Redirection'

        sess.save()
        set_params(environ, params)
        start_response('200 OK', headers)
        return []