# Path: pygaze/settings.py
# class Settings(object):
#     def __init__(self):
#     def read_module(self, mod):
#     def __getattr__(self, setting):
#     def __setattr__(self, setting, value):
# 
# Path: pygaze/_misc/misc.py
# def copy_docstr(src, target):
# 
#     """
#     Copies docstrings from the methods of a source class to the methods of a
#     target class.
#     
#     arguments:
#     src        --    source class (e.g. BaseDisplay)
#     target    --    target class (e.g. PyGameDisplay)
#     """
#     
#     for attr_name in dir(target):
#         if not hasattr(src, attr_name) or not ismethod(getattr(src, attr_name)):
#             continue
#         getattr(target, attr_name).__func__.__doc__ = getattr(src, attr_name).__func__.__doc__
# 
# Path: pygaze/_keyboard/basekeyboard.py
# class BaseKeyboard:
# 
#      """A keyboard for collecting responses"""
# 
#      def __init__(self):
# 
#           """
#           Initializes the Keyboard object
#           
#           arguments
# 
#           None
#           
#           keyword arguments
# 
#           keylist     --     list of keys that are allowed, e.g. ["1","a","enter"]
#                          for the 1, A and Enter keys (default =
#                          KEYLIST)
#           timeout     --     time in milliseconds after which None is returned
#                          on a call to the get_key method when no keypress is
#                          registered (default = KEYTIMEOUT)
#           """
# 
#           pass
# 
#      
#      def set_keylist(self):
# 
#           """
#           Set a list of accepted keys
#           
#           arguments
# 
#           None
#           
#           keyword arguments
# 
#           keylist     --     list of keys that are allowed (e.g.
#                          ["1","a","enter"]) or None to allow all keys
#                          (default = None)
#           
#           returns
# 
#           None          --     sets klist property
#           """
#           
#           pass
# 
# 
#      def set_timeout(self):
# 
#           """
#           Set a timeout (in milliseconds)
#           
#           arguments
# 
#           None
#           
#           keyword arguments
# 
#           timeout     --     time in milliseconds after which None is returned
#                          on a call to get_key method when no keypress is
#                          registered (default = None)
#           
#           returns
#           
#           None     --     sets timeout property
#           """
# 
#           pass
# 
# 
#      def get_key(self):
# 
#           """
#           Wait for keyboard input
#           
#           arguments
# 
#           None
#           
#           keyword arguments
# 
#           keylist     --     list of keys that are allowed (e.g.
#                          ["1","a","enter"]), None to allow all keys or
#                          "default" to use klist property (default = "default")
#           timeout     --     time in milliseconds after which None is returned
#                          when no keypress is registered (default = None);
#                          None for no timeout or "default" to use the timeout
#                          property (default = "default")
#           flush          --     Boolean indicating if all input from before
#                          calling get_key should be ignored, if set to
#                          False keypresses from before calling this
#                          function will be registered, otherwise every
#                          keyboard input from before calling this function
#                          will be flushed (default = False)
#           
#           returns
# 
#           key, presstime     --     key is a string, indicating which button has
#                               been pressed or None when no key has been
#                               pressed
#                               presstime is the time (measured from
#                               expbegintime) a keypress or a timeout occured
#           """
#           
#           pass


from pygaze.py3compat import *
from pygaze import settings
from pygaze._misc.misc import copy_docstr
from pygaze._keyboard.basekeyboard import BaseKeyboard
            from pygaze._keyboard.pygamekeyboard import PyGameKeyboard as \
                Keyboard
            from pygaze._keyboard.psychopykeyboard import PsychoPyKeyboard as \
                Keyboard
            from pygaze._keyboard.oskeyboard import OSKeyboard as \
                Keyboard

#    This program is free software: you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation, either version 3 of the License, or
#    (at your option) any later version.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with this program.  If not, see <http://www.gnu.org/licenses/>



class Keyboard(BaseKeyboard):

    # see BaseKeyboard

    def __init__(self, disptype=settings.DISPTYPE, **args):

        # see BaseKeyboard

        if disptype == "pygame":
        elif disptype == "psychopy":
        elif disptype == "opensesame":
        else:
            raise Exception("Unexpected disptype: %s".format(disptype))
        self.__class__ = Keyboard
        self.__class__.__init__(self, **args)

