From 0e243e2af951a3ecbb923d2236fe6f8bfbb276fc Mon Sep 17 00:00:00 2001 From: doge Date: Sat, 28 Jan 2023 10:50:35 -0800 Subject: [PATCH 1/6] Add FutureWarning to read_table --- pandas/io/parsers/readers.py | 11 +++++++++++ pandas/tests/io/parser/test_parse_dates.py | 18 +++++++++--------- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/pandas/io/parsers/readers.py b/pandas/io/parsers/readers.py index 410b4fc0bf9c0..caf4bb5dd0dbe 100644 --- a/pandas/io/parsers/readers.py +++ b/pandas/io/parsers/readers.py @@ -1207,6 +1207,17 @@ def read_table( storage_options: StorageOptions = None, use_nullable_dtypes: bool | lib.NoDefault = lib.no_default, ) -> DataFrame | TextFileReader: + if infer_datetime_format is not lib.no_default: + warnings.warn( + "The argument 'infer_datetime_format' is deprecated and will " + "be removed in a future version. " + "A strict version of it is now the default, see " + "https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. " + "You can safely remove this argument.", + FutureWarning, + stacklevel=find_stack_level(), + ) + # locals() should never be modified kwds = locals().copy() del kwds["filepath_or_buffer"] diff --git a/pandas/tests/io/parser/test_parse_dates.py b/pandas/tests/io/parser/test_parse_dates.py index fc477a899d089..ff0565be09228 100644 --- a/pandas/tests/io/parser/test_parse_dates.py +++ b/pandas/tests/io/parser/test_parse_dates.py @@ -1290,17 +1290,17 @@ def test_parse_dates_empty_string(all_parsers): tm.assert_frame_equal(result, expected) +@pytest.mark.parametrize( + 'reader', + [ + 'read_csv_check_warnings', + 'read_table_check_warnings' + ] +) def test_parse_dates_infer_datetime_format_warning(all_parsers): - # GH 49024 + # GH 49024, 51017 parser = all_parsers - data = "Date,test\n2012-01-01,1\n,2" - parser.read_csv_check_warnings( - UserWarning, - "The argument 'infer_datetime_format' is deprecated", - StringIO(data), - parse_dates=["Date"], - infer_datetime_format=True, - ) + getattr(parser, 'reader') @xfail_pyarrow From d1804aa62eb06be29ee74ecaf9a4cb6c84485d31 Mon Sep 17 00:00:00 2001 From: doge Date: Sat, 28 Jan 2023 18:27:19 -0800 Subject: [PATCH 2/6] Update test function --- pandas/tests/io/parser/test_parse_dates.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/pandas/tests/io/parser/test_parse_dates.py b/pandas/tests/io/parser/test_parse_dates.py index ff0565be09228..02f97076f31dc 100644 --- a/pandas/tests/io/parser/test_parse_dates.py +++ b/pandas/tests/io/parser/test_parse_dates.py @@ -1291,16 +1291,23 @@ def test_parse_dates_empty_string(all_parsers): @pytest.mark.parametrize( - 'reader', + "reader", [ 'read_csv_check_warnings', - 'read_table_check_warnings' + 'read_csv_check_warnings' ] ) -def test_parse_dates_infer_datetime_format_warning(all_parsers): +def test_parse_dates_infer_datetime_format_warning(all_parsers, reader): # GH 49024, 51017 parser = all_parsers - getattr(parser, 'reader') + data = "Date,test\n2012-01-01,1\n,2" + getattr(parser, reader)( + UserWarning, + "The argument 'infer_datetime_format' is deprecated", + StringIO(data), + parse_dates=["Date"], + infer_datetime_format=True, + ) @xfail_pyarrow From b57459ea3167db6eb680317076f77ebbc054091f Mon Sep 17 00:00:00 2001 From: doge Date: Sat, 28 Jan 2023 22:01:36 -0800 Subject: [PATCH 3/6] Add warning type --- pandas/tests/io/parser/test_parse_dates.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pandas/tests/io/parser/test_parse_dates.py b/pandas/tests/io/parser/test_parse_dates.py index 02f97076f31dc..a828665972787 100644 --- a/pandas/tests/io/parser/test_parse_dates.py +++ b/pandas/tests/io/parser/test_parse_dates.py @@ -1294,19 +1294,23 @@ def test_parse_dates_empty_string(all_parsers): "reader", [ 'read_csv_check_warnings', - 'read_csv_check_warnings' + 'read_table_check_warnings' ] ) def test_parse_dates_infer_datetime_format_warning(all_parsers, reader): # GH 49024, 51017 parser = all_parsers data = "Date,test\n2012-01-01,1\n,2" + warning_type = (FutureWarning if reader == "read_table_check_warnings" + else UserWarning) + getattr(parser, reader)( - UserWarning, + warning_type, "The argument 'infer_datetime_format' is deprecated", StringIO(data), parse_dates=["Date"], infer_datetime_format=True, + sep=",", ) From 783b6f6d80ba211ed6fe1ad09fadd3e538ca7dce Mon Sep 17 00:00:00 2001 From: doge Date: Sun, 29 Jan 2023 07:31:59 -0800 Subject: [PATCH 4/6] Update read_csv() with FutureWarning --- pandas/io/parsers/readers.py | 1 + pandas/tests/io/parser/test_parse_dates.py | 4 +--- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/pandas/io/parsers/readers.py b/pandas/io/parsers/readers.py index caf4bb5dd0dbe..178ec1076bfda 100644 --- a/pandas/io/parsers/readers.py +++ b/pandas/io/parsers/readers.py @@ -891,6 +891,7 @@ def read_csv( "A strict version of it is now the default, see " "https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. " "You can safely remove this argument.", + FutureWarning, stacklevel=find_stack_level(), ) # locals() should never be modified diff --git a/pandas/tests/io/parser/test_parse_dates.py b/pandas/tests/io/parser/test_parse_dates.py index a828665972787..0a8b2ea287e34 100644 --- a/pandas/tests/io/parser/test_parse_dates.py +++ b/pandas/tests/io/parser/test_parse_dates.py @@ -1301,11 +1301,9 @@ def test_parse_dates_infer_datetime_format_warning(all_parsers, reader): # GH 49024, 51017 parser = all_parsers data = "Date,test\n2012-01-01,1\n,2" - warning_type = (FutureWarning if reader == "read_table_check_warnings" - else UserWarning) getattr(parser, reader)( - warning_type, + FutureWarning, "The argument 'infer_datetime_format' is deprecated", StringIO(data), parse_dates=["Date"], From 3125d03e8c4bec6fb718e31b577aadadb3daf47b Mon Sep 17 00:00:00 2001 From: root Date: Mon, 30 Jan 2023 02:28:46 +0000 Subject: [PATCH 5/6] Resolving pre-commit-hook changes --- .pre-commit-config.yaml | 14 +++++++------- pandas/tests/io/parser/test_parse_dates.py | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 118d77ff71151..a8fe6506ae4b3 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -16,7 +16,7 @@ ci: autofix_prs: false repos: - repo: https://github.com/charliermarsh/ruff-pre-commit - rev: v0.0.215 + rev: v0.0.237 hooks: - id: ruff - repo: https://github.com/MarcoGorelli/absolufy-imports @@ -25,7 +25,7 @@ repos: - id: absolufy-imports files: ^pandas/ - repo: https://github.com/jendrikseipp/vulture - rev: 'v2.6' + rev: 'v2.7' hooks: - id: vulture entry: python scripts/run_vulture.py @@ -38,7 +38,7 @@ repos: types_or: [python, rst, markdown] additional_dependencies: [tomli] - repo: https://github.com/MarcoGorelli/cython-lint - rev: v0.10.1 + rev: v0.11.0 hooks: - id: cython-lint - id: double-quote-cython-strings @@ -71,12 +71,12 @@ repos: '--filter=-readability/casting,-runtime/int,-build/include_subdir,-readability/fn_size' ] - repo: https://github.com/pycqa/pylint - rev: v2.15.9 + rev: v2.16.0b1 hooks: - id: pylint stages: [manual] - repo: https://github.com/pycqa/pylint - rev: v2.15.9 + rev: v2.16.0b1 hooks: - id: pylint alias: redefined-outer-name @@ -92,7 +92,7 @@ repos: args: [--disable=all, --enable=redefined-outer-name] stages: [manual] - repo: https://github.com/PyCQA/isort - rev: 5.11.4 + rev: 5.12.0 hooks: - id: isort - repo: https://github.com/asottile/pyupgrade @@ -101,7 +101,7 @@ repos: - id: pyupgrade args: [--py38-plus] - repo: https://github.com/pre-commit/pygrep-hooks - rev: v1.9.0 + rev: v1.10.0 hooks: - id: rst-backticks - id: rst-directive-colons diff --git a/pandas/tests/io/parser/test_parse_dates.py b/pandas/tests/io/parser/test_parse_dates.py index 0a8b2ea287e34..e89397f73de8e 100644 --- a/pandas/tests/io/parser/test_parse_dates.py +++ b/pandas/tests/io/parser/test_parse_dates.py @@ -1293,8 +1293,8 @@ def test_parse_dates_empty_string(all_parsers): @pytest.mark.parametrize( "reader", [ - 'read_csv_check_warnings', - 'read_table_check_warnings' + "read_csv_check_warnings", + "read_table_check_warnings" ] ) def test_parse_dates_infer_datetime_format_warning(all_parsers, reader): From a5698c3fc3b712ca3e5b26ad8afafa5fc6cb9c8c Mon Sep 17 00:00:00 2001 From: root Date: Mon, 30 Jan 2023 13:07:41 +0000 Subject: [PATCH 6/6] Revert pre-commit-config.yaml --- .pre-commit-config.yaml | 12 ++++++------ pandas/tests/io/parser/test_parse_dates.py | 6 +----- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index a8fe6506ae4b3..c5c5cc09a0e7a 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -16,7 +16,7 @@ ci: autofix_prs: false repos: - repo: https://github.com/charliermarsh/ruff-pre-commit - rev: v0.0.237 + rev: v0.0.215 hooks: - id: ruff - repo: https://github.com/MarcoGorelli/absolufy-imports @@ -25,7 +25,7 @@ repos: - id: absolufy-imports files: ^pandas/ - repo: https://github.com/jendrikseipp/vulture - rev: 'v2.7' + rev: 'v2.6' hooks: - id: vulture entry: python scripts/run_vulture.py @@ -38,7 +38,7 @@ repos: types_or: [python, rst, markdown] additional_dependencies: [tomli] - repo: https://github.com/MarcoGorelli/cython-lint - rev: v0.11.0 + rev: v0.10.1 hooks: - id: cython-lint - id: double-quote-cython-strings @@ -71,12 +71,12 @@ repos: '--filter=-readability/casting,-runtime/int,-build/include_subdir,-readability/fn_size' ] - repo: https://github.com/pycqa/pylint - rev: v2.16.0b1 + rev: v2.15.9 hooks: - id: pylint stages: [manual] - repo: https://github.com/pycqa/pylint - rev: v2.16.0b1 + rev: v2.15.9 hooks: - id: pylint alias: redefined-outer-name @@ -101,7 +101,7 @@ repos: - id: pyupgrade args: [--py38-plus] - repo: https://github.com/pre-commit/pygrep-hooks - rev: v1.10.0 + rev: v1.9.0 hooks: - id: rst-backticks - id: rst-directive-colons diff --git a/pandas/tests/io/parser/test_parse_dates.py b/pandas/tests/io/parser/test_parse_dates.py index e89397f73de8e..9aebadd833506 100644 --- a/pandas/tests/io/parser/test_parse_dates.py +++ b/pandas/tests/io/parser/test_parse_dates.py @@ -1291,11 +1291,7 @@ def test_parse_dates_empty_string(all_parsers): @pytest.mark.parametrize( - "reader", - [ - "read_csv_check_warnings", - "read_table_check_warnings" - ] + "reader", ["read_csv_check_warnings", "read_table_check_warnings"] ) def test_parse_dates_infer_datetime_format_warning(all_parsers, reader): # GH 49024, 51017