Skip to content

Instantly share code, notes, and snippets.

def _iter_driver_output(self):
while self.driver_stack:
curdriver = self.driver
# Iterate over the current driver until it changes.
for output in curdriver.get_input():
yield output
# If the driver has changed, stop iterating over the old one.
if self.driver is not curdriver:
break
@chromakode
chromakode / header_nanny.py
Created February 20, 2010 22:52
A somewhat scary header munger. You'd better have good version control!
#!/usr/bin/env python
from __future__ import print_function
import sys
import os, os.path
import shutil
import optparse
import re
comment_ignore_re = re.compile(r"#!.+")
from drizzle import libdrizzle as _libdrizzle
libdrizzle = _libdrizzle.Drizzle()
def connect(*args, **kwargs):
connection = Connection(*args, **kwargs)
connection._connect()
return connection
class Connection:
@chromakode
chromakode / karmabot.py
Created November 8, 2009 00:41
IRC bot to keep track of descriptions of words and their karma.
import sys
import random
import re
import time
from twisted.words.protocols import irc
from twisted.internet import reactor, protocol, ssl
from twisted.python import log
try:
@chromakode
chromakode / skirmish.py
Created May 8, 2009 19:30
IMCS wrapper script -- incomplete
import sys
import os.path
import socket
import subprocess
from urlparse import urlparse, ParseResult
from optparse import OptionParser
BUF_SIZE = 1024
DEFAULT_IMCS_PORT = 3589
VERBOSE = False
@chromakode
chromakode / IRCTriviaHelper.py
Created January 16, 2009 03:11
There's a running complaint in #reddittrivia that people are using Google to cheat, so here's a simple proof of concept using the Yahoo search API to even the playing field a little.
import re
import string
import readline
import textwrap
from yahoo.search.web import WebSearch
APP_ID = "IRCTriviaHelper"
def bullet(lines):
return ["\n".join(textwrap.wrap(line, 77, initial_indent=" - ", subsequent_indent=" ")) for line in lines]
@chromakode
chromakode / gist:42198
Created January 1, 2009 06:48
Storing IP addresses in a tree using a lightweight defaultdict implementation.
function defaultdict(default) {
this._default = default;
};
defaultdict.prototype = {
get: function(key) {
if (!key in this) { this[key] = this._default(key); }
return this[key];
}
}