src/p4l/management/commands/dump_record.py
changeset 132 b23fae63f732
parent 131 f1854630734f
child 142 c365a6e23a56
equal deleted inserted replaced
131:f1854630734f 132:b23fae63f732
    74         ),
    74         ),
    75         make_option('-b', '--batch',
    75         make_option('-b', '--batch',
    76             dest= 'batch',
    76             dest= 'batch',
    77             type='int',
    77             type='int',
    78             default=100,
    78             default=100,
    79             help= 'query batch default 500.' 
    79             help= 'query batch default 100.' 
    80         ),
    80         ),
    81         make_option('-j', '--bzip2',
    81         make_option('-j', '--bzip2',
    82             dest= 'bzip2',
    82             dest= 'bzip2',
    83             action='store_true',
    83             action='store_true',
    84             default=False,
    84             default=False,
   128         else:
   128         else:
   129             qs = qs[skip:]
   129             qs = qs[skip:]
   130         
   130         
   131         open_method = None
   131         open_method = None
   132         open_args = []
   132         open_args = []
       
   133         decode_method = lambda s: s
   133         
   134         
   134         if bzip2:
   135         if bzip2:
   135             open_method = bz2.BZ2File
   136             open_method = bz2.BZ2File
   136             open_args = [filepath, 'wb', 9] 
   137             open_args = [filepath, 'wb', 9]
   137         elif gzip_opt:
   138         elif gzip_opt:
   138             open_method = gzip.GzipFile
   139             open_method = gzip.GzipFile
   139             open_args = [filepath, 'wb', 9]
   140             open_args = [filepath, 'wb', 9]
   140         else:
   141         else:
   141             open_method = codecs.open
   142             open_method = codecs.open
   142             open_args = [filepath, 'wb', "utf-8"]
   143             open_args = [filepath, 'wb', "utf-8"]
       
   144             decode_method = lambda s: s.decode("utf-8")
   143         
   145         
   144         total_records = qs.count()
   146         total_records = qs.count()
   145         
   147         
   146         print("Total record to export : %d" % total_records)
   148         print("Total record to export : %d" % total_records)
   147         progress_writer = None
   149         progress_writer = None
   160                     do_write = False
   162                     do_write = False
   161                     for line in graph.serialize(format="pretty-xml", encoding="utf-8").splitlines(True):
   163                     for line in graph.serialize(format="pretty-xml", encoding="utf-8").splitlines(True):
   162                         if "<iiep:Record" in line:
   164                         if "<iiep:Record" in line:
   163                             do_write = True
   165                             do_write = True
   164                         if do_write:
   166                         if do_write:
   165                             dest_file.write(line.decode("utf-8"))
   167                             dest_file.write(decode_method(line))
   166                         if "</iiep:Record>" in line:
   168                         if "</iiep:Record>" in line:
   167                             break
   169                             break
   168                 
   170                 
   169             writer.endElementNS((RDF, 'RDF'), 'RDF')
   171             writer.endElementNS((RDF, 'RDF'), 'RDF')
   170             writer.endDocument()
   172             writer.endDocument()