diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 854b7b2e4fe63..fbd68116a1da7 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -8,6 +8,13 @@ repos: hooks: - id: absolufy-imports files: ^pandas/ +- repo: https://github.com/jendrikseipp/vulture + rev: 'v2.3' + hooks: + - id: vulture + entry: python scripts/run_vulture.py + pass_filenames: true + require_serial: false - repo: https://github.com/python/black rev: 21.12b0 hooks: diff --git a/pandas/tests/frame/test_constructors.py b/pandas/tests/frame/test_constructors.py index 7f030fc11a20b..b84092338e426 100644 --- a/pandas/tests/frame/test_constructors.py +++ b/pandas/tests/frame/test_constructors.py @@ -1285,8 +1285,7 @@ def test_constructor_empty_list(self): # Empty generator: list(empty_gen()) == [] def empty_gen(): - return - yield + yield from () df = DataFrame(empty_gen(), columns=["A", "B"]) tm.assert_frame_equal(df, expected) diff --git a/scripts/run_vulture.py b/scripts/run_vulture.py new file mode 100644 index 0000000000000..edf0a1588305c --- /dev/null +++ b/scripts/run_vulture.py @@ -0,0 +1,21 @@ +"""Look for unreachable code.""" + +import argparse +import sys + +from vulture import Vulture + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument("files", nargs="*") + args = parser.parse_args() + + v = Vulture() + v.scavenge(args.files) + ret = 0 + for item in v.get_unused_code(min_confidence=100): + if item.typ == "unreachable_code": + print(item.get_report()) + ret = 1 + + sys.exit(ret)