code: def _end_file_syncing(self, exitcode):
          
          # TODO: there was a case where _file_event_handlers was getting modified in the loop.
          for handler in list(self._file_event_handlers.values()):
              handler.finish()
  
          self._file_pusher.finish()
          self._api.get_file_stream_api().finish(exitcode)
          # In Jupyter notebooks, wandb.init can be called multiple times in the same
          # process, creating new runs each time. This ensures we get a new file stream
          # thread
          self._api._file_stream_api = None
docs: Stops file syncing/streaming but doesn't actually wait for everything to
          finish. We print progress info later.