Giter Site home page Giter Site logo

omnilib / vscode-ufmt Goto Github PK

View Code? Open in Web Editor NEW
5.0 2.0 4.0 874 KB

VS Code extension for µfmt

Home Page: https://ufmt.omnilib.dev

License: MIT License

JavaScript 2.21% Python 66.94% TypeScript 30.49% Makefile 0.36%
black formatter import python ufmt usort hacktoberfest vscode vscode-extension

vscode-ufmt's People

Contributors

amyreese avatar dependabot[bot] avatar karrtikr avatar zsol avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

vscode-ufmt's Issues

formatter fails with `RuntimeError: generator didn't yield`

Starting from omnilib.ufmt v2022.9.14, formatting document no longer works.

extension output:

formatting in-process
CWD Linter: /workspace
Failed to handle request 26 textDocument/formatting work_done_token=None text_document=TextDocumentIdentifier(uri='file:///workspace/src/masked.py') options=FormattingOptions(tab_size=4, insert_spaces=True, trim_trailing_whitespace=None, insert_final_newline=None, trim_final_newlines=None)
Traceback (most recent call last):
  File "/home/vscode/.vscode-server/extensions/omnilib.ufmt-2022.9.14-linux-x64/bundled/libs/pygls/protocol.py", line 331, in _handle_request
    self._execute_request(msg_id, handler, params)
  File "/home/vscode/.vscode-server/extensions/omnilib.ufmt-2022.9.14-linux-x64/bundled/libs/pygls/protocol.py", line 260, in _execute_request
    method_name, method_type, msg_id, handler(params))
  File "/home/vscode/.vscode-server/extensions/omnilib.ufmt-2022.9.14-linux-x64/bundled/tool/server.py", line 92, in formatting
    edits = _formatting_helper(document)
  File "/home/vscode/.vscode-server/extensions/omnilib.ufmt-2022.9.14-linux-x64/bundled/tool/server.py", line 102, in _formatting_helper
    result = _run_tool_on_document(document, use_stdin=True)
  File "/home/vscode/.vscode-server/extensions/omnilib.ufmt-2022.9.14-linux-x64/bundled/tool/server.py", line 296, in _run_tool_on_document
    with update_sys_path(BUNDLED_LIBS, IMPORT_STRATEGY):
  File "/usr/local/lib/python3.9/contextlib.py", line 121, in __enter__
    raise RuntimeError("generator didn't yield") from None
RuntimeError: generator didn't yield
[Error - 5:50:54 AM] Request textDocument/formatting failed.
  Message: RuntimeError: generator didn't yield
  Code: -32602 
{'traceback': ['  File "/home/vscode/.vscode-server/extensions/omnilib.ufmt-2022.9.14-linux-x64/bundled/libs/pygls/protocol.py", line 331, in _handle_request\n    self._execute_request(msg_id, handler, params)\n', '  File "/home/vscode/.vscode-server/extensions/omnilib.ufmt-2022.9.14-linux-x64/bundled/libs/pygls/protocol.py", line 260, in _execute_request\n    method_name, method_type, msg_id, handler(params))\n', '  File "/home/vscode/.vscode-server/extensions/omnilib.ufmt-2022.9.14-linux-x64/bundled/tool/server.py", line 92, in formatting\n    edits = _formatting_helper(document)\n', '  File "/home/vscode/.vscode-server/extensions/omnilib.ufmt-2022.9.14-linux-x64/bundled/tool/server.py", line 102, in _formatting_helper\n    result = _run_tool_on_document(document, use_stdin=True)\n', '  File "/home/vscode/.vscode-server/extensions/omnilib.ufmt-2022.9.14-linux-x64/bundled/tool/server.py", line 296, in _run_tool_on_document\n    with update_sys_path(BUNDLED_LIBS, IMPORT_STRATEGY):\n', '  File "/usr/local/lib/python3.9/contextlib.py", line 121, in __enter__\n    raise RuntimeError("generator didn\'t yield") from None\n']}

VSCode info:

Version: 1.71.2 (system setup)
Commit: 74b1f979648cc44d385a2286793c226e611f59e7
Date: 2022-09-14T21:03:37.738Z
Electron: 19.0.12
Chromium: 102.0.5005.167
Node.js: 16.14.2
V8: 10.2.154.15-electron.0
OS: Windows_NT x64 10.0.22000
Sandboxed: No

Server immediately crashes after installation

Installed the ufmt extension and immediately got the message "The ufmt server crashed 5 times in the last 3 minutes. The server will not be restarted."

