예제 #1
0
파일: unpivot.py 프로젝트: nizox/PyBabe
def unpivot(stream, common_fields, unpivot_name_field, unpivot_value_field):
	"""Unpivot a table. Keep fields lines, use other as values"""
	for row in stream:
		if isinstance(row, StreamHeader): 
			header = row.replace(fields=common_fields+[unpivot_name_field, unpivot_value_field])
			other_fields = [field for field in  row.fields if not field in common_fields]
			yield header
		elif isinstance(row, StreamMeta):
			yield row
		else:
			commons = [getattr(row, StreamHeader.keynormalize(f)) for f in common_fields]
			for field in other_fields:
				yield header.t._make(commons + [field, getattr(row, StreamHeader.keynormalize(field))])
예제 #2
0
파일: unpivot.py 프로젝트: waytai/PyBabe
def unpivot(stream, common_fields,
    unpivot_name_field, unpivot_value_field):
    """Unpivot a table. Keep fields lines, use other as values"""
    for row in stream:
        if isinstance(row, StreamHeader):
            header = row.replace(
                fields=common_fields + [unpivot_name_field, unpivot_value_field])
            other_fields = [field for field in row.fields
                if not field in common_fields]
            yield header
        elif isinstance(row, StreamMeta):
            yield row
        else:
            commons = [getattr(row, StreamHeader.keynormalize(f)) for f in common_fields]
            for field in other_fields:
                yield header.t._make(commons + [field, getattr(row, StreamHeader.keynormalize(field))])
예제 #3
0
파일: test_base.py 프로젝트: waytai/PyBabe
 def test_keynormalize(self):
     self.assertEqual('Payant_Gratuit',
                      StreamHeader.keynormalize('Payant/Gratuit'))
예제 #4
0
 def test_keynormalize(self):
     self.assertEqual('Payant_Gratuit', StreamHeader.keynormalize('Payant/Gratuit'))