Skip to content

Instantly share code, notes, and snippets.

View dgouldin's full-sized avatar

David Gouldin dgouldin

  • Clara Labs
  • San Francisco, CA
View GitHub Profile
@dgouldin
dgouldin / gist:1207636
Created September 9, 2011 23:49
Django templatetag to output the current page's querystring updated with the specified values.
from django import template
register = template.Library()
class UpdateQuerystringNode(template.Node):
def __init__(self, **kwargs):
self.kwargs = kwargs
def render(self, context):
query_dict = context['request'].GET.copy()
@dgouldin
dgouldin / similarity.py
Created June 6, 2015 09:53
Twitter friend similarity
from __future__ import division
import json
import os
import urlparse
from collections import defaultdict
from datetime import datetime
from dateutil.relativedelta import relativedelta
from requests import HTTPError
from requests_oauthlib import OAuth1Session
@dgouldin
dgouldin / gist:1411980
Created November 30, 2011 23:46
Chainable python "wrapper" for ImageMagick via subprocess
from __future__ import division
import os
import subprocess
try:
from cStringIO import StringIO
except ImportError:
from StringIO import StringIO
@dgouldin
dgouldin / gist:3836859
Created October 4, 2012 22:24
haproxy logs -> list of python dicts
import datetime
import re
HAPROXY_LOG_PATH = '/path/to/haproxy.log'
haproxy_re = re.compile(
r'haproxy\[(?P<pid>\d+)\]: '
r'(?P<client_ip>(\d{1,3}\.){3}\d{1,3}):(?P<client_port>\d{1,5}) '
r'\[(?P<date>\d{2}/\w{3}/\d{4}(:\d{2}){3}\.\d{3})\] '
r'(?P<listener_name>\S+) (?P<server_name>\S+) '
r'(?P<Tq>(-1|\d+))/(?P<Tw>(-1|\d+))/(?P<Tc>(-1|\d+))/(?P<Tr>(-1|\d+))/'
@dgouldin
dgouldin / gist:3485236
Created August 27, 2012 03:10
Dead letter exchange based celery countdown implementation
class FrealCountdownTask(task.Task):
abstract = True
@classmethod
def apply_async(self, args=None, kwargs=None,
task_id=None, producer=None, connection=None, router=None,
link=None, link_error=None, publisher=None, add_to_parent=True,
**options):
try:
@dgouldin
dgouldin / requests_http.py
Created June 5, 2014 18:29
Requests-based Suds transport
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from requests import Session
from requests.adapters import BaseAdapter
from requests.auth import HTTPBasicAuth
from requests.models import Response
from suds.properties import Unskin
from suds.transport import Transport, TransportError, Reply
@dgouldin
dgouldin / foodiebox.rst
Created December 16, 2012 05:52
"Made in SF" foodie box
@dgouldin
dgouldin / gist:4120897
Created November 20, 2012 20:35
Get django's auth user model in a backwards compatible way
try:
from django.contrib.auth import get_user_model
except ImportError:
from django.contrib.auth.models import User as UserModel
else:
UserModel = get_user_model()
@dgouldin
dgouldin / gist:4112800
Created November 19, 2012 18:47
django orm order by list of ids
from django.contrib.auth.models import User
user_ids = list(User.objects.values_list('id', flat=True)[:10])
reverse_user_ids = user_ids[::-1]
values_str_parts = ['(%s, %s)' % (i, id) for i, id in enumerate(reverse_user_ids)]
values_str = 'VALUES %s' % ' '.join(values_str_parts)
users = User.objects.raw("""
SELECT u.*
FROM auth_user AS u
JOIN (%s) AS i (ordering, id) on u.id = i.id
Monospaced fonts still have plenty of valid uses, so I BEG. TO. DIFFER.