Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-python-lsp-jsonrpc for 
openSUSE:Factory checked in at 2023-11-01 22:10:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-python-lsp-jsonrpc (Old)
 and      /work/SRC/openSUSE:Factory/.python-python-lsp-jsonrpc.new.17445 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-python-lsp-jsonrpc"

Wed Nov  1 22:10:20 2023 rev:2 rq:1121664 version:1.1.2

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-python-lsp-jsonrpc/python-python-lsp-jsonrpc.changes
      2021-07-16 22:13:23.278556391 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-python-lsp-jsonrpc.new.17445/python-python-lsp-jsonrpc.changes
   2023-11-01 22:11:03.290055361 +0100
@@ -1,0 +2,19 @@
+Wed Nov  1 16:48:02 UTC 2023 - Ben Greiner <c...@bnavigator.de>
+
+- Fix requirements
+- Don't check coverage
+
+-------------------------------------------------------------------
+Wed Nov  1 06:10:09 UTC 2023 - Steve Kowalik <steven.kowa...@suse.com>
+
+- Update to 1.1.2:
+  * Fix tests so they're compatible with both ujson and pure json library
+  * Remove redundant wheel dep from pyproject.toml
+  * Add license trove classifier
+  * Drop support for Python 3.7 and 3.6
+  * Allow method handlers to return json rpc errors
+  * Migrate metadata from `setup.cfg` to PEP 621-compliant `pyproject.toml`
+  * Use f-strings wherever possible
+- Switch to pyproject macros.
+
+-------------------------------------------------------------------

Old:
----
  python-lsp-jsonrpc-1.0.0.tar.gz

New:
----
  python-lsp-jsonrpc-1.1.2.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-python-lsp-jsonrpc.spec ++++++
--- /var/tmp/diff_new_pack.b0a5qv/_old  2023-11-01 22:11:03.942079515 +0100
+++ /var/tmp/diff_new_pack.b0a5qv/_new  2023-11-01 22:11:03.942079515 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package python-python-lsp-jsonrpc
 #
-# Copyright (c) 2021 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -16,17 +16,19 @@
 #
 
 
-%{?!python_module:%define python_module() python3-%{**}}
-%define skip_python2 1
 Name:           python-python-lsp-jsonrpc
-Version:        1.0.0
+Version:        1.1.2
 Release:        0
 Summary:        JSON RPC 2.0 server library
 License:        MIT
 URL:            https://github.com/python-lsp/python-lsp-jsonrpc
 Source:         
https://files.pythonhosted.org/packages/source/p/python-lsp-jsonrpc/python-lsp-jsonrpc-%{version}.tar.gz
+BuildRequires:  %{python_module base >= 3.8}
+BuildRequires:  %{python_module pip}
+BuildRequires:  %{python_module setuptools >= 61.2}
+BuildRequires:  %{python_module setuptools_scm >= 3.4.3}
+BuildRequires:  %{python_module wheel}
 BuildRequires:  python-rpm-macros
-BuildRequires:  %{python_module setuptools}
 # SECTION test requirements
 BuildRequires:  %{python_module ujson >= 3.0.0}
 BuildRequires:  %{python_module pytest}
@@ -40,25 +42,23 @@
 A Python 3.6+ server implementation of the JSON RPC 2.0 protocol.
 This library has been pulled out of the Python Language Server project.
 
-
 %prep
 %setup -q -n python-lsp-jsonrpc-%{version}
+sed -i /addopts/d pyproject.toml
 
 %build
-%python_build
+%pyproject_wheel
 
 %install
-%python_install
+%pyproject_install
 %python_expand %fdupes %{buildroot}%{$python_sitelib}
 
 %check
-# Remove pytest addopts
-rm setup.cfg
 %pytest
 
 %files %{python_files}
 %doc README.md
 %license LICENSE
 %{python_sitelib}/pylsp_jsonrpc
-%{python_sitelib}/python_lsp_jsonrpc-%{version}*-info
+%{python_sitelib}/python_lsp_jsonrpc-%{version}.dist-info
 

