Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

[flake8-todos] Allow words starting with todo #13640

Merged
merged 4 commits into from
Oct 14, 2024

Conversation

autinerd
Copy link
Contributor

@autinerd autinerd commented Oct 5, 2024

Summary

Allow words which start with "todo" or other todo-directives
Fixes #13638

Test Plan

Updated snapshots

Copy link
Contributor

github-actions bot commented Oct 5, 2024

ruff-ecosystem results

Linter (stable)

ℹ️ ecosystem check detected linter changes. (+0 -1693 violations, +0 -0 fixes in 5 projects; 49 projects unchanged)

apache/airflow (+0 -81 violations, +0 -0 fixes)

ruff check --no-cache --exit-zero --ignore RUF9 --output-format concise --no-preview --select ALL

- providers/tests/system/google/cloud/cloud_sql/example_cloud_sql.py:114:6: COM812 [*] Trailing comma missing
- providers/tests/system/google/cloud/cloud_sql/example_cloud_sql.py:122:6: COM812 [*] Trailing comma missing
- providers/tests/system/google/cloud/cloud_sql/example_cloud_sql.py:138:16: DTZ001 `datetime.datetime()` called without a `tzinfo` argument
- providers/tests/system/google/cloud/cloud_sql/example_cloud_sql.py:143:107: COM812 [*] Trailing comma missing
- providers/tests/system/google/cloud/cloud_sql/example_cloud_sql.py:152:78: COM812 [*] Trailing comma missing
- providers/tests/system/google/cloud/cloud_sql/example_cloud_sql.py:162:83: COM812 [*] Trailing comma missing
- providers/tests/system/google/cloud/cloud_sql/example_cloud_sql.py:168:82: COM812 [*] Trailing comma missing
... 10 additional changes omitted for rule COM812
- tests/www/views/test_views_dataset.py:103:40: PLR2004 Magic value used in comparison, consider replacing `400` with a constant variable
- tests/www/views/test_views_dataset.py:108:40: PLR2004 Magic value used in comparison, consider replacing `400` with a constant variable
- tests/www/views/test_views_dataset.py:111:40: ANN001 Missing type annotation for function argument `admin_client`
... 71 additional changes omitted for project

apache/superset (+0 -246 violations, +0 -0 fixes)

ruff check --no-cache --exit-zero --ignore RUF9 --output-format concise --no-preview --select ALL

- superset/config.py:1004:21: RUF012 Mutable class attributes should be annotated with `typing.ClassVar`
- superset/config.py:1015:9: ERA001 Found commented-out code
- superset/config.py:1016:9: ERA001 Found commented-out code
- superset/config.py:1017:9: ERA001 Found commented-out code
- superset/config.py:1018:9: ERA001 Found commented-out code
- superset/config.py:1026:1: ERA001 Found commented-out code
- superset/config.py:105:1: ERA001 Found commented-out code
... 167 additional changes omitted for rule ERA001
- superset/config.py:1068:89: E501 Line too long (90 > 88)
- superset/config.py:1089:64: COM812 [*] Trailing comma missing
- superset/config.py:1139:5: D103 Missing docstring in public function
... 236 additional changes omitted for project

bokeh/bokeh (+0 -133 violations, +0 -0 fixes)

ruff check --no-cache --exit-zero --ignore RUF9 --output-format concise --no-preview --select ALL

- src/bokeh/colors/color.py:116:9: D210 [*] No whitespaces allowed surrounding docstring text
- src/bokeh/colors/color.py:116:9: D300 [*] Use triple double quotes `"""`
- src/bokeh/colors/color.py:116:9: Q002 [*] Single quote docstring found but double quotes preferred
- src/bokeh/colors/color.py:133:9: D210 [*] No whitespaces allowed surrounding docstring text
- src/bokeh/colors/color.py:133:9: D300 [*] Use triple double quotes `"""`
- src/bokeh/colors/color.py:133:9: Q002 [*] Single quote docstring found but double quotes preferred
- src/bokeh/colors/color.py:148:9: D210 [*] No whitespaces allowed surrounding docstring text
- src/bokeh/colors/color.py:148:9: D300 [*] Use triple double quotes `"""`
- src/bokeh/colors/color.py:148:9: Q002 [*] Single quote docstring found but double quotes preferred
- src/bokeh/colors/color.py:161:12: E741 Ambiguous variable name: `l`
... 123 additional changes omitted for project

