{"id":13468728,"url":"https://github.com/palantir/python-language-server","last_synced_at":"2025-05-11T15:23:51.711Z","repository":{"id":16386301,"uuid":"78797564","full_name":"palantir/python-language-server","owner":"palantir","description":"An implementation of the Language Server Protocol for Python","archived":false,"fork":false,"pushed_at":"2024-12-13T18:31:23.000Z","size":1018,"stargazers_count":2632,"open_issues_count":186,"forks_count":285,"subscribers_count":308,"default_branch":"develop","last_synced_at":"2025-04-23T09:52:05.943Z","etag":null,"topics":["octo-correct-managed"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/palantir.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-01-12T23:50:10.000Z","updated_at":"2025-04-22T03:29:04.000Z","dependencies_parsed_at":"2024-06-01T03:45:00.794Z","dependency_job_id":"17cca573-a17f-4fed-a2f6-97a988141eac","html_url":"https://github.com/palantir/python-language-server","commit_stats":{"total_commits":309,"total_committers":78,"mean_commits":"3.9615384615384617","dds":0.6537216828478964,"last_synced_commit":"2982b42644282c5be54d3cfa7f5c3bd8d85c4ba2"},"previous_names":[],"tags_count":83,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/palantir%2Fpython-language-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/palantir%2Fpython-language-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/palantir%2Fpython-language-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/palantir%2Fpython-language-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/palantir","download_url":"https://codeload.github.com/palantir/python-language-server/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253585945,"owners_count":21931798,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["octo-correct-managed"],"created_at":"2024-07-31T15:01:17.589Z","updated_at":"2025-05-11T15:23:51.616Z","avatar_url":"https://github.com/palantir.png","language":"Python","funding_links":[],"categories":["Python","Development","Languages"],"sub_categories":["Time Series"],"readme":"Python Language Server\n======================\n\n.. image:: https://github.com/palantir/python-language-server/workflows/Linux%20tests/badge.svg\n    :target: https://github.com/palantir/python-language-server/actions?query=workflow%3A%22Linux+tests%22\n\n.. image:: https://github.com/palantir/python-language-server/workflows/Mac%20tests/badge.svg\n    :target: https://github.com/palantir/python-language-server/actions?query=workflow%3A%22Mac+tests%22\n\n.. image:: https://github.com/palantir/python-language-server/workflows/Windows%20tests/badge.svg\n    :target: https://github.com/palantir/python-language-server/actions?query=workflow%3A%22Windows+tests%22\n\n.. image:: https://img.shields.io/github/license/palantir/python-language-server.svg\n     :target: https://github.com/palantir/python-language-server/blob/master/LICENSE\n\nA Python 2.7 and 3.5+ implementation of the `Language Server Protocol`_.\n\nInstallation\n------------\n\nThe base language server requires Jedi_ to provide Completions, Definitions, Hover, References, Signature Help, and\nSymbols:\n\n``pip install python-language-server``\n\nIf the respective dependencies are found, the following optional providers will be enabled:\n\n* Rope_ for Completions and renaming\n* Pyflakes_ linter to detect various errors\n* McCabe_ linter for complexity checking\n* pycodestyle_ linter for style checking\n* pydocstyle_ linter for docstring style checking (disabled by default)\n* autopep8_ for code formatting\n* YAPF_ for code formatting (preferred over autopep8)\n\nOptional providers can be installed using the `extras` syntax. To install YAPF_ formatting for example:\n\n``pip install 'python-language-server[yapf]'``\n\nAll optional providers can be installed using:\n\n``pip install 'python-language-server[all]'``\n\nIf you get an error similar to ``'install_requires' must be a string or list of strings`` then please upgrade setuptools before trying again. \n\n``pip install -U setuptools``\n\n3rd Party Plugins\n~~~~~~~~~~~~~~~~~\nInstalling these plugins will add extra functionality to the language server:\n\n* pyls-mypy_ Mypy type checking for Python 3\n* pyls-isort_ Isort import sort code formatting\n* pyls-black_ for code formatting using Black_\n\nPlease see the above repositories for examples on how to write plugins for the Python Language Server. Please file an\nissue if you require assistance writing a plugin.\n\nConfiguration\n-------------\n\nConfiguration is loaded from zero or more configuration sources. Currently implemented are:\n\n* pycodestyle: discovered in ~/.config/pycodestyle, setup.cfg, tox.ini and pycodestyle.cfg.\n* flake8: discovered in ~/.config/flake8, setup.cfg, tox.ini and flake8.cfg\n\nThe default configuration source is pycodestyle. Change the `pyls.configurationSources` setting to `['flake8']` in\norder to respect flake8 configuration instead.\n\nOverall configuration is computed first from user configuration (in home directory), overridden by configuration\npassed in by the language client, and then overriden by configuration discovered in the workspace.\n\nTo enable pydocstyle for linting docstrings add the following setting in your LSP configuration:\n```\n\"pyls.plugins.pydocstyle.enabled\": true\n```\n\nSee `vscode-client/package.json`_ for the full set of supported configuration options.\n\n.. _vscode-client/package.json: vscode-client/package.json\n\nLanguage Server Features\n------------------------\n\nAuto Completion:\n\n.. image:: https://raw.githubusercontent.com/palantir/python-language-server/develop/resources/auto-complete.gif\n\nCode Linting with pycodestyle and pyflakes:\n\n.. image:: https://raw.githubusercontent.com/palantir/python-language-server/develop/resources/linting.gif\n\nSignature Help:\n\n.. image:: https://raw.githubusercontent.com/palantir/python-language-server/develop/resources/signature-help.gif\n\nGo to definition:\n\n.. image:: https://raw.githubusercontent.com/palantir/python-language-server/develop/resources/goto-definition.gif\n\nHover:\n\n.. image:: https://raw.githubusercontent.com/palantir/python-language-server/develop/resources/hover.gif\n\nFind References:\n\n.. image:: https://raw.githubusercontent.com/palantir/python-language-server/develop/resources/references.gif\n\nDocument Symbols:\n\n.. image:: https://raw.githubusercontent.com/palantir/python-language-server/develop/resources/document-symbols.gif\n\nDocument Formatting:\n\n.. image:: https://raw.githubusercontent.com/palantir/python-language-server/develop/resources/document-format.gif\n\nDevelopment\n-----------\n\nTo run the test suite:\n\n``pip install .[test] \u0026\u0026 pytest``\n\nDevelop against VS Code\n=======================\n\nThe Python language server can be developed against a local instance of Visual Studio Code.\n\nInstall `VSCode \u003chttps://code.visualstudio.com/download\u003e`_\n\n.. code-block:: bash\n\n    # Setup a virtual env\n    virtualenv env\n    . env/bin/activate\n\n    # Install pyls\n    pip install .\n\n    # Install the vscode-client extension\n    cd vscode-client\n    yarn install\n\n    # Run VSCode which is configured to use pyls\n    # See the bottom of vscode-client/src/extension.ts for info\n    yarn run vscode -- $PWD/../\n\nThen to debug, click View -\u003e Output and in the dropdown will be pyls.\nTo refresh VSCode, press `Cmd + r`\n\nLicense\n-------\n\nThis project is made available under the MIT License.\n\n.. _Language Server Protocol: https://github.com/Microsoft/language-server-protocol\n.. _Jedi: https://github.com/davidhalter/jedi\n.. _Rope: https://github.com/python-rope/rope\n.. _Pyflakes: https://github.com/PyCQA/pyflakes\n.. _McCabe: https://github.com/PyCQA/mccabe\n.. _pycodestyle: https://github.com/PyCQA/pycodestyle\n.. _pydocstyle: https://github.com/PyCQA/pydocstyle\n.. _YAPF: https://github.com/google/yapf\n.. _autopep8: https://github.com/hhatto/autopep8\n.. _pyls-mypy: https://github.com/tomv564/pyls-mypy\n.. _pyls-isort: https://github.com/paradoxxxzero/pyls-isort\n.. _pyls-black: https://github.com/rupert/pyls-black\n.. _Black: https://github.com/ambv/black\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpalantir%2Fpython-language-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpalantir%2Fpython-language-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpalantir%2Fpython-language-server/lists"}