code: def has_builder(self):
          
          try:
              b = self.builder
          except AttributeError:
              # There was no explicit builder for this Node, so initialize
              # the self.builder attribute to None now.
              b = self.builder = None
          return b is not None
docs: Return whether this Node has a builder or not.
  
          In Boolean tests, this turns out to be a *lot* more efficient
          than simply examining the builder attribute directly ("if
          node.builder: ..."). When the builder attribute is examined
          directly, it ends up calling __getattr__ for both the __len__
          and __nonzero__ attributes on instances of our Builder Proxy
          class(es), generating a bazillion extra calls and slowing
          things down immensely.