import io import string import hserver.utils class Headers: def __init__(self, fp=None, src=None): self.__items = {} self.__parameters = {} if not fp is None: self.__read(fp) def get(self,name,default = None): if not name in self.__items.keys(): return default return self.__items[name] def __getitem__(self,name): if name in self.__items.keys(): return self.__items[name] raise KeyError() def __read(self,fp): cont = True lines = [] while (cont): l = str(fp.readline(),"iso-8859-1").strip() if (l.strip() == ""): cont = False else: if (l[0] in string.whitespace ): lines[-1] = lines[-1] + " " + l.lstrip() else: lines.append(l) for line in lines: self.__parseline(line) def __parseline(self,line): i = line.find(":") if (i > 0): name = line[:i] value = line[ i+1 : ].strip() i = value.find(";") if (i>0): parameters = value[ i+1 : ] value = value[ :i ] else: parameters = None self.__items[name] = value print("Headers: %s: %s" % (name,value)) # if (not parameters is None): # p = hserver.utils.StreamTokenizer(io.StringIO(parameters))