{"action":"created","issue":{"url":"https://api.github.com/repos/hyde/hyde/issues/307","labels_url":"https://api.github.com/repos/hyde/hyde/issues/307/labels{/name}","comments_url":"https://api.github.com/repos/hyde/hyde/issues/307/comments","events_url":"https://api.github.com/repos/hyde/hyde/issues/307/events","html_url":"https://github.com/hyde/hyde/pull/307","id":126069432,"number":307,"title":"Add initial (experimental) Python 3 support.","user":{"login":"jonafato","id":392720,"avatar_url":"https://avatars.githubusercontent.com/u/392720?v=3","gravatar_id":"","url":"https://api.github.com/users/jonafato","html_url":"https://github.com/jonafato","followers_url":"https://api.github.com/users/jonafato/followers","following_url":"https://api.github.com/users/jonafato/following{/other_user}","gists_url":"https://api.github.com/users/jonafato/gists{/gist_id}","starred_url":"https://api.github.com/users/jonafato/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jonafato/subscriptions","organizations_url":"https://api.github.com/users/jonafato/orgs","repos_url":"https://api.github.com/users/jonafato/repos","events_url":"https://api.github.com/users/jonafato/events{/privacy}","received_events_url":"https://api.github.com/users/jonafato/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2016-01-12T00:24:29Z","updated_at":"2016-01-12T00:44:00Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/hyde/hyde/pulls/307","html_url":"https://github.com/hyde/hyde/pull/307","diff_url":"https://github.com/hyde/hyde/pull/307.diff","patch_url":"https://github.com/hyde/hyde/pull/307.patch"},"body":"All tests* currently pass under Python 2.7 and Python 3.3 - 3.5. This\r\ndoes not mean that Python 3 support is stable, however. As a plan\r\nforward, we should encourage interested users to run Hyde with Python 3,\r\nreport bugs, and submit patches. This change references the Python 3\r\nSupport issue on GitHub (#270). Once this becomes a bit more tested and\r\nstable, that issue should be closed, and Hyde should announce official,\r\nstable support for Python 3 (i.e. new changes must also support 3,\r\nissues with running hyde under 3 should be considered bugs rather than\r\nfeature requests, etc.).\r\n\r\nChanges:\r\n\r\n- Add ``hyde/_compat.py`` for 2-to-3 compatibility helpers.\r\n- Replace uses of 2-specific code with their ``hyde._compat`` versions.\r\n- Tests remain largely unchanged (for good reason). The exceptions here\r\n  are to ``print`` function calls, and ``str`` type usage, and\r\n  compatibility imports.\r\n- Replace explicit calls to ``foo.next()`` with ``next(foo)``. This\r\n  keeps code portable between Python 2's ``next`` and Python 3's\r\n  ``__next__`` methods without the need for any compatibility functions\r\n  and is the recommended API for interacting with these methods.\r\n- Replace deprecated (and, in Python 3, removed) ``except Exception, e:``\r\n  statements with their updated ``except Exception as e:`` versions.\r\n- Replace print statements with print function calls (because of how\r\n  parentheses work in Python, this is transparently\r\n  cross-version-compatible).\r\n- Add Python 3.3, 3.4, and 3.5 to ``tox.ini``, ``.travis.yml``, and\r\n  classifiers in ``setup.py``.\r\n- Add ``{posargs}`` to ``tox.ini`` command invocations to improve usage\r\n  during development.\r\n- Add Python 3 note in changelog.\r\n\r\n\\* asciidoc does not support Python 3, and fixing that far beyond the\r\nscope of this task, so the test that deals with it is conditionally\r\nskipped when run using versions of Python 3."},"comment":{"url":"https://api.github.com/repos/hyde/hyde/issues/comments/170744482","html_url":"https://github.com/hyde/hyde/pull/307#issuecomment-170744482","issue_url":"https://api.github.com/repos/hyde/hyde/issues/307","id":170744482,"user":{"login":"jonafato","id":392720,"avatar_url":"https://avatars.githubusercontent.com/u/392720?v=3","gravatar_id":"","url":"https://api.github.com/users/jonafato","html_url":"https://github.com/jonafato","followers_url":"https://api.github.com/users/jonafato/followers","following_url":"https://api.github.com/users/jonafato/following{/other_user}","gists_url":"https://api.github.com/users/jonafato/gists{/gist_id}","starred_url":"https://api.github.com/users/jonafato/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jonafato/subscriptions","organizations_url":"https://api.github.com/users/jonafato/orgs","repos_url":"https://api.github.com/users/jonafato/repos","events_url":"https://api.github.com/users/jonafato/events{/privacy}","received_events_url":"https://api.github.com/users/jonafato/received_events","type":"User","site_admin":false},"created_at":"2016-01-12T00:44:00Z","updated_at":"2016-01-12T00:44:00Z","body":"Note: this PR still has a few minor changes being made. I'll post another comment when it's ready for review / merge."}}