~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/__init__.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2010-06-21 21:59:53 UTC
  • mfrom: (5311.1.1 contextmanagers)
  • Revision ID: pqm@pqm.ubuntu.com-20100621215953-vfo3e4ubs1gjc6ez
(lifeless) Return self from the new context managers so that new objects
 used with with statements are usable. (Robert Collins)

Show diffs side-by-side

added added

removed removed

Lines of Context:
164
164
        More options may be added in future so callers should use named
165
165
        arguments.
166
166
 
167
 
        BzrLibraryState implements the Python 2.5 Context Manager protocol, and
168
 
        can be used with the with statement. Upon __enter__ the global
169
 
        variables in use by bzr are set, and they are cleared on __exit__.
 
167
        BzrLibraryState implements the Python 2.5 Context Manager protocol
 
168
        PEP343, and can be used with the with statement. Upon __enter__ the
 
169
        global variables in use by bzr are set, and they are cleared on
 
170
        __exit__.
170
171
 
171
172
        :param setup_ui: If true (default) use a terminal UI; otherwise 
172
173
            some other ui_factory must be assigned to `bzrlib.ui.ui_factory` by
203
204
        global global_state
204
205
        self.saved_state = global_state
205
206
        global_state = self
 
207
        return self # This is bound to the 'as' clause in a with statement.
206
208
 
207
209
    def __exit__(self, exc_type, exc_val, exc_tb):
208
210
        self.cleanups.cleanup_now()