{"action":"created","issue":{"url":"https://api.github.com/repos/nvaccess/nvda/issues/7104","repository_url":"https://api.github.com/repos/nvaccess/nvda","labels_url":"https://api.github.com/repos/nvaccess/nvda/issues/7104/labels{/name}","comments_url":"https://api.github.com/repos/nvaccess/nvda/issues/7104/comments","events_url":"https://api.github.com/repos/nvaccess/nvda/issues/7104/events","html_url":"https://github.com/nvaccess/nvda/pull/7104","id":224319643,"number":7104,"title":"Upgrade to wxPython 4.0.0 (Phoenix)","user":{"login":"josephsl","id":7867280,"avatar_url":"https://avatars3.githubusercontent.com/u/7867280?v=4","gravatar_id":"","url":"https://api.github.com/users/josephsl","html_url":"https://github.com/josephsl","followers_url":"https://api.github.com/users/josephsl/followers","following_url":"https://api.github.com/users/josephsl/following{/other_user}","gists_url":"https://api.github.com/users/josephsl/gists{/gist_id}","starred_url":"https://api.github.com/users/josephsl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/josephsl/subscriptions","organizations_url":"https://api.github.com/users/josephsl/orgs","repos_url":"https://api.github.com/users/josephsl/repos","events_url":"https://api.github.com/users/josephsl/events{/privacy}","received_events_url":"https://api.github.com/users/josephsl/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":16,"created_at":"2017-04-26T01:46:23Z","updated_at":"2018-02-07T06:33:14Z","closed_at":null,"author_association":"COLLABORATOR","pull_request":{"url":"https://api.github.com/repos/nvaccess/nvda/pulls/7104","html_url":"https://github.com/nvaccess/nvda/pull/7104","diff_url":"https://github.com/nvaccess/nvda/pull/7104.diff","patch_url":"https://github.com/nvaccess/nvda/pull/7104.patch"},"body":"Resolves issue #7077:\r\n\r\nHi,\r\n\r\nFrom 2012 to 2017, Robin Dunn and others have been working on a complete revamp of wxPython. One of the benefits of the resulting 4.0.0 release is ability to use wx modules via Python versions 2.7 and 3.5+. This will require a longer incubation period, as add-ons will need to be modified, an extensive hunt for issues must be carried out and so on.\r\n\r\nat the moment the only major issue is wx.Yield, seen when one repeatedly taps arrow keys or certain keys quickly. For example, from Python Console, press backspace, and you may hear the error tone with a traceback that culminates in wxPython saying wx.Yield was called recursively. As for add-ons, wx.PyDeadObjectError must be changed to RuntimeError, certain wx.Center function arguments/constants have changed and so on.\r\n\r\nAlso, as part of wxPython, we also get the Six module for free, which eases transition to Python 3.x.\r\n\r\nThanks."},"comment":{"url":"https://api.github.com/repos/nvaccess/nvda/issues/comments/363671566","html_url":"https://github.com/nvaccess/nvda/pull/7104#issuecomment-363671566","issue_url":"https://api.github.com/repos/nvaccess/nvda/issues/7104","id":363671566,"user":{"login":"jcsteh","id":4166475,"avatar_url":"https://avatars1.githubusercontent.com/u/4166475?v=4","gravatar_id":"","url":"https://api.github.com/users/jcsteh","html_url":"https://github.com/jcsteh","followers_url":"https://api.github.com/users/jcsteh/followers","following_url":"https://api.github.com/users/jcsteh/following{/other_user}","gists_url":"https://api.github.com/users/jcsteh/gists{/gist_id}","starred_url":"https://api.github.com/users/jcsteh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jcsteh/subscriptions","organizations_url":"https://api.github.com/users/jcsteh/orgs","repos_url":"https://api.github.com/users/jcsteh/repos","events_url":"https://api.github.com/users/jcsteh/events{/privacy}","received_events_url":"https://api.github.com/users/jcsteh/received_events","type":"User","site_admin":false},"created_at":"2018-02-07T06:33:14Z","updated_at":"2018-02-07T06:33:14Z","author_association":"CONTRIBUTOR","body":"PyTimer was only used because you can pass the callback to the constructor.\nNote that this is literally all PyTimer does... but it's not as efficient\nas it could be because its Notify method actually calls the callback. My\nsuggestion would be to subclass wx.Timer. In the constructor, just\noverwrite the callback function (e.g. self.run = run) if a callback is\npassed. Otherwise, subclasses can override run.\n"}}
{"actor":{"display_login":"jcsteh"}}