Switch to `provides` from `implements`, new method names from deprecated aliases.
Change all `file` calls into `open` calls.
Added Python 3 compatibility with 2to3. Corrected 1 test.