def replace_into_mysql(self, values_list): for chunk in as_chunks(values_list, self.chunksize): lines = [] for row in chunk: lines.append(('%s\n' % smart_text(','.join( map(quote_value, row)))).encode('utf-8')) self.replace_into_mysql_lines(lines)
def queryset_as_chunks(queryset, chunksize=None, name=None, pks=None): if name is not None and pks is not None: values_getter = queryset_in_list_getter(queryset, name) for chunk in as_chunks(pks, chunksize, None, values_getter): yield chunk else: for chunk in sliceable_as_chunks(queryset, chunksize): yield chunk
def test_as_chunks_key(): iterable = [1, 2, 3, 4, 5, 6, 7, 8, 9] chunks = list(as_chunks(iterable, 4, key=lambda v: v % 4 == 0)) assert [[1, 2, 3], [4], [5, 6, 7], [8], [9]] == chunks assert [1, 2, 3, 4, 5] == list(map_attr(chunks, 'cpos')) assert [3, 3, 4, 4, 5] == list(map_attr(chunks, 'csize')) assert [1, 4, 5, 8, 9] == list(map_attr(chunks, 'pos')) assert [3, 4, 7, 8, 9] == list(map_attr(chunks, 'to_pos')) assert [9, 9, 9, 9, 9] == list(map_attr(chunks, 'size')) assert [3, 1, 3, 1, 1] == list(map_attr(chunks, 'len'))
def test_as_chunks_unsized(): iterable = iter([1, 2, 3, 4, 5, 6, 7, 8, 9]) chunks = list(as_chunks(iterable, 4)) assert [[1, 2, 3, 4], [5, 6, 7, 8], [9]] == chunks assert [1, 2, 3] == list(map_attr(chunks, 'cpos')) assert [0, 0, 0] == list(map_attr(chunks, 'csize')) assert [1, 5, 9] == list(map_attr(chunks, 'pos')) assert [4, 8, 9] == list(map_attr(chunks, 'to_pos')) assert [0, 0, 0] == list(map_attr(chunks, 'size')) assert [4, 4, 1] == list(map_attr(chunks, 'len'))
def test_as_chunks_chunk_value(): iterable = [1, 2, 3, 4, 5, 6, 7, 8, 9] chunks = list(as_chunks(iterable, 4, chunk_value=lambda vs: map(str, vs))) assert [['1', '2', '3', '4'], ['5', '6', '7', '8'], ['9']] == chunks
def replace_into_mysql(self, values_list): for chunk in as_chunks(values_list, self.chunksize): lines = [] for row in chunk: lines.append(('%s\n' % smart_text(','.join(map(quote_value, row)))).encode('utf-8')) self.replace_into_mysql_lines(lines)