With tqdm(disable=True), updating the progress bar causes
*** AttributeError: 'tqdm' object has no attribute 'n'
self.n should be initialized to initial before detecting disable, otherwise it's inconvenient to produce a mock object for the progress bar.