Repository: Lightning-AI/pytorch-lightning
File: pytorch_lightning/loggers/base.py (Python)

Code before:
            logger.log_graph(model, input_array)

    def save(self) -> None:
        for logger in self._logger_iterable:
            logger.save()

    def finalize(self, status: str) -> None:
        for logger in self._logger_iterable:
            logger.finalize(status)

    def close(self) -> None:
        for logger in self._logger_iterable:
            logger.close()

    @property
    def save_dir(self) -> Optional[str]:
        """
        Returns `None` as checkpoints should be saved to default / chosen location when using multiple loggers
        """
        # Checkpoints should be saved to default / chosen location when using multiple loggers
        return None

    @property
    def name(self) -> str:
        """
        Returns the experiment names for all the loggers in the logger collection joined by an underscore
        """
        return "_".join(str(logger.name) for logger in self._logger_iterable)

    @property
    def version(self) -> str:
        """
        Returns the experiment versions for all the loggers in the logger collection joined by an underscore
        """
        return "_".join(str(logger.version) for logger in self._logger_iterable)


class DummyExperiment:
    """Dummy experiment"""

    def nop(self, *args, **kw):
        pass

    def __getattr__(self, _):
        return self.nop

    def __getitem__(self, idx) -> "DummyExperiment":
        # enables self.logger.experiment[0].add_image(...)
        return self



Review comment (suggestion):
```suggestion
        Returns the experiment names for all the loggers in the logger collection joined by an underscore.
```

Code after:
            logger.log_graph(model, input_array)

    def save(self) -> None:
        for logger in self._logger_iterable:
            logger.save()

    def finalize(self, status: str) -> None:
        for logger in self._logger_iterable:
            logger.finalize(status)

    def close(self) -> None:
        for logger in self._logger_iterable:
            logger.close()

    @property
    def save_dir(self) -> Optional[str]:
        """
        Returns ``None`` as checkpoints should be saved to default / chosen location when using multiple loggers.
        """
        # Checkpoints should be saved to default / chosen location when using multiple loggers
        return None

    @property
    def name(self) -> str:
        """
        Returns the experiment names for all the loggers in the logger collection joined by an underscore.
        """
        return "_".join(str(logger.name) for logger in self._logger_iterable)

    @property
    def version(self) -> str:
        """
        Returns the experiment versions for all the loggers in the logger collection joined by an underscore.
        """
        return "_".join(str(logger.version) for logger in self._logger_iterable)


class DummyExperiment:
    """Dummy experiment"""

    def nop(self, *args, **kw):
        pass

    def __getattr__(self, _):
        return self.nop

    def __getitem__(self, idx) -> "DummyExperiment":
        # enables self.logger.experiment[0].add_image(...)
        return self