docs: def substances_to_frame(substances, properties=None):
      """Construct a pandas :class:`~pandas.DataFrame` from a list of :class:`~pubchempy.Substance` objects.
  
      Optionally specify a list of the desired :class:`~pubchempy.Substance` properties.
      """
      import pandas as pd
      if isinstance(substances, Substance):
          substances = [substances]
      properties = set(properties) | set(['sid']) if properties else None
      return pd.DataFrame.from_records([s.to_dict(properties) for s in substances], index='sid')