/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to breezy/library_state.py

  • Committer: Jelmer Vernooij
  • Date: 2019-06-03 23:48:08 UTC
  • mfrom: (7316 work)
  • mto: This revision was merged to the branch mainline in revision 7328.
  • Revision ID: jelmer@jelmer.uk-20190603234808-15yk5c7054tj8e2b
Merge trunk.

Show diffs side-by-side

added added

removed removed

Lines of Context:
44
44
    currently always exposed as breezy._global_state, but we desired to move
45
45
    to a point where no global state is needed at all.
46
46
 
47
 
    :ivar exit_stack: An ExitStack which can be used for cleanups that
 
47
    :ivar cleanups: An ObjectWithCleanups which can be used for cleanups that
48
48
        should occur when the use of breezy is completed. This is initialised
49
49
        in __enter__ and executed in __exit__.
50
50
    """
89
89
        # isolation within the same interpreter.  It's not reached on normal
90
90
        # in-process run_bzr calls.  If it's broken, we expect that
91
91
        # TestRunBzrSubprocess may fail.
92
 
        self.exit_stack = cleanup.ExitStack()
 
92
        self.cleanups = cleanup.ObjectWithCleanups()
93
93
 
94
94
        if breezy.version_info[3] == 'final':
95
 
            self.exit_stack.callback(
 
95
            self.cleanups.add_cleanup(
96
96
                symbol_versioning.suppress_deprecation_warnings(override=True))
97
97
 
98
98
        self._trace.__enter__()
99
99
 
100
100
        self._orig_ui = breezy.ui.ui_factory
101
 
        if self._ui is not None:
102
 
            breezy.ui.ui_factory = self._ui
103
 
            self._ui.__enter__()
 
101
        breezy.ui.ui_factory = self._ui
 
102
        self._ui.__enter__()
104
103
 
105
104
        if breezy._global_state is not None:
106
105
            raise RuntimeError("Breezy already initialized")
112
111
            # Save config changes
113
112
            for k, store in self.config_stores.items():
114
113
                store.save_changes()
115
 
        self.exit_stack.close()
 
114
        self.cleanups.cleanup_now()
116
115
        trace._flush_stdout_stderr()
117
116
        trace._flush_trace()
118
117
        osutils.report_extension_load_failures()
119
 
        if self._ui is not None:
120
 
            self._ui.__exit__(None, None, None)
 
118
        self._ui.__exit__(None, None, None)
121
119
        self._trace.__exit__(None, None, None)
122
120
        ui.ui_factory = self._orig_ui
123
121
        breezy._global_state = None