code: def step(self, **args):
          
          if self.verbosity > 0:
              print("Network.step() called with:", args)
          # First, copy the values into either activations or targets:
          retargs = self.preStep(**args)
          if retargs: args = retargs # replace the args
          # Propagate activation through network:
          self.propagate(**args)
          retargs = self.postPropagate(**args)
          if retargs: args = retargs # replace the args
          # Next, take care of any Auto-association, and copy
          # activations to targets
          for aa in self.association:
              (inName, outName) = aa
              inLayer = self.getLayer(inName)
              if inLayer.type not in ['Input', "Hidden"]:
                  raise LayerError('Associated input layer not type \'Input\' or \'Hidden\'.', \
                                     inLayer.type)
              outLayer = self.getLayer(outName)
              if not outLayer.type == 'Output':
                  raise LayerError('Associated output layer not type \'Output\'.', \
                                     outLayer.type)
              outLayer.copyTargets(inLayer.activation)
          # Compute error, and back prop it:
          retargs = self.preBackprop(**args)
          if retargs: args = retargs # replace the args
          (error, correct, total, pcorrect) = self.backprop(**args) # compute_error()
          if self.verbosity > 2 or self.interactive:
              self.display()
              if self.interactive:
                  self.prompt()
          retargs = self.postBackprop(**args)
          if retargs: args = retargs # replace the args
          # if learning is true, and need to update weights here:
          if self.learning and not self.batch:
              self.change_weights() # else change weights in sweep
          retargs = self.postStep(**args)
          if retargs: args = retargs # replace the args
          self.reportPattern()
          return (error, correct, total, pcorrect)
docs: Network.step()
          Does a single step. Calls propagate(), backprop(), and
          change_weights() if learning is set.
          Format for parameters: <layer name> = <activation/target list>