class_docstr: Creates a `Dataset` object from SDF input files.
  
  This class provides conveniences to load and featurize data from
  Structure Data Files (SDFs). SDF is a standard format for structural
  information (3D coordinates of atoms and bonds) of molecular compounds.
  
  Examples
  --------
  >>> import deepchem as dc
  >>> import os
  >>> current_dir = os.path.dirname(os.path.realpath(__file__))
  >>> featurizer = dc.feat.CircularFingerprint(size=16)
  >>> loader = dc.data.SDFLoader(["LogP(RRCK)"], featurizer=featurizer, sanitize=True)
  >>> dataset = loader.create_dataset(os.path.join(current_dir, "tests", "membrane_permeability.sdf")) # doctest:+ELLIPSIS
  >>> len(dataset)
  2
class_docstr_tok: ["Creates","a","`","Dataset","`","object","from","SDF","input","files",".","This","class","provides","conveniences","to","load","and","featurize","data","from","Structure","Data","Files","(","SDFs",")",".","SDF","is","a","standard","format","for","structural","information","(","3D","coordinates","of","atoms","and","bonds",")","of","molecular","compounds",".","Examples","--","--","--","--",">",">",">","import","deepchem","as","dc",">",">",">","import","os",">",">",">","current_dir","=","os.path.dirname","(","os.path.realpath","(","__file__",")",")",">",">",">","featurizer","=","dc.feat.CircularFingerprint","(","size=16",")",">",">",">","loader","=","dc.data.SDFLoader","(","[","``","LogP","(","RRCK",")","''","]",",","featurizer=featurizer",",","sanitize=True",")",">",">",">","dataset","=","loader.create_dataset","(","os.path.join","(","current_dir",",","``","tests","''",",","``","membrane_permeability.sdf","''",")",")","#","doctest",":","+ELLIPSIS",">",">",">","len","(","dataset",")","2"]
docstr: Defines a generator which returns data for each shard
  
  Parameters
  ----------
  input_files: List[str]
      List of filenames to process
  shard_size: int, optional
      The size of a shard of data to process at a time.
  
  Returns
  -------
  Iterator[pd.DataFrame]
      Iterator over shards
docstr_tok: ["Defines","a","generator","which","returns","data","for","each","shard","Parameters","--","--","--","--","--","input_files",":","List","[","str","]","List","of","filenames","to","process","shard_size",":","int",",","optional","The","size","of","a","shard","of","data","to","process","at","a","time",".","Returns","--","--","--","-","Iterator","[","pd.DataFrame","]","Iterator","over","shards"]
code: def _get_shards(
      self, input_files: List[str], shard_size: Optional[int]
  ) -> Iterator[pd.DataFrame]:
      """Defines a generator which returns data for each shard
  
      Parameters
      ----------
      input_files: List[str]
          List of filenames to process
      shard_size: int, optional
          The size of a shard of data to process at a time.
  
      Returns
      -------
      Iterator[pd.DataFrame]
          Iterator over shards
      """
      return load_sdf_files(
          input_files=input_files,
          clean_mols=self.sanitize,
          tasks=self.tasks,
          shard_size=shard_size,
      )
  
imports: import os
  import tempfile
  import zipfile
  import time
  import logging
  import warnings
  from typing import List, Optional, Tuple, Any, Sequence, Union, Iterator
  import pandas
  import numpy
  from deepchem.utils.typing import OneOrMany
  from deepchem.utils.data_utils import load_image_files, load_csv_files, load_json_files, load_sdf_files, unzip_file
  from deepchem.feat import UserDefinedFeaturizer, Featurizer
  from deepchem.data import Dataset, DiskDataset, NumpyDataset, ImageDataset
  from deepchem.feat.molecule_featurizers import OneHotFeaturizer
  from deepchem.utils.genomics_utils import encode_bio_sequence
label_desc: Use image node_id 3 for calling the SDFLoader obj's underlying member method code with example usage: obj._get_shards(input_files, shard_size) and returns: load_sdf_files