{ "info": { "author": "Open Law Library", "author_email": "info@openlawlib.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Intended Audience :: Information Technology", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3 :: Only", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "_pygls_\n=======\n\n[![PyPI Version](https://img.shields.io/pypi/v/pygls.svg)](https://pypi.org/project/pygls/) [![build-status](https://img.shields.io/appveyor/ci/oll-team/pygls.svg)](https://ci.appveyor.com/project/oll-team/pygls) ![pyversions](https://img.shields.io/pypi/pyversions/pygls.svg) ![license](https://img.shields.io/pypi/l/pygls.svg) [![Documentation Status](https://img.shields.io/badge/docs-latest-green.svg)](https://pygls.readthedocs.io/en/latest/)\n\n_pygls_ (pronounced like \"pie glass\") is a pythonic generic implementation of the [Language Server Protocol](https://microsoft.github.io/language-server-protocol/specification) for use as a foundation for writing language servers using Python (e.g. Python, XML, etc.). It allows you to write your own [language server](https://langserver.org/) in just a few lines of code.\n\nQuick Intro\n-----------\n\nHere's how to create a server and register a code completion feature:\n\n```python\nfrom pygls.features import COMPLETION\nfrom pygls.server import LanguageServer\nfrom pygls.types import CompletionItem, CompletionList, CompletionParams\n\nserver = LanguageServer()\n\n@server.feature(COMPLETION, trigger_characters=[','])\ndef completions(params: CompletionParams):\n \"\"\"Returns completion items.\"\"\"\n return CompletionList(False, [\n CompletionItem('\"'),\n CompletionItem('['),\n CompletionItem(']'),\n CompletionItem('{'),\n CompletionItem('}')\n ])\n\nserver.start_tcp('localhost', 8080)\n```\n\nShow completion list on the client:\n\n![completions](https://raw.githubusercontent.com/openlawlibrary/pygls/master/assets/img/readme/completion-list.png)\n\nDocs and Tutorial\n-----------------\n\nThe full documentation and a tutorial is available at .\n\nLet Us Know How You Are Using _pygls_\n-------------------------------------\n\nSubmit a Pull Request (PR) with your information against the [implementations](https://github.com/openlawlibrary/pygls/blob/master/Implementations.md) document.\n\nLicense\n-------\n\nApache-2.0\n\nContributing\n------------\n\nYour contributions to _pygls_ are welcome! Please review the _[Contributing](https://github.com/openlawlibrary/pygls/blob/master/CONTRIBUTING.md)_ and _[Code of Conduct](https://github.com/openlawlibrary/pygls/blob/master/CODE_OF_CONDUCT.md)_ documents for how to get started.\n\nDonation\n--------\n\n[Open Law Library](http://www.openlawlib.org/) is a 501(c)(3) tax exempt organization.Help us maintain our open source projects and open the law to all with a [donation](https://donorbox.org/open-law-library).\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/openlawlibrary/pygls/tree/master/", "keywords": "python pythonic generic language server protocol", "license": "Apache 2.0", "maintainer": "", "maintainer_email": "", "name": "pygls", "package_url": "https://pypi.org/project/pygls/", "platform": "", "project_url": "https://pypi.org/project/pygls/", "project_urls": { "Homepage": "https://github.com/openlawlibrary/pygls/tree/master/" }, "release_url": "https://pypi.org/project/pygls/0.8.1/", "requires_dist": [ "bandit (==1.6.0) ; extra == 'dev'", "flake8 (==3.7.7) ; extra == 'dev'", "sphinx (==2.0.1) ; extra == 'docs'", "sphinx-rtd-theme (==0.4.3) ; extra == 'docs'", "mock (==3.0.5) ; extra == 'test'", "pytest (==4.5.0) ; extra == 'test'", "pytest-asyncio (==0.10.0) ; extra == 'test'" ], "requires_python": "", "summary": "a pythonic generic language server (pronounced like \"pie glass\").", "version": "0.8.1" }, "last_serial": 5786320, "releases": { "0.7.0": [ { "comment_text": "", "digests": { "md5": "45a23ea8c87f3aca6bca15deca6ed88b", "sha256": "9a8a5eb40fc9de1e0963b155b260316bfb130508df69d7d284b05e3ab250e1d5" }, "downloads": -1, "filename": "pygls-0.7.0-py3-none-any.whl", "has_sig": false, "md5_digest": "45a23ea8c87f3aca6bca15deca6ed88b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 49687, "upload_time": "2018-12-21T18:28:23", "url": "https://files.pythonhosted.org/packages/c7/b3/18070abd622a77198d5e03d7fd04a6aa8ff0b25c971d52ca26bcf4261a52/pygls-0.7.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c59bd16c4ffe99481a941c6ef9e0237f", "sha256": "f27d7f663a069b4450e4e5a1d10368bb83b13d858c3ee4dcc24c3ce2ef3ae70f" }, "downloads": -1, "filename": "pygls-0.7.0.tar.gz", "has_sig": false, "md5_digest": "c59bd16c4ffe99481a941c6ef9e0237f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31784, "upload_time": "2018-12-21T18:28:25", "url": "https://files.pythonhosted.org/packages/dc/3f/af30785696a2b983f4597e88f0f4be5b9b5f5bda16d0d2f27b509b3658b5/pygls-0.7.0.tar.gz" } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "3873471988268ffbf1f2b5a48eed12fa", "sha256": "f5934716fcfd7cd5ced3c4ccd5dff7ce29f35a290bf6dcc2c5de9fba22e1320f" }, "downloads": -1, "filename": "pygls-0.7.1-py3-none-any.whl", "has_sig": false, "md5_digest": "3873471988268ffbf1f2b5a48eed12fa", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 51380, "upload_time": "2018-12-28T17:31:52", "url": "https://files.pythonhosted.org/packages/38/88/22ca3e9b560c0a809a8625776d96646c2f13f564db56aad3d45868331a6e/pygls-0.7.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1095e3db38173ca5c9154da674d38faa", "sha256": "a3ec843e66ecb38c66b0e7faf0477ec5b7b3f8289c7ea799bf8efa8f414a26a1" }, "downloads": -1, "filename": "pygls-0.7.1.tar.gz", "has_sig": false, "md5_digest": "1095e3db38173ca5c9154da674d38faa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33563, "upload_time": "2018-12-28T17:31:55", "url": "https://files.pythonhosted.org/packages/ce/5b/9ac4007e9e440407092d68ea221fe3ef1d00d2091098dd3aa7c6fae0bf36/pygls-0.7.1.tar.gz" } ], "0.7.2": [ { "comment_text": "", "digests": { "md5": "d71fd3095694eb5241a87c96ef0887e8", "sha256": "3f8f277c18112f229321757690e4dbd9109ed7a20b8bb1c2f4ae7dbf2aa7e158" }, "downloads": -1, "filename": "pygls-0.7.2-py3-none-any.whl", "has_sig": false, "md5_digest": "d71fd3095694eb5241a87c96ef0887e8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 51492, "upload_time": "2018-12-28T18:16:37", "url": "https://files.pythonhosted.org/packages/7c/3e/d45799b366c4dd3b8767b26532fe8e432182e5cbbc68a1667a12be5b8ff0/pygls-0.7.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "542c821fa9c28498f7a92d9c40a31543", "sha256": "0e6addbd256972d45954a07c753a444de6009c458d7bfa54ee28ac51be0b3d45" }, "downloads": -1, "filename": "pygls-0.7.2.tar.gz", "has_sig": false, "md5_digest": "542c821fa9c28498f7a92d9c40a31543", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33657, "upload_time": "2018-12-28T18:16:38", "url": "https://files.pythonhosted.org/packages/83/a1/a51258813630e50676e6007132aee9da8d92484a7d21ffc7ed9f9c90603e/pygls-0.7.2.tar.gz" } ], "0.7.3": [ { "comment_text": "", "digests": { "md5": "f5012542ae3a970a472d73c0c721467e", "sha256": "9402e29b4bf3551283525d2adeba678d1ea0e0d6bb418a254ec0c92744095170" }, "downloads": -1, "filename": "pygls-0.7.3-py3-none-any.whl", "has_sig": false, "md5_digest": "f5012542ae3a970a472d73c0c721467e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 52574, "upload_time": "2019-01-30T22:28:42", "url": "https://files.pythonhosted.org/packages/6e/52/9895cc189211d56761a6eff7e13e0976aa3877aaa061ef2ae8ae0b2cc776/pygls-0.7.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bb0a3c415ceb1d97228efd7f50a0f409", "sha256": "2470322b859247e9042bd61f4fcedca3f62d6ecc759f42b3adf81318021ae470" }, "downloads": -1, "filename": "pygls-0.7.3.tar.gz", "has_sig": false, "md5_digest": "bb0a3c415ceb1d97228efd7f50a0f409", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34700, "upload_time": "2019-01-30T22:28:44", "url": "https://files.pythonhosted.org/packages/e1/d1/a4efbd90275574611ed640ad4d1b53744720537c246df0f615030e465774/pygls-0.7.3.tar.gz" } ], "0.7.4": [ { "comment_text": "", "digests": { "md5": "5815266818c2f775ec93b599fed893ab", "sha256": "b4c762214c4bb3ad9da65685e992eb62e153528cb7a1bab1afae139dec507c0e" }, "downloads": -1, "filename": "pygls-0.7.4-py3-none-any.whl", "has_sig": false, "md5_digest": "5815266818c2f775ec93b599fed893ab", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 52763, "upload_time": "2019-03-21T16:04:45", "url": "https://files.pythonhosted.org/packages/7f/b5/a19dcc4eed0ea6ae022aa9fca4114a1ca606a2115cffa01c539f56371f36/pygls-0.7.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "534bb580c6810a4045d604810a7fffde", "sha256": "94ad0ccbe2ddf73a8187a0fd3f4b9c5ec58ec396ad7419714d2422bedea0089a" }, "downloads": -1, "filename": "pygls-0.7.4.tar.gz", "has_sig": false, "md5_digest": "534bb580c6810a4045d604810a7fffde", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35015, "upload_time": "2019-03-21T16:04:47", "url": "https://files.pythonhosted.org/packages/f8/01/2e24305d9d7c02c4420686422e9d31c3a41c6cdf23e755cf6eaef2f48a26/pygls-0.7.4.tar.gz" } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "5cc3c6076fdc26228dc774290fcc5b3b", "sha256": "e963b334498a4bd4de9009c71215990b2e8c562478f3ad09669a5acc970ab458" }, "downloads": -1, "filename": "pygls-0.8.0-py3-none-any.whl", "has_sig": false, "md5_digest": "5cc3c6076fdc26228dc774290fcc5b3b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 54523, "upload_time": "2019-05-13T14:54:11", "url": "https://files.pythonhosted.org/packages/bb/9f/fd82498c6bcbf89fa5e17417df2ee4656605b580908d5189180907afbb91/pygls-0.8.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "10148643edae5dbcfb49ab2729f46284", "sha256": "d8602f40ad2758e1d9f3062511458b0de12c814fc7bbca5cee8ea257371ba0f8" }, "downloads": -1, "filename": "pygls-0.8.0.tar.gz", "has_sig": false, "md5_digest": "10148643edae5dbcfb49ab2729f46284", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36553, "upload_time": "2019-05-13T14:54:12", "url": "https://files.pythonhosted.org/packages/b5/00/4a9a4f5f7926b0f5ac9e8c1d7a0eb1b6328d22d65dd42a7b5024dfd0e7d4/pygls-0.8.0.tar.gz" } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "c969eb492daa59a2f10358d097d37ff0", "sha256": "3ee878a828b7bc0873a2ea44208d6846a91aa7dbbbdc052e7fe8cc689f6644fa" }, "downloads": -1, "filename": "pygls-0.8.1-py3-none-any.whl", "has_sig": false, "md5_digest": "c969eb492daa59a2f10358d097d37ff0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 56004, "upload_time": "2019-09-05T12:35:00", "url": "https://files.pythonhosted.org/packages/49/6c/b8588ed161fddc78717eff6dcc0134aa669f92b48a0ba817fe3fdc9f0feb/pygls-0.8.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "da166206edc8023350e35e521e43646f", "sha256": "780fd0c5ae95ad02ecaf70b071e43ff8ced8384b7d6bed19311a7b431d26fb88" }, "downloads": -1, "filename": "pygls-0.8.1.tar.gz", "has_sig": false, "md5_digest": "da166206edc8023350e35e521e43646f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37952, "upload_time": "2019-09-05T12:35:02", "url": "https://files.pythonhosted.org/packages/b8/92/3f51cd5a784934093537de4989ed559e5d4e5cfe731388a4dac7ad10b3cc/pygls-0.8.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c969eb492daa59a2f10358d097d37ff0", "sha256": "3ee878a828b7bc0873a2ea44208d6846a91aa7dbbbdc052e7fe8cc689f6644fa" }, "downloads": -1, "filename": "pygls-0.8.1-py3-none-any.whl", "has_sig": false, "md5_digest": "c969eb492daa59a2f10358d097d37ff0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 56004, "upload_time": "2019-09-05T12:35:00", "url": "https://files.pythonhosted.org/packages/49/6c/b8588ed161fddc78717eff6dcc0134aa669f92b48a0ba817fe3fdc9f0feb/pygls-0.8.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "da166206edc8023350e35e521e43646f", "sha256": "780fd0c5ae95ad02ecaf70b071e43ff8ced8384b7d6bed19311a7b431d26fb88" }, "downloads": -1, "filename": "pygls-0.8.1.tar.gz", "has_sig": false, "md5_digest": "da166206edc8023350e35e521e43646f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37952, "upload_time": "2019-09-05T12:35:02", "url": "https://files.pythonhosted.org/packages/b8/92/3f51cd5a784934093537de4989ed559e5d4e5cfe731388a4dac7ad10b3cc/pygls-0.8.1.tar.gz" } ] }