# Path: pygaze/settings.py
# class Settings(object):
#     def __init__(self):
#     def read_module(self, mod):
#     def __getattr__(self, setting):
#     def __setattr__(self, setting, value):
# 
# Path: pygaze/_misc/misc.py
# def copy_docstr(src, target):
# 
#     """
#     Copies docstrings from the methods of a source class to the methods of a
#     target class.
#     
#     arguments:
#     src        --    source class (e.g. BaseDisplay)
#     target    --    target class (e.g. PyGameDisplay)
#     """
#     
#     for attr_name in dir(target):
#         if not hasattr(src, attr_name) or not ismethod(getattr(src, attr_name)):
#             continue
#         getattr(target, attr_name).__func__.__doc__ = getattr(src, attr_name).__func__.__doc__
# 
# Path: pygaze/_keyboard/basekeyboard.py
# class BaseKeyboard:
# 
#      """A keyboard for collecting responses"""
# 
#      def __init__(self):
# 
#           """
#           Initializes the Keyboard object
#           
#           arguments
# 
#           None
#           
#           keyword arguments
# 
#           keylist     --     list of keys that are allowed, e.g. ["1","a","enter"]
#                          for the 1, A and Enter keys (default =
#                          KEYLIST)
#           timeout     --     time in milliseconds after which None is returned
#                          on a call to the get_key method when no keypress is
#                          registered (default = KEYTIMEOUT)
#           """
# 
#           pass
# 
#      
#      def set_keylist(self):
# 
#           """
#           Set a list of accepted keys
#           
#           arguments
# 
#           None
#           
#           keyword arguments
# 
#           keylist     --     list of keys that are allowed (e.g.
#                          ["1","a","enter"]) or None to allow all keys
#                          (default = None)
#           
#           returns
# 
#           None          --     sets klist property
#           """
#           
#           pass
# 
# 
#      def set_timeout(self):
# 
#           """
#           Set a timeout (in milliseconds)
#           
#           arguments
# 
#           None
#           
#           keyword arguments
# 
#           timeout     --     time in milliseconds after which None is returned
#                          on a call to get_key method when no keypress is
#                          registered (default = None)
#           
#           returns
#           
#           None     --     sets timeout property
#           """
# 
#           pass
# 
# 
#      def get_key(self):
# 
#           """
#           Wait for keyboard input
#           
#           arguments
# 
#           None
#           
#           keyword arguments
# 
#           keylist     --     list of keys that are allowed (e.g.
#                          ["1","a","enter"]), None to allow all keys or
#                          "default" to use klist property (default = "default")
#           timeout     --     time in milliseconds after which None is returned
#                          when no keypress is registered (default = None);
#                          None for no timeout or "default" to use the timeout
#                          property (default = "default")
#           flush          --     Boolean indicating if all input from before
#                          calling get_key should be ignored, if set to
#                          False keypresses from before calling this
#                          function will be registered, otherwise every
#                          keyboard input from before calling this function
#                          will be flushed (default = False)
#           
#           returns
# 
#           key, presstime     --     key is a string, indicating which button has
#                               been pressed or None when no key has been
#                               pressed
#                               presstime is the time (measured from
#                               expbegintime) a keypress or a timeout occured
#           """
#           
#           pass


# Path: pygaze/keyboard.py
from pygaze.py3compat import *
from pygaze import settings
from pygaze._misc.misc import copy_docstr
from pygaze._keyboard.basekeyboard import BaseKeyboard
            from pygaze._keyboard.pygamekeyboard import PyGameKeyboard as \
                Keyboard
            from pygaze._keyboard.psychopykeyboard import PsychoPyKeyboard as \
                Keyboard
            from pygaze._keyboard.oskeyboard import OSKeyboard as \
                Keyboard

#    This program is free software: you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation, either version 3 of the License, or
#    (at your option) any later version.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with this program.  If not, see <http://www.gnu.org/licenses/>



class Keyboard(BaseKeyboard):

    # see BaseKeyboard

    def __init__(self, disptype=settings.DISPTYPE, **args):

        # see BaseKeyboard

        if disptype == "pygame":
        elif disptype == "psychopy":
        elif disptype == "opensesame":
        else:
            raise Exception("Unexpected disptype: %s".format(disptype))
        self.__class__ = Keyboard
        self.__class__.__init__(self, **args)

        copy_docstr(BaseKeyboard, Keyboard)