Using a Python 3.11.0 workspace with a venv, extension version v2022.9.14.

Error message from the Output tab:

Traceback (most recent call last):
  File "c:\Users\jack\.vscode\extensions\omnilib.ufmt-2022.9.14-win32-x64\bundled\tool\server.py", line 45, in <module>
    from pygls import lsp, protocol, server, uris, workspace
  File "c:\Users\jack\.vscode\extensions\omnilib.ufmt-2022.9.14-win32-x64\bundled\libs\pygls\lsp\__init__.py", line 23, in <module>
    from pygls.lsp.types import *
  File "c:\Users\jack\.vscode\extensions\omnilib.ufmt-2022.9.14-win32-x64\bundled\libs\pygls\lsp\types\__init__.py", line 6, in <module>
    from pygls.lsp.types.general_messages import *
  File "c:\Users\jack\.vscode\extensions\omnilib.ufmt-2022.9.14-win32-x64\bundled\libs\pygls\lsp\types\general_messages.py", line 35, in <module>
    from pygls.lsp.types.language_features import (CallHierarchyClientCapabilities,
  File "c:\Users\jack\.vscode\extensions\omnilib.ufmt-2022.9.14-win32-x64\bundled\libs\pygls\lsp\types\language_features\__init__.py", line 2, in <module>
    from pygls.lsp.types.language_features.call_hierarchy import *
  File "c:\Users\jack\.vscode\extensions\omnilib.ufmt-2022.9.14-win32-x64\bundled\libs\pygls\lsp\types\language_features\call_hierarchy.py", line 70, in <module>
    class CallHierarchyIncomingCall(Model):
  File "c:\Users\jack\.vscode\extensions\omnilib.ufmt-2022.9.14-win32-x64\bundled\libs\pydantic\main.py", line 292, in __new__
    cls.__signature__ = ClassAttribute('__signature__', generate_model_signature(cls.__init__, fields, config))
                                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "c:\Users\jack\.vscode\extensions\omnilib.ufmt-2022.9.14-win32-x64\bundled\libs\pydantic\utils.py", line 258, in generate_model_signature
    merged_params[param_name] = Parameter(
                                ^^^^^^^^^^
  File "C:\Program Files\Python311\Lib\inspect.py", line 2715, in __init__
    raise ValueError('{!r} is not a valid parameter name'.format(name))
ValueError: 'from' is not a valid parameter name

format fails with TypeError on 'document_path'

Screenshot 2023-12-06 at 12 29 22 PM

Output

formatting via rpc
Failed to handle request 4 textDocument/formatting DocumentFormattingParams(text_document=TextDocumentIdentifier(uri='file:///Users/brendan.gerrity/go/src/github.com/DataDog/dd-source/domains/atlas/shared/libs/py3/worker/atlas_worker.py'), options=FormattingOptions(tab_size=4, insert_spaces=True, trim_trailing_whitespace=None, insert_final_newline=None, trim_final_newlines=None), work_done_token=None)
Traceback (most recent call last):
  File "/Users/brendan.gerrity/.vscode/extensions/omnilib.ufmt-2023.4.3-darwin-arm64/bundled/libs/pygls/protocol.py", line 340, in _handle_request
    self._execute_request(msg_id, handler, params)
  File "/Users/brendan.gerrity/.vscode/extensions/omnilib.ufmt-2023.4.3-darwin-arm64/bundled/libs/pygls/protocol.py", line 264, in _execute_request
    self._send_response(msg_id, handler(params))
  File "/Users/brendan.gerrity/.vscode/extensions/omnilib.ufmt-2023.4.3-darwin-arm64/bundled/tool/server.py", line 100, in formatting
    edits = _formatting_helper(document)
  File "/Users/brendan.gerrity/.vscode/extensions/omnilib.ufmt-2023.4.3-darwin-arm64/bundled/tool/server.py", line 110, in _formatting_helper
    result = _run_tool_on_document(document, use_stdin=True)
  File "/Users/brendan.gerrity/.vscode/extensions/omnilib.ufmt-2023.4.3-darwin-arm64/bundled/tool/server.py", line 278, in _run_tool_on_document
    result = jsonrpc.run_over_json_rpc(
TypeError: run_over_json_rpc() got an unexpected keyword argument 'document_path'
/opt/homebrew/bin/python3.10 -m ufmt format - /Users/brendan.gerrity/go/src/github.com/DataDog/dd-source/domains/atlas/shared/libs/py3/worker/atlas_worker.py
CWD Linter: /Users/brendan.gerrity/go/src/github.com/DataDog/dd-source
[Error - 12:24:30 PM] Request textDocument/formatting failed.
  Message: TypeError: run_over_json_rpc() got an unexpected keyword argument 'document_path'
  Code: -32602 
{'traceback': ['  File "/Users/brendan.gerrity/.vscode/extensions/omnilib.ufmt-2023.4.3-darwin-arm64/bundled/libs/pygls/protocol.py", line 340, in _handle_request\n    self._execute_request(msg_id, handler, params)\n', '  File "/Users/brendan.gerrity/.vscode/extensions/omnilib.ufmt-2023.4.3-darwin-arm64/bundled/libs/pygls/protocol.py", line 264, in _execute_request\n    self._send_response(msg_id, handler(params))\n', '  File "/Users/brendan.gerrity/.vscode/extensions/omnilib.ufmt-2023.4.3-darwin-arm64/bundled/tool/server.py", line 100, in formatting\n    edits = _formatting_helper(document)\n', '  File "/Users/brendan.gerrity/.vscode/extensions/omnilib.ufmt-2023.4.3-darwin-arm64/bundled/tool/server.py", line 110, in _formatting_helper\n    result = _run_tool_on_document(document, use_stdin=True)\n', '  File "/Users/brendan.gerrity/.vscode/extensions/omnilib.ufmt-2023.4.3-darwin-arm64/bundled/tool/server.py", line 278, in _run_tool_on_document\n    result = jsonrpc.run_over_json_rpc(\n']}

formatter crushes after formatting more than twice

after "Format Document With..." -> "ufmt" twice, formatter crushes with error popup:

uncaught exception: Traceback (most recent call last): File "/root/.vscode-server-insiders/extensions/omnilib.ufmt-2023.4.3-linux-x64/bundled/tool/server.py", line 341, in _run_tool_on_document ufmt_result = ufmt.ufmt_bytes( File "/usr/local/lib/python3.10/dist-packages/ufmt/core.py", line 84, in ufmt_bytes raise result.error File "/usr/local/lib/python3.10/dist-packages/usort/api.py", line 31, in usort module = try_parse(data=data, path=path) File "/usr/local/lib/python3.10/dist-packages/usort/util.py", line 65, in try_parse mod = cst.parse_module( File "/usr/local/lib/python3.10/dist-packages/libcst/_parser/entrypoints.py", line 109, in parse_module result = _parse( File "/usr/local/lib/python3.10/dist-packages/libcst/_parser/entrypoints.py", line 42, in _parse from libcst.native import parse_expression, parse_module, parse_statement ImportError: PyO3 modules may only be initialized once per interpreter process

System Configuration

µfmt: v2023.4.3
python: 3.10.12
VSCode: 1.82.0-insider

Publishing to OpenVSX

Hi there! Thanks for the awesome work that you are doing!

I was wondering if you would be willing to support VSCodium by publishing your extension to OpenVSX marketplace?

Runtime bug: PyO3 modules may only be initialized once per interpreter process

Encountering a vscode error when saving.

Context, I'm in a monorepo managed by nx.

When I save on fresh opening vscode, it works without error. Second save will throw the error below

formatting complete
formatting in-process
CWD Linter: /home/user/git/repo
formatting with:  ufmt==2.1.0  black==23.7.0  libcst==1.0.1  usort==1.0.7
[Error - 11:46:16 AM] uncaught exception:
Traceback (most recent call last):
  File "/home/user/.vscode-server/extensions/omnilib.ufmt-2023.4.3-linux-x64/bundled/tool/server.py", line 341, in _run_tool_on_document
    ufmt_result = ufmt.ufmt_bytes(
  File "/home/user/envs/py38-env/lib/python3.8/site-packages/ufmt/core.py", line 84, in ufmt_bytes
    raise result.error
  File "/home/user/envs/py38-env/lib/python3.8/site-packages/usort/api.py", line 31, in usort
    module = try_parse(data=data, path=path)
  File "/home/user/envs/py38-env/lib/python3.8/site-packages/usort/util.py", line 65, in try_parse
    mod = cst.parse_module(
  File "/home/user/envs/py38-env/lib/python3.8/site-packages/libcst/_parser/entrypoints.py", line 109, in parse_module
    result = _parse(
  File "/home/user/envs/py38-env/lib/python3.8/site-packages/libcst/_parser/entrypoints.py", line 42, in _parse
    from libcst.native import parse_expression, parse_module, parse_statement
ImportError: PyO3 modules may only be initialized once per interpreter process

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.