~jelmer/brz/deprecation

« back to all changes in this revision

Viewing changes to breezy/upgrade.py

  • Committer: Vincent Ladeuil
  • Author(s): Jelmer Vernooij
  • Date: 2018-03-01 05:46:59 UTC
  • mfrom: (6861.4.1 pb-context)
  • Revision ID: v.ladeuil+lp@free.fr-20180301054659-7fzum8cexsk421r3
Make progress bars context managers.

Merged from https://code.launchpad.net/~jelmer/brz/pb-context/+merge/339449

Show diffs side-by-side

added added

removed removed

Lines of Context:
116
116
        """
117
117
        transport = self.transport
118
118
        backup_relpath = transport.relpath(self.backup_newpath)
119
 
        child_pb = ui.ui_factory.nested_progress_bar()
120
 
        child_pb.update(gettext('Deleting backup.bzr'))
121
 
        try:
 
119
        with ui.ui_factory.nested_progress_bar() as child_pb:
 
120
            child_pb.update(gettext('Deleting backup.bzr'))
122
121
            transport.delete_tree(backup_relpath)
123
 
        finally:
124
 
            child_pb.finished()
125
122
 
126
123
 
127
124
def upgrade(url, format=None, clean_up=False, dry_run=False):
272
269
    """
273
270
    succeeded = []
274
271
    exceptions = []
275
 
    child_pb = ui.ui_factory.nested_progress_bar()
276
 
    child_pb.update(gettext('Upgrading bzrdirs'), 0, len(items))
277
 
    for i, control_dir in enumerate(items):
278
 
        # Do the conversion
279
 
        location = control_dir.root_transport.base
280
 
        bzr_object, bzr_label = _get_object_and_label(control_dir)
281
 
        type_label = label or bzr_label
282
 
        child_pb.update(gettext("Upgrading %s") % (type_label), i+1, len(items))
283
 
        ui.ui_factory.note(gettext('Upgrading {0} {1} ...').format(type_label, 
284
 
            urlutils.unescape_for_display(location, 'utf-8'),))
285
 
        try:
286
 
            if not dry_run:
287
 
                cv = Convert(control_dir=control_dir, format=format)
288
 
        except errors.UpToDateFormat as ex:
289
 
            ui.ui_factory.note(str(ex))
290
 
            succeeded.append(control_dir)
291
 
            continue
292
 
        except Exception as ex:
293
 
            trace.warning('conversion error: %s' % ex)
294
 
            exceptions.append(ex)
295
 
            continue
296
 
 
297
 
        # Do any required post processing
298
 
        succeeded.append(control_dir)
299
 
        if clean_up:
 
272
    with ui.ui_factory.nested_progress_bar() as child_pb:
 
273
        child_pb.update(gettext('Upgrading bzrdirs'), 0, len(items))
 
274
        for i, control_dir in enumerate(items):
 
275
            # Do the conversion
 
276
            location = control_dir.root_transport.base
 
277
            bzr_object, bzr_label = _get_object_and_label(control_dir)
 
278
            type_label = label or bzr_label
 
279
            child_pb.update(gettext("Upgrading %s") % (type_label), i+1, len(items))
 
280
            ui.ui_factory.note(gettext('Upgrading {0} {1} ...').format(type_label, 
 
281
                urlutils.unescape_for_display(location, 'utf-8'),))
300
282
            try:
301
 
                ui.ui_factory.note(gettext('Removing backup ...'))
302
283
                if not dry_run:
303
 
                    cv.clean_up()
 
284
                    cv = Convert(control_dir=control_dir, format=format)
 
285
            except errors.UpToDateFormat as ex:
 
286
                ui.ui_factory.note(str(ex))
 
287
                succeeded.append(control_dir)
 
288
                continue
304
289
            except Exception as ex:
305
 
                trace.warning(gettext('failed to clean-up {0}: {1}') % (location, ex))
 
290
                trace.warning('conversion error: %s' % ex)
306
291
                exceptions.append(ex)
 
292
                continue
307
293
 
308
 
    child_pb.finished()
 
294
            # Do any required post processing
 
295
            succeeded.append(control_dir)
 
296
            if clean_up:
 
297
                try:
 
298
                    ui.ui_factory.note(gettext('Removing backup ...'))
 
299
                    if not dry_run:
 
300
                        cv.clean_up()
 
301
                except Exception as ex:
 
302
                    trace.warning(gettext('failed to clean-up {0}: {1}') % (location, ex))
 
303
                    exceptions.append(ex)
309
304
 
310
305
    # Return the result
311
306
    return succeeded, exceptions