2to3 does catch this, but that's no help if I'm editing the code in my Python 3 backed editor, which then fails to do proper linting due to the Syntax Error.

I made the exact same change that 2to3 does, so that's what the Python 3 recommend code is.

I used to use this syntax frequently as well, but it caused conflicts with some of the more advanced parameter syntax they wanted to add for Python 3 (annotations). I've had to wean myself off the syntax as well.

Although my personal preference would be for the project not to use 2to3, I don't want to impose that restriction. However, even while using 2to3, that doesn't prohibit the project from using Python 3 syntax that's also compatible with Python 2.6+.

For years, I've been excited about Python 3, but there's been very little movement on it. In the past year, I've seen substantial movement and have seen many projects add Python 3 support. This change has inspired me to move my entire environment to Python 3 first. I only use Python 2 for testing to support others' environments.