I would appreciate if you could add a class for a rotary encoder like KY-040 or EC11. There are several libraries out there. I think this one is the cleanest, but I am probably not experienced enough to really judge that: https://github.com/miketeachman/micropython-rotary/blob/master/rotary.py
I guess the push button in these encoders does not need anything special and can be handled with your Button class.