VSCode and python
satya - 9/12/2019, 9:48:36 AM
vscode python intellisense hints types
vscode python intellisense hints types
satya - 9/12/2019, 9:57:30 AM
Editing in python, some info on intellisense
satya - 9/12/2019, 10:03:59 AM
What is Microsoft Python Language Server
What is Microsoft Python Language Server
satya - 9/12/2019, 10:13:52 AM
Type hints in python
Type hints in python
satya - 9/12/2019, 10:17:42 AM
How can I access a tuple as a typed object in Python
How can I access a tuple as a typed object in Python
Search for: How can I access a tuple as a typed object in Python
satya - 9/12/2019, 10:18:39 AM
How do you typecast a tuple to an object
How do you typecast a tuple to an object
satya - 9/12/2019, 10:22:53 AM
can i access a tuple in puthon using name
can i access a tuple in puthon using name
satya - 9/12/2019, 10:23:06 AM
What are named tuples in python?
What are named tuples in python?
satya - 9/12/2019, 11:06:57 AM
How can I hint python IDE that a variable is of a particular type?
How can I hint python IDE that a variable is of a particular type?
Search for: How can I hint python IDE that a variable is of a particular type?
satya - 9/12/2019, 11:07:40 AM
Are there something similar to Template Literals in Python?
Are there something similar to Template Literals in Python?
Search for: Are there something similar to Template Literals in Python?
satya - 9/12/2019, 11:41:04 AM
How to setup mypy in vscode?
How to setup mypy in vscode?
satya - 9/12/2019, 11:56:31 AM
Here is microsoft python language server
satya - 9/12/2019, 12:01:33 PM
Read this on python language server
satya - 9/12/2019, 12:07:38 PM
How to enable language server in vscode
How to enable language server in vscode
satya - 9/12/2019, 12:22:08 PM
Add this to settings.json to enable python language server
"python.jediEnabled": false
satya - 9/13/2019, 2:15:28 PM
Pyright is explained here: Packtpub
satya - 9/13/2019, 2:19:06 PM
From there briefly....
Pyright to fill in the gaps in existing Python type checkers like mypy. Currently, this type checker supports Python 3.0 and its newer versions.
It comes with support for PEP 484 (type hints including generics), PEP 526 (syntax for variable annotations), and PEP 544 (structural subtyping).
It supports type inference for function return values, instance variables, class variables, and globals.
It provides smart type constraints that can understand conditional code flow constructs like if/else statements.
Pyright shows 5x speed as compared to mypy
Since Pyright is written in TypeScript and runs within Node, you do not need to set up a Python environment
satya - 9/13/2019, 2:22:42 PM
Lets look at some features from github
Intelligent type completion of keywords, symbols, and import names appears when editing
Import statements are automatically inserted when necessary for type completions
Signature completion tips help when filling in arguments for a call
Hover over symbols to provide type information and doc strings
Find Definitions to quickly go to the location of a symbol?s definition
Find References to find all references to a symbol within a code base
Rename Symbol to rename all references to a symbol within a code base
Organize Imports command for automatically ordering imports according to PEP8 rules
Type stub generation for third-party libraries
satya - 9/13/2019, 2:25:07 PM
Answer: Do you need Python then, if you have pyright!!!?
For rich Python editing and debugging capabilities with Visual Studio Code, be sure to also install the official Microsoft Python extension for Visual Studio Code as Pyright only provides syntax and type checking.
satya - 9/13/2019, 2:30:30 PM
What is the difference between pyright and the Microsoft Python Visual Studio Code plugin?
Pyright is focused on type checking. The Python VS Code plugin is Microsoft?s officially-supported extension for VS Code and provides a diverse array of features including auto-complete, debugging, linter plugins, type-checking plugins, and much more. Pyright can be used alongide the Microsoft Python extension.
satya - 9/13/2019, 2:30:55 PM
What is the difference between Pyright and the Microsoft Python Language Server?
The Microsoft Python Language Server is a language server protocol (LSP) implementation that works with the Microsoft Python VS Code plugin. It is officially supported by a team of Microsoft engineers. It focuses on providing core editing capabilities such as auto-completion, code navigation and documentation. Pyright is focused on providing fast syntax and type checking with features such as more configurabilty and command-line execution.
satya - 9/13/2019, 2:34:54 PM
"python.jediEnabled": false
"python.jediEnabled": false
satya - 9/13/2019, 2:37:35 PM
VSCode python settings are documented here
satya - 9/13/2019, 2:38:23 PM
Does pyright requires Microsoft Python Language Server?
Does pyright requires Microsoft Python Language Server?
Search for: Does pyright requires Microsoft Python Language Server?
satya - 9/13/2019, 2:40:32 PM
Python in Visual Studio Code ? June & July 2018 Release: Microsoft
Python in Visual Studio Code ? June & July 2018 Release: Microsoft
satya - 9/13/2019, 2:43:55 PM
Nature of "python.jediEnabled": false
To try out the new language server, go to File > Preferences > Settings and add the following option:
"python.jediEnabled": false
This will trigger a notification asking you to reload Visual Studio Code. Upon reload it will begin downloading the language server for your operating system.
satya - 9/13/2019, 2:45:22 PM
Language server is about 30MB
Language server is about 30MB
satya - 9/13/2019, 2:46:38 PM
Where are vscode extensions installed
satya - 9/13/2019, 2:46:57 PM
For windows
Windows %USERPROFILE%\.vscode\extensions
satya - 9/13/2019, 2:47:40 PM
And ...
You can change the location by launching VS Code with the --extensions-dir <dir> command-line option.
satya - 9/16/2019, 10:08:06 AM
July, 2017, Installing and about Python language server
July, 2017, Installing and about Python language server
Installation, Activation, FAQ
satya - 9/16/2019, 10:30:20 AM
Summarizing Python language Server
1. It is part of ms python extension. It is required by Pyright.
2. You need to set python.jediEnabled=false in the settings file. This setting is documented in python settings reference page. (link is above)
3. go to File > Preferences > Settings and add the option: "python.jediEnabled": false
4. python.jediEnabled=true: Indicates whether to use Jedi as the IntelliSense engine (true) or the Microsoft Python Language Server (false). Note that the language server requires a platform that supports .NET Core 2.1 or newer. So one should be ok with windows. But not sure what this means for using vscode on linux variants
5. python.jediPath: Path to folder containing the Jedi library (folder should contain a jedi subfolder). As this is the default, I am not investigating further. if this is set to fasle and language server takes over, hopefully just for python.
6. python.analysis. has a number of options for the language server. One of them is the path to the typeshed modules. You can also control a number of other intellisense features. See the python settings reference page mentioned before
7.python.analysis.extraPaths: Specifies locations of additional packages for which to load autocomplete data.
8. The language server is about 30MB. Instructions seem to indicate it is downloaded when it is first enabled. I cannot tell for sure if it is already instlled in the latest vscode.
9. There is a github link where you can submit an issue for language server
10. To know if this is installed look at the language extensions directory: Windows %USERPROFILE%\.vscode\extensions. It looks like this C:\Users\satya\.vscode\extensions\ms-python.python-2019.9.34911\languageServer.0.3.66
11. Apparently you can delete this language server to trigger a download of the new version. Hopefully your current version of vscode can just use the updating of an extension instead.