From 59b73fabc12bc46ae7e61b70552ee750de57be6c Mon Sep 17 00:00:00 2001 From: Jelle Zijlstra Date: Sat, 27 Apr 2024 04:54:04 -0700 Subject: [PATCH] [`pyflakes`] Improve `invalid-print-syntax` documentation (#11171) This syntax wasn't "deprecated" in Python 3; it was removed. I started looking at this rule because I was curious how Ruff could even detect this without a Python 2 parser. Then I realized that "print >> f, x" is actually valid Python 3 syntax: it creates a tuple containing a right-shifted version of the print function. --- .../src/rules/pyflakes/rules/invalid_print_syntax.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/crates/ruff_linter/src/rules/pyflakes/rules/invalid_print_syntax.rs b/crates/ruff_linter/src/rules/pyflakes/rules/invalid_print_syntax.rs index 767eb11c8b..dabdebb27d 100644 --- a/crates/ruff_linter/src/rules/pyflakes/rules/invalid_print_syntax.rs +++ b/crates/ruff_linter/src/rules/pyflakes/rules/invalid_print_syntax.rs @@ -10,8 +10,9 @@ use crate::checkers::ast::Checker; /// /// ## Why is this bad? /// In Python 2, the `print` statement can be used with the `>>` syntax to -/// print to a file-like object. This `print >> sys.stderr` syntax is -/// deprecated in Python 3. +/// print to a file-like object. This `print >> sys.stderr` syntax no +/// longer exists in Python 3, where `print` is only a function, not a +/// statement. /// /// Instead, use the `file` keyword argument to the `print` function, the /// `sys.stderr.write` function, or the `logging` module.