pylance-release
pylance-release copied to clipboard
Pylance does not provide source actions for removing unused imports or sorting imports inside Jupyter Notebooks
Environment data
- Language Server version: 2022.8.12 (8 August 2022)
- OS and version: Mac OSX 12.5
- Python version (& distribution if applicable, e.g. Anaconda): Python 3.10.4 (Conda env)
Code Snippet
import pandas as pd
import numpy as np
import warnings
from scipy import stats
Repro Steps
- Create a new Jupyter Notebook
- Add Imports, e.g.,
import pandas as pd
import numpy as np
import warnings
from scipy import stats
- Right Click -> Source Action
Expected behavior
Options to remove unused imports is available
Actual behavior
Pylance displays "No Source Actions Available"
Logs
[Info - 4:27:01 PM] (19660) Pylance language server 2022.8.21 (pyright ed13daf1) starting
[Info - 4:27:01 PM] (19660) Server root directory: /Users/jbinder/.vscode-insiders/extensions/ms-python.vscode-pylance-2022.8.21/dist
[Info - 4:27:01 PM] (19660) Notebook support: LSP
[Info - 4:27:01 PM] (19660) Interactive window support: LSP
[Info - 4:27:01 PM] (19660) virtual workspace: untitled:Untitled-1.ipynb?jupyter-notebook
[Info - 4:27:01 PM] (19660) Starting service instance "Untitled-1.ipynb"
[Info - 4:27:01 PM] (19660) No pyproject.toml file found.
[Info - 4:27:01 PM] (19660) Setting pythonPath for service "Untitled-1.ipynb": "/Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/bin/python"
[Warn - 4:27:01 PM] (19660) stubPath typings is not a valid directory.
[Info - 4:27:01 PM] (19660) Assuming Python version 3.10
[Info - 4:27:01 PM] (19660) Assuming Python platform Darwin
[Info - 4:27:01 PM] (19660) Search paths for <default>
[Info - 4:27:01 PM] (19660) /Users/jbinder/.vscode-insiders/extensions/ms-python.vscode-pylance-2022.8.21/dist/typeshed-fallback/stdlib
[Info - 4:27:01 PM] (19660) typings
[Info - 4:27:01 PM] (19660) /Users/jbinder/.vscode-insiders/extensions/ms-python.vscode-pylance-2022.8.21/dist/typeshed-fallback/stubs/...
[Info - 4:27:01 PM] (19660) /Users/jbinder/.vscode-insiders/extensions/ms-python.vscode-pylance-2022.8.21/dist/bundled/stubs
[Info - 4:27:01 PM] (19660) /Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10
[Info - 4:27:01 PM] (19660) /Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10/lib-dynload
[Info - 4:27:01 PM] (19660) /Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10/site-packages
[Info - 4:27:01 PM] (19660) Searching for source files
[Info - 4:27:01 PM] (19660) No source files found.
(19660) [FG] parsing: Untitled-1.ipynb:pylance-notebook-cell:W0sdW50aXRsZWQ=.py (41ms)
(19660) [FG] parsing: /Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10/site-packages/IPython/display.py [fs read 2ms] (36ms)
(19660) [FG] parsing: /Users/jbinder/.vscode-insiders/extensions/ms-python.vscode-pylance-2022.8.21/dist/typeshed-fallback/stdlib/builtins.pyi [fs read 21ms] (221ms)
(19660) [FG] binding: /Users/jbinder/.vscode-insiders/extensions/ms-python.vscode-pylance-2022.8.21/dist/typeshed-fallback/stdlib/builtins.pyi (57ms)
(19660) [FG] binding: /Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10/site-packages/IPython/display.py ...
(19660) [FG] parsing: /Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10/site-packages/IPython/core/display_functions.py [fs read 3ms] (44ms)
(19660) [FG] binding: /Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10/site-packages/IPython/core/display_functions.py (5ms)
(19660) [FG] parsing: /Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10/site-packages/IPython/lib/display.py [fs read 2ms] (158ms)
(19660) [FG] binding: /Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10/site-packages/IPython/lib/display.py (11ms)
(19660) [FG] binding: /Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10/site-packages/IPython/display.py (225ms)
...
[Info - 4:28:01 PM] (19660) Attempting to resolve stub package using root path '/Users/jbinder/.vscode-insiders/extensions/ms-python.vscode-pylance-2022.8.21/dist/bundled/stubs'
[Info - 4:28:01 PM] (19660) Attempting to resolve using root path '/Users/jbinder/.vscode-insiders/extensions/ms-python.vscode-pylance-2022.8.21/dist/bundled/stubs'
[Info - 4:28:01 PM] (19660) Looking for typeshed stdlib path
[Info - 4:28:01 PM] (19660) Looking for typeshed stdlib path
[Info - 4:28:01 PM] (19660) Attempting to resolve using root path '/Users/jbinder/.vscode-insiders/extensions/ms-python.vscode-pylance-2022.8.21/dist/typeshed-fallback/stdlib'
[Info - 4:28:01 PM] (19660) Typeshed path not found
[Info - 4:28:01 PM] (19660) Looking for typeshed third-party path
[Info - 4:28:01 PM] (19660) Looking for typeshed stubs path
[Info - 4:28:01 PM] (19660) Typeshed path not found
[Info - 4:28:01 PM] (19660) Could not import 'revtok' in file '/Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10/site-packages/torchtext/data/utils.py'
[Info - 4:28:01 PM] (19660) Looking in stubPath 'typings'
[Info - 4:28:01 PM] (19660) Attempting to resolve stub package using root path 'typings'
[Info - 4:28:01 PM] (19660) Attempting to resolve using root path 'typings'
[Info - 4:28:01 PM] (19660) Looking in python search path '/Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10'
[Info - 4:28:01 PM] (19660) Attempting to resolve stub package using root path '/Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10'
[Info - 4:28:01 PM] (19660) Attempting to resolve using root path '/Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10'
[Info - 4:28:01 PM] (19660) Looking in python search path '/Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10/lib-dynload'
[Info - 4:28:01 PM] (19660) Attempting to resolve stub package using root path '/Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10/lib-dynload'
[Info - 4:28:01 PM] (19660) Attempting to resolve using root path '/Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10/lib-dynload'
[Info - 4:28:01 PM] (19660) Looking in python search path '/Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10/site-packages'
[Info - 4:28:01 PM] (19660) Attempting to resolve stub package using root path '/Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10/site-packages'
[Info - 4:28:01 PM] (19660) Attempting to resolve using root path '/Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10/site-packages'
[Info - 4:28:01 PM] (19660) Looking in bundled stubs path '/Users/jbinder/.vscode-insiders/extensions/ms-python.vscode-pylance-2022.8.21/dist/bundled/stubs'
[Info - 4:28:01 PM] (19660) Attempting to resolve stub package using root path '/Users/jbinder/.vscode-insiders/extensions/ms-python.vscode-pylance-2022.8.21/dist/bundled/stubs'
[Info - 4:28:01 PM] (19660) Attempting to resolve using root path '/Users/jbinder/.vscode-insiders/extensions/ms-python.vscode-pylance-2022.8.21/dist/bundled/stubs'
[Info - 4:28:01 PM] (19660) Looking for typeshed stdlib path
[Info - 4:28:01 PM] (19660) Looking for typeshed stdlib path
[Info - 4:28:01 PM] (19660) Attempting to resolve using root path '/Users/jbinder/.vscode-insiders/extensions/ms-python.vscode-pylance-2022.8.21/dist/typeshed-fallback/stdlib'
[Info - 4:28:01 PM] (19660) Typeshed path not found
[Info - 4:28:01 PM] (19660) Looking for typeshed third-party path
[Info - 4:28:01 PM] (19660) Looking for typeshed stubs path
[Info - 4:28:01 PM] (19660) Typeshed path not found
[Info - 4:28:01 PM] (19660) Could not import 'revtok' in file '/Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10/site-packages/torchtext/data/utils.py'
[Info - 4:28:01 PM] (19660) Looking in stubPath 'typings'
[Info - 4:28:01 PM] (19660) Attempting to resolve stub package using root path 'typings'
[Info - 4:28:01 PM] (19660) Attempting to resolve using root path 'typings'
[Info - 4:28:01 PM] (19660) Looking in python search path '/Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10'
[Info - 4:28:01 PM] (19660) Attempting to resolve stub package using root path '/Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10'
[Info - 4:28:01 PM] (19660) Attempting to resolve using root path '/Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10'
[Info - 4:28:01 PM] (19660) Looking in python search path '/Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10/lib-dynload'
[Info - 4:28:01 PM] (19660) Attempting to resolve stub package using root path '/Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10/lib-dynload'
[Info - 4:28:01 PM] (19660) Attempting to resolve using root path '/Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10/lib-dynload'
[Info - 4:28:01 PM] (19660) Looking in python search path '/Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10/site-packages'
[Info - 4:28:01 PM] (19660) Attempting to resolve stub package using root path '/Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10/site-packages'
[Info - 4:28:01 PM] (19660) Attempting to resolve using root path '/Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10/site-packages'
[Info - 4:28:01 PM] (19660) Looking in bundled stubs path '/Users/jbinder/.vscode-insiders/extensions/ms-python.vscode-pylance-2022.8.21/dist/bundled/stubs'
[Info - 4:28:01 PM] (19660) Attempting to resolve stub package using root path '/Users/jbinder/.vscode-insiders/extensions/ms-python.vscode-pylance-2022.8.21/dist/bundled/stubs'
[Info - 4:28:01 PM] (19660) Attempting to resolve using root path '/Users/jbinder/.vscode-insiders/extensions/ms-python.vscode-pylance-2022.8.21/dist/bundled/stubs'
[Info - 4:28:01 PM] (19660) Looking for typeshed stdlib path
[Info - 4:28:01 PM] (19660) Looking for typeshed stdlib path
[Info - 4:28:01 PM] (19660) Attempting to resolve using root path '/Users/jbinder/.vscode-insiders/extensions/ms-python.vscode-pylance-2022.8.21/dist/typeshed-fallback/stdlib'
[Info - 4:28:01 PM] (19660) Typeshed path not found
[Info - 4:28:01 PM] (19660) Looking for typeshed third-party path
[Info - 4:28:01 PM] (19660) Looking for typeshed stubs path
[Info - 4:28:01 PM] (19660) Typeshed path not found
(19660) [FG] binding: /Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10/site-packages/torchtext/data/utils.py (1ms)
(19660) [FG] parsing: /Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10/site-packages/torchtext/vocab.py [fs read 1ms] (57ms)
[Info - 4:28:01 PM] (19660) Could not resolve source for 'six.moves.urllib.request' in file '/Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10/site-packages/torchtext/vocab.py'
[Info - 4:28:01 PM] (19660) Looking in python search path '/Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10'
[Info - 4:28:01 PM] (19660) Attempting to resolve using root path '/Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10'
[Info - 4:28:01 PM] (19660) Looking in python search path '/Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10/lib-dynload'
[Info - 4:28:01 PM] (19660) Attempting to resolve using root path '/Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10/lib-dynload'
[Info - 4:28:01 PM] (19660) Looking in python search path '/Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10/site-packages'
[Info - 4:28:01 PM] (19660) Attempting to resolve using root path '/Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10/site-packages'
[Info - 4:28:01 PM] (19660) Resolved import with file '/Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10/site-packages/six.py'
[Info - 4:28:01 PM] (19660) Could not import 'revtok' in file '/Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10/site-packages/torchtext/vocab.py'
[Info - 4:28:01 PM] (19660) Looking in stubPath 'typings'
[Info - 4:28:01 PM] (19660) Attempting to resolve stub package using root path 'typings'
[Info - 4:28:01 PM] (19660) Attempting to resolve using root path 'typings'
[Info - 4:28:01 PM] (19660) Looking in python search path '/Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10'
[Info - 4:28:01 PM] (19660) Attempting to resolve stub package using root path '/Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10'
[Info - 4:28:01 PM] (19660) Attempting to resolve using root path '/Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10'
[Info - 4:28:01 PM] (19660) Looking in python search path '/Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10/lib-dynload'
[Info - 4:28:01 PM] (19660) Attempting to resolve stub package using root path '/Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10/lib-dynload'
[Info - 4:28:01 PM] (19660) Attempting to resolve using root path '/Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10/lib-dynload'
[Info - 4:28:01 PM] (19660) Looking in python search path '/Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10/site-packages'
[Info - 4:28:01 PM] (19660) Attempting to resolve stub package using root path '/Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10/site-packages'
[Info - 4:28:01 PM] (19660) Attempting to resolve using root path '/Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10/site-packages'
[Info - 4:28:01 PM] (19660) Looking in bundled stubs path '/Users/jbinder/.vscode-insiders/extensions/ms-python.vscode-pylance-2022.8.21/dist/bundled/stubs'
[Info - 4:28:01 PM] (19660) Attempting to resolve stub package using root path '/Users/jbinder/.vscode-insiders/extensions/ms-python.vscode-pylance-2022.8.21/dist/bundled/stubs'
[Info - 4:28:01 PM] (19660) Attempting to resolve using root path '/Users/jbinder/.vscode-insiders/extensions/ms-python.vscode-pylance-2022.8.21/dist/bundled/stubs'
[Info - 4:28:01 PM] (19660) Looking for typeshed stdlib path
[Info - 4:28:01 PM] (19660) Looking for typeshed stdlib path
[Info - 4:28:01 PM] (19660) Attempting to resolve using root path '/Users/jbinder/.vscode-insiders/extensions/ms-python.vscode-pylance-2022.8.21/dist/typeshed-fallback/stdlib'
[Info - 4:28:01 PM] (19660) Typeshed path not found
[Info - 4:28:01 PM] (19660) Looking for typeshed third-party path
[Info - 4:28:01 PM] (19660) Looking for typeshed stubs path
[Info - 4:28:01 PM] (19660) Typeshed path not found
(19660) [FG] binding: /Users/jbinder/opt/anaconda3/envs/nlp-tensorflow/lib/python3.10/site-packages/torchtext/vocab.py (4ms)
(19660) [FG] checking: Untitled-1.ipynb:pylance-notebook-cell:W0sdW50aXRsZWQ=.py (204ms)
(19660) [FG] analyzing: Untitled-1.ipynb:pylance-notebook-cell:W0sdW50aXRsZWQ=.py (221ms)
unfortunately, we do not support unused symbol diagnostics in notebook for now that is required for remove unused imports feature. that is why remove unused imports are not working in notebook.
also, organize import is done by python core extension, not pylance server and it is disabled in notebook by python core ext (or isort module), that is why it is not enabled in notebook since cell is not actual file where these plug in can access.
that being said, I will mark this as enhancement so we can think about how to support these in future.
thank you.
by the way, pyright has its own implementation of organize imports but currently we do not use that in pylance since we already have one in python core extension and we are not sure whether its behavior is and will be 100% match with isort behavior.
@debonte is unused import turned off in notebook?
This issue has been fixed in prerelease version 2023.2.12, which we've just released. You can find the changelog here: CHANGELOG.md