code: def set(self, **kwargs):
          '''
          cplan.set(a=b...) yields a new caclulation plan identical to cplan except such that the
          calculation pieces specified by the arguments have been replaced with the given
          calculations instead.
          '''
          return Plan(reduce(lambda m,u: m.set(u[0],u[1]), six.iteritems(kwargs), self.nodes)f set(self, **kwargs):
          '''
          cplan.set(a=b...) yields a new caclulation plan identical to cplan except such that the
          calculation pieces specified by the arguments have been replaced with the given
          calculations instead.
          '''
          return Plan(reduce(lambda m,u: m.set(u[0],u[1]), six.iteritems(kwargs), self.nodes))
docs: cplan.set(a=b...) yields a new caclulation plan identical to cplan except such that the
          calculation pieces specified by the arguments have been replaced with the given
          calculations instead.