Python-language-server: Use-before-def reported for class fields without default values

Created on 14 Nov 2018  路  5Comments  路  Source: microsoft/python-language-server

Environment data
VS Code version: 1.29.0
Extension version (available under the Extensions sidebar): 2018.10.1
OS and version: OSX
Python version (& distribution if applicable, e.g. Anaconda): python 3.7
Type of virtual environment used (N/A | venv | virtualenv | conda | ...): virtualenv

Actual behavior
Python 3.7 dataclass properties are incorrectly reported as "used before definition". The same syntax with default values added is not reported.

screen shot 2018-11-14 at 07 54 00

Expected behavior
The properties are not reported.

Steps to reproduce:
See screenshot above.

BTW: is it possible (as a workaround to above issue) to suppress warnings for a given block/line?

Most helpful comment

I hope these issues become a priority. VS code should really encourage the usage of the typing syntax!

All 5 comments

The analyzer only offers basic detection of use-before-def and unresolved imports, and doesn't have the ability to disable checks per line (#264). What you can do in the meantime is disable the diagnostic in your settings, like:

"python.analysis.disabled": [
    "use-before-def"
]

And use something like pylint which I don't believe will misreport this (with the downside that it can only be run on save, while the language server can do these checks instantly).

I have the same issue.

@jakebailey there is a typo in anaysis - it should be

"python.analysis.disabled": [
    "use-before-def"
]

Agh, yeah, sorry.

I hope these issues become a priority. VS code should really encourage the usage of the typing syntax!

Was this page helpful?
0 / 5 - 0 ratings