I hereby claim:
- I am nvie on github.
- I am nvie (https://keybase.io/nvie) on keybase.
- I have a public key whose fingerprint is 9B5C 55F6 2651 625C C4EE 7C8F 4DAB 9440 5EA5 AAF0
To claim this, I am signing this object:
I hereby claim:
To claim this, I am signing this object:
from contextlib import contextmanager | |
from django.conf import settings | |
from django.db import connection | |
@contextmanager | |
def no_queries_allowed(): | |
"""This is a helper method that makes it easier during development, by | |
throwing an exception when any queries are made within its block. Using |
from collections import deque | |
from functools import wraps | |
def inversify(predicate): | |
"""Returns a predicate that is the inverses of the given predicate.""" | |
@wraps(predicate) | |
def _inner(*args, **kwargs): | |
return not predicate(*args, **kwargs) | |
return _inner |
import jingo | |
from django_assets.env import get_env | |
jingo.env.assets_environment = get_env() |
$ python minimal_example.py | |
Traceback (most recent call last): | |
File "minimal_example.py", line 7, in <module> | |
s.sign('foo') | |
File "/Users/nvie/.virtualenvs/foo/lib/python2.7/site-packages/django/core/signing.py", line 175, in sign | |
return str('%s%s%s') % (value, self.sep, self.signature(value)) | |
File "/Users/nvie/.virtualenvs/foo/lib/python2.7/site-packages/django/core/signing.py", line 169, in signature | |
signature = base64_hmac(self.salt + 'signer', value, self.key) | |
File "/Users/nvie/.virtualenvs/foo/lib/python2.7/site-packages/django/core/signing.py", line 75, in base64_hmac | |
return b64_encode(salted_hmac(salt, value, key).digest()) |
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe7 in position 0: ordinal not in range(128) | |
Stacktrace (most recent call last): | |
File "connect/helpers.py", line 47, in get | |
resp.set_signed_cookie('foo', 'bar', max_age=600) | |
File "django/http/response.py", line 188, in set_signed_cookie | |
value = signing.get_cookie_signer(salt=key + salt).sign(value) | |
File "django/core/signing.py", line 91, in get_cookie_signer | |
return Signer('django.http.cookies' + settings.SECRET_KEY, salt=salt) |
#!/bin/sh | |
ENV="$1" | |
shift 1 | |
VIRTUAL_ENV="${WORKON_HOME}/${ENV}" | |
if [ ! -f "${VIRTUAL_ENV}/bin/python" ]; then | |
echo "No virtualenv named '$ENV'." | |
exit 2 | |
fi |
function p --description 'Start the best Python shell that is available' | |
set -l cmd | |
if test -f manage.py | |
if pip freeze ^/dev/null | grep -q 'django-extensions' | |
set cmd (which python) manage.py shell_plus | |
else | |
set cmd (which python) manage.py shell | |
end | |
else |
# Alt 1: very explicit, but requires knowledge on what type of workers exist | |
from rq.workers.gevent import GeventWorker | |
w = GeventWorker(4) | |
# Alt 2: A bit like an "Abstract Factory", no need for knowing the implementing | |
# class names, backward compatible, and kind='forking' by default | |
from rq import Worker | |
w = Worker(4, kind='gevent') | |
# Alt 3: I don't think (2) works without really nasty tricks. This one is as |
""" | |
Theres a gevent pool of 4 greenlets. Jobs are spawned continuously, blocking | |
until a free greenlet is available (default gevent.pool behaviour). Say, | |
a unit of work takes rougly a second. Then, at any moment, there are likely | |
4 jobs mid-execution. | |
The Goal | |
-------- | |
I want to catch both SIGINT/KeyboardInterrupt _and_ SIGTERM in | |
the main loop, and in a nondestructive way. By nondestructive, I mean (1) |