def METHOD_NAME(sdf_path, as_cxsmiles=True, skiprows=None):
    r"""
    Allows to read an SDF file containing molecular informations, convert
    it to a pandas DataFrame and convert the molecules to SMILES. It also
    lists a warning of all the molecules that couldn't be read.
    Arguments
    -----------
        sdf_path: str
            The full path and name of the sdf file to read
        as_cxsmiles: bool, optional
            Whether to use the CXSMILES notation, which preserves atomic coordinates,
            stereocenters, and much more.
            See `https://dl.chemaxon.com/marvin-archive/latest/help/formats/cxsmiles-doc.html`
            (Default = True)
        skiprows: int, list
            The rows to skip from dataset. The enumerate index starts from 1 insted of 0.
            (Default = None)
    """
    # read the SDF file
    # locally or from s3
    data = dm.read_sdf(sdf_path)
    # For each molecule in the SDF file, read all the properties and add it to a list of dict.
    # Also count the number of molecules that cannot be read.
    data_list = []
    count_none = 0
    if skiprows is not None:
        if isinstance(skiprows, int):
            skiprows = range(0, skiprows - 1)
        skiprows = np.array(skiprows) - 1
    for idx, mol in enumerate(data):
        if (skiprows is not None) and (idx in skiprows):
            continue
        if (mol is not None) and (ExactMolWt(mol) > 0):
            mol_dict = mol.GetPropsAsDict()
            data_list.append(mol_dict)
            if as_cxsmiles:
                smiles = Chem.rdmolfiles.MolToCXSmiles(mol, canonical=True)
            else:
                smiles = dm.to_smiles(mol, canonical=True)
            data_list[-1]["SMILES"] = smiles
        else:
            count_none += 1
            logger.info(f"Could not read molecule # {idx}")
    # Display a message or warning after the SDF is done parsing
    if count_none == 0:
        logger.info("Successfully read the SDF file without error: {}".format(sdf_path))
    else:
        warnings.warn(
            (
                'Error reading {} molecules from the "{}" file.\
         {} molecules read successfully.'
            ).format(count_none, sdf_path, len(data_list))
        )
    return pd.DataFrame(data_list)