Skip to content
Snippets Groups Projects
Commit 3c6af9a6 authored by Hervé  MENAGER's avatar Hervé MENAGER
Browse files

fix progress bar in dataframe processing

parent 9718eaea
No related branches found
No related tags found
No related merge requests found
...@@ -73,8 +73,8 @@ class ImportTask(object): ...@@ -73,8 +73,8 @@ class ImportTask(object):
def post_process(self): def post_process(self):
pass pass
def _process_rows(self, rows): def _process_rows(self, rows, progress=None):
for idx, row in enumerate(rows): for row in rows:
try: try:
new_object = None new_object = None
with transaction.atomic(): with transaction.atomic():
...@@ -93,8 +93,8 @@ class ImportTask(object): ...@@ -93,8 +93,8 @@ class ImportTask(object):
if self.progress_bar == False: if self.progress_bar == False:
self.out_stream.write(self.style.SUCCESS( self.out_stream.write(self.style.SUCCESS(
'Successfully inserted {}'.format(new_object))) 'Successfully inserted {}'.format(new_object)))
if self.progress_bar: if self.progress_bar == True:
self.rows.update(idx) progress.update(1)
def count_source(self): def count_source(self):
self.source_count = len(self.rows) self.source_count = len(self.rows)
...@@ -104,8 +104,8 @@ class ImportTask(object): ...@@ -104,8 +104,8 @@ class ImportTask(object):
self.count_source() self.count_source()
if self.progress_bar is True: if self.progress_bar is True:
with click.progressbar(length=self.source_count, with click.progressbar(length=self.source_count,
label='Importing ' + self.description + ' (' + str(self.source_count) + ' rows to process).') as rows_list: label='Importing ' + self.description + ' (' + str(self.source_count) + ' rows to process).') as progress:
self._process_rows(rows_list) self._process_rows(self.rows, progress)
else: else:
self._process_rows(self.rows) self._process_rows(self.rows)
self.post_process() self.post_process()
...@@ -152,7 +152,7 @@ class DataFrameImportTask(ImportTask): ...@@ -152,7 +152,7 @@ class DataFrameImportTask(ImportTask):
dataframe = None dataframe = None
def open_data_source(self): def open_data_source(self):
self.rows = self.dataframe.iterrows() self.rows = (row for idx, row in self.dataframe.iterrows())
def count_source(self): def count_source(self):
self.source_count = self.dataframe.shape[0] self.source_count = self.dataframe.shape[0]
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment