docs: def load_previous(self, path=None):
          """Load previous copy of config from disk.
  
          In normal usage you don't need to call this method directly - it
          is called automatically at object initialization.
  
          :param path:
  
              File path from which to load the previous config. If `None`,
              config is loaded from the default location. If `path` is
              specified, subsequent `save()` calls will write to the same
              path.
  
          """
          self.path = path or self.path
          with open(self.path) as f:
              try:
                  self._prev_dict = json.load(f)
              except ValueError as e:
                  log('Unable to parse previous config data - {}'.format(str(e)),
                      level=ERROR)
          for k, v in copy.deepcopy(self._prev_dict).items():
              if k not in self:
                  self[k] = v