pandas-dev/pandas (+0 -0 violations, +0 -0 fixes)


zulip/zulip (+0 -1233 violations, +0 -0 fixes)

ruff check --no-cache --exit-zero --ignore RUF9 --output-format concise --no-preview --select ALL

- corporate/lib/stripe.py:1000:57: COM812 [*] Trailing comma missing
- corporate/lib/stripe.py:1005:9: D102 Missing docstring in public method
- corporate/lib/stripe.py:1009:9: D102 Missing docstring in public method
- corporate/lib/stripe.py:1013:9: D102 Missing docstring in public method
- corporate/lib/stripe.py:1017:9: D102 Missing docstring in public method
- corporate/lib/stripe.py:1021:9: D102 Missing docstring in public method
- corporate/lib/stripe.py:1037:9: D102 Missing docstring in public method
... 120 additional changes omitted for rule D102
- corporate/lib/stripe.py:1038:9: SIM103 Return the condition directly
- corporate/lib/stripe.py:1043:75: COM812 [*] Trailing comma missing
- corporate/lib/stripe.py:1046:101: E501 Line too long (116 > 100)
- corporate/lib/stripe.py:1057:75: COM812 [*] Trailing comma missing
- corporate/lib/stripe.py:1063:9: S101 Use of `assert` detected
- corporate/lib/stripe.py:1068:64: COM812 [*] Trailing comma missing
- corporate/lib/stripe.py:1074:9: S101 Use of `assert` detected
- corporate/lib/stripe.py:1099:16: RET504 Unnecessary assignment to `customer` before `return` statement
- corporate/lib/stripe.py:1103:61: FBT001 Boolean-typed positional argument in function definition
- corporate/lib/stripe.py:1103:61: FBT002 Boolean default positional argument in function definition
- corporate/lib/stripe.py:1103:87: COM812 [*] Trailing comma missing
- corporate/lib/stripe.py:1106:92: COM812 [*] Trailing comma missing
... 197 additional changes omitted for rule COM812
- corporate/lib/stripe.py:111:5: D103 Missing docstring in public function
- corporate/lib/stripe.py:1128:101: E501 Line too long (104 > 100)
- corporate/lib/stripe.py:1130:13: S101 Use of `assert` detected
- corporate/lib/stripe.py:1137:86: FBT003 Boolean positional value in function call
- corporate/lib/stripe.py:1144:9: D205 1 blank line required between summary line and description
- corporate/lib/stripe.py:1144:9: D212 [*] Multi-line docstring summary should start at the first line
- corporate/lib/stripe.py:1145:101: E501 Line too long (101 > 100)
- corporate/lib/stripe.py:114:5: SIM108 Use ternary operator `precision = 0 if cents % 100 == 0 else 2` instead of `if`-`else`-block
- corporate/lib/stripe.py:1150:9: PT018 Assertion should be broken down into multiple parts
- corporate/lib/stripe.py:1150:9: S101 Use of `assert` detected
- corporate/lib/stripe.py:1157:19: TRY003 Avoid specifying long messages outside the exception class
- corporate/lib/stripe.py:1158:17: EM101 Exception must not use a string literal, assign to variable first
- corporate/lib/stripe.py:1163:13: S101 Use of `assert` detected
- corporate/lib/stripe.py:1164:13: S101 Use of `assert` detected
... 207 additional changes omitted for rule S101
- corporate/lib/stripe.py:1206:17: B904 Within an `except` clause, raise exceptions with `raise ... from err` or `raise ... from None` to distinguish them from errors in exception handling
- corporate/lib/stripe.py:1206:23: TRY003 Avoid specifying long messages outside the exception class
- corporate/lib/stripe.py:1206:39: EM101 Exception must not use a string literal, assign to variable first
... 1197 additional changes omitted for project

Changes by rule (89 rules affected)

