code: def ParseFileset(self, fileset=None):
      
      self.AddPassword(fileset)
      self.AddShadow(fileset)
      self.ReconcileShadow(self.shadow_store)
      # Get group memberships using the files that were already collected.
      # Separate out groups and anomalies.
      for rdf in LinuxSystemGroupParser().ParseFileset(fileset):
        if isinstance(rdf, rdf_client.Group):
          self.groups[rdf.name] = rdf
        else:
          yield rdf
      self.AddGroupMemberships()
      for user in itervalues(self.entry):
        yield user
      for grp in itervalues(self.groups):
        yield grp
      for anom in self.FindAnomalies():
        yield anom
docs: Process linux system login files.
  
      Orchestrates collection of  account entries from /etc/passwd and
      /etc/shadow. The passwd and shadow entries are reconciled and group
      memberships are mapped to the account.
  
      Args:
        fileset: A dict of files mapped from path to an open file.
  
      Yields:
        - A series of User entries, each of which is populated with
           group memberships and indications of the shadow state of the account.
        - A series of anomalies in cases where there are mismatches between passwd
          and shadow state.