Shouldn't LightningDataModule inherit abc.ABC to have @abstractmethod decorator works properly ?
pytorch-lightning/pytorch_lightning/core/datamodule.py
    
    
         Line 89
      in
      a55c481
    
  
  
    

        
          
           class LightningDataModule(object, metaclass=_DataModuleWrapper):  # pragma: no cover 
        
    
  


To ensure all abstract methods are overridden, one should inherit abc.ABC or set metaclass=abc.ABCMeta.
Like below,
class _DataModuleWrapperABCMeta(_DataModuleWrapper, ABCMeta):
    pass


class LightningDataModule(metaclass=_DataModuleWrapperABCMeta):  # pragma: no cover
However, this way will require user to explicitly define all three (train/val/test) dataloaders, even if some are not actually needed.