code total + violation - violation + fix - fix
COM812 228 0 228 0 0
S101 212 0 212 0 0
ERA001 173 0 173 0 0
D102 126 0 126 0 0
E501 90 0 90 0 0
D103 80 0 80 0 0
D101 61 0 61 0 0
FBT001 44 0 44 0 0
TRY003 43 0 43 0 0
D300 32 0 32 0 0
PLR2004 31 0 31 0 0
D210 31 0 31 0 0
ANN001 29 0 29 0 0
Q002 29 0 29 0 0
D107 28 0 28 0 0
FBT002 27 0 27 0 0
EM101 27 0 27 0 0
EM102 19 0 19 0 0
RET505 18 0 18 0 0
C901 18 0 18 0 0
FIX002 17 0 17 0 0
TD002 17 0 17 0 0
TD003 17 0 17 0 0
D205 15 0 15 0 0
D212 14 0 14 0 0
RET504 13 0 13 0 0
PLR0912 13 0 13 0 0
ANN201 11 0 11 0 0
N806 11 0 11 0 0
ARG001 10 0 10 0 0
D400 10 0 10 0 0
D415 10 0 10 0 0
B904 10 0 10 0 0
PLR0913 9 0 9 0 0
PLR0915 9 0 9 0 0
FIX004 9 0 9 0 0
RUF012 8 0 8 0 0
E402 7 0 7 0 0
SIM103 6 0 6 0 0
FBT003 6 0 6 0 0
PT018 6 0 6 0 0
A001 6 0 6 0 0
PTH118 5 0 5 0 0
S105 5 0 5 0 0
TCH002 5 0 5 0 0
D200 5 0 5 0 0
PLR0911 5 0 5 0 0
B008 5 0 5 0 0
D401 5 0 5 0 0
D202 5 0 5 0 0
BLE001 4 0 4 0 0
TID252 4 0 4 0 0
SIM114 4 0 4 0 0
N802 3 0 3 0 0
ANN401 3 0 3 0 0
TCH001 3 0 3 0 0
E741 3 0 3 0 0
SIM108 3 0 3 0 0
RET506 3 0 3 0 0
D209 3 0 3 0 0
B007 3 0 3 0 0
PLW0603 3 0 3 0 0
PT006 2 0 2 0 0
PTH123 2 0 2 0 0
Q000 2 0 2 0 0
ARG002 2 0 2 0 0
TRY301 2 0 2 0 0
D100 2 0 2 0 0
TRY300 2 0 2 0 0
DTZ001 1 0 1 0 0
ANN202 1 0 1 0 0
RUF100 1 0 1 0 0
TCH003 1 0 1 0 0
UP035 1 0 1 0 0
ARG005 1 0 1 0 0
PTH111 1 0 1 0 0
D105 1 0 1 0 0
TRY201 1 0 1 0 0
SLF001 1 0 1 0 0
RUF001 1 0 1 0 0
PT017 1 0 1 0 0
TRY400 1 0 1 0 0
TD004 1 0 1 0 0
PLR5501 1 0 1 0 0
D413 1 0 1 0 0
PLW2901 1 0 1 0 0
D104 1 0 1 0 0
D404 1 0 1 0 0
RET508 1 0 1 0 0

Linter (preview)

ℹ️ ecosystem check detected linter changes. (+0 -1857 violations, +0 -0 fixes in 4 projects; 50 projects unchanged)

apache/airflow (+0 -95 violations, +0 -0 fixes)

ruff check --no-cache --exit-zero --ignore RUF9 --output-format concise --preview --select ALL

- providers/tests/system/google/cloud/cloud_sql/example_cloud_sql.py:114:6: COM812 [*] Trailing comma missing
- providers/tests/system/google/cloud/cloud_sql/example_cloud_sql.py:122:6: COM812 [*] Trailing comma missing
- providers/tests/system/google/cloud/cloud_sql/example_cloud_sql.py:138:16: DTZ001 `datetime.datetime()` called without a `tzinfo` argument
- providers/tests/system/google/cloud/cloud_sql/example_cloud_sql.py:143:107: COM812 [*] Trailing comma missing
- providers/tests/system/google/cloud/cloud_sql/example_cloud_sql.py:152:78: COM812 [*] Trailing comma missing
- providers/tests/system/google/cloud/cloud_sql/example_cloud_sql.py:162:83: COM812 [*] Trailing comma missing
- providers/tests/system/google/cloud/cloud_sql/example_cloud_sql.py:168:82: COM812 [*] Trailing comma missing
... 10 additional changes omitted for rule COM812
- providers/tests/system/google/cloud/cloud_sql/example_cloud_sql.py:1:1: CPY001 Missing copyright notice at top of file
- tests/www/views/test_views_dataset.py:103:40: PLR2004 Magic value used in comparison, consider replacing `400` with a constant variable
- tests/www/views/test_views_dataset.py:108:40: PLR2004 Magic value used in comparison, consider replacing `400` with a constant variable
... 85 additional changes omitted for project

