From e1fc4d5c6b95a3c4f480ef4ccecf37d27a4f5fc0 Mon Sep 17 00:00:00 2001 From: Kaiqi Dong Date: Mon, 12 Nov 2018 21:22:00 +0100 Subject: [PATCH 01/25] add ignore-deprecate argument and add pytest --- scripts/tests/test_validate_docstrings.py | 16 ++++++++++++++++ scripts/validate_docstrings.py | 15 +++++++++++++-- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/scripts/tests/test_validate_docstrings.py b/scripts/tests/test_validate_docstrings.py index 60b60603f0289..b6fca2e22c860 100644 --- a/scripts/tests/test_validate_docstrings.py +++ b/scripts/tests/test_validate_docstrings.py @@ -981,3 +981,19 @@ def test_errors_param_filters_errors(self, monkeypatch): errors=['ER03'], output_format='default') assert exit_status == 1 + + def test_exit_status_for_deprecated_function(self, monkeypatch): + monkeypatch.setattr( + validate_docstrings, 'validate_one', lambda func_name: { + 'docstring': 'pandas.Panel.name', + 'errors': [('ER01', 'err desc'), + ('ER02', 'err desc'), + ('ER03', 'err desc')], + 'warnings': [], + 'examples_errors': ''}) + exit_status = validate_docstrings.main(func_name='docstring1', + prefix=None, + errors=[], + output_format='default', + deprecated=True) + assert exit_status == 0 diff --git a/scripts/validate_docstrings.py b/scripts/validate_docstrings.py index 873ba71d6539d..27624ef1b252d 100755 --- a/scripts/validate_docstrings.py +++ b/scripts/validate_docstrings.py @@ -777,7 +777,7 @@ def validate_all(prefix): return result -def main(func_name, prefix, errors, output_format): +def main(func_name, prefix, errors, output_format, skip_deprecated): def header(title, width=80, char='#'): full_line = char * width side_len = (width - len(title) - 2) // 2 @@ -827,6 +827,10 @@ def header(title, width=80, char='#'): sys.stdout.write(output) else: + doc = Docstring(func_name) + if skip_deprecated and doc.deprecated: + return exit_status + result = validate_one(func_name) sys.stderr.write(header('Docstring ({})'.format(func_name))) sys.stderr.write('{}\n'.format(result['docstring'])) @@ -882,8 +886,15 @@ def header(title, width=80, char='#'): 'list of error codes to validate. By default it ' 'validates all errors (ignored when validating ' 'a single docstring)') + argparser.add_argument('--deprecated', default=False, type=bool, + help='boolean variable that determines if this the docstring' + 'should be checked or not even the function or method will' + 'be deprecated in later version. Default is True, means if the' + 'function will be deprecated, the docstring will not be displayed' + 'in the output of script') args = argparser.parse_args() sys.exit(main(args.function, args.prefix, args.errors.split(',') if args.errors else None, - args.format)) + args.format, + args.deprecated)) From a08cb6daf322f58d993cb3305044c9f4848aef0d Mon Sep 17 00:00:00 2001 From: Kaiqi Dong Date: Mon, 12 Nov 2018 21:23:57 +0100 Subject: [PATCH 02/25] fix flake8 --- scripts/validate_docstrings.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/scripts/validate_docstrings.py b/scripts/validate_docstrings.py index 27624ef1b252d..fb6562673b822 100755 --- a/scripts/validate_docstrings.py +++ b/scripts/validate_docstrings.py @@ -887,11 +887,12 @@ def header(title, width=80, char='#'): 'validates all errors (ignored when validating ' 'a single docstring)') argparser.add_argument('--deprecated', default=False, type=bool, - help='boolean variable that determines if this the docstring' - 'should be checked or not even the function or method will' - 'be deprecated in later version. Default is True, means if the' - 'function will be deprecated, the docstring will not be displayed' - 'in the output of script') + help='boolean variable that determines if this ' + 'the docstring should be checked or not even ' + 'the function or method will be deprecated ' + 'in later version. Default is True, means if the ' + 'function will be deprecated, the docstring will ' + 'not be displayed in the output of script') args = argparser.parse_args() sys.exit(main(args.function, args.prefix, From 42e372ff14f5f936d0034e438a205b63705f0ea3 Mon Sep 17 00:00:00 2001 From: Kaiqi Dong Date: Mon, 12 Nov 2018 21:25:54 +0100 Subject: [PATCH 03/25] correct argument name --- scripts/validate_docstrings.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/validate_docstrings.py b/scripts/validate_docstrings.py index fb6562673b822..f2a1795556a1b 100755 --- a/scripts/validate_docstrings.py +++ b/scripts/validate_docstrings.py @@ -777,7 +777,7 @@ def validate_all(prefix): return result -def main(func_name, prefix, errors, output_format, skip_deprecated): +def main(func_name, prefix, errors, output_format, deprecated): def header(title, width=80, char='#'): full_line = char * width side_len = (width - len(title) - 2) // 2 @@ -828,7 +828,7 @@ def header(title, width=80, char='#'): else: doc = Docstring(func_name) - if skip_deprecated and doc.deprecated: + if deprecated and doc.deprecated: return exit_status result = validate_one(func_name) From e569cf23a8147dc68c9063cc89f959820d5b7792 Mon Sep 17 00:00:00 2001 From: Kaiqi Dong Date: Mon, 12 Nov 2018 22:43:44 +0100 Subject: [PATCH 04/25] code changed based on review --- scripts/tests/test_validate_docstrings.py | 27 +++++++++++++++-------- scripts/validate_docstrings.py | 18 +++++++-------- 2 files changed, 27 insertions(+), 18 deletions(-) diff --git a/scripts/tests/test_validate_docstrings.py b/scripts/tests/test_validate_docstrings.py index b6fca2e22c860..1e642d773cbb6 100644 --- a/scripts/tests/test_validate_docstrings.py +++ b/scripts/tests/test_validate_docstrings.py @@ -984,16 +984,25 @@ def test_errors_param_filters_errors(self, monkeypatch): def test_exit_status_for_deprecated_function(self, monkeypatch): monkeypatch.setattr( - validate_docstrings, 'validate_one', lambda func_name: { - 'docstring': 'pandas.Panel.name', - 'errors': [('ER01', 'err desc'), - ('ER02', 'err desc'), - ('ER03', 'err desc')], - 'warnings': [], - 'examples_errors': ''}) - exit_status = validate_docstrings.main(func_name='docstring1', + validate_docstrings, 'validate_all', lambda prefix: { + 'Series.foo': {'errors': [('ER01', 'err desc'), + ('ER02', 'err desc'), + ('ER03', 'err desc')], + 'file': 'series.py', + 'file_line': 142, + 'deprecated': True}, + 'DataFrame.bar': {'errors': [('ER01', 'err desc'), + ('ER02', 'err desc')], + 'file': 'frame.py', + 'file_line': 598, + 'deprecated': True}, + 'Series.foobar': {'errors': [('ER01', 'err desc')], + 'file': 'series.py', + 'file_line': 279, + 'deprecated': False}}) + exit_status = validate_docstrings.main(func_name=None, prefix=None, errors=[], output_format='default', deprecated=True) - assert exit_status == 0 + assert exit_status == 1 diff --git a/scripts/validate_docstrings.py b/scripts/validate_docstrings.py index f2a1795556a1b..8b5afbb680e6e 100755 --- a/scripts/validate_docstrings.py +++ b/scripts/validate_docstrings.py @@ -722,7 +722,7 @@ def validate_one(func_name): 'examples_errors': examples_errs} -def validate_all(prefix): +def validate_all(prefix, ignore_deprecated): """ Execute the validation of all docstrings, and return a dict with the results. @@ -750,6 +750,8 @@ def validate_all(prefix): if prefix and not func_name.startswith(prefix): continue doc_info = validate_one(func_name) + if ignore_deprecated and doc_info['deprecated']: + continue result[func_name] = doc_info shared_code_key = doc_info['file'], doc_info['file_line'] @@ -771,13 +773,15 @@ def validate_all(prefix): if prefix and not func_name.startswith(prefix): continue doc_info = validate_one(func_name) + if ignore_deprecated and doc_info['deprecated']: + continue result[func_name] = doc_info result[func_name]['in_api'] = False return result -def main(func_name, prefix, errors, output_format, deprecated): +def main(func_name, prefix, errors, output_format, ignore_deprecated): def header(title, width=80, char='#'): full_line = char * width side_len = (width - len(title) - 2) // 2 @@ -791,7 +795,7 @@ def header(title, width=80, char='#'): exit_status = 0 if func_name is None: - result = validate_all(prefix) + result = validate_all(prefix, ignore_deprecated) if output_format == 'json': output = json.dumps(result) @@ -827,10 +831,6 @@ def header(title, width=80, char='#'): sys.stdout.write(output) else: - doc = Docstring(func_name) - if deprecated and doc.deprecated: - return exit_status - result = validate_one(func_name) sys.stderr.write(header('Docstring ({})'.format(func_name))) sys.stderr.write('{}\n'.format(result['docstring'])) @@ -886,7 +886,7 @@ def header(title, width=80, char='#'): 'list of error codes to validate. By default it ' 'validates all errors (ignored when validating ' 'a single docstring)') - argparser.add_argument('--deprecated', default=False, type=bool, + argparser.add_argument('--ignore_deprecated', default=False, type=bool, help='boolean variable that determines if this ' 'the docstring should be checked or not even ' 'the function or method will be deprecated ' @@ -898,4 +898,4 @@ def header(title, width=80, char='#'): sys.exit(main(args.function, args.prefix, args.errors.split(',') if args.errors else None, args.format, - args.deprecated)) + args.ignore_deprecated)) From 09be5aa7f16d7f0a29e83aa2ab78085593a8bd5f Mon Sep 17 00:00:00 2001 From: Kaiqi Dong Date: Mon, 12 Nov 2018 23:35:01 +0100 Subject: [PATCH 05/25] change name and help description --- scripts/validate_docstrings.py | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/scripts/validate_docstrings.py b/scripts/validate_docstrings.py index 8b5afbb680e6e..5fbcc4b07f83f 100755 --- a/scripts/validate_docstrings.py +++ b/scripts/validate_docstrings.py @@ -886,13 +886,10 @@ def header(title, width=80, char='#'): 'list of error codes to validate. By default it ' 'validates all errors (ignored when validating ' 'a single docstring)') - argparser.add_argument('--ignore_deprecated', default=False, type=bool, - help='boolean variable that determines if this ' - 'the docstring should be checked or not even ' - 'the function or method will be deprecated ' - 'in later version. Default is True, means if the ' - 'function will be deprecated, the docstring will ' - 'not be displayed in the output of script') + argparser.add_argument('--ignore_deprecated', default=False, + action='store_true', help='if this flag is set, ' + 'deprecated objects are ignored when validating ' + 'all docstrings') args = argparser.parse_args() sys.exit(main(args.function, args.prefix, From e7a723b52940b4d7bd57589f59c4ec625a91fb76 Mon Sep 17 00:00:00 2001 From: Kaiqi Dong Date: Mon, 12 Nov 2018 23:39:50 +0100 Subject: [PATCH 06/25] add ignore_deprecated description for functiondocstring --- scripts/validate_docstrings.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/scripts/validate_docstrings.py b/scripts/validate_docstrings.py index 5fbcc4b07f83f..ba0da175e8d09 100755 --- a/scripts/validate_docstrings.py +++ b/scripts/validate_docstrings.py @@ -733,6 +733,9 @@ def validate_all(prefix, ignore_deprecated): If provided, only the docstrings that start with this pattern will be validated. If None, all docstrings will be validated. + ignore_deprecated: Boolean variable + If True, deprecated objects are ignored when validating docstrings. + Returns ------- dict From 70b0fcb5e05130f40be6f8f758aaf00c8a8a71f6 Mon Sep 17 00:00:00 2001 From: Kaiqi Dong Date: Tue, 13 Nov 2018 10:14:19 +0100 Subject: [PATCH 07/25] debug the error --- scripts/tests/test_validate_docstrings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/tests/test_validate_docstrings.py b/scripts/tests/test_validate_docstrings.py index 1e642d773cbb6..6a0bd1c0e2a4d 100644 --- a/scripts/tests/test_validate_docstrings.py +++ b/scripts/tests/test_validate_docstrings.py @@ -1004,5 +1004,5 @@ def test_exit_status_for_deprecated_function(self, monkeypatch): prefix=None, errors=[], output_format='default', - deprecated=True) + ignore_deprecated=True) assert exit_status == 1 From 66b9de302c26402facfde54d1b368f1d848dd0c2 Mon Sep 17 00:00:00 2001 From: Kaiqi Dong Date: Tue, 13 Nov 2018 10:53:09 +0100 Subject: [PATCH 08/25] debug the error --- scripts/tests/test_validate_docstrings.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/scripts/tests/test_validate_docstrings.py b/scripts/tests/test_validate_docstrings.py index 6a0bd1c0e2a4d..da15f591589f2 100644 --- a/scripts/tests/test_validate_docstrings.py +++ b/scripts/tests/test_validate_docstrings.py @@ -907,7 +907,8 @@ def test_exit_status_for_validate_one(self, monkeypatch): exit_status = validate_docstrings.main(func_name='docstring1', prefix=None, errors=[], - output_format='default') + output_format='default', + ignore_deprecated=False) assert exit_status == 0 def test_exit_status_errors_for_validate_all(self, monkeypatch): @@ -925,7 +926,8 @@ def test_exit_status_errors_for_validate_all(self, monkeypatch): exit_status = validate_docstrings.main(func_name=None, prefix=None, errors=[], - output_format='default') + output_format='default', + ignore_deprecated=False) assert exit_status == 5 def test_no_exit_status_noerrors_for_validate_all(self, monkeypatch): @@ -937,7 +939,8 @@ def test_no_exit_status_noerrors_for_validate_all(self, monkeypatch): exit_status = validate_docstrings.main(func_name=None, prefix=None, errors=[], - output_format='default') + output_format='default', + ignore_deprecated=False) assert exit_status == 0 def test_exit_status_for_validate_all_json(self, monkeypatch): @@ -952,7 +955,8 @@ def test_exit_status_for_validate_all_json(self, monkeypatch): exit_status = validate_docstrings.main(func_name=None, prefix=None, errors=[], - output_format='json') + output_format='json', + ignore_deprecated=False) assert exit_status == 0 def test_errors_param_filters_errors(self, monkeypatch): @@ -973,13 +977,15 @@ def test_errors_param_filters_errors(self, monkeypatch): exit_status = validate_docstrings.main(func_name=None, prefix=None, errors=['ER01'], - output_format='default') + output_format='default', + ignore_deprecated=False) assert exit_status == 3 exit_status = validate_docstrings.main(func_name=None, prefix=None, errors=['ER03'], - output_format='default') + output_format='default', + ignore_deprecated=False) assert exit_status == 1 def test_exit_status_for_deprecated_function(self, monkeypatch): From f5d28fe7cda0e3c9171b1b09076f1750c77772b2 Mon Sep 17 00:00:00 2001 From: Kaiqi Dong Date: Tue, 13 Nov 2018 10:55:51 +0100 Subject: [PATCH 09/25] set default value for ignore-deprecated --- scripts/validate_docstrings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/validate_docstrings.py b/scripts/validate_docstrings.py index ba0da175e8d09..f7c15a1129f9a 100755 --- a/scripts/validate_docstrings.py +++ b/scripts/validate_docstrings.py @@ -722,7 +722,7 @@ def validate_one(func_name): 'examples_errors': examples_errs} -def validate_all(prefix, ignore_deprecated): +def validate_all(prefix, ignore_deprecated=False): """ Execute the validation of all docstrings, and return a dict with the results. From 49188dd3e081576bf56a993c71daf5fc2eddfb4d Mon Sep 17 00:00:00 2001 From: Kaiqi Dong Date: Tue, 13 Nov 2018 11:49:33 +0100 Subject: [PATCH 10/25] bug fixing --- scripts/tests/test_validate_docstrings.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/scripts/tests/test_validate_docstrings.py b/scripts/tests/test_validate_docstrings.py index da15f591589f2..508096dab1294 100644 --- a/scripts/tests/test_validate_docstrings.py +++ b/scripts/tests/test_validate_docstrings.py @@ -922,7 +922,7 @@ def test_exit_status_errors_for_validate_all(self, monkeypatch): 'docstring2': {'errors': [('ER04', 'err desc'), ('ER05', 'err desc')], 'file': 'module2.py', - 'file_line': 925}}) + 'file_line': 925}}, lambda ignore_deprecated: {}) exit_status = validate_docstrings.main(func_name=None, prefix=None, errors=[], @@ -935,7 +935,8 @@ def test_no_exit_status_noerrors_for_validate_all(self, monkeypatch): validate_docstrings, 'validate_all', lambda prefix: { 'docstring1': {'errors': [], 'warnings': [('WN01', 'warn desc')]}, - 'docstring2': {'errors': []}}) + 'docstring2': {'errors': []}}, lambda ignore_deprecated: { + }) exit_status = validate_docstrings.main(func_name=None, prefix=None, errors=[], From 901b943eb490531f267f49555824353750f1a44c Mon Sep 17 00:00:00 2001 From: Kaiqi Dong Date: Tue, 13 Nov 2018 11:53:18 +0100 Subject: [PATCH 11/25] add positional argument for lambda --- scripts/tests/test_validate_docstrings.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/scripts/tests/test_validate_docstrings.py b/scripts/tests/test_validate_docstrings.py index 508096dab1294..355624f8ffe2d 100644 --- a/scripts/tests/test_validate_docstrings.py +++ b/scripts/tests/test_validate_docstrings.py @@ -952,7 +952,8 @@ def test_exit_status_for_validate_all_json(self, monkeypatch): ('ER02', 'err desc'), ('ER03', 'err desc')]}, 'docstring2': {'errors': [('ER04', 'err desc'), - ('ER05', 'err desc')]}}) + ('ER05', 'err desc')]}}, + lambda ignore_deprecated: {}) exit_status = validate_docstrings.main(func_name=None, prefix=None, errors=[], @@ -974,7 +975,8 @@ def test_errors_param_filters_errors(self, monkeypatch): 'file_line': 598}, 'Series.foobar': {'errors': [('ER01', 'err desc')], 'file': 'series.py', - 'file_line': 279}}) + 'file_line': 279}}, + lambda ignore_deprecated: {}) exit_status = validate_docstrings.main(func_name=None, prefix=None, errors=['ER01'], @@ -1006,7 +1008,8 @@ def test_exit_status_for_deprecated_function(self, monkeypatch): 'Series.foobar': {'errors': [('ER01', 'err desc')], 'file': 'series.py', 'file_line': 279, - 'deprecated': False}}) + 'deprecated': False}}, + lambda ignore_deprecated: {}) exit_status = validate_docstrings.main(func_name=None, prefix=None, errors=[], From c1f44a489138073adf3e59d0000d2b895971578a Mon Sep 17 00:00:00 2001 From: Kaiqi Dong Date: Tue, 13 Nov 2018 13:30:49 +0100 Subject: [PATCH 12/25] remove wrong lambda --- scripts/tests/test_validate_docstrings.py | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/scripts/tests/test_validate_docstrings.py b/scripts/tests/test_validate_docstrings.py index 355624f8ffe2d..da15f591589f2 100644 --- a/scripts/tests/test_validate_docstrings.py +++ b/scripts/tests/test_validate_docstrings.py @@ -922,7 +922,7 @@ def test_exit_status_errors_for_validate_all(self, monkeypatch): 'docstring2': {'errors': [('ER04', 'err desc'), ('ER05', 'err desc')], 'file': 'module2.py', - 'file_line': 925}}, lambda ignore_deprecated: {}) + 'file_line': 925}}) exit_status = validate_docstrings.main(func_name=None, prefix=None, errors=[], @@ -935,8 +935,7 @@ def test_no_exit_status_noerrors_for_validate_all(self, monkeypatch): validate_docstrings, 'validate_all', lambda prefix: { 'docstring1': {'errors': [], 'warnings': [('WN01', 'warn desc')]}, - 'docstring2': {'errors': []}}, lambda ignore_deprecated: { - }) + 'docstring2': {'errors': []}}) exit_status = validate_docstrings.main(func_name=None, prefix=None, errors=[], @@ -952,8 +951,7 @@ def test_exit_status_for_validate_all_json(self, monkeypatch): ('ER02', 'err desc'), ('ER03', 'err desc')]}, 'docstring2': {'errors': [('ER04', 'err desc'), - ('ER05', 'err desc')]}}, - lambda ignore_deprecated: {}) + ('ER05', 'err desc')]}}) exit_status = validate_docstrings.main(func_name=None, prefix=None, errors=[], @@ -975,8 +973,7 @@ def test_errors_param_filters_errors(self, monkeypatch): 'file_line': 598}, 'Series.foobar': {'errors': [('ER01', 'err desc')], 'file': 'series.py', - 'file_line': 279}}, - lambda ignore_deprecated: {}) + 'file_line': 279}}) exit_status = validate_docstrings.main(func_name=None, prefix=None, errors=['ER01'], @@ -1008,8 +1005,7 @@ def test_exit_status_for_deprecated_function(self, monkeypatch): 'Series.foobar': {'errors': [('ER01', 'err desc')], 'file': 'series.py', 'file_line': 279, - 'deprecated': False}}, - lambda ignore_deprecated: {}) + 'deprecated': False}}) exit_status = validate_docstrings.main(func_name=None, prefix=None, errors=[], From 1095a9a38b60d4b2f5305d508de4e2e81dedd503 Mon Sep 17 00:00:00 2001 From: Kaiqi Dong Date: Tue, 13 Nov 2018 13:55:28 +0100 Subject: [PATCH 13/25] add argument for setattr --- scripts/tests/test_validate_docstrings.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/scripts/tests/test_validate_docstrings.py b/scripts/tests/test_validate_docstrings.py index da15f591589f2..a7f7ad5083b9d 100644 --- a/scripts/tests/test_validate_docstrings.py +++ b/scripts/tests/test_validate_docstrings.py @@ -913,7 +913,9 @@ def test_exit_status_for_validate_one(self, monkeypatch): def test_exit_status_errors_for_validate_all(self, monkeypatch): monkeypatch.setattr( - validate_docstrings, 'validate_all', lambda prefix: { + validate_docstrings, 'validate_all', + lambda prefix, ignore_deprecate=None: + { 'docstring1': {'errors': [('ER01', 'err desc'), ('ER02', 'err desc'), ('ER03', 'err desc')], @@ -932,7 +934,8 @@ def test_exit_status_errors_for_validate_all(self, monkeypatch): def test_no_exit_status_noerrors_for_validate_all(self, monkeypatch): monkeypatch.setattr( - validate_docstrings, 'validate_all', lambda prefix: { + validate_docstrings, 'validate_all', + lambda prefix, ignore_deprecate=None: { 'docstring1': {'errors': [], 'warnings': [('WN01', 'warn desc')]}, 'docstring2': {'errors': []}}) @@ -946,7 +949,8 @@ def test_no_exit_status_noerrors_for_validate_all(self, monkeypatch): def test_exit_status_for_validate_all_json(self, monkeypatch): print('EXECUTED') monkeypatch.setattr( - validate_docstrings, 'validate_all', lambda prefix: { + validate_docstrings, 'validate_all', + lambda prefix, ignore_deprecate=None: { 'docstring1': {'errors': [('ER01', 'err desc'), ('ER02', 'err desc'), ('ER03', 'err desc')]}, @@ -961,7 +965,8 @@ def test_exit_status_for_validate_all_json(self, monkeypatch): def test_errors_param_filters_errors(self, monkeypatch): monkeypatch.setattr( - validate_docstrings, 'validate_all', lambda prefix: { + validate_docstrings, 'validate_all', + lambda prefix, ignore_deprecate=None: { 'Series.foo': {'errors': [('ER01', 'err desc'), ('ER02', 'err desc'), ('ER03', 'err desc')], @@ -990,7 +995,8 @@ def test_errors_param_filters_errors(self, monkeypatch): def test_exit_status_for_deprecated_function(self, monkeypatch): monkeypatch.setattr( - validate_docstrings, 'validate_all', lambda prefix: { + validate_docstrings, 'validate_all', + lambda prefix, ignore_deprecate=None: { 'Series.foo': {'errors': [('ER01', 'err desc'), ('ER02', 'err desc'), ('ER03', 'err desc')], From 26e1d041a332e0bbe9e0ecadb6fd31538f6be7cf Mon Sep 17 00:00:00 2001 From: Kaiqi Dong Date: Tue, 13 Nov 2018 14:36:41 +0100 Subject: [PATCH 14/25] correct argument name --- scripts/tests/test_validate_docstrings.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/scripts/tests/test_validate_docstrings.py b/scripts/tests/test_validate_docstrings.py index a7f7ad5083b9d..95f9b360e2655 100644 --- a/scripts/tests/test_validate_docstrings.py +++ b/scripts/tests/test_validate_docstrings.py @@ -914,7 +914,7 @@ def test_exit_status_for_validate_one(self, monkeypatch): def test_exit_status_errors_for_validate_all(self, monkeypatch): monkeypatch.setattr( validate_docstrings, 'validate_all', - lambda prefix, ignore_deprecate=None: + lambda prefix, ignore_deprecated=None: { 'docstring1': {'errors': [('ER01', 'err desc'), ('ER02', 'err desc'), @@ -935,7 +935,7 @@ def test_exit_status_errors_for_validate_all(self, monkeypatch): def test_no_exit_status_noerrors_for_validate_all(self, monkeypatch): monkeypatch.setattr( validate_docstrings, 'validate_all', - lambda prefix, ignore_deprecate=None: { + lambda prefix, ignore_deprecated=None: { 'docstring1': {'errors': [], 'warnings': [('WN01', 'warn desc')]}, 'docstring2': {'errors': []}}) @@ -950,7 +950,7 @@ def test_exit_status_for_validate_all_json(self, monkeypatch): print('EXECUTED') monkeypatch.setattr( validate_docstrings, 'validate_all', - lambda prefix, ignore_deprecate=None: { + lambda prefix, ignore_deprecated=None: { 'docstring1': {'errors': [('ER01', 'err desc'), ('ER02', 'err desc'), ('ER03', 'err desc')]}, @@ -966,7 +966,7 @@ def test_exit_status_for_validate_all_json(self, monkeypatch): def test_errors_param_filters_errors(self, monkeypatch): monkeypatch.setattr( validate_docstrings, 'validate_all', - lambda prefix, ignore_deprecate=None: { + lambda prefix, ignore_deprecated=None: { 'Series.foo': {'errors': [('ER01', 'err desc'), ('ER02', 'err desc'), ('ER03', 'err desc')], @@ -996,7 +996,7 @@ def test_errors_param_filters_errors(self, monkeypatch): def test_exit_status_for_deprecated_function(self, monkeypatch): monkeypatch.setattr( validate_docstrings, 'validate_all', - lambda prefix, ignore_deprecate=None: { + lambda prefix, ignore_deprecated=None: { 'Series.foo': {'errors': [('ER01', 'err desc'), ('ER02', 'err desc'), ('ER03', 'err desc')], From b1990991a792b18aa30d57cf0d72d52b999c1bc4 Mon Sep 17 00:00:00 2001 From: Kaiqi Dong Date: Tue, 13 Nov 2018 15:09:21 +0100 Subject: [PATCH 15/25] assign true to ignore deprecated --- scripts/tests/test_validate_docstrings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/tests/test_validate_docstrings.py b/scripts/tests/test_validate_docstrings.py index 95f9b360e2655..5213a2b8ec1dc 100644 --- a/scripts/tests/test_validate_docstrings.py +++ b/scripts/tests/test_validate_docstrings.py @@ -996,7 +996,7 @@ def test_errors_param_filters_errors(self, monkeypatch): def test_exit_status_for_deprecated_function(self, monkeypatch): monkeypatch.setattr( validate_docstrings, 'validate_all', - lambda prefix, ignore_deprecated=None: { + lambda prefix, ignore_deprecated=True: { 'Series.foo': {'errors': [('ER01', 'err desc'), ('ER02', 'err desc'), ('ER03', 'err desc')], From b384e79b95611ceb564ba6b925fa44b48226e557 Mon Sep 17 00:00:00 2001 From: Kaiqi Dong Date: Tue, 13 Nov 2018 16:10:07 +0100 Subject: [PATCH 16/25] debug the error --- scripts/tests/test_validate_docstrings.py | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/scripts/tests/test_validate_docstrings.py b/scripts/tests/test_validate_docstrings.py index 5213a2b8ec1dc..136c3f60daeb5 100644 --- a/scripts/tests/test_validate_docstrings.py +++ b/scripts/tests/test_validate_docstrings.py @@ -1001,17 +1001,14 @@ def test_exit_status_for_deprecated_function(self, monkeypatch): ('ER02', 'err desc'), ('ER03', 'err desc')], 'file': 'series.py', - 'file_line': 142, - 'deprecated': True}, + 'file_line': 142}, 'DataFrame.bar': {'errors': [('ER01', 'err desc'), ('ER02', 'err desc')], 'file': 'frame.py', - 'file_line': 598, - 'deprecated': True}, - 'Series.foobar': {'errors': [('ER01', 'err desc')], - 'file': 'series.py', - 'file_line': 279, - 'deprecated': False}}) + 'file_line': 598}, + 'pandas.Panel': {'errors': [('ER01', 'err desc')], + 'file': 'series.py', + 'file_line': 279}}) exit_status = validate_docstrings.main(func_name=None, prefix=None, errors=[], From a0f9d216e4088dfa36fbf292eccdc6933ed1e63d Mon Sep 17 00:00:00 2001 From: Kaiqi Dong Date: Tue, 13 Nov 2018 16:21:31 +0100 Subject: [PATCH 17/25] correct the assert value --- scripts/tests/test_validate_docstrings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/tests/test_validate_docstrings.py b/scripts/tests/test_validate_docstrings.py index 136c3f60daeb5..5364c2ba5d943 100644 --- a/scripts/tests/test_validate_docstrings.py +++ b/scripts/tests/test_validate_docstrings.py @@ -1014,4 +1014,4 @@ def test_exit_status_for_deprecated_function(self, monkeypatch): errors=[], output_format='default', ignore_deprecated=True) - assert exit_status == 1 + assert exit_status == 5 From af35c1949d8e3ae26f47ed4385fc565624e91220 Mon Sep 17 00:00:00 2001 From: Kaiqi Dong Date: Tue, 13 Nov 2018 20:22:41 +0100 Subject: [PATCH 18/25] modify pytest --- scripts/tests/test_validate_docstrings.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/scripts/tests/test_validate_docstrings.py b/scripts/tests/test_validate_docstrings.py index 5364c2ba5d943..1d4aa125c1b5d 100644 --- a/scripts/tests/test_validate_docstrings.py +++ b/scripts/tests/test_validate_docstrings.py @@ -1001,17 +1001,20 @@ def test_exit_status_for_deprecated_function(self, monkeypatch): ('ER02', 'err desc'), ('ER03', 'err desc')], 'file': 'series.py', - 'file_line': 142}, + 'file_line': 142, + 'deprecated': True}, 'DataFrame.bar': {'errors': [('ER01', 'err desc'), ('ER02', 'err desc')], 'file': 'frame.py', - 'file_line': 598}, + 'file_line': 598, + 'deprecated': False}, 'pandas.Panel': {'errors': [('ER01', 'err desc')], 'file': 'series.py', - 'file_line': 279}}) + 'file_line': 279, + 'deprecated': False}}) exit_status = validate_docstrings.main(func_name=None, prefix=None, - errors=[], + errors=['ER01'], output_format='default', ignore_deprecated=True) - assert exit_status == 5 + assert exit_status == 2 From f1a66a64d76ba239c54fd0a11935e1a22fb21978 Mon Sep 17 00:00:00 2001 From: Kaiqi Dong Date: Tue, 13 Nov 2018 23:14:36 +0100 Subject: [PATCH 19/25] rewrite pytest --- scripts/tests/test_validate_docstrings.py | 40 ++++++++--------------- 1 file changed, 14 insertions(+), 26 deletions(-) diff --git a/scripts/tests/test_validate_docstrings.py b/scripts/tests/test_validate_docstrings.py index 1d4aa125c1b5d..03822bb4dc1dd 100644 --- a/scripts/tests/test_validate_docstrings.py +++ b/scripts/tests/test_validate_docstrings.py @@ -817,6 +817,20 @@ def test_bad_examples(self, capsys, klass, func, msgs): for msg in msgs: assert msg in ' '.join(err[1] for err in result['errors']) + def test_validate_all_ignore_deprecated(self, monkeypatch): + monkeypatch.setattr( + validate_docstrings, 'validate_one', lambda func_name: { + 'docstring': 'docstring1', + 'errors': [('ER01', 'err desc'), + ('ER02', 'err desc'), + ('ER03', 'err desc')], + 'warnings': [], + 'examples_errors': '', + 'deprecated': True}) + result = validate_docstrings.validate_all(prefix=None, + ignore_deprecated=True) + assert len(result) == 0 + class TestApiItems(object): @property @@ -992,29 +1006,3 @@ def test_errors_param_filters_errors(self, monkeypatch): output_format='default', ignore_deprecated=False) assert exit_status == 1 - - def test_exit_status_for_deprecated_function(self, monkeypatch): - monkeypatch.setattr( - validate_docstrings, 'validate_all', - lambda prefix, ignore_deprecated=True: { - 'Series.foo': {'errors': [('ER01', 'err desc'), - ('ER02', 'err desc'), - ('ER03', 'err desc')], - 'file': 'series.py', - 'file_line': 142, - 'deprecated': True}, - 'DataFrame.bar': {'errors': [('ER01', 'err desc'), - ('ER02', 'err desc')], - 'file': 'frame.py', - 'file_line': 598, - 'deprecated': False}, - 'pandas.Panel': {'errors': [('ER01', 'err desc')], - 'file': 'series.py', - 'file_line': 279, - 'deprecated': False}}) - exit_status = validate_docstrings.main(func_name=None, - prefix=None, - errors=['ER01'], - output_format='default', - ignore_deprecated=True) - assert exit_status == 2 From 79e5706b112ed9828b292c9b5576f64c56baa4cb Mon Sep 17 00:00:00 2001 From: Kaiqi Dong Date: Wed, 14 Nov 2018 19:08:05 +0100 Subject: [PATCH 20/25] remove added part to test if the failure caused by my code --- scripts/tests/test_validate_docstrings.py | 26 +++++++++++------------ 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/scripts/tests/test_validate_docstrings.py b/scripts/tests/test_validate_docstrings.py index 03822bb4dc1dd..819d7be3c6a34 100644 --- a/scripts/tests/test_validate_docstrings.py +++ b/scripts/tests/test_validate_docstrings.py @@ -817,19 +817,19 @@ def test_bad_examples(self, capsys, klass, func, msgs): for msg in msgs: assert msg in ' '.join(err[1] for err in result['errors']) - def test_validate_all_ignore_deprecated(self, monkeypatch): - monkeypatch.setattr( - validate_docstrings, 'validate_one', lambda func_name: { - 'docstring': 'docstring1', - 'errors': [('ER01', 'err desc'), - ('ER02', 'err desc'), - ('ER03', 'err desc')], - 'warnings': [], - 'examples_errors': '', - 'deprecated': True}) - result = validate_docstrings.validate_all(prefix=None, - ignore_deprecated=True) - assert len(result) == 0 + # def test_validate_all_ignore_deprecated(self, monkeypatch): + # monkeypatch.setattr( + # validate_docstrings, 'validate_one', lambda func_name: { + # 'docstring': 'docstring1', + # 'errors': [('ER01', 'err desc'), + # ('ER02', 'err desc'), + # ('ER03', 'err desc')], + # 'warnings': [], + # 'examples_errors': '', + # 'deprecated': True}) + # result = validate_docstrings.validate_all(prefix=None, + # ignore_deprecated=True) + # assert len(result) == 0 class TestApiItems(object): From 83cc28c42509fddd2db6ee082ac586fa867904b1 Mon Sep 17 00:00:00 2001 From: Kaiqi Dong Date: Thu, 15 Nov 2018 09:23:34 +0100 Subject: [PATCH 21/25] put tests back --- scripts/tests/test_validate_docstrings.py | 26 +++++++++++------------ 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/scripts/tests/test_validate_docstrings.py b/scripts/tests/test_validate_docstrings.py index 819d7be3c6a34..03822bb4dc1dd 100644 --- a/scripts/tests/test_validate_docstrings.py +++ b/scripts/tests/test_validate_docstrings.py @@ -817,19 +817,19 @@ def test_bad_examples(self, capsys, klass, func, msgs): for msg in msgs: assert msg in ' '.join(err[1] for err in result['errors']) - # def test_validate_all_ignore_deprecated(self, monkeypatch): - # monkeypatch.setattr( - # validate_docstrings, 'validate_one', lambda func_name: { - # 'docstring': 'docstring1', - # 'errors': [('ER01', 'err desc'), - # ('ER02', 'err desc'), - # ('ER03', 'err desc')], - # 'warnings': [], - # 'examples_errors': '', - # 'deprecated': True}) - # result = validate_docstrings.validate_all(prefix=None, - # ignore_deprecated=True) - # assert len(result) == 0 + def test_validate_all_ignore_deprecated(self, monkeypatch): + monkeypatch.setattr( + validate_docstrings, 'validate_one', lambda func_name: { + 'docstring': 'docstring1', + 'errors': [('ER01', 'err desc'), + ('ER02', 'err desc'), + ('ER03', 'err desc')], + 'warnings': [], + 'examples_errors': '', + 'deprecated': True}) + result = validate_docstrings.validate_all(prefix=None, + ignore_deprecated=True) + assert len(result) == 0 class TestApiItems(object): From 1ed082af989e93dda70f2a93c60d07b13e6fab0d Mon Sep 17 00:00:00 2001 From: Kaiqi Dong Date: Thu, 15 Nov 2018 21:16:18 +0100 Subject: [PATCH 22/25] remove curly bracket position --- scripts/tests/test_validate_docstrings.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/scripts/tests/test_validate_docstrings.py b/scripts/tests/test_validate_docstrings.py index 03822bb4dc1dd..020e9f9197202 100644 --- a/scripts/tests/test_validate_docstrings.py +++ b/scripts/tests/test_validate_docstrings.py @@ -928,8 +928,7 @@ def test_exit_status_for_validate_one(self, monkeypatch): def test_exit_status_errors_for_validate_all(self, monkeypatch): monkeypatch.setattr( validate_docstrings, 'validate_all', - lambda prefix, ignore_deprecated=None: - { + lambda prefix, ignore_deprecated=None: { 'docstring1': {'errors': [('ER01', 'err desc'), ('ER02', 'err desc'), ('ER03', 'err desc')], From 14e522ac4a05243ef6895789e1b4069c620464ed Mon Sep 17 00:00:00 2001 From: Kaiqi Dong Date: Thu, 15 Nov 2018 21:16:34 +0100 Subject: [PATCH 23/25] change formatting --- scripts/validate_docstrings.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/scripts/validate_docstrings.py b/scripts/validate_docstrings.py index f7c15a1129f9a..0fa1eb8607583 100755 --- a/scripts/validate_docstrings.py +++ b/scripts/validate_docstrings.py @@ -732,8 +732,7 @@ def validate_all(prefix, ignore_deprecated=False): prefix : str or None If provided, only the docstrings that start with this pattern will be validated. If None, all docstrings will be validated. - - ignore_deprecated: Boolean variable + ignore_deprecated: bool, default False If True, deprecated objects are ignored when validating docstrings. Returns From 2418c0c8634b4cc0c5487ab46754094c002fff79 Mon Sep 17 00:00:00 2001 From: Kaiqi Dong Date: Thu, 15 Nov 2018 21:59:52 +0100 Subject: [PATCH 24/25] remove redunctant default value --- scripts/tests/test_validate_docstrings.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/tests/test_validate_docstrings.py b/scripts/tests/test_validate_docstrings.py index 020e9f9197202..6c46736082a04 100644 --- a/scripts/tests/test_validate_docstrings.py +++ b/scripts/tests/test_validate_docstrings.py @@ -928,7 +928,7 @@ def test_exit_status_for_validate_one(self, monkeypatch): def test_exit_status_errors_for_validate_all(self, monkeypatch): monkeypatch.setattr( validate_docstrings, 'validate_all', - lambda prefix, ignore_deprecated=None: { + lambda prefix, ignore_deprecated: { 'docstring1': {'errors': [('ER01', 'err desc'), ('ER02', 'err desc'), ('ER03', 'err desc')], @@ -948,7 +948,7 @@ def test_exit_status_errors_for_validate_all(self, monkeypatch): def test_no_exit_status_noerrors_for_validate_all(self, monkeypatch): monkeypatch.setattr( validate_docstrings, 'validate_all', - lambda prefix, ignore_deprecated=None: { + lambda prefix, ignore_deprecated: { 'docstring1': {'errors': [], 'warnings': [('WN01', 'warn desc')]}, 'docstring2': {'errors': []}}) @@ -963,7 +963,7 @@ def test_exit_status_for_validate_all_json(self, monkeypatch): print('EXECUTED') monkeypatch.setattr( validate_docstrings, 'validate_all', - lambda prefix, ignore_deprecated=None: { + lambda prefix, ignore_deprecated: { 'docstring1': {'errors': [('ER01', 'err desc'), ('ER02', 'err desc'), ('ER03', 'err desc')]}, @@ -979,7 +979,7 @@ def test_exit_status_for_validate_all_json(self, monkeypatch): def test_errors_param_filters_errors(self, monkeypatch): monkeypatch.setattr( validate_docstrings, 'validate_all', - lambda prefix, ignore_deprecated=None: { + lambda prefix, ignore_deprecated: { 'Series.foo': {'errors': [('ER01', 'err desc'), ('ER02', 'err desc'), ('ER03', 'err desc')], From f20fee114498dc6b498cfc3bd1bfd3fa5e9e5ad1 Mon Sep 17 00:00:00 2001 From: Kaiqi Dong Date: Thu, 15 Nov 2018 22:04:30 +0100 Subject: [PATCH 25/25] set default to False --- scripts/tests/test_validate_docstrings.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/tests/test_validate_docstrings.py b/scripts/tests/test_validate_docstrings.py index 6c46736082a04..d71f91febc778 100644 --- a/scripts/tests/test_validate_docstrings.py +++ b/scripts/tests/test_validate_docstrings.py @@ -928,7 +928,7 @@ def test_exit_status_for_validate_one(self, monkeypatch): def test_exit_status_errors_for_validate_all(self, monkeypatch): monkeypatch.setattr( validate_docstrings, 'validate_all', - lambda prefix, ignore_deprecated: { + lambda prefix, ignore_deprecated=False: { 'docstring1': {'errors': [('ER01', 'err desc'), ('ER02', 'err desc'), ('ER03', 'err desc')], @@ -948,7 +948,7 @@ def test_exit_status_errors_for_validate_all(self, monkeypatch): def test_no_exit_status_noerrors_for_validate_all(self, monkeypatch): monkeypatch.setattr( validate_docstrings, 'validate_all', - lambda prefix, ignore_deprecated: { + lambda prefix, ignore_deprecated=False: { 'docstring1': {'errors': [], 'warnings': [('WN01', 'warn desc')]}, 'docstring2': {'errors': []}}) @@ -963,7 +963,7 @@ def test_exit_status_for_validate_all_json(self, monkeypatch): print('EXECUTED') monkeypatch.setattr( validate_docstrings, 'validate_all', - lambda prefix, ignore_deprecated: { + lambda prefix, ignore_deprecated=False: { 'docstring1': {'errors': [('ER01', 'err desc'), ('ER02', 'err desc'), ('ER03', 'err desc')]}, @@ -979,7 +979,7 @@ def test_exit_status_for_validate_all_json(self, monkeypatch): def test_errors_param_filters_errors(self, monkeypatch): monkeypatch.setattr( validate_docstrings, 'validate_all', - lambda prefix, ignore_deprecated: { + lambda prefix, ignore_deprecated=False: { 'Series.foo': {'errors': [('ER01', 'err desc'), ('ER02', 'err desc'), ('ER03', 'err desc')],