sha,message,author_date,committer_date,raw_author,raw_committer,repo,author,committer 37273d7f63f08872aa1c90c4233a0580e384ac19,"Fixed issue #433 - CLI eats cursor (#598) The issue is that underlying iterator is not fully consumed within the body of the `with file_progress()` block. Instead, that block creates generator expressions like `docs = (dict(zip(headers, row)) for row in reader)` These iterables are consumed later, outside the `with file_progress()` block, which consumes the underlying iterator, and in turn updates the progress bar. This means that the `ProgressBar.__exit__` method gets called before the last time the `ProgressBar.update` method gets called. The result is that the code to make the cursor invisible (inside the `update()` method) is called after the cleanup code to make it visible (in the `__exit__` method). The fix is to move consumption of the `docs` iterators within the progress bar block. (An additional fix, to make ProgressBar more robust against this kind of misuse, would to make it refusing to update after its `__exit__` method had been called, just like files cannot be `read()` after they are closed. That requires a in the click library).",2023-11-04T00:40:29Z,2023-11-04T00:40:29Z,189bbd99f415a97bb6554c438654cb35fc4c85ae,cd792325681cbad9f663f2879d8b69f1edbb678f,140912432,62745,19864447