add __pycache__ to gitignore
call close() in __del__()
remove unnecessary 'pass' statement
use 'is not None' instead of '!= None' because of __eq__()
use 'is not None' instead of '!= None'
check fd > 0 before os.close()
set fd to -1 when closing
fix uinput tests
bump version to 0.4.2