          if os.name == "nt":
              return msvcrt.getch().decode("utf-8")
          return sys.stdin.read(1)
  
      @staticmethod
      def getarrow():
          """ Returns an arrow-key code after kbhit() has been called. Codes are
          0 : up
          1 : right
          2 : down
          3 : left
 
</s> remove     @staticmethod
    def getch():
 </s> add     def getch(self): </s> remove     @staticmethod
    def kbhit():
 </s> add     def kbhit(self):
    def getarrow(self):
          if os.name == "nt":
              return msvcrt.getch().decode("utf-8")
          return sys.stdin.read(1)
  
    def getarrow(self):
    def getarrow(self):
          """ Returns an arrow-key code after kbhit() has been called. Codes are
          0 : up
          1 : right
          2 : down
          3 : left
keep keep keep keep replace replace keep keep keep keep keep
 Config Changes + Bugfixes

Bugfix: Fully disable keypress monitor for GUI
Bugfix: Preview - Handle missing alignments file
Config changes:
    - Separate plugin defaults into their own files
    - Move mask_type to global training config
    - Add ability to pass in custom config files 
lib/keypress.py