ReduceLROnPlateau parent class is not _LRScheduler

I was wondering why ReduceLROnPlateau does not have _LRScheduler as parent class. If I want to check if a variable is a learning rate scheduler object type, I could have used:

isinstance(scheduler, optim.lr_scheduler._LRScheduler)

Above covers all learning rate schedulers defined in except ReduceLROnPlateau because it does not inherit from _LRScheduler. So instead I need to use:

isinstance(scheduler, optim.lr_scheduler._LRScheduler) or isinstance(scheduler, optim.lr_scheduler.ReduceLROnPlateau)

Shouldn’t ReduceLROnPlateau inherit from _LRScheduler as well? Is this just an oversight?

In general for saving a checkpoint, if I also want to save scheduler state dict, then I would like to verify the params first.