apache/superset (+0 -250 violations, +0 -0 fixes)

ruff check --no-cache --exit-zero --ignore RUF9 --output-format concise --preview --select ALL

- superset/config.py:1004:21: RUF012 Mutable class attributes should be annotated with `typing.ClassVar`
- superset/config.py:1015:9: ERA001 Found commented-out code
- superset/config.py:1016:9: ERA001 Found commented-out code
- superset/config.py:1017:9: ERA001 Found commented-out code
- superset/config.py:1018:9: ERA001 Found commented-out code
- superset/config.py:1026:1: ERA001 Found commented-out code
- superset/config.py:105:1: ERA001 Found commented-out code
... 167 additional changes omitted for rule ERA001
- superset/config.py:1068:89: E501 Line too long (90 > 88)
- superset/config.py:1089:64: COM812 [*] Trailing comma missing
- superset/config.py:1139:5: D103 Missing docstring in public function
... 240 additional changes omitted for project

bokeh/bokeh (+0 -180 violations, +0 -0 fixes)

ruff check --no-cache --exit-zero --ignore RUF9 --output-format concise --preview --select ALL

- src/bokeh/colors/color.py:116:9: D210 [*] No whitespaces allowed surrounding docstring text
- src/bokeh/colors/color.py:116:9: D300 [*] Use triple double quotes `"""`
- src/bokeh/colors/color.py:116:9: Q002 [*] Single quote docstring found but double quotes preferred
- src/bokeh/colors/color.py:11:1: E265 [*] Block comment should start with `# `
- src/bokeh/colors/color.py:133:9: D210 [*] No whitespaces allowed surrounding docstring text
- src/bokeh/colors/color.py:133:9: D300 [*] Use triple double quotes `"""`
- src/bokeh/colors/color.py:133:9: Q002 [*] Single quote docstring found but double quotes preferred
- src/bokeh/colors/color.py:13:1: E265 [*] Block comment should start with `# `
- src/bokeh/colors/color.py:148:9: D210 [*] No whitespaces allowed surrounding docstring text
- src/bokeh/colors/color.py:148:9: D300 [*] Use triple double quotes `"""`
... 170 additional changes omitted for project

zulip/zulip (+0 -1332 violations, +0 -0 fixes)

ruff check --no-cache --exit-zero --ignore RUF9 --output-format concise --preview --select ALL

