Package Martel :: Package test :: Package testformats :: Module delimiter
[hide private]
[frames] | no frames]

Source Code for Module Martel.test.testformats.delimiter

 1  """Example of using Martel on a simple delimited file 
 2   
 3  """ 
 4  import Martel 
 5  from Martel import RecordReader 
 6   
7 -def delimiter(delim):
8 assert len(delim) == 1, \ 9 "delimiter can only be a single character long, not %s" % repr(delim) 10 assert delim not in "\n\r", "Cannot use %s as a delimiter" % repr(delim) 11 12 field = Martel.Group("field", Martel.Rep(Martel.AnyBut(delim + "\r\n"))) 13 14 line = field + Martel.Rep(Martel.Str(delim) + field) + Martel.AnyEol() 15 record = Martel.Group("record", line) 16 17 format = Martel.ParseRecords("delimited", {}, record, 18 RecordReader.CountLines, (1,)) 19 return format
20 21 tabformat = delimiter("\t") 22 spaceformat = delimiter(" ") 23 colonformat = delimiter(":") 24 commaformat = delimiter(",") 25 26 if __name__ == "__main__": 27 from xml.sax import saxutils 28 parser = colonformat.make_parser() 29 parser.setContentHandler(saxutils.XMLGenerator()) 30 parser.parseFile(open("/etc/passwd")) 31