Skip to content

Instantly share code, notes, and snippets.

View brutasse's full-sized avatar
🤌

Bruno Renié brutasse

🤌
View GitHub Profile
@brutasse
brutasse / shell_colors.py
Created July 13, 2010 15:58
Colorized shell output, some useful constants…
# Font colors #
BLACK = '\x1b[30m'
RED = '\x1b[31m'
GREEN = '\x1b[32m'
YELLOW = '\x1b[33m'
BLUE = '\x1b[34m'
PURPLE = '\x1b[35m'
PALE_BLUE = '\x1b[36m'
WHITE = '\x1b[37m'
@brutasse
brutasse / commits.py
Created May 14, 2011 13:09
Github Djangoproject commits -> highlighted Atom feed with links to changesets, tickets and files.
import os
import re
import feedgenerator
from github2.client import Github
REPO = 'django/django'
BRANCH = 'master'
HERE = os.path.abspath(os.path.dirname(__file__))
TICKET_RE = re.compile(r'#(?P<id>\d+)')
from django.contrib.auth.hashers import BasePasswordHasher
class NotHashingHasher(BasePasswordHasher):
"""
A hasher that does not hash.
"""
algorithm = 'plain'
def encode(self, password, salt):
@brutasse
brutasse / markup.py
Created December 10, 2012 16:10
Markdown filter with proper content filtering
from django.template import Library
from django.utils.encoding import force_text
from django.utils.safestring import mark_safe
import bleach
import markdown as markdownlib
register = Library()
import os
import re
import requests
import feedgenerator
from dateutil.parser import parse
from raven import Client
REPO = 'django/django'
@brutasse
brutasse / clean-redis.py
Created July 14, 2013 10:53
Clean stale RQ jobs
import datetime
import redis
import pytz
from dateutil import parser
from itertools import product
r = redis.Redis()
last_month = (
datetime.datetime.utcnow().replace(tzinfo=pytz.utc) -
@brutasse
brutasse / env.md
Last active December 25, 2015 13:09
Setting application environment variables on production servers

A great tool is envdir

apt-get install envdir
mkdir /etc/mysite.d/env
echo "postgres://postgres:@localhost:5432/mysite" > /etc/mysite.d/env/DATABASE_URL
echo "s3ce3t K3Y" > /etc/mysite.d/env/SECRET_KEY
echo "/srv/www/mysite/static" > /etc/mysite.d/env/STATIC_ROOT
echo "mysite.settings" > /etc/mysite.d/env/DJANGO_SETTINGS_MODULE
def find_api_views(urls, views=None):
if views is None:
views = []
for entry in urls:
if hasattr(entry, 'url_patterns'):
views.extend(find_api_views(entry.url_patterns))
else:
view = entry.callback
if (
hasattr(view, 'cls') and
// The name of the Gmail Labels that are to be purged
var GMAIL_LABELS = [
"list",
"of",
"labels",
"to",
"purge",
];
// Purge messages automatically after that many days
>>> import datetime
>>> from monthdelta import monthdelta
>>> datetime.date(2012, 1, 31) + monthdelta(1)
datetime.date(2012, 2, 29)
>>> datetime.date(2012, 1, 31) + monthdelta(3)
datetime.date(2012, 4, 30)
>>> datetime.date(2012, 2, 29) + monthdelta(12)