code: def as_tmpfile(self, tmpdir=None):
          
          import tempfile, shutil
          tmpdir = tempfile.mkdtemp() if tmpdir is None else tmpdir
          new_path = os.path.join(tmpdir, self.basename)
          shutil.copy(self.filepath, new_path)
  
          # Copy dojoreport file if present.
          root, ext = os.path.splitext(self.filepath)
          djrepo = root + ".djrepo"
          if os.path.exists(djrepo):
              shutil.copy(djrepo, os.path.join(tmpdir, os.path.basename(djrepo)))
  
          # Build new object and copy dojo_report if present.
          new = self.__class__.from_file(new_path)
          if self.has_dojo_report: new.dojo_report = self.dojo_report.deepcopy()
  
          return new
docs: Copy the pseudopotential to a temporary a file and returns a new pseudopotential object.
          Useful for unit tests in which we have to change the content of the file.
  
          Args:
              tmpdir: If None, a new temporary directory is created and files are copied here
                  else tmpdir is used.