++++++ python-lsp-jsonrpc-1.0.0.tar.gz -> python-lsp-jsonrpc-1.1.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-lsp-jsonrpc-1.0.0/.coveragerc 
new/python-lsp-jsonrpc-1.1.2/.coveragerc
--- old/python-lsp-jsonrpc-1.0.0/.coveragerc    1970-01-01 01:00:00.000000000 
+0100
+++ new/python-lsp-jsonrpc-1.1.2/.coveragerc    2022-01-10 22:08:23.000000000 
+0100
@@ -0,0 +1,2 @@
+[run]
+omit = pylsp_jsonrpc/_version.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-lsp-jsonrpc-1.0.0/.gitattributes 
new/python-lsp-jsonrpc-1.1.2/.gitattributes
--- old/python-lsp-jsonrpc-1.0.0/.gitattributes 1970-01-01 01:00:00.000000000 
+0100
+++ new/python-lsp-jsonrpc-1.1.2/.gitattributes 2021-02-21 18:24:16.000000000 
+0100
@@ -0,0 +1 @@
+jsonrpc/_version.py export-subst
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-lsp-jsonrpc-1.0.0/.github/workflows/static.yml 
new/python-lsp-jsonrpc-1.1.2/.github/workflows/static.yml
--- old/python-lsp-jsonrpc-1.0.0/.github/workflows/static.yml   1970-01-01 
01:00:00.000000000 +0100
+++ new/python-lsp-jsonrpc-1.1.2/.github/workflows/static.yml   2022-05-10 
05:45:17.000000000 +0200
@@ -0,0 +1,40 @@
+name: Static code analysis
+
+on:
+  push:
+    branches:
+      - develop
+
+  pull_request:
+    branches:
+      - '*'
+
+jobs:
+  build:
+    name: Static code analysis
+    runs-on: ubuntu-latest
+    env:
+      CI: 'true'
+      OS: 'linux'
+    timeout-minutes: 2
+    steps:
+      - uses: actions/cache@v1
+        with:
+          path: ~/.cache/pip
+          key: static-pip-${{ hashFiles('setup.py') }}
+          restore-keys: static-pip-
+      - uses: actions/checkout@v2
+      - uses: actions/setup-python@v2
+        with:
+          # TODO: check with Python 3, but need to fix the
+          # errors first
+          python-version: '3.8'
+          architecture: 'x64'
+      - run: python -m pip install --upgrade pip setuptools
+      - run: pip install -e .[test]
+      - name: Pylint checks
+        run: pylint pylsp_jsonrpc test
+      - name: Code style checks
+        run: pycodestyle pylsp_jsonrpc test
+      - name: Pyflakes checks
+        run: pyflakes pylsp_jsonrpc test
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-lsp-jsonrpc-1.0.0/.github/workflows/test-linux.yml 
new/python-lsp-jsonrpc-1.1.2/.github/workflows/test-linux.yml
--- old/python-lsp-jsonrpc-1.0.0/.github/workflows/test-linux.yml       
1970-01-01 01:00:00.000000000 +0100
+++ new/python-lsp-jsonrpc-1.1.2/.github/workflows/test-linux.yml       
2023-09-08 00:31:24.000000000 +0200
@@ -0,0 +1,42 @@
+name: Linux tests
+
+on:
+  push:
+    branches:
+      - develop
+
+  pull_request:
+    branches:
+      - '*'
+
+jobs:
+  build:
+    name: Linux Py${{ matrix.PYTHON_VERSION }}
+    runs-on: ubuntu-latest
+    env:
+      CI: 'true'
+      OS: 'linux'
+      PYTHON_VERSION: ${{ matrix.PYTHON_VERSION }}
+    strategy:
+      fail-fast: false
+      matrix:
+        PYTHON_VERSION: ['3.10', '3.9', '3.8']
+    timeout-minutes: 10
+    steps:
+      - uses: actions/cache@v1
+        with:
+          path: ~/.cache/pip
+          key: ${{ runner.os }}-${{ matrix.PYTHON_VERSION }}-pip-${{ 
hashFiles('setup.py') }}
+          restore-keys: ${{ runner.os }}-${{ matrix.PYTHON_VERSION }}-pip-
+      - uses: actions/checkout@v2
+      - uses: actions/setup-python@v2
+        with:
+          python-version: ${{ matrix.PYTHON_VERSION }}
+          architecture: 'x64'
+      - run: python -m pip install --upgrade pip setuptools
+      - run: pip install -e .[all,test]
+      - run: pytest -v test/
+      # Enable this if SSH debugging is required
+      # - name: Setup tmate session
+      #   uses: mxschmitt/action-tmate@v3
+      #   if: ${{ failure() }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-lsp-jsonrpc-1.0.0/.github/workflows/test-mac.yml 
new/python-lsp-jsonrpc-1.1.2/.github/workflows/test-mac.yml
--- old/python-lsp-jsonrpc-1.0.0/.github/workflows/test-mac.yml 1970-01-01 
01:00:00.000000000 +0100
+++ new/python-lsp-jsonrpc-1.1.2/.github/workflows/test-mac.yml 2023-09-08 
00:31:24.000000000 +0200
@@ -0,0 +1,42 @@
+name: Mac tests
+
+on:
+  push:
+    branches:
+      - develop
+
+  pull_request:
+    branches:
+      - '*'
+
+jobs:
+  build:
+    name: Mac Py${{ matrix.PYTHON_VERSION }}
+    runs-on: macos-latest
+    env:
+      CI: 'true'
+      OS: 'macos'
+      PYTHON_VERSION: ${{ matrix.PYTHON_VERSION }}
+    strategy:
+      fail-fast: false
+      matrix:
+        PYTHON_VERSION: ['3.10', '3.9', '3.8']
+    timeout-minutes: 10
+    steps:
+      - uses: actions/cache@v1
+        with:
+          path: ~/Library/Caches/pip
+          key: ${{ runner.os }}-${{ matrix.PYTHON_VERSION }}-pip-${{ 
hashFiles('setup.py') }}
+          restore-keys: ${{ runner.os }}-${{ matrix.PYTHON_VERSION }}-pip-
+      - uses: actions/checkout@v2
+      - uses: actions/setup-python@v2
+        with:
+          python-version: ${{ matrix.PYTHON_VERSION }}
+          architecture: 'x64'
+      - run: python -m pip install --upgrade pip setuptools
+      - run: pip install -e .[all,test]
+      - run: pytest -v test/
+      # Enable this if SSH debugging is required
+      # - name: Setup tmate session
+      #   uses: mxschmitt/action-tmate@v3
+      #   if: ${{ failure() }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-lsp-jsonrpc-1.0.0/.github/workflows/test-win.yml 
new/python-lsp-jsonrpc-1.1.2/.github/workflows/test-win.yml
--- old/python-lsp-jsonrpc-1.0.0/.github/workflows/test-win.yml 1970-01-01 
01:00:00.000000000 +0100
+++ new/python-lsp-jsonrpc-1.1.2/.github/workflows/test-win.yml 2023-09-08 
00:31:24.000000000 +0200
@@ -0,0 +1,38 @@
+name: Windows tests
+
+on:
+  push:
+    branches:
+      - develop
+
+  pull_request:
+    branches:
+      - '*'
+
+jobs:
+  build:
+    name: Win Py${{ matrix.PYTHON_VERSION }}
+    runs-on: windows-latest
+    env:
+      CI: 'true'
+      OS: 'win'
+      PYTHON_VERSION: ${{ matrix.PYTHON_VERSION }}
+    strategy:
+      fail-fast: false
+      matrix:
+        PYTHON_VERSION: ['3.10', '3.9', '3.8']
+    timeout-minutes: 10
+    steps:
+      - uses: actions/cache@v1
+        with:
+          path: ~\AppData\Local\pip\Cache
+          key: ${{ runner.os }}-${{ matrix.PYTHON_VERSION }}-pip-${{ 
hashFiles('setup.py') }}
+          restore-keys: ${{ runner.os }}-${{ matrix.PYTHON_VERSION }}-pip-
+      - uses: actions/checkout@v2
+      - uses: actions/setup-python@v2
+        with:
+          python-version: ${{ matrix.PYTHON_VERSION }}
+          architecture: 'x64'
+      - run: python -m pip install --upgrade pip setuptools
+      - run: pip install -e .[all,test]
+      - run: pytest -v test/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-lsp-jsonrpc-1.0.0/.gitignore 
new/python-lsp-jsonrpc-1.1.2/.gitignore
--- old/python-lsp-jsonrpc-1.0.0/.gitignore     1970-01-01 01:00:00.000000000 
+0100
+++ new/python-lsp-jsonrpc-1.1.2/.gitignore     2022-05-15 18:12:50.000000000 
+0200
@@ -0,0 +1,114 @@
+# autogenerated version file
+/pylsp_jsonrpc/_version.py
+
+# Byte-compiled / optimized / DLL files
+__pycache__/
+*.py[cod]
+*$py.class
+
+# IntelliJ
+*.iml
+*.ipr
+*.iws
+.idea/
+out/
+
+# C extensions
+*.so
+
+# Distribution / packaging
+.Python
+env/
+env3/
+build/
+develop-eggs/
+dist/
+downloads/
+eggs/
+.eggs/
+lib/
+lib64/
+parts/
+sdist/
+var/
+*.egg-info/
+.installed.cfg
+*.egg
+
+# PyInstaller
+#  Usually these files are written by a python script from a template
+#  before PyInstaller builds the exe, so as to inject date/other infos into it.
+*.manifest
+*.spec
+
+# Installer logs
+pip-log.txt
+pip-delete-this-directory.txt
+
+# Unit test / coverage reports
+htmlcov/
+.tox/
+.coverage
+.coverage.*
+.cache
+nosetests.xml
+coverage.xml
+*,cover
+.hypothesis/
+pytest.xml
+.pytest_cache/
+
+# Translations
+*.mo
+*.pot
+
+# Django stuff:
+*.log
+local_settings.py
+
+# Flask stuff:
+instance/
+.webassets-cache
+
+# Scrapy stuff:
+.scrapy
+
+# Sphinx documentation
+docs/_build/
+
+# PyBuilder
+target/
+
+# IPython Notebook
+.ipynb_checkpoints
+
+# pyenv
+.python-version
+
+# celery beat schedule file
+celerybeat-schedule
+
+# dotenv
+.env
+
+# virtualenv
+venv/
+ENV/
+
+# Spyder project settings
+.spyderproject
+
+# Rope project settings
+.ropeproject
+
+# JavaScript
+**/*.vscode/
+
+# vim
+*.sw[mnopqrs]
+
+# Idea
+.idea/
+
+# Merge orig files
+*.orig
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-lsp-jsonrpc-1.0.0/CHANGELOG.md 
new/python-lsp-jsonrpc-1.1.2/CHANGELOG.md
--- old/python-lsp-jsonrpc-1.0.0/CHANGELOG.md   1970-01-01 01:00:00.000000000 
+0100
+++ new/python-lsp-jsonrpc-1.1.2/CHANGELOG.md   2023-09-23 19:46:03.000000000 
+0200
@@ -0,0 +1,71 @@
+# History of changes
+
+## Version 1.1.2 (2023/09/23)
+
+### Pull Requests Merged
+
+* [PR 26](https://github.com/python-lsp/python-lsp-jsonrpc/pull/26) - Fix 
tests so they're compatible with both ujson and pure json library, by 
[@ajohnston9](https://github.com/ajohnston9)
+
+In this release 1 pull request was closed.
+
+----
+
+## Version 1.1.1 (2023/09/09)
+
+### Issues Closed
+
+* [Issue 18](https://github.com/python-lsp/python-lsp-jsonrpc/issues/18) - No 
license included in package metadata ([PR 
19](https://github.com/python-lsp/python-lsp-jsonrpc/pull/19) by 
[@thejcannon](https://github.com/thejcannon))
+
+In this release 1 issue was closed.
+
+### Pull Requests Merged
+
+* [PR 23](https://github.com/python-lsp/python-lsp-jsonrpc/pull/23) - Remove 
redundant wheel dep from pyproject.toml, by [@mgorny](https://github.com/mgorny)
+* [PR 19](https://github.com/python-lsp/python-lsp-jsonrpc/pull/19) - Add 
license trove classifier, by [@thejcannon](https://github.com/thejcannon) 
([18](https://github.com/python-lsp/python-lsp-jsonrpc/issues/18))
+
+In this release 2 pull requests were closed.
+
+----
+
+## Version 1.1.0 (2023/09/07)
+
+## New features
+
+* Allow method handlers to return json rpc errors
+* Drop support for Python 3.7 and 3.6
+
+### Issues Closed
+
+* [Issue 11](https://github.com/python-lsp/python-lsp-jsonrpc/issues/11) - 
Drop support for Python 3.6 ([PR 
16](https://github.com/python-lsp/python-lsp-jsonrpc/pull/16) by 
[@ccordoba12](https://github.com/ccordoba12))
+
+In this release 1 issue was closed.
+
+### Pull Requests Merged
+
+* [PR 21](https://github.com/python-lsp/python-lsp-jsonrpc/pull/21) - Drop 
support for Python 3.7, by [@ccordoba12](https://github.com/ccordoba12)
+* [PR 20](https://github.com/python-lsp/python-lsp-jsonrpc/pull/20) - Allow 
method handlers to return json rpc errors, by 
[@smacke](https://github.com/smacke)
+* [PR 16](https://github.com/python-lsp/python-lsp-jsonrpc/pull/16) - Make 
necessary changes to drop support for Python 3.6, by 
[@ccordoba12](https://github.com/ccordoba12) 
([11](https://github.com/python-lsp/python-lsp-jsonrpc/issues/11))
+* [PR 15](https://github.com/python-lsp/python-lsp-jsonrpc/pull/15) - Drop 
Python 3.6 on CIs and start testing with Python 3.10, by 
[@ccordoba12](https://github.com/ccordoba12)
+* [PR 14](https://github.com/python-lsp/python-lsp-jsonrpc/pull/14) - Migrate 
metadata from `setup.cfg` to PEP 621-compliant `pyproject.toml`, by 
[@KOLANICH](https://github.com/KOLANICH)
+* [PR 10](https://github.com/python-lsp/python-lsp-jsonrpc/pull/10) - Use 
f-strings wherever possible, by [@ccordoba12](https://github.com/ccordoba12)
+* [PR 9](https://github.com/python-lsp/python-lsp-jsonrpc/pull/9) - Add 
license info to setup.py so it will show up in wheel installs., by 
[@itsbenweeks](https://github.com/itsbenweeks)
+* [PR 8](https://github.com/python-lsp/python-lsp-jsonrpc/pull/8) - Move the 
package metadata from setup.py to setup.cfg, by 
[@KOLANICH](https://github.com/KOLANICH)
+* [PR 4](https://github.com/python-lsp/python-lsp-jsonrpc/pull/4) - PR: Fix 
typos in readme, by [@yaegassy](https://github.com/yaegassy)
+
+In this release 9 pull requests were closed.
+
+----
+
+## Version 1.0.0 (2021/04/14)
+
+### Issues Closed
+
+* [Issue 3](https://github.com/python-lsp/python-lsp-jsonrpc/issues/3) - 
Release v1.0.0
+
+In this release 1 issue was closed.
+
+### Pull Requests Merged
+
+* [PR 2](https://github.com/python-lsp/python-lsp-jsonrpc/pull/2) - PR: Update 
package name, remove Python 2 compatibility and update CIs, by 
[@andfoy](https://github.com/andfoy)
+
+In this release 1 pull request was closed.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-lsp-jsonrpc-1.0.0/PKG-INFO 
new/python-lsp-jsonrpc-1.1.2/PKG-INFO
--- old/python-lsp-jsonrpc-1.0.0/PKG-INFO       2021-04-14 23:13:43.751572400 
+0200
+++ new/python-lsp-jsonrpc-1.1.2/PKG-INFO       2023-09-23 19:47:51.097817200 
+0200
@@ -1,28 +1,37 @@
 Metadata-Version: 2.1
 Name: python-lsp-jsonrpc
-Version: 1.0.0
+Version: 1.1.2
 Summary: JSON RPC 2.0 server library
-Home-page: https://github.com/python-lsp/python-lsp-jsonrpc
 Author: Python Language Server Contributors
-License: UNKNOWN
-Description: # Python JSON RPC Server
-        
-        A Python 3.6+ server implementation of the [JSON RPC 
2.0](http://www.jsonrpc.org/specification) protocol. This library has been 
pulled out of the [Python LSP 
Server](https://github.com/python-lsp/python-lsp-server) project.
-        
-        ## Installation
-        
-            pip install -U python-jsonrpc-server
-        
-        ## Examples
-        
-        The examples directory contains two examples of running language 
servers over websockets. `examples/langserver.py` shows how to run a language 
server in-memory. `examples/langserver_ext.py` shows how to run a subprocess 
language server, in this case the Python LSP Server.
-        
-        Start by installing `tornado` and `python-language-server`
-        
-            pip install python-lsp-server[all] tornado
-        
-        Then running `python examples/langserver.py` or `python 
examples/langserver_ext.py` will host a websocket on 
``ws://localhost:3000/python``.
-        
-Platform: UNKNOWN
+License: MIT
+Project-URL: Homepage, https://github.com/python-lsp/python-lsp-jsonrpc
+Classifier: License :: OSI Approved :: MIT License
+Requires-Python: >=3.8
 Description-Content-Type: text/markdown
+License-File: LICENSE
+Requires-Dist: ujson>=3.0.0
 Provides-Extra: test
+Requires-Dist: pylint; extra == "test"
+Requires-Dist: pycodestyle; extra == "test"
+Requires-Dist: pyflakes; extra == "test"
+Requires-Dist: pytest; extra == "test"
+Requires-Dist: pytest-cov; extra == "test"
+Requires-Dist: coverage; extra == "test"
+
+# Python JSON RPC Server
+
+A Python 3.8+ server implementation of the [JSON RPC 
2.0](http://www.jsonrpc.org/specification) protocol. This library has been 
pulled out of the [Python LSP 
Server](https://github.com/python-lsp/python-lsp-server) project.
+
+## Installation
+
+    pip install -U python-lsp-jsonrpc
+
+## Examples
+
+The examples directory contains two examples of running language servers over 
websockets. `examples/langserver.py` shows how to run a language server 
in-memory. `examples/langserver_ext.py` shows how to run a subprocess language 
server, in this case the Python LSP Server.
+
+Start by installing `tornado` and `python-lsp-server`
+
+    pip install python-lsp-server[all] tornado
+
+Then running `python examples/langserver.py` or `python 
examples/langserver_ext.py` will host a websocket on 
``ws://localhost:3000/python``.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-lsp-jsonrpc-1.0.0/README.md 
new/python-lsp-jsonrpc-1.1.2/README.md
--- old/python-lsp-jsonrpc-1.0.0/README.md      2021-04-14 23:05:37.000000000 
+0200
+++ new/python-lsp-jsonrpc-1.1.2/README.md      2023-09-08 00:31:24.000000000 
+0200
@@ -1,16 +1,16 @@
 # Python JSON RPC Server
 
-A Python 3.6+ server implementation of the [JSON RPC 
2.0](http://www.jsonrpc.org/specification) protocol. This library has been 
pulled out of the [Python LSP 
Server](https://github.com/python-lsp/python-lsp-server) project.
+A Python 3.8+ server implementation of the [JSON RPC 
2.0](http://www.jsonrpc.org/specification) protocol. This library has been 
pulled out of the [Python LSP 
Server](https://github.com/python-lsp/python-lsp-server) project.
 
 ## Installation
 
-    pip install -U python-jsonrpc-server
+    pip install -U python-lsp-jsonrpc
 
 ## Examples
 
 The examples directory contains two examples of running language servers over 
websockets. `examples/langserver.py` shows how to run a language server 
in-memory. `examples/langserver_ext.py` shows how to run a subprocess language 
server, in this case the Python LSP Server.
 
-Start by installing `tornado` and `python-language-server`
+Start by installing `tornado` and `python-lsp-server`
 
     pip install python-lsp-server[all] tornado
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-lsp-jsonrpc-1.0.0/RELEASE.md 
new/python-lsp-jsonrpc-1.1.2/RELEASE.md
--- old/python-lsp-jsonrpc-1.0.0/RELEASE.md     1970-01-01 01:00:00.000000000 
+0100
+++ new/python-lsp-jsonrpc-1.1.2/RELEASE.md     2023-09-08 00:42:38.000000000 
+0200
@@ -0,0 +1,22 @@
+## Before the release:
+
+1. Create pull request to update CHANGELOG.md with
+    * `loghub python-lsp/python-lsp-jsonrpc -m vX.X.X`
+    * git add -A && git commit -m "Update changelog for X.X.X"
+
+    This is necessary to run our tests before the release, so we can be sure
+    everything is in order.
+
+## To release a new version of python-lsp-jsonrpc:
+
+1. git fetch upstream && git checkout upstream/master
+2. Close milestone on GitHub
+3. git clean -xfdi
+4. git tag -a vX.X.X -m "Release vX.X.X"
+5. python -m pip install --upgrade pip
+6. pip install --upgrade --upgrade-strategy eager build setuptools twine wheel
+7. python -bb -X dev -W error -m build
+8. twine check --strict dist/*
+9. twine upload dist/*
+10. git push upstream --tags
+11. Create release on Github
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-lsp-jsonrpc-1.0.0/examples/langserver.py 
new/python-lsp-jsonrpc-1.1.2/examples/langserver.py
--- old/python-lsp-jsonrpc-1.0.0/examples/langserver.py 1970-01-01 
01:00:00.000000000 +0100
+++ new/python-lsp-jsonrpc-1.1.2/examples/langserver.py 2022-01-10 
22:08:23.000000000 +0100
@@ -0,0 +1,75 @@
+import logging
+
+from tornado import web, ioloop, websocket
+
+from pylsp_jsonrpc import dispatchers, endpoint
+
+try:
+    import ujson as json
+except Exception:  # pylint: disable=broad-except
+    import json
+
+log = logging.getLogger(__name__)
+
+
+class LanguageServer(dispatchers.MethodDispatcher):
+    """Implement a JSON RPC method dispatcher for the language server 
protocol."""
+
+    def __init__(self):
+        # Endpoint is lazily set after construction
+        self.endpoint = None
+
+    def m_initialize(self, rootUri=None, **kwargs):
+        log.info("Got initialize params: %s", kwargs)
+        return {"capabilities": {
+            "textDocumentSync": {
+                "openClose": True,
+            }
+        }}
+
+    def m_text_document__did_open(self, textDocument=None, **_kwargs):
+        log.info("Opened text document %s", textDocument)
+        self.endpoint.notify('textDocument/publishDiagnostics', {
+            'uri': textDocument['uri'],
+            'diagnostics': [{
+                'range': {
+                    'start': {'line': 0, 'character': 0},
+                    'end': {'line': 1, 'character': 0},
+                },
+                'message': 'Some very bad Python code',
+                'severity': 1  # DiagnosticSeverity.Error
+            }]
+        })
+
+
+class LanguageServerWebSocketHandler(websocket.WebSocketHandler):
+    """Setup tornado websocket handler to host language server."""
+
+    def __init__(self, *args, **kwargs):
+        # Create an instance of the language server used to dispatch JSON RPC 
methods
+        langserver = LanguageServer()
+
+        # Setup an endpoint that dispatches to the ls, and writes 
server->client messages
+        # back to the client websocket
+        self.endpoint = endpoint.Endpoint(langserver, lambda msg: 
self.write_message(json.dumps(msg)))
+
+        # Give the language server a handle to the endpoint so it can send 
JSON RPC
+        # notifications and requests.
+        langserver.endpoint = self.endpoint
+
+        super(LanguageServerWebSocketHandler, self).__init__(*args, **kwargs)
+
+    def on_message(self, message):
+        """Forward client->server messages to the endpoint."""
+        self.endpoint.consume(json.loads(message))
+
+    def check_origin(self, origin):
+        return True
+
+
+if __name__ == "__main__":
+    app = web.Application([
+        (r"/python", LanguageServerWebSocketHandler),
+    ])
+    app.listen(3000, address='127.0.0.1')
+    ioloop.IOLoop.current().start()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-lsp-jsonrpc-1.0.0/examples/langserver_ext.py 
new/python-lsp-jsonrpc-1.1.2/examples/langserver_ext.py
--- old/python-lsp-jsonrpc-1.0.0/examples/langserver_ext.py     1970-01-01 
01:00:00.000000000 +0100
+++ new/python-lsp-jsonrpc-1.1.2/examples/langserver_ext.py     2022-01-10 
22:08:23.000000000 +0100
@@ -0,0 +1,60 @@
+import logging
+import subprocess
+import threading
+
+from tornado import ioloop, process, web, websocket
+
+from pylsp_jsonrpc import streams
+
+try:
+    import ujson as json
+except Exception:  # pylint: disable=broad-except
+    import json
+
+log = logging.getLogger(__name__)
+
+
+class LanguageServerWebSocketHandler(websocket.WebSocketHandler):
+    """Setup tornado websocket handler to host an external language server."""
+
+    writer = None
+
+    def open(self, *args, **kwargs):
+        log.info("Spawning pylsp subprocess")
+
+        # Create an instance of the language server
+        proc = process.Subprocess(
+            ['pylsp', '-v'],
+            stdin=subprocess.PIPE,
+            stdout=subprocess.PIPE
+        )
+
+        # Create a writer that formats json messages with the correct LSP 
headers
+        self.writer = streams.JsonRpcStreamWriter(proc.stdin)
+
+        # Create a reader for consuming stdout of the language server. We need 
to
+        # consume this in another thread
+        def consume():
+            # Start a tornado IOLoop for reading/writing to the process in 
this thread
+            ioloop.IOLoop()
+            reader = streams.JsonRpcStreamReader(proc.stdout)
+            reader.listen(lambda msg: self.write_message(json.dumps(msg)))
+
+        thread = threading.Thread(target=consume)
+        thread.daemon = True
+        thread.start()
+
+    def on_message(self, message):
+        """Forward client->server messages to the endpoint."""
+        self.writer.write(json.loads(message))
+
+    def check_origin(self, origin):
+        return True
+
+
+if __name__ == "__main__":
+    app = web.Application([
+        (r"/python", LanguageServerWebSocketHandler),
+    ])
+    app.listen(3000, address='127.0.0.1')
+    ioloop.IOLoop.current().start()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-lsp-jsonrpc-1.0.0/pylsp_jsonrpc/__init__.py 
new/python-lsp-jsonrpc-1.1.2/pylsp_jsonrpc/__init__.py
--- old/python-lsp-jsonrpc-1.0.0/pylsp_jsonrpc/__init__.py      2021-04-14 
23:05:37.000000000 +0200
+++ new/python-lsp-jsonrpc-1.1.2/pylsp_jsonrpc/__init__.py      2022-05-15 
18:12:50.000000000 +0200
@@ -1,6 +1,23 @@
 # Copyright 2017-2020 Palantir Technologies, Inc.
 # Copyright 2021- Python Language Server Contributors.
 
+from . import _version
 from ._version import __version__
 
-__all__ = [__version__]
+
+def convert_version_info(version: str) -> (int, ..., str):
+    version_info = version.split(".")
+    for i in range(len(version_info)):  # 
pylint:disable=consider-using-enumerate
+        try:
+            version_info[i] = int(version_info[i])
+        except ValueError:
+            version_info[i] = version_info[i].split("+")[0]
+            version_info = version_info[: i + 1]
+            break
+
+    return tuple(version_info)
+
+
+_version.VERSION_INFO = convert_version_info(__version__)
+
+__all__ = ("__version__",)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-lsp-jsonrpc-1.0.0/pylsp_jsonrpc/_version.py 
new/python-lsp-jsonrpc-1.1.2/pylsp_jsonrpc/_version.py
--- old/python-lsp-jsonrpc-1.0.0/pylsp_jsonrpc/_version.py      2021-04-14 
23:13:05.000000000 +0200
+++ new/python-lsp-jsonrpc-1.1.2/pylsp_jsonrpc/_version.py      2023-09-23 
19:47:50.000000000 +0200
@@ -1,5 +1 @@
-# Copyright 2017-2020 Palantir Technologies, Inc.
-# Copyright 2021- Python Language Server Contributors.
-
-VERSION_INFO = (1, 0, 0)
-__version__ = '.'.join(map(str, VERSION_INFO))
+__version__ = "1.1.2"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-lsp-jsonrpc-1.0.0/pylsp_jsonrpc/dispatchers.py 
new/python-lsp-jsonrpc-1.1.2/pylsp_jsonrpc/dispatchers.py
--- old/python-lsp-jsonrpc-1.0.0/pylsp_jsonrpc/dispatchers.py   2021-04-14 
23:05:37.000000000 +0200
+++ new/python-lsp-jsonrpc-1.1.2/pylsp_jsonrpc/dispatchers.py   2022-01-10 
22:19:15.000000000 +0100
@@ -16,7 +16,7 @@
     """
 
     def __getitem__(self, item):
-        method_name = 'm_{}'.format(_method_to_string(item))
+        method_name = f'm_{_method_to_string(item)}'
         if hasattr(self, method_name):
             method = getattr(self, method_name)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-lsp-jsonrpc-1.0.0/pylsp_jsonrpc/endpoint.py 
new/python-lsp-jsonrpc-1.1.2/pylsp_jsonrpc/endpoint.py
--- old/python-lsp-jsonrpc-1.0.0/pylsp_jsonrpc/endpoint.py      2021-04-14 
23:05:37.000000000 +0200
+++ new/python-lsp-jsonrpc-1.1.2/pylsp_jsonrpc/endpoint.py      2023-09-08 
00:15:39.000000000 +0200
@@ -4,6 +4,7 @@
 import logging
 import uuid
 import sys
+from typing import Any, Dict, Mapping
 
 from concurrent import futures
 from .exceptions import (JsonRpcException, JsonRpcRequestCancelled,
@@ -175,6 +176,17 @@
         if request_future.cancel():
             log.debug("Cancelled request with id %s", msg_id)
 
+    @staticmethod
+    def _make_response_payload(header: Dict[str, Any], result: Any) -> 
Mapping[str, Any]:
+        # return type of 'Mapping' because it should not be mutated
+        # further from here
+        response = dict(header)
+        if isinstance(result, dict) and ('result' in result or 'error' in 
result):
+            response.update(result)
+        else:
+            response['result'] = result
+        return response
+
     def _handle_request(self, msg_id, method, params):
         """Handle a request from the client."""
         try:
@@ -195,11 +207,14 @@
             handler_result.add_done_callback(self._request_callback(msg_id))
         else:
             log.debug("Got result from synchronous request handler: %s", 
handler_result)
-            self._consumer({
-                'jsonrpc': JSONRPC_VERSION,
-                'id': msg_id,
-                'result': handler_result
-            })
+            response = self._make_response_payload(
+                {
+                    'jsonrpc': JSONRPC_VERSION,
+                    'id': msg_id,
+                },
+                handler_result,
+            )
+            self._consumer(response)
 
     def _request_callback(self, request_id):
         """Construct a request callback for the given request ID."""
@@ -216,7 +231,8 @@
             }
 
             try:
-                message['result'] = future.result()
+                result = future.result()
+                message = self._make_response_payload(message, result)
             except JsonRpcException as e:
                 log.exception("Failed to handle request %s", request_id)
                 message['error'] = e.to_dict()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-lsp-jsonrpc-1.0.0/pylsp_jsonrpc/streams.py 
new/python-lsp-jsonrpc-1.1.2/pylsp_jsonrpc/streams.py
--- old/python-lsp-jsonrpc-1.0.0/pylsp_jsonrpc/streams.py       2021-04-14 
23:05:37.000000000 +0200
+++ new/python-lsp-jsonrpc-1.1.2/pylsp_jsonrpc/streams.py       2022-01-10 
22:19:15.000000000 +0100
@@ -74,7 +74,7 @@
             try:
                 return int(value)
             except ValueError as e:
-                raise ValueError("Invalid Content-Length header: 
{}".format(value)) from e
+                raise ValueError(f"Invalid Content-Length header: {value}") 
from e
 
         return None
 
@@ -100,9 +100,9 @@
                 content_length = len(body) if isinstance(body, bytes) else 
len(body.encode('utf-8'))
 
                 response = (
-                    "Content-Length: {}\r\n"
-                    "Content-Type: application/vscode-jsonrpc; 
charset=utf8\r\n\r\n"
-                    "{}".format(content_length, body)
+                    f"Content-Length: {content_length}\r\n"
+                    f"Content-Type: application/vscode-jsonrpc; 
charset=utf8\r\n\r\n"
+                    f"{body}"
                 )
 
                 self._wfile.write(response.encode('utf-8'))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-lsp-jsonrpc-1.0.0/pyproject.toml 
new/python-lsp-jsonrpc-1.1.2/pyproject.toml
--- old/python-lsp-jsonrpc-1.0.0/pyproject.toml 1970-01-01 01:00:00.000000000 
+0100
+++ new/python-lsp-jsonrpc-1.1.2/pyproject.toml 2023-09-09 23:56:19.000000000 
+0200
@@ -0,0 +1,51 @@
+# Copyright 2017-2020 Palantir Technologies, Inc.
+# Copyright 2021- Python Language Server Contributors.
+
+[build-system]
+requires = ["setuptools>=61.2.0", "setuptools_scm[toml]>=3.4.3"]
+build-backend = "setuptools.build_meta"
+
+[project]
+name = "python-lsp-jsonrpc"
+authors = [{name = "Python Language Server Contributors"}]
+description = "JSON RPC 2.0 server library"
+license = {text = "MIT"}
+requires-python = ">=3.8"
+dependencies = ["ujson>=3.0.0"]
+dynamic = ["version"]
+classifiers = [
+    "License :: OSI Approved :: MIT License",
+]
+
+[project.readme]
+file = "README.md"
+content-type = "text/markdown"
+
+[project.urls]
+Homepage = "https://github.com/python-lsp/python-lsp-jsonrpc";
+
+[project.optional-dependencies]
+test = [
+    "pylint",
+    "pycodestyle",
+    "pyflakes",
+    "pytest",
+    "pytest-cov",
+    "coverage",
+]
+
+[tool.setuptools]
+license-files = ["LICENSE"]
+include-package-data = false
+
+[tool.setuptools.packages.find]
+exclude = ["contrib", "docs", "test", "test.*"]
+namespaces = false
+
+[tool.setuptools_scm]
+write_to = "pylsp_jsonrpc/_version.py"
+write_to_template = "__version__ = \"{version}\"\n"  # VERSION_INFO is 
populated in __main__
+
+[tool.pytest.ini_options]
+testpaths = ["test"]
+addopts = "--cov-report html --cov-report term --junitxml=pytest.xml --cov 
pylsp_jsonrpc --cov test"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-lsp-jsonrpc-1.0.0/python_lsp_jsonrpc.egg-info/PKG-INFO 
new/python-lsp-jsonrpc-1.1.2/python_lsp_jsonrpc.egg-info/PKG-INFO
--- old/python-lsp-jsonrpc-1.0.0/python_lsp_jsonrpc.egg-info/PKG-INFO   
2021-04-14 23:13:43.000000000 +0200
+++ new/python-lsp-jsonrpc-1.1.2/python_lsp_jsonrpc.egg-info/PKG-INFO   
2023-09-23 19:47:51.000000000 +0200
@@ -1,28 +1,37 @@
 Metadata-Version: 2.1
 Name: python-lsp-jsonrpc
-Version: 1.0.0
+Version: 1.1.2
 Summary: JSON RPC 2.0 server library
-Home-page: https://github.com/python-lsp/python-lsp-jsonrpc
 Author: Python Language Server Contributors
-License: UNKNOWN
-Description: # Python JSON RPC Server
-        
-        A Python 3.6+ server implementation of the [JSON RPC 
2.0](http://www.jsonrpc.org/specification) protocol. This library has been 
pulled out of the [Python LSP 
Server](https://github.com/python-lsp/python-lsp-server) project.
-        
-        ## Installation
-        
-            pip install -U python-jsonrpc-server
-        
-        ## Examples
-        
-        The examples directory contains two examples of running language 
servers over websockets. `examples/langserver.py` shows how to run a language 
server in-memory. `examples/langserver_ext.py` shows how to run a subprocess 
language server, in this case the Python LSP Server.
-        
-        Start by installing `tornado` and `python-language-server`
-        
-            pip install python-lsp-server[all] tornado
-        
-        Then running `python examples/langserver.py` or `python 
examples/langserver_ext.py` will host a websocket on 
``ws://localhost:3000/python``.
-        
-Platform: UNKNOWN
+License: MIT
+Project-URL: Homepage, https://github.com/python-lsp/python-lsp-jsonrpc
+Classifier: License :: OSI Approved :: MIT License
+Requires-Python: >=3.8
 Description-Content-Type: text/markdown
+License-File: LICENSE
+Requires-Dist: ujson>=3.0.0
 Provides-Extra: test
+Requires-Dist: pylint; extra == "test"
+Requires-Dist: pycodestyle; extra == "test"
+Requires-Dist: pyflakes; extra == "test"
+Requires-Dist: pytest; extra == "test"
+Requires-Dist: pytest-cov; extra == "test"
+Requires-Dist: coverage; extra == "test"
+
+# Python JSON RPC Server
+
+A Python 3.8+ server implementation of the [JSON RPC 
2.0](http://www.jsonrpc.org/specification) protocol. This library has been 
pulled out of the [Python LSP 
Server](https://github.com/python-lsp/python-lsp-server) project.
+
+## Installation
+
+    pip install -U python-lsp-jsonrpc
+
+## Examples
+
+The examples directory contains two examples of running language servers over 
websockets. `examples/langserver.py` shows how to run a language server 
in-memory. `examples/langserver_ext.py` shows how to run a subprocess language 
server, in this case the Python LSP Server.
+
+Start by installing `tornado` and `python-lsp-server`
+
+    pip install python-lsp-server[all] tornado
+
+Then running `python examples/langserver.py` or `python 
examples/langserver_ext.py` will host a websocket on 
``ws://localhost:3000/python``.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-lsp-jsonrpc-1.0.0/python_lsp_jsonrpc.egg-info/SOURCES.txt 
new/python-lsp-jsonrpc-1.1.2/python_lsp_jsonrpc.egg-info/SOURCES.txt
--- old/python-lsp-jsonrpc-1.0.0/python_lsp_jsonrpc.egg-info/SOURCES.txt        
2021-04-14 23:13:43.000000000 +0200
+++ new/python-lsp-jsonrpc-1.1.2/python_lsp_jsonrpc.egg-info/SOURCES.txt        
2023-09-23 19:47:51.000000000 +0200
@@ -1,9 +1,20 @@
+.coveragerc
+.gitattributes
+.gitignore
 .pylintrc
+CHANGELOG.md
 LICENSE
 MANIFEST.in
 README.md
+RELEASE.md
+pyproject.toml
 setup.cfg
-setup.py
+.github/workflows/static.yml
+.github/workflows/test-linux.yml
+.github/workflows/test-mac.yml
+.github/workflows/test-win.yml
+examples/langserver.py
+examples/langserver_ext.py
 pylsp_jsonrpc/__init__.py
 pylsp_jsonrpc/_version.py
 pylsp_jsonrpc/dispatchers.py
@@ -15,6 +26,7 @@
 python_lsp_jsonrpc.egg-info/dependency_links.txt
 python_lsp_jsonrpc.egg-info/requires.txt
 python_lsp_jsonrpc.egg-info/top_level.txt
+scripts/circle/pypi.sh
 test/__init__.py
 test/test_endpoint.py
 test/test_streams.py
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-lsp-jsonrpc-1.0.0/scripts/circle/pypi.sh 
new/python-lsp-jsonrpc-1.1.2/scripts/circle/pypi.sh
--- old/python-lsp-jsonrpc-1.0.0/scripts/circle/pypi.sh 1970-01-01 
01:00:00.000000000 +0100
+++ new/python-lsp-jsonrpc-1.1.2/scripts/circle/pypi.sh 2021-02-21 
18:24:16.000000000 +0100
@@ -0,0 +1,17 @@
+#!/bin/bash -e
+
+if [ -z "$CI" ]; then
+    echo "Will only continue on CI"
+    exit
+fi
+
+# build package and upload to private pypi index
+rm -f ~/.pypirc
+echo "[distutils]" >> ~/.pypirc
+echo "index-servers = pypi-private" >> ~/.pypirc
+echo "[pypi-private]" >> ~/.pypirc
+echo "repository=https://$PYPI_HOST"; >> ~/.pypirc
+echo "username=$PYPI_USERNAME" >> ~/.pypirc
+echo "password=$PYPI_PASSWORD" >> ~/.pypirc
+
+python setup.py sdist bdist_wheel upload -r pypi-private
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-lsp-jsonrpc-1.0.0/setup.cfg 
new/python-lsp-jsonrpc-1.1.2/setup.cfg
--- old/python-lsp-jsonrpc-1.0.0/setup.cfg      2021-04-14 23:13:43.751572400 
+0200
+++ new/python-lsp-jsonrpc-1.1.2/setup.cfg      2023-09-23 19:47:51.097817200 
+0200
@@ -3,12 +3,6 @@
 max-line-length = 120
 exclude = test/plugins/.ropeproject,test/.ropeproject
 
-[tool:pytest]
-testpaths = test
-addopts = 
-       --cov-report html --cov-report term --junitxml=pytest.xml
-       --cov pylsp_jsonrpc --cov test
-
 [egg_info]
 tag_build = 
 tag_date = 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-lsp-jsonrpc-1.0.0/setup.py 
new/python-lsp-jsonrpc-1.1.2/setup.py
--- old/python-lsp-jsonrpc-1.0.0/setup.py       2021-04-14 23:05:37.000000000 
+0200
+++ new/python-lsp-jsonrpc-1.1.2/setup.py       1970-01-01 01:00:00.000000000 
+0100
@@ -1,45 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright 2017-2020 Palantir Technologies, Inc.
-# Copyright 2021- Python Language Server Contributors.
-
-import ast
-import os
-from setuptools import find_packages, setup
-
-HERE = os.path.abspath(os.path.dirname(__file__))
-
-
-def get_version(module='pylsp_jsonrpc'):
-    """Get version."""
-    with open(os.path.join(HERE, module, '_version.py'), 'r') as f:
-        data = f.read()
-    lines = data.split('\n')
-    for line in lines:
-        if line.startswith('VERSION_INFO'):
-            version_tuple = ast.literal_eval(line.split('=')[-1].strip())
-            version = '.'.join(map(str, version_tuple))
-            break
-    return version
-
-
-README = open('README.md', 'r').read()
-
-
-setup(
-    name='python-lsp-jsonrpc',
-    version=get_version(),
-    description='JSON RPC 2.0 server library',
-    long_description=README,
-    long_description_content_type='text/markdown',
-    url='https://github.com/python-lsp/python-lsp-jsonrpc',
-    author='Python Language Server Contributors',
-    packages=find_packages(exclude=['contrib', 'docs', 'test']),
-    install_requires=[
-        'ujson>=3.0.0',
-    ],
-    extras_require={
-        'test': ['pylint', 'pycodestyle', 'pyflakes', 'pytest',
-                 'pytest-cov', 'coverage'],
-    },
-)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-lsp-jsonrpc-1.0.0/test/test_endpoint.py 
new/python-lsp-jsonrpc-1.1.2/test/test_endpoint.py
--- old/python-lsp-jsonrpc-1.0.0/test/test_endpoint.py  2021-04-14 
23:05:37.000000000 +0200
+++ new/python-lsp-jsonrpc-1.1.2/test/test_endpoint.py  2022-01-10 
22:19:15.000000000 +0100
@@ -332,7 +332,7 @@
 
 def await_assertion(condition, timeout=3.0, interval=0.1, exc=None):
     if timeout <= 0:
-        raise exc if exc else AssertionError("Failed to wait for condition %s" 
% condition)
+        raise exc if exc else AssertionError(f"Failed to wait for condition 
{condition}")
     try:
         condition()
     except AssertionError as e:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-lsp-jsonrpc-1.0.0/test/test_streams.py 
new/python-lsp-jsonrpc-1.1.2/test/test_streams.py
--- old/python-lsp-jsonrpc-1.0.0/test/test_streams.py   2021-04-14 
23:05:37.000000000 +0200
+++ new/python-lsp-jsonrpc-1.1.2/test/test_streams.py   2023-09-23 
19:46:03.000000000 +0200
@@ -82,13 +82,20 @@
         'method': 'method',
         'params': {}
     })
-
-    assert wfile.getvalue() == (
-        b'Content-Length: 44\r\n'
-        b'Content-Type: application/vscode-jsonrpc; charset=utf8\r\n'
-        b'\r\n'
-        b'{"id":"hello","method":"method","params":{}}'
-    )
+    if 'ujson' in sys.modules:
+        assert wfile.getvalue() == (
+            b'Content-Length: 44\r\n'
+            b'Content-Type: application/vscode-jsonrpc; charset=utf8\r\n'
+            b'\r\n'
+            b'{"id":"hello","method":"method","params":{}}'
+        )
+    else:
+        assert wfile.getvalue() == (
+            b'Content-Length: 49\r\n'
+            b'Content-Type: application/vscode-jsonrpc; charset=utf8\r\n'
+            b'\r\n'
+            b'{"id": "hello", "method": "method", "params": {}}'
+        )
 
 
 class JsonDatetime(datetime.datetime):
@@ -98,7 +105,7 @@
             dif = int(self.timestamp())
         else:
             dif = int((self - datetime.datetime(1970, 1, 1)).total_seconds())
-        return '{0}'.format(dif)
+        return f'{dif}'
 
 
 def test_writer_bad_message(wfile, writer):

Reply via email to