code: def readShocks(self):
          '''
          Reads values of shock variables for the current period from history arrays.  For each var-
          iable X named in self.shock_vars, this attribute of self is set to self.X_hist[self.t_sim,:].
  
          This method is only ever called if self.read_shocks is True.  This can be achieved by using
          the method makeShockHistory() (or manually after storing a "handcrafted" shock history).
  
          Parameters
          ----------
          None
  
          Returns
          -------
          None
          '''
          for var_name in self.shock_vars:
              setattr(self,var_name,getattr(self,var_name+'_hist')[self.t_sim,:]f readShocks(self):
          '''
          Reads values of shock variables for the current period from history arrays.  For each var-
          iable X named in self.shock_vars, this attribute of self is set to self.X_hist[self.t_sim,:].
  
          This method is only ever called if self.read_shocks is True.  This can be achieved by using
          the method makeShockHistory() (or manually after storing a "handcrafted" shock history).
  
          Parameters
          ----------
          None
  
          Returns
          -------
          None
          '''
          for var_name in self.shock_vars:
              setattr(self,var_name,getattr(self,var_name+'_hist')[self.t_sim,:])
docs: Reads values of shock variables for the current period from history arrays.  For each var-
          iable X named in self.shock_vars, this attribute of self is set to self.X_hist[self.t_sim,:].
  
          This method is only ever called if self.read_shocks is True.  This can be achieved by using
          the method makeShockHistory() (or manually after storing a "handcrafted" shock history).
  
          Parameters
          ----------
          None
  
          Returns
          -------
          None