code: def save_workspace(self, filename=''):
          r
          if filename == '':
              filename = 'workspace' + '_' + time.strftime('%Y%b%d_%H%M%p')
          filename = self._parse_filename(filename=filename, ext='pnm')
          d = {}
          for sim in self.values():
              d[sim.name] = sim
          with open(filename, 'wb') as f:
              pickle.dump(d, f)
docs: r"""
          Saves all the current Projects to a 'pnm' file
  
          Parameters
          ----------
          filename : string, optional
              If no filename is given, a name is genrated using the current
              time and date. See Notes for more information on valid file names.
  
          See Also
          --------
          save_project
  
          Notes
          -----
          The filename can be a string such as 'saved_file.pnm'.  The string can
          include absolute path such as 'C:\networks\saved_file.pnm', or can
          be a relative path such as '..\..\saved_file.pnm', which will look
          2 directories above the current working directory.  It can also be a
          path object object such as that produced by ``pathlib`` or
          ``os.path`` in the Python standard library.