code: def scan_directory(self, dirname, exclude_exts=(), exclude_fnames=()):
          
          for i, ext in enumerate(exclude_exts):
              if not ext.strip().startswith("."):
                  exclude_exts[i] =  "." + ext.strip()
  
          # Exclude files depending on the extension.
          paths = []
          for fname in os.listdir(dirname):
              root, ext = os.path.splitext(fname)
              path = os.path.join(dirname, fname)
              if (ext in exclude_exts or fname in exclude_fnames or
                  fname.startswith(".") or not os.path.isfile(path)): continue
              paths.append(path)
  
          pseudos = []
          for path in paths:
              # Parse the file and generate the pseudo.
              try:
                  pseudo = self.parse(path)
              except:
                  pseudo = None
  
              if pseudo is not None:
                  pseudos.append(pseudo)
                  self._parsed_paths.extend(path)
              else:
                  self._wrong_paths.extend(path)
  
          return pseudos
docs: Analyze the files contained in directory dirname.
  
          Args:
              dirname: directory path
              exclude_exts: list of file extensions that should be skipped.
              exclude_fnames: list of file names that should be skipped.
  
          Returns:
              List of pseudopotential objects.