import re
import threading
from datetime import tzinfo, timedelta, datetime
+import itertools
import config
from BbsType import bbs_type_exception
os.makedirs(basedir)
self.__file = file(self.__path, self.__mode)
return self.__file
+
+def unpack_ifilter(predicate, iterable):
+ """For multiple argument"""
+ for item in iterable:
+ if predicate(*item):
+ yield item
+
+def split_key_and_value(key_equal_value):
+ try:
+ index = key_equal_value.index("=")
+ except ValueError:
+ pass
+ else:
+ key = key_equal_value[:index]
+ value = key_equal_value[index+1:]
+ return key, value
+
+def tabbed_to_dict_generator(tabbed, sep="\t"):
+ iterable = tabbed.rstrip().split(sep)
+ iterable = itertools.imap(split_key_and_value, iterable)
+ iterable = itertools.ifilter(None, iterable)
+ return iterable
+
+def tabbed_to_dict(tabbed, sep="\t"):
+ """Creates a dict from key equal value pairs seperated with tab"""
+ return dict([pair for pair in tabbed_to_dict_generator(tabbed, sep)])