import os
from lightning.pytorch.callbacks import ModelCheckpoint
from typing_extensions import override
[docs]
class ModelCheckpointWithPermissions(ModelCheckpoint):
    """Adapted callback from `lightning.callbacks.ModelCheckpoint` to set file permissions to 0o640
    when saving."""
[docs]
    @override
    def _save_checkpoint(self, trainer, filepath: str) -> None:
        """Save checkpoint according to lightning code then set file permissions to 0o640."""
        super()._save_checkpoint(trainer, filepath)
        # Owner read write, group read
        os.chmod(filepath, 0o640)