This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" | |
The Django test client implements the session API but doesn't persist values in it: | |
https://docs.djangoproject.com/en/dev/topics/testing/?from=olddocs#django.test.client.Client.session | |
This Client subclass can be used to maintain a persistent session during test cases. | |
""" | |
from django.conf import settings | |
from django.test import TestCase |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
import os | |
cwd = os.path.abspath(os.getcwd()) | |
for project in os.listdir("."): | |
path = os.path.join(cwd, project) | |
if not os.path.isdir(path): |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class TagCloser(HTMLParser): | |
""" | |
HTMLParser that closes open tags. Call close_tags with a HTML | |
string arg which returns it with any required closing tags | |
appended. | |
""" | |
def __init__(self): | |
HTMLParser.__init__(self) | |
self.tags = [] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def sort_by_keylist(objects, attr, keylist): | |
indexes = dict([(x, i) for i, x in enumerate(keylist)]) | |
return sorted(objects, key=lambda x: indexes.get(getattr(x, attr))) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Foo(object): | |
def __getattribute__(self, name): | |
attr = object.__getattribute__(self, name) | |
if callable(attr): | |
def wrapper(*args, **kwargs): | |
try: | |
return attr(*args, **kwargs) | |
except Exception, e: | |
print "%s failed with exc %s" % (name, e) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# A one-liner for calculating the cost of a project using a Mercurial repo. | |
# Replace: | |
# ignore|paths - pipe separated strings in paths to ignore | |
# eg: embedded libraries and generated code. | |
# mins_per_loc - estimated minutes per line of code. | |
# hourly_rate - hourly dollar rate being charged. | |
$ hg log --stat | egrep -v 'ignore|paths' | grep '|' | awk '{s+=$3} END {print "$" s / 60 * mins_per_loc * hourly_rate}' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class MiniMock(object): | |
""" | |
A callable object that will always return a value for any | |
attribute/index/slice/call accessed. The value returned is a new | |
MiniMock instance allowing for successful chained access. | |
""" | |
def __getitem__(self, value): | |
""" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" | |
With Django models, calling save() can have undesired consequences, | |
particularly in a concurrent environment such a Celery, where model | |
instances may be serialized across a message queue. The save() method | |
will write all fields to the database which may have already been | |
written to by another process or thread, and as such will override | |
fields incorrectly. | |
The mixin below can be used to safely update model instances without | |
overriding fields of no concern that may have been written to since |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Replacement for jquery.ui.accordion to avoid dealing with | |
// jquery.ui theming. | |
// | |
// Usage: $('#container').squeezebox(options); | |
// where the direct child elements of '#container' are | |
// sequential pairs of header/panel elements, and options | |
// is an optional object with any of the following properties: | |
// | |
// activeHeaderClass: Class name to apply to the active header | |
// headerSelector: Selector for the header elements |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/ruby | |
require 'rubygems' | |
require 'json' | |
require 'yaml' | |
require 'rest-client' | |
require 'active_support' | |
class Pullr | |
ORGANIZATION = 'ImpactData' | |
REPO = 'Squawkbox' |