class Filetype(object): def __init__(self, process_map, extra_header): self.lock = True self.logger = logging.getLogger(__name__) conf = Config() root = conf.config_directory["ROOT"] requested_file = root + process_map["FILE"] self.status = self.__get_status(requested_file) self.header = Header(self.status) self.process_map = process_map self.body = "" for key, value in extra_header.iteritems(): self.header.set_extra(key, value) def __get_status(self, requested_file): if not os.path.isfile(requested_file): # maybe chcanged for dynamic 404 displaying return Status_NOTFOUND() else: return Status_OK(requested_file) @abstractmethod def set_header(self): pass def sendinfo(self): self.set_header() if not isinstance(self.status, Status_OK): self.header.set_type("text") return self.header.get_header() + self.body