- corporate/lib/stripe.py:1000:57: COM812 [*] Trailing comma missing
- corporate/lib/stripe.py:1005:9: D102 Missing docstring in public method
- corporate/lib/stripe.py:1009:9: D102 Missing docstring in public method
- corporate/lib/stripe.py:1013:9: D102 Missing docstring in public method
- corporate/lib/stripe.py:1017:9: D102 Missing docstring in public method
- corporate/lib/stripe.py:1021:9: D102 Missing docstring in public method
- corporate/lib/stripe.py:1037:9: D102 Missing docstring in public method
... 120 additional changes omitted for rule D102
- corporate/lib/stripe.py:1038:9: SIM103 Return the condition directly
- corporate/lib/stripe.py:1042:9: PLR6301 Method `get_remote_server_legacy_plan` could be a function, class method, or static method
- corporate/lib/stripe.py:1043:75: COM812 [*] Trailing comma missing
- corporate/lib/stripe.py:1046:101: E501 Line too long (116 > 100)
- corporate/lib/stripe.py:1057:75: COM812 [*] Trailing comma missing
- corporate/lib/stripe.py:1063:9: S101 Use of `assert` detected
- corporate/lib/stripe.py:1068:64: COM812 [*] Trailing comma missing
- corporate/lib/stripe.py:1074:9: S101 Use of `assert` detected
- corporate/lib/stripe.py:1099:16: RET504 Unnecessary assignment to `customer` before `return` statement
- corporate/lib/stripe.py:1103:61: FBT001 Boolean-typed positional argument in function definition
- corporate/lib/stripe.py:1103:61: FBT002 Boolean default positional argument in function definition
- corporate/lib/stripe.py:1103:87: COM812 [*] Trailing comma missing
- corporate/lib/stripe.py:1106:92: COM812 [*] Trailing comma missing
... 197 additional changes omitted for rule COM812
- corporate/lib/stripe.py:111:5: D103 Missing docstring in public function
- corporate/lib/stripe.py:1128:101: E501 Line too long (104 > 100)
- corporate/lib/stripe.py:1130:13: S101 Use of `assert` detected
- corporate/lib/stripe.py:1137:86: FBT003 Boolean positional value in function call
- corporate/lib/stripe.py:1144:9: D205 1 blank line required between summary line and description
- corporate/lib/stripe.py:1144:9: D212 [*] Multi-line docstring summary should start at the first line
- corporate/lib/stripe.py:1145:101: E501 Line too long (101 > 100)
- corporate/lib/stripe.py:114:5: SIM108 Use ternary operator `precision = 0 if cents % 100 == 0 else 2` instead of `if`-`else`-block
- corporate/lib/stripe.py:1150:9: PT018 Assertion should be broken down into multiple parts
- corporate/lib/stripe.py:1150:9: S101 Use of `assert` detected
- corporate/lib/stripe.py:1157:19: DOC501 Raised exception `BillingError` missing from docstring
- corporate/lib/stripe.py:1157:19: TRY003 Avoid specifying long messages outside the exception class
- corporate/lib/stripe.py:1158:17: EM101 Exception must not use a string literal, assign to variable first
- corporate/lib/stripe.py:1163:13: S101 Use of `assert` detected
- corporate/lib/stripe.py:1164:13: S101 Use of `assert` detected
... 207 additional changes omitted for rule S101
... 1297 additional changes omitted for project

Changes by rule (112 rules affected)

code total + violation - violation + fix - fix
COM812 228 0 228 0 0
S101 212 0 212 0 0
ERA001 173 0 173 0 0
D102 126 0 126 0 0
E501 90 0 90 0 0
D103 80 0 80 0 0
D101 61 0 61 0 0
FBT001 44 0 44 0 0
TRY003 43 0 43 0 0
D300 32 0 32 0 0
PLR2004 31 0 31 0 0
D210 31 0 31 0 0
ANN001 29 0 29 0 0
Q002 29 0 29 0 0
D107 28 0 28 0 0
FBT002 27 0 27 0 0
EM101 27 0 27 0 0
PLR6301 26 0 26 0 0
E226 24 0 24 0 0
EM102 19 0 19 0 0
PLR6201 19 0 19 0 0
RET505 18 0 18 0 0
C901 18 0 18 0 0
FIX002 17 0 17 0 0
TD002 17 0 17 0 0
TD003 17 0 17 0 0
E265 16 0 16 0 0
D205 15 0 15 0 0
D212 14 0 14 0 0
RET504 13 0 13 0 0
PLR0912 13 0 13 0 0
DOC201 12 0 12 0 0
ANN201 11 0 11 0 0
N806 11 0 11 0 0
ARG001 10 0 10 0 0
D400 10 0 10 0 0
D415 10 0 10 0 0
B904 10 0 10 0 0
PLR0914 10 0 10 0 0
PLR0913 9 0 9 0 0
PLR0917 9 0 9 0 0
PLR0915 9 0 9 0 0
FIX004 9 0 9 0 0
PLC1901 9 0 9 0 0
RUF012 8 0 8 0 0
E402 7 0 7 0 0
CPY001 6 0 6 0 0
SIM103 6 0 6 0 0
FBT003 6 0 6 0 0
PT018 6 0 6 0 0
F841 6 0 6 0 0
A001 6 0 6 0 0
PTH118 5 0 5 0 0
S105 5 0 5 0 0
TCH002 5 0 5 0 0
D200 5 0 5 0 0
PLR0911 5 0 5 0 0
PLC0415 5 0 5 0 0
B008 5 0 5 0 0
PLR0904 5 0 5 0 0
D401 5 0 5 0 0
D202 5 0 5 0 0
BLE001 4 0 4 0 0
DOC501 4 0 4 0 0
TID252 4 0 4 0 0
SIM114 4 0 4 0 0
N802 3 0 3 0 0
ANN401 3 0 3 0 0
TCH001 3 0 3 0 0
E741 3 0 3 0 0
E302 3 0 3 0 0
SIM108 3 0 3 0 0
RET506 3 0 3 0 0
D209 3 0 3 0 0
B007 3 0 3 0 0
PLW0603 3 0 3 0 0
PT006 2 0 2 0 0
PLW1514 2 0 2 0 0
PTH123 2 0 2 0 0
Q000 2 0 2 0 0
ARG002 2 0 2 0 0
TRY301 2 0 2 0 0
D100 2 0 2 0 0
TRY300 2 0 2 0 0
DTZ001 1 0 1 0 0
ANN202 1 0 1 0 0
RUF100 1 0 1 0 0
TCH003 1 0 1 0 0
UP035 1 0 1 0 0
PLC2701 1 0 1 0 0
ARG005 1 0 1 0 0
PTH111 1 0 1 0 0
E261 1 0 1 0 0
FURB180 1 0 1 0 0
D105 1 0 1 0 0
TRY201 1 0 1 0 0
SLF001 1 0 1 0 0
RUF001 1 0 1 0 0
PT017 1 0 1 0 0
TRY400 1 0 1 0 0
TD004 1 0 1 0 0
PLR5501 1 0 1 0 0
D413 1 0 1 0 0
PLW2901 1 0 1 0 0
FURB145 1 0 1 0 0
S405 1 0 1 0 0
PLR0916 1 0 1 0 0
D104 1 0 1 0 0
D404 1 0 1 0 0
PLR1702 1 0 1 0 0
RET508 1 0 1 0 0
FURB118 1 0 1 0 0

@autinerd
Copy link
Contributor Author

autinerd commented Oct 5, 2024

Hmm, the question is if "Hacky" is used as a tag, or just being a word. In that regard # Hackers could compromise it would be a todo-tag as well.

@MichaReiser MichaReiser added the rule Implementing or modifying a lint rule label Oct 7, 2024
Copy link
Member

@MichaReiser MichaReiser left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The change makes sense to me. Although our settings aren't very explicit about what "starting" means:

Comments starting with these tags will be ignored by commented-out code detection (ERA), and skipped by line-length rules (E501) if ignore-overlong-task-comments is set to true.

https://docs.astral.sh/ruff/settings/#lint_task-tags

What surprised me is that this not only changes the behavior of flake8-todos but also flake8-fixme

Flake8-fixme only tests for the use of task tags at word boundaries.

https://github.com/tommilligan/flake8-fixme/blob/master/flake8_fixme/__init__.py

I think we can simplify the implementation, see my inline comment.

for length in [3, 4, 5] {
let Some(substr) = s.get(..length) else {
break;
};

if s.len() > length {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: I would change the from_str implementation to do a direct match on the string (instead of selecting the substring) and instead split by word boundaries here:

if let Ok(directive_kind) = trimmed.parse::<TodoDirectiveKind>() {

That should simplify the implementation

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't quite understand, sorry (Maybe my Rust knowledge is not good enough)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm proposing a small rewrite because I think it will simplify the overall code now that we make the change here.

What I propose is that FromStr does a full match (matching the entire string and not just a prefix). So from_str becomes something like this:

            match s.to_lowercase().as_str() {
                "fixme" => {
                    Ok(TodoDirectiveKind::Fixme)
                }
                "hack" => {
                    Ok(TodoDirectiveKind::Hack)
                }
                "todo" => {
                    Ok(TodoDirectiveKind::Todo)
                }
                "xxx" => {
                    Ok(TodoDirectiveKind::Xxx)
                }
                _ =>Err(()),
		}

This does require that we change the one call site to implement the: split by word boundaries (whitespace) and we only pass the first word to FromStr

Copy link
Contributor Author

@autinerd autinerd Oct 12, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have applied your suggestion.

Copy link
Member

@MichaReiser MichaReiser left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks

@MichaReiser MichaReiser enabled auto-merge (squash) October 14, 2024 09:36
@MichaReiser MichaReiser enabled auto-merge (squash) October 14, 2024 10:17
@MichaReiser MichaReiser merged commit 9bb4722 into astral-sh:main Oct 14, 2024
17 checks passed
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
rule Implementing or modifying a lint rule
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[flake8-todos] TD rules trigger on words beginning with todo
3 participants