Re: Query regarding the porting of NVDA to Python3

Akash Kakkar

Wow, that's excellent!
And, what will be the user facing changes?
with the responsiveness and speed be improved?
Will it still be in 32 bit or this time 64 bit is also in plan?

On 7/27/19, Joseph Lee <@joslee> wrote:
The biggest change you'll notice is text handling - no more distinction
between bytes and Unicode as far as regular text handling is concerned; when
it comes to specialized situations, knowing what you are working will become
There are other changes you may see (depending on which modules gets
included), including:
* Enum: enumeration becomes way easier.
* Chain map: basically, a dictionary of dictionaries where items are fetched
from the topmost map (first dictionary).
* Barriers: a way to tell multiple threads to wait for each other before
released all at once.
* Async/await: working with asynchronous generators, a bit advanced at the
* No more pyo files: gone in Python 3.5.
* Time-based thread switching: Python 2 employs instruction count when
switching between threads, whereas Python 3 uses timers.
* Faster file system traversal: os.scandir is introduced, which uses
generators to traverse directories. Several os module functions use scandir
internally to speed things up.

Some things that may make its way to NvDA in future Python 3 releases:
* Assignment expressions (:=): part of Python 3.8, it allows some (if not
all) conditional statements to become a bit more readable.
* Breakpoint hooks (part of 3.7 I believe): one can override
sys.breakpointhook so something other than Python Debugger (pdb) can be
invoked to debug NVDA; the most likely scenario is allowing Visual Studio
debugger to debug NVDA if given a chance.

-----Original Message-----
From: <> On Behalf Of Akash Kakkar
Sent: Saturday, July 27, 2019 7:30 AM
Subject: [nvda-devel] Query regarding the porting of NVDA to Python3

Hi all,
So, finally, we have started getting alpha releases based on Python3.
I was wondering, that when NVDA version 2019.3 will be released later this
year, which improvements/features/fixes will be able to observe from
NVDA_Python2 to NVDA_Python3?

Join to automatically receive all group messages.