code: def context(self, name, ctx):
          
          self.enter_context(name, ctx)
          try:
              yield
          finally:
              self.exit_context(name)
docs: Execute the block with the given context applied.  This manager
          ensures that the context is removed even if an exception is raised
          within the context.