code: public ParseSetup guessInitSetup(ByteVec v, byte[] bits, ParseSetup userSetup) {
      return guessSetup(v, bits, userSetup._separator, userSetup._number_columns, userSetup._single_quotes,
              userSetup._check_header, userSetup._column_names, userSetup._column_types, userSetup._domains, userSetup._na_strings);
    }
docs: Constructs initial ParseSetup from a given user setup
  
  Any exception thrown by this method will signal that this ParserProvider doesn't support
  the input data.
  
  Parsers of data formats that provide metadata (eg. a binary file formats like Parquet) should use the
  file metadata to identify the parse type and possibly other properties of the ParseSetup
  that can be determined just from the metadata itself. The goal should be perform the least amount of operations
  to correctly determine the ParseType (any exception means - format is not supported!).
  
  Note: Some file formats like CSV don't provide any metadata. In that case this method can return the final
  ParseSetup.
  
  @param v optional ByteVec
  @param bits first bytes of the file
  @param userSetup user specified setup
  @return null if this Provider cannot provide a parser for this file, otherwise an instance of ParseSetup
  with correct setting of ParseSetup._parse_type