--HG--
branch : pmacs2
This commit is contained in:
moculus 2009-03-10 03:46:49 +00:00
parent b44d96be4d
commit 97381673f3
3 changed files with 41 additions and 2 deletions

View File

@ -1,4 +1,4 @@
from collections import defaultdict from util import defaultdict
import codecs, datetime, grp, os, pwd, re, shutil, stat, string import codecs, datetime, grp, os, pwd, re, shutil, stat, string
import fcntl, select, pty, threading import fcntl, select, pty, threading
import aes, dirutil, regex, highlight, lex, term import aes, dirutil, regex, highlight, lex, term

View File

@ -1,4 +1,4 @@
from collections import defaultdict from util import defaultdict
import math, os, string import math, os, string
import color, method import color, method
from lex import Lexer from lex import Lexer

39
util.py
View File

@ -66,3 +66,42 @@ def get_margin_color(w, def_color='blue'):
return w.application.config[lname] return w.application.config[lname]
else: else:
return w.application.config.get('margin_color', def_color) return w.application.config.get('margin_color', def_color)
# emulate defaultdict for 2.4
try:
from collections import defaultdict
except:
class defaultdict(dict):
def __init__(self, default_factory=None, *a, **kw):
if (default_factory is not None and
not hasattr(default_factory, '__call__')):
raise TypeError('first argument must be callable')
dict.__init__(self, *a, **kw)
self.default_factory = default_factory
def __getitem__(self, key):
try:
return dict.__getitem__(self, key)
except KeyError:
return self.__missing__(key)
def __missing__(self, key):
if self.default_factory is None:
raise KeyError(key)
self[key] = value = self.default_factory()
return value
def __reduce__(self):
if self.default_factory is None:
args = tuple()
else:
args = self.default_factory,
return type(self), args, None, None, self.items()
def copy(self):
return self.__copy__()
def __copy__(self):
return type(self)(self.default_factory, self)
def __deepcopy__(self, memo):
import copy
return type(self)(self.default_factory,
copy.deepcopy(self.items()))
def __repr__(self):
return 'defaultdict(%s, %s)' % (self.default_factory,
dict.__repr__(self))