From a19c844c354fb1d3d089233de1bafdecbdf869a2 Mon Sep 17 00:00:00 2001 From: Lukas Bentkamp Date: Sat, 12 Oct 2019 23:52:25 +0200 Subject: [PATCH 01/14] CLN: fix mypy errors in pandas/tests/extension/test_numpy.py #28926 --- pandas/tests/extension/base/ops.py | 9 +++++---- setup.cfg | 3 --- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/pandas/tests/extension/base/ops.py b/pandas/tests/extension/base/ops.py index e35464964f432..cee45943e0976 100644 --- a/pandas/tests/extension/base/ops.py +++ b/pandas/tests/extension/base/ops.py @@ -1,4 +1,5 @@ import operator +from typing import Type, Union import pytest @@ -61,10 +62,10 @@ class BaseArithmeticOpsTests(BaseOpsUtil): * divmod_exc = TypeError """ - series_scalar_exc = TypeError - frame_scalar_exc = TypeError - series_array_exc = TypeError - divmod_exc = TypeError + series_scalar_exc = TypeError # type: Union[Type[Exception], None] + frame_scalar_exc = TypeError # type: Union[Type[Exception], None] + series_array_exc = TypeError # type: Union[Type[Exception], None] + divmod_exc = TypeError # type: Union[Type[Exception], None] def test_arith_series_with_scalar(self, data, all_arithmetic_operators): # series & scalar diff --git a/setup.cfg b/setup.cfg index 9c841b76761f5..4b14089ea9a63 100644 --- a/setup.cfg +++ b/setup.cfg @@ -166,9 +166,6 @@ ignore_errors=True [mypy-pandas.tests.extension.json.test_json] ignore_errors=True -[mypy-pandas.tests.extension.test_numpy] -ignore_errors=True - [mypy-pandas.tests.extension.test_sparse] ignore_errors=True From 28b71205821a5786c9e69aa241f95282f0036724 Mon Sep 17 00:00:00 2001 From: Lukas Bentkamp Date: Sun, 13 Oct 2019 12:58:42 +0200 Subject: [PATCH 02/14] Applied suggestions, PR also fixes errors in test_sparse.py --- pandas/tests/extension/base/ops.py | 8 ++++---- setup.cfg | 3 --- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/pandas/tests/extension/base/ops.py b/pandas/tests/extension/base/ops.py index cee45943e0976..162a0e3b3058d 100644 --- a/pandas/tests/extension/base/ops.py +++ b/pandas/tests/extension/base/ops.py @@ -62,10 +62,10 @@ class BaseArithmeticOpsTests(BaseOpsUtil): * divmod_exc = TypeError """ - series_scalar_exc = TypeError # type: Union[Type[Exception], None] - frame_scalar_exc = TypeError # type: Union[Type[Exception], None] - series_array_exc = TypeError # type: Union[Type[Exception], None] - divmod_exc = TypeError # type: Union[Type[Exception], None] + series_scalar_exc = TypeError # type: Optional[Type[TypeError]] + frame_scalar_exc = TypeError # type: Optional[Type[TypeError]] + series_array_exc = TypeError # type: Optional[Type[TypeError]] + divmod_exc = TypeError # type: Optional[Type[TypeError]] def test_arith_series_with_scalar(self, data, all_arithmetic_operators): # series & scalar diff --git a/setup.cfg b/setup.cfg index 4b14089ea9a63..9af7215b1dc56 100644 --- a/setup.cfg +++ b/setup.cfg @@ -166,9 +166,6 @@ ignore_errors=True [mypy-pandas.tests.extension.json.test_json] ignore_errors=True -[mypy-pandas.tests.extension.test_sparse] -ignore_errors=True - [mypy-pandas.tests.frame.test_constructors] ignore_errors=True From 008fe48c8eae07dc9916aa003cdefec880e6d57b Mon Sep 17 00:00:00 2001 From: Lukas Bentkamp Date: Sun, 13 Oct 2019 13:09:24 +0200 Subject: [PATCH 03/14] Adjusted imports --- pandas/tests/extension/base/ops.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandas/tests/extension/base/ops.py b/pandas/tests/extension/base/ops.py index 162a0e3b3058d..e968962caf0b7 100644 --- a/pandas/tests/extension/base/ops.py +++ b/pandas/tests/extension/base/ops.py @@ -1,5 +1,5 @@ import operator -from typing import Type, Union +from typing import Optional, Type import pytest From 217adc84dc69045c566ec2c510ae11e1d531bbac Mon Sep 17 00:00:00 2001 From: Lukas Bentkamp Date: Tue, 15 Oct 2019 10:02:25 +0200 Subject: [PATCH 04/14] CLN: added type hint for mypy to test_coercion.py --- pandas/tests/indexing/test_coercion.py | 3 ++- setup.cfg | 3 --- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/pandas/tests/indexing/test_coercion.py b/pandas/tests/indexing/test_coercion.py index 05b58b0eca9b8..dd0d310616142 100644 --- a/pandas/tests/indexing/test_coercion.py +++ b/pandas/tests/indexing/test_coercion.py @@ -1,4 +1,5 @@ import itertools +from typing import Any, Dict, List import numpy as np import pytest @@ -928,7 +929,7 @@ class TestReplaceSeriesCoercion(CoercionBase): klasses = ["series"] method = "replace" - rep = {} + rep = {} # type: Dict[str, List[Any]] rep["object"] = ["a", "b"] rep["int64"] = [4, 5] rep["float64"] = [1.1, 2.2] diff --git a/setup.cfg b/setup.cfg index 9af7215b1dc56..a615d938de829 100644 --- a/setup.cfg +++ b/setup.cfg @@ -199,9 +199,6 @@ ignore_errors=True [mypy-pandas.tests.indexes.timedeltas.test_timedelta] ignore_errors=True -[mypy-pandas.tests.indexing.test_coercion] -ignore_errors=True - [mypy-pandas.tests.indexing.test_loc] ignore_errors=True From 8e8daedb6e3c4d167400bfc24929faa53a15946c Mon Sep 17 00:00:00 2001 From: Lukas Bentkamp Date: Tue, 15 Oct 2019 11:08:35 +0200 Subject: [PATCH 05/14] Fixed mypy error in test_json.py The error is due to the fact that the builtins.staticmethod type defined in extension.base.base.BaseExtensionTests does not match the function type in extension.json.test_json.BaseJSON. I don't see a possibility for a type hint fix without changing the structure of the code. One way would be to replace the call of staticmethod by function definitions that call the corresponding methods. Here I propose an easier suppression of the error using type: Any. What do you think? --- pandas/tests/extension/json/test_json.py | 1 - setup.cfg | 3 --- 2 files changed, 4 deletions(-) diff --git a/pandas/tests/extension/json/test_json.py b/pandas/tests/extension/json/test_json.py index bc75ec6aeb2df..38f64f0a78eb8 100644 --- a/pandas/tests/extension/json/test_json.py +++ b/pandas/tests/extension/json/test_json.py @@ -93,7 +93,6 @@ def assert_series_equal(self, left, right, **kwargs): name=right.name, ) tm.assert_series_equal(left, right, **kwargs) - def assert_frame_equal(self, left, right, *args, **kwargs): tm.assert_index_equal( left.columns, diff --git a/setup.cfg b/setup.cfg index eb6e0269a2ea5..88d7cbbafbfa9 100644 --- a/setup.cfg +++ b/setup.cfg @@ -160,9 +160,6 @@ ignore_errors=True [mypy-pandas.tests.extension.json.array] ignore_errors=True -[mypy-pandas.tests.extension.json.test_json] -ignore_errors=True - [mypy-pandas.tests.frame.test_constructors] ignore_errors=True From 524ce17f1187d97d3bb550319a305386ecd0a338 Mon Sep 17 00:00:00 2001 From: Lukas Bentkamp Date: Tue, 15 Oct 2019 11:23:33 +0200 Subject: [PATCH 06/14] reformatting --- pandas/tests/extension/base/base.py | 6 ++++-- pandas/tests/extension/json/test_json.py | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/pandas/tests/extension/base/base.py b/pandas/tests/extension/base/base.py index 2f808d20acd31..1e28f14709df7 100644 --- a/pandas/tests/extension/base/base.py +++ b/pandas/tests/extension/base/base.py @@ -1,9 +1,11 @@ +from typing import Any + import pandas.util.testing as tm class BaseExtensionTests: assert_equal = staticmethod(tm.assert_equal) - assert_series_equal = staticmethod(tm.assert_series_equal) - assert_frame_equal = staticmethod(tm.assert_frame_equal) + assert_series_equal = staticmethod(tm.assert_series_equal) # type: Any + assert_frame_equal = staticmethod(tm.assert_frame_equal) # type: Any assert_extension_array_equal = staticmethod(tm.assert_extension_array_equal) diff --git a/pandas/tests/extension/json/test_json.py b/pandas/tests/extension/json/test_json.py index 38f64f0a78eb8..bc75ec6aeb2df 100644 --- a/pandas/tests/extension/json/test_json.py +++ b/pandas/tests/extension/json/test_json.py @@ -93,6 +93,7 @@ def assert_series_equal(self, left, right, **kwargs): name=right.name, ) tm.assert_series_equal(left, right, **kwargs) + def assert_frame_equal(self, left, right, *args, **kwargs): tm.assert_index_equal( left.columns, From a7b85ed53f5379e543fc61b25e617ab760bdcc09 Mon Sep 17 00:00:00 2001 From: Lukas Bentkamp Date: Tue, 15 Oct 2019 11:44:06 +0200 Subject: [PATCH 07/14] CLN: Fixed mypy error in test_yqm_offsets.py --- pandas/tests/tseries/offsets/test_offsets.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pandas/tests/tseries/offsets/test_offsets.py b/pandas/tests/tseries/offsets/test_offsets.py index ddf2c6e65b474..5cc10bf00203d 100644 --- a/pandas/tests/tseries/offsets/test_offsets.py +++ b/pandas/tests/tseries/offsets/test_offsets.py @@ -1,4 +1,5 @@ from datetime import date, datetime, time as dt_time, timedelta +from typing import Type import numpy as np import pytest @@ -92,7 +93,7 @@ def test_to_M8(): class Base: - _offset = None + _offset = None # type: Type[DateOffset] d = Timestamp(datetime(2008, 1, 2)) timezones = [ From 555f031276720b51e9fe3efc5e917238a70e9a9a Mon Sep 17 00:00:00 2001 From: Lukas Bentkamp Date: Tue, 15 Oct 2019 11:48:20 +0200 Subject: [PATCH 08/14] added setup.cfg --- setup.cfg | 3 --- 1 file changed, 3 deletions(-) diff --git a/setup.cfg b/setup.cfg index 88d7cbbafbfa9..e246c906368dd 100644 --- a/setup.cfg +++ b/setup.cfg @@ -222,6 +222,3 @@ ignore_errors=True [mypy-pandas.tests.tseries.offsets.test_offsets_properties] ignore_errors=True - -[mypy-pandas.tests.tseries.offsets.test_yqm_offsets] -ignore_errors=True From f507f7f46f11f283c0cdc4e33cd87a38ad83794b Mon Sep 17 00:00:00 2001 From: Lukas Bentkamp Date: Tue, 15 Oct 2019 22:01:33 +0200 Subject: [PATCH 09/14] Revert "CLN: Fixed mypy error in test_yqm_offsets.py" This reverts commit a7b85ed53f5379e543fc61b25e617ab760bdcc09. --- pandas/tests/tseries/offsets/test_offsets.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pandas/tests/tseries/offsets/test_offsets.py b/pandas/tests/tseries/offsets/test_offsets.py index 5cc10bf00203d..ddf2c6e65b474 100644 --- a/pandas/tests/tseries/offsets/test_offsets.py +++ b/pandas/tests/tseries/offsets/test_offsets.py @@ -1,5 +1,4 @@ from datetime import date, datetime, time as dt_time, timedelta -from typing import Type import numpy as np import pytest @@ -93,7 +92,7 @@ def test_to_M8(): class Base: - _offset = None # type: Type[DateOffset] + _offset = None d = Timestamp(datetime(2008, 1, 2)) timezones = [ From 06219f5ec9d9b4a623fd6e84c8033ac3919fbc03 Mon Sep 17 00:00:00 2001 From: Lukas Bentkamp Date: Tue, 15 Oct 2019 22:02:43 +0200 Subject: [PATCH 10/14] Revert "Revert "CLN: Fixed mypy error in test_yqm_offsets.py"" This reverts commit f507f7f46f11f283c0cdc4e33cd87a38ad83794b. --- pandas/tests/tseries/offsets/test_offsets.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pandas/tests/tseries/offsets/test_offsets.py b/pandas/tests/tseries/offsets/test_offsets.py index ddf2c6e65b474..5cc10bf00203d 100644 --- a/pandas/tests/tseries/offsets/test_offsets.py +++ b/pandas/tests/tseries/offsets/test_offsets.py @@ -1,4 +1,5 @@ from datetime import date, datetime, time as dt_time, timedelta +from typing import Type import numpy as np import pytest @@ -92,7 +93,7 @@ def test_to_M8(): class Base: - _offset = None + _offset = None # type: Type[DateOffset] d = Timestamp(datetime(2008, 1, 2)) timezones = [ From 5bf2d060d4d48fb9ea40ec3bb2a53d32cf66126f Mon Sep 17 00:00:00 2001 From: Lukas Bentkamp Date: Tue, 15 Oct 2019 22:03:43 +0200 Subject: [PATCH 11/14] Revert "reformatting" This reverts commit 524ce17f1187d97d3bb550319a305386ecd0a338. --- pandas/tests/extension/base/base.py | 6 ++---- pandas/tests/extension/json/test_json.py | 1 - 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/pandas/tests/extension/base/base.py b/pandas/tests/extension/base/base.py index 1e28f14709df7..2f808d20acd31 100644 --- a/pandas/tests/extension/base/base.py +++ b/pandas/tests/extension/base/base.py @@ -1,11 +1,9 @@ -from typing import Any - import pandas.util.testing as tm class BaseExtensionTests: assert_equal = staticmethod(tm.assert_equal) - assert_series_equal = staticmethod(tm.assert_series_equal) # type: Any - assert_frame_equal = staticmethod(tm.assert_frame_equal) # type: Any + assert_series_equal = staticmethod(tm.assert_series_equal) + assert_frame_equal = staticmethod(tm.assert_frame_equal) assert_extension_array_equal = staticmethod(tm.assert_extension_array_equal) diff --git a/pandas/tests/extension/json/test_json.py b/pandas/tests/extension/json/test_json.py index bc75ec6aeb2df..38f64f0a78eb8 100644 --- a/pandas/tests/extension/json/test_json.py +++ b/pandas/tests/extension/json/test_json.py @@ -93,7 +93,6 @@ def assert_series_equal(self, left, right, **kwargs): name=right.name, ) tm.assert_series_equal(left, right, **kwargs) - def assert_frame_equal(self, left, right, *args, **kwargs): tm.assert_index_equal( left.columns, From f8aca9bf54b639eb0cabd6f619012848fe532a1a Mon Sep 17 00:00:00 2001 From: Lukas Bentkamp Date: Tue, 15 Oct 2019 22:04:07 +0200 Subject: [PATCH 12/14] Revert "Fixed mypy error in test_json.py" This reverts commit 8e8daedb6e3c4d167400bfc24929faa53a15946c. --- pandas/tests/extension/json/test_json.py | 1 + setup.cfg | 3 +++ 2 files changed, 4 insertions(+) diff --git a/pandas/tests/extension/json/test_json.py b/pandas/tests/extension/json/test_json.py index 38f64f0a78eb8..bc75ec6aeb2df 100644 --- a/pandas/tests/extension/json/test_json.py +++ b/pandas/tests/extension/json/test_json.py @@ -93,6 +93,7 @@ def assert_series_equal(self, left, right, **kwargs): name=right.name, ) tm.assert_series_equal(left, right, **kwargs) + def assert_frame_equal(self, left, right, *args, **kwargs): tm.assert_index_equal( left.columns, diff --git a/setup.cfg b/setup.cfg index e246c906368dd..b7050fd0f9466 100644 --- a/setup.cfg +++ b/setup.cfg @@ -160,6 +160,9 @@ ignore_errors=True [mypy-pandas.tests.extension.json.array] ignore_errors=True +[mypy-pandas.tests.extension.json.test_json] +ignore_errors=True + [mypy-pandas.tests.frame.test_constructors] ignore_errors=True From 37ab5484a1bf4c282c3cdf6bdd7d54fbc3486d69 Mon Sep 17 00:00:00 2001 From: Lukas Bentkamp Date: Tue, 15 Oct 2019 22:12:39 +0200 Subject: [PATCH 13/14] removing displaced changes --- pandas/tests/indexing/test_coercion.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pandas/tests/indexing/test_coercion.py b/pandas/tests/indexing/test_coercion.py index dd0d310616142..05b58b0eca9b8 100644 --- a/pandas/tests/indexing/test_coercion.py +++ b/pandas/tests/indexing/test_coercion.py @@ -1,5 +1,4 @@ import itertools -from typing import Any, Dict, List import numpy as np import pytest @@ -929,7 +928,7 @@ class TestReplaceSeriesCoercion(CoercionBase): klasses = ["series"] method = "replace" - rep = {} # type: Dict[str, List[Any]] + rep = {} rep["object"] = ["a", "b"] rep["int64"] = [4, 5] rep["float64"] = [1.1, 2.2] From 760c854d76fcf4bf553712b8a3eedfc42ddce61c Mon Sep 17 00:00:00 2001 From: Lukas Bentkamp Date: Tue, 15 Oct 2019 22:13:35 +0200 Subject: [PATCH 14/14] removing more displaced changes --- setup.cfg | 3 +++ 1 file changed, 3 insertions(+) diff --git a/setup.cfg b/setup.cfg index ebbb7eed36f38..dd82571ed5916 100644 --- a/setup.cfg +++ b/setup.cfg @@ -196,6 +196,9 @@ ignore_errors=True [mypy-pandas.tests.indexes.timedeltas.test_timedelta] ignore_errors=True +[mypy-pandas.tests.indexing.test_coercion] +ignore_errors=True + [mypy-pandas.tests.indexing.test_loc] ignore_errors=True