def csvzip(csv_in1, csv_in2, csv_out, keep_id=False): i_csv_in1 = iter(csv_in1) i_csv_in2 = iter(csv_in2) header1 = Header(i_csv_in1.next()) header2 = Header(i_csv_in2.next()) id_field = get_id_field(header1, header2) extract_id1 = header1.extractor(id_field) extract_id2 = header2.extractor(id_field) extract_output1 = extractor(header1, id_field) extract_output2 = extractor(header2, id_field) def zip_rows(row1, row2): zip_id1 = extract_id1(row1) zip_id2 = extract_id2(row2) if zip_id1 != zip_id2: raise IdMismatch output = extract_output1(row1) + extract_output2(row2) if keep_id: return [zip_id1] + output else: return output csv_out.writerow(zip_rows(list(header1), list(header2))) csv_out.writerows( zip_rows(row1, row2) for row1, row2 in itertools.izip(i_csv_in1, i_csv_in2))
def __init__(self, target, *args): Header.__init__(self, target, *args) self._start() if type(self.ports) == tuple or len(self.ports) == 1: self._Non_thread_scanning() else: self._Multi_threads_scanning()
def csvzip(csv_in1, csv_in2, csv_out, keep_id=False): i_csv_in1 = iter(csv_in1) i_csv_in2 = iter(csv_in2) header1 = Header(i_csv_in1.next()) header2 = Header(i_csv_in2.next()) id_field = get_id_field(header1, header2) id_extractor1 = header1.extractor(id_field) id_extractor2 = header2.extractor(id_field) output_extractors1 = extractors(header1, id_field) output_extractors2 = extractors(header2, id_field) def extract(extractors, row): return [extractor(row) for extractor in extractors] def zip_rows(row1, row2): zip_id1 = id_extractor1(row1) zip_id2 = id_extractor2(row2) if zip_id1 != zip_id2: raise IdMismatch output = (extract(output_extractors1, row1) + extract(output_extractors2, row2)) if keep_id: return [zip_id1] + output else: return output csv_out.writerow(zip_rows(list(header1), list(header2))) for row1, row2 in itertools.izip(i_csv_in1, i_csv_in2): csv_out.writerow(zip_rows(row1, row2))
def csvzip(csv_in1, csv_in2, csv_out, keep_id=False): i_csv_in1 = iter(csv_in1) i_csv_in2 = iter(csv_in2) header1 = Header(i_csv_in1.next()) header2 = Header(i_csv_in2.next()) id_field = get_id_field(header1, header2) id_extractor1 = header1.extractor(id_field) id_extractor2 = header2.extractor(id_field) output_extractors1 = extractors(header1, id_field) output_extractors2 = extractors(header2, id_field) def extract(extractors, row): return [extractor(row) for extractor in extractors] def zip_rows(row1, row2): zip_id1 = id_extractor1(row1) zip_id2 = id_extractor2(row2) if zip_id1 != zip_id2: raise IdMismatch output = ( extract(output_extractors1, row1) + extract(output_extractors2, row2)) if keep_id: return [zip_id1] + output else: return output csv_out.writerow(zip_rows(list(header1), list(header2))) for row1, row2 in itertools.izip(i_csv_in1, i_csv_in2): csv_out.writerow(zip_rows(row1, row2))
def __init__(self, aByteOrder): """Constructor""" Header.__init__ (self, PacketHeader, aByteOrder)