From 1998b1f28d20c8c3a53c175f7c6421f7d3e98513 Mon Sep 17 00:00:00 2001 From: Stephannie Jimenez Date: Tue, 11 Aug 2020 12:06:43 -0500 Subject: [PATCH 1/9] Upgrade ujson dependency to 2.0.3 --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 8c6876e..32874ab 100755 --- a/setup.py +++ b/setup.py @@ -34,7 +34,7 @@ install_requires=[ 'future>=0.14.0; python_version<"3"', 'futures; python_version<"3.2"', - 'ujson<=1.35; platform_system!="Windows"', + 'ujson<=2.0.3; platform_system!="Windows"', ], # List additional groups of dependencies here (e.g. development From bc30b4801f7dd773490cf04896ba38a347fe2f98 Mon Sep 17 00:00:00 2001 From: Stephannie Jimenez Date: Tue, 11 Aug 2020 12:20:59 -0500 Subject: [PATCH 2/9] Add monkeypatch to support datetime in the latest version of ujson --- test/test_streams.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/test/test_streams.py b/test/test_streams.py index 8c2e93e..45fd636 100644 --- a/test/test_streams.py +++ b/test/test_streams.py @@ -1,6 +1,7 @@ # Copyright 2018 Palantir Technologies, Inc. # pylint: disable=redefined-outer-name from io import BytesIO +import datetime import os import mock import pytest @@ -95,10 +96,16 @@ def test_writer(wfile, writer): ) +class JsonDatetime(datetime.datetime): + """Monkey path json datetime.""" + def __json__(self): + return '{0}'.format(int(self.timestamp())) + + def test_writer_bad_message(wfile, writer): # A datetime isn't serializable(or poorly serializable), # ensure the write method doesn't throw - import datetime + datetime.datetime = JsonDatetime writer.write(datetime.datetime( year=2019, month=1, @@ -115,5 +122,5 @@ def test_writer_bad_message(wfile, writer): b'Content-Length: 10\r\n' b'Content-Type: application/vscode-jsonrpc; charset=utf8\r\n' b'\r\n' - b'1546304461' + b'1546322461' ) From d29bc348091c6c2d3ded0f59a655f9b2e50b9838 Mon Sep 17 00:00:00 2001 From: Stephannie Jimenez Date: Tue, 11 Aug 2020 12:24:40 -0500 Subject: [PATCH 3/9] revert to datetime in CI --- test/test_streams.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test_streams.py b/test/test_streams.py index 45fd636..0782c0a 100644 --- a/test/test_streams.py +++ b/test/test_streams.py @@ -122,5 +122,5 @@ def test_writer_bad_message(wfile, writer): b'Content-Length: 10\r\n' b'Content-Type: application/vscode-jsonrpc; charset=utf8\r\n' b'\r\n' - b'1546322461' + b'1546304461' ) From 045fe1c158c5d9f870c7fb3277a4cbc21cfdbb70 Mon Sep 17 00:00:00 2001 From: Stephannie Jimenez Date: Tue, 11 Aug 2020 12:30:08 -0500 Subject: [PATCH 4/9] add Python 2 support in the monkeypatch --- test/test_streams.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/test/test_streams.py b/test/test_streams.py index 0782c0a..f0650ff 100644 --- a/test/test_streams.py +++ b/test/test_streams.py @@ -99,7 +99,11 @@ def test_writer(wfile, writer): class JsonDatetime(datetime.datetime): """Monkey path json datetime.""" def __json__(self): - return '{0}'.format(int(self.timestamp())) + if sys.version_info.major == 3: + dif = int(self.timestamp()) + else: + dif = int((self - datetime.datetime(1970, 1, 1)).total_seconds()) + return '{0}'.format(dif) def test_writer_bad_message(wfile, writer): From 00672fe61b0374e01dcd613928d1c237eef01a49 Mon Sep 17 00:00:00 2001 From: Stephannie Jimenez Date: Tue, 11 Aug 2020 12:31:31 -0500 Subject: [PATCH 5/9] add import --- test/test_streams.py | 1 + 1 file changed, 1 insertion(+) diff --git a/test/test_streams.py b/test/test_streams.py index f0650ff..72fade0 100644 --- a/test/test_streams.py +++ b/test/test_streams.py @@ -5,6 +5,7 @@ import os import mock import pytest +import sys from pyls_jsonrpc.streams import JsonRpcStreamReader, JsonRpcStreamWriter From 3ad5c9f567d81e549656712a07d166ba2e75f9de Mon Sep 17 00:00:00 2001 From: Stephannie Jimenez Date: Tue, 11 Aug 2020 12:33:17 -0500 Subject: [PATCH 6/9] move sys import before mock import --- test/test_streams.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test_streams.py b/test/test_streams.py index 72fade0..d0d1961 100644 --- a/test/test_streams.py +++ b/test/test_streams.py @@ -3,9 +3,9 @@ from io import BytesIO import datetime import os +import sys import mock import pytest -import sys from pyls_jsonrpc.streams import JsonRpcStreamReader, JsonRpcStreamWriter From 37e3628715cef267435507bb21442e7b0bdd23c4 Mon Sep 17 00:00:00 2001 From: Stephannie Jimenez Date: Tue, 11 Aug 2020 12:58:25 -0500 Subject: [PATCH 7/9] Add support to all OS if python 3 --- setup.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/setup.py b/setup.py index 32874ab..8ebbea9 100755 --- a/setup.py +++ b/setup.py @@ -1,10 +1,23 @@ #!/usr/bin/env python from setuptools import find_packages, setup +import os +import sys import versioneer README = open('README.rst', 'r').read() +install_requires = [ + 'future>=0.14.0; python_version<"3"', + 'futures; python_version<"3.2"', +] + +if sys.version_info[0] == 2: + if os.name != 'nt': + install_requires.append('ujson<=2.0.3') +else: + install_requires.append('ujson>3.0.0') + setup( name='python-jsonrpc-server', @@ -31,11 +44,7 @@ # your project is installed. For an analysis of "install_requires" vs pip's # requirements files see: # https://packaging.python.org/en/latest/requirements.html - install_requires=[ - 'future>=0.14.0; python_version<"3"', - 'futures; python_version<"3.2"', - 'ujson<=2.0.3; platform_system!="Windows"', - ], + install_requires=install_requires, # List additional groups of dependencies here (e.g. development # dependencies). You can install these using the following syntax, From 6c1d30248fc5229b32fdef8ad87bff21e007d2fc Mon Sep 17 00:00:00 2001 From: Stephannie Jimenez Date: Tue, 11 Aug 2020 13:37:43 -0500 Subject: [PATCH 8/9] add review changes --- setup.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/setup.py b/setup.py index 8ebbea9..3d7398e 100755 --- a/setup.py +++ b/setup.py @@ -1,6 +1,5 @@ #!/usr/bin/env python from setuptools import find_packages, setup -import os import sys import versioneer @@ -13,8 +12,7 @@ ] if sys.version_info[0] == 2: - if os.name != 'nt': - install_requires.append('ujson<=2.0.3') + install_requires.append('ujson<=2.0.3; platform_system!="Windows"') else: install_requires.append('ujson>3.0.0') From 245077234310f98591793b1aa75f8f676f5fbbfa Mon Sep 17 00:00:00 2001 From: Stephannie Jimenez Gacha Date: Wed, 12 Aug 2020 11:05:52 -0500 Subject: [PATCH 9/9] Fix dependency constraint Co-authored-by: Carlos Cordoba --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 3d7398e..3c6ba2a 100755 --- a/setup.py +++ b/setup.py @@ -14,7 +14,7 @@ if sys.version_info[0] == 2: install_requires.append('ujson<=2.0.3; platform_system!="Windows"') else: - install_requires.append('ujson>3.0.0') + install_requires.append('ujson>=3.0.0') setup( name='python-jsonrpc-server',