code: def write_toml(self, data, path=None):
          
          if path is None:
              path = self.pipfile_location
          data = convert_toml_outline_tables(data)
          try:
              formatted_data = tomlkit.dumps(data).rstrip()
          except Exception:
              document = tomlkit.document()
              for section in ("packages", "dev-packages"):
                  document[section] = tomlkit.container.Table()
                  # Convert things to inline tables — fancy :)
                  for package in data.get(section, {}):
                      if hasattr(data[section][package], "keys"):
                          table = tomlkit.inline_table()
                          table.update(data[section][package])
                          document[section][package] = table
                      else:
                          document[section][package] = tomlkit.string(data[section][package])
              formatted_data = tomlkit.dumps(document).rstrip()
  
          if (
              vistir.compat.Path(path).absolute()
              == vistir.compat.Path(self.pipfile_location).absolute()
          ):
              newlines = self._pipfile_newlines
          else:
              newlines = DEFAULT_NEWLINES
          formatted_data = cleanup_toml(formatted_data)
          with io.open(path, "w", newline=newlines) as f:
              f.write(formatted_data)
          # pipfile is mutated!
          self.clear_pipfile_cache()
docs: Writes the given data structure out as TOML.