Instead of replacing each method by itself I think it would be cleaner if it the SnakebiteHdfsClient warned (using logging/warning) and returned an instance of an HdfsClient instead in the __new__() constructor. That way it will automatically get everything from the basic class, and let the use know that snakebite wasn't available on the system.