def parse(self): f = open(self.filename, 'r') headers = Message(f) c = f.read() f.close() if not c.strip(): c = headers.get_payload() if not headers.keys(): raise Exception("File %s has no headers" % self.filename) self.description = headers['Description'] self.expect = headers.get('Expect', '') self.ignore = headers.get('Ignore') self.options = [ o.strip() for o in headers.get('Options', '').split(',') if o.strip() ] parts = bar_re.split(c) self.input = parts[0].rstrip() + '\n' if parts[1:]: self.expect = parts[1].rstrip() + '\n' else: self.expect = None
def parse(self): f = open(self.filename, "r") headers = Message(f) c = f.read() f.close() if not c.strip(): c = headers.get_payload() if not headers.keys(): raise Exception("File %s has no headers" % self.filename) self.description = headers["Description"] self.expect = headers.get("Expect", "") self.ignore = headers.get("Ignore") self.options = [ o.strip() for o in headers.get("Options", "").split(",") if o.strip() ] parts = bar_re.split(c) self.input = parts[0].rstrip() + "\n" if parts[1:]: self.expect = parts[1].rstrip() + "\n" else: self.expect = None
def parse(self): f = open(self.filename, 'r') headers = Message(f) c = f.read() f.close() if not c.strip(): c = headers.get_payload() if not headers.keys(): raise Exception( "File %s has no headers" % self.filename) self.description = headers['Description'] self.expect = headers.get('Expect', '') self.ignore = headers.get('Ignore') self.options = [ o.strip() for o in headers.get('Options', '').split(',') if o.strip()] parts = bar_re.split(c) self.input = parts[0].rstrip() + '\n' if parts[1:]: self.expect = parts[1].rstrip() + '\n' else: self.expect = None
class RFC822File(TextFile): """ holds a rfc822 Message """ attrs = {} message = None list_types = (type([]), type(())) str_types = (type(''),) def new(self, **kw): if 'attrs' in kw.keys(): self.set_attrs(kw['attrs']) def _load_state_from_file(self, file): self.attrs = {} self.message = Message(file) for k in self.message.keys(): if self.schema is None: if len(self.message.getheaders(k)) == 1: self.attrs[k] = self.message.getheader(k) else: self.attrs[k] = self.message.getheaders(k) elif k in self.schema: if issubclass(self.schema[k], String): self.attrs[k] = self.message.getheader(k) elif issubclass(self.schema[k], Tokens): self.attrs[k] = self.message.getheaders(k) def to_str(self): data = '' list_types = (type([]), type(())) str_types = (type(''),) for key, val in self.attrs.items(): if type(val) in str_types: data += '%s: %s\n' % (key, val) elif type(val) in list_types: # a new line for each item of the list for v in val: data += '%s: %s\n' % (key, v) return data ####################################################################### # API ####################################################################### def set_attrs(self, attrs): # Check types of values type_error_msg = 'One of the given values is not compatible' for key, val in attrs.items(): if type(val) in self.list_types: for v in val: if type(v) not in self.str_types: raise TypeError, type_error_msg elif self.schema is not None and key not in self.schema: del attrs[key] # Now attrs is sure self.attrs = attrs self.set_changed() def get_attrs(self): if self.schema is not None: for key in self.schema: if key not in self.attrs: self.attrs[key] = self.schema[key].get_default() return self.attrs
class RFC822File(TextFile): """ holds a rfc822 Message """ attrs = {} message = None list_types = (type([]), type(())) str_types = (type(''), ) def new(self, **kw): if 'attrs' in kw.keys(): self.set_attrs(kw['attrs']) def _load_state_from_file(self, file): self.attrs = {} self.message = Message(file) for k in self.message.keys(): if self.schema is None: if len(self.message.getheaders(k)) == 1: self.attrs[k] = self.message.getheader(k) else: self.attrs[k] = self.message.getheaders(k) elif k in self.schema: if issubclass(self.schema[k], String): self.attrs[k] = self.message.getheader(k) elif issubclass(self.schema[k], Tokens): self.attrs[k] = self.message.getheaders(k) def to_str(self): data = '' list_types = (type([]), type(())) str_types = (type(''), ) for key, val in self.attrs.items(): if type(val) in str_types: data += '%s: %s\n' % (key, val) elif type(val) in list_types: # a new line for each item of the list for v in val: data += '%s: %s\n' % (key, v) return data ####################################################################### # API ####################################################################### def set_attrs(self, attrs): # Check types of values type_error_msg = 'One of the given values is not compatible' for key, val in attrs.items(): if type(val) in self.list_types: for v in val: if type(v) not in self.str_types: raise TypeError, type_error_msg elif self.schema is not None and key not in self.schema: del attrs[key] # Now attrs is sure self.attrs = attrs self.set_changed() def get_attrs(self): if self.schema is not None: for key in self.schema: if key not in self.attrs: self.attrs[key] = self.schema[key].get_default() return self.attrs