Skip to content

Instantly share code, notes, and snippets.

View defnull's full-sized avatar

Marcel Hellkamp defnull

View GitHub Profile
@defnull
defnull / bench.py
Created August 28, 2011 18:57
Small WSGI benchmark (removes the HTTP or socket layer)
import sys
import bottle
from time import time
app = bottle.Bottle()
@app.route('/')
def hello():
return 'Hello World!'
def bench(n):
@defnull
defnull / gist:1036791
Created June 20, 2011 22:51
Bottle "Hello World" benchmark
import sys
import bottle
from time import time
app = bottle.Bottle()
@app.route('/')
def hello():
return 'Hello World!'
def bench(n):
@defnull
defnull / bench.py
Created January 20, 2011 21:44
Python Framework Benchmark
import time
import sys
import StringIO
class Bench(object):
def __init__(self, flags=None):
''' Flags:
* cgi: Build a new app every time.
* dny: Return the :name part of a /hello/:name url.
'''
class ContextLocal(object):
__slots__ = ('_local_init_args', '_local_contexts', '_local_context_ident')
def __new__(cls, *args, **kwargs):
self = object.__new__(cls)
object.__setattr__(self, '_local_init_args', (args, kwargs))
object.__setattr__(self, '_local_contexts', {})
object.__setattr__(self, '_local_context_ident', lambda: 0)
return self
def set_context_ident(self, func):
object.__setattr__(self, '_local_context_ident', func)
# Pickle and unpickle objects in a secure way. Useful for cookies.
# Warning: The data is NOT encrypted, but signed. The user can read the data,
# but not change it.
import hmac
import cPickle
def encode(data, key):
''' Encode and sign a pickle-able object. Return a string '''
msg = cPickle.dumps(data, -1).encode('base64').strip()