docs: def parse(self, filename):
          """
          Parses a file into an AstromData structure.
  
          Args:
            filename: str
              The name of the file whose contents will be parsed.
  
          Returns:
            data: AstromData
              The file contents extracted into a data structure for programmatic
              access.
          """
          filehandle = storage.open_vos_or_local(filename, "rb")
          assert filehandle is not None, "Failed to open file {} ".format(filename)
          filestr = filehandle.read()
          filehandle.close()
  
          assert filestr is not None, "File contents are None"
  
          observations = self._parse_observation_list(filestr)
  
          self._parse_observation_headers(filestr, observations)
  
          sys_header = self._parse_system_header(filestr)
  
          sources = self._parse_source_data(filestr, observations)
  
          return AstromData(observations, sys_header, sources, discovery_only=self.discovery_only)