Skip to content

Revert "Start testing with 3.14 alphas"#1217

Merged
ericwb merged 1 commit intomainfrom
revert-1189-py3.13
Jan 12, 2025
Merged

Revert "Start testing with 3.14 alphas"#1217
ericwb merged 1 commit intomainfrom
revert-1189-py3.13

Conversation

@ericwb
Copy link
Member

@ericwb ericwb commented Jan 12, 2025

Reverts #1189

Fixes #1216

@ericwb ericwb merged commit c2c336d into main Jan 12, 2025
25 checks passed
@ericwb ericwb deleted the revert-1189-py3.13 branch January 12, 2025 23:21
ericwb added a commit to ericwb/bandit that referenced this pull request Nov 10, 2025
This is a re-opening of PR PyCQA#1189 and revert of revert PyCQA#1217.
PR PyCQA#1189 caused issue PyCQA#1216 which must be fixed as part of
this PR.

This change starts testing against Python 3.14 now that is has
been officially released.

Python 3.14 has dropped the deprecated use of ast.Bytes,
ast.Ellipsis, ast.NameConstant, ast.Num, ast.Str. They are
replaced with ast.Constant and Node.value is used to get the
value instead of the previous attributes like Node.s.

https://docs.python.org/3.14/whatsnew/3.14.html#id2

This also has the potential to break 3rd party plugins that
were checking on Str or Num, etc. As a result, Bandit keeps
the validity of checking on those non-existent ast types.

These changes did break a quite a few plugins that were
directly accessing ast classes to determine a result, but
were fixed as part of this PR.

Signed-off-by: Eric Brown <eric_wade_brown@yahoo.com>
@ericwb ericwb mentioned this pull request Nov 10, 2025
ericwb added a commit that referenced this pull request Nov 11, 2025
* Support of Python 3.14

This is a re-opening of PR #1189 and revert of revert #1217.
PR #1189 caused issue #1216 which must be fixed as part of
this PR.

This change starts testing against Python 3.14 now that is has
been officially released.

Python 3.14 has dropped the deprecated use of ast.Bytes,
ast.Ellipsis, ast.NameConstant, ast.Num, ast.Str. They are
replaced with ast.Constant and Node.value is used to get the
value instead of the previous attributes like Node.s.

https://docs.python.org/3.14/whatsnew/3.14.html#id2

This also has the potential to break 3rd party plugins that
were checking on Str or Num, etc. As a result, Bandit keeps
the validity of checking on those non-existent ast types.

These changes did break a quite a few plugins that were
directly accessing ast classes to determine a result, but
were fixed as part of this PR.

Signed-off-by: Eric Brown <eric_wade_brown@yahoo.com>

* Add 3.14 classifier

Signed-off-by: Eric Brown <eric_wade_brown@yahoo.com>

* Add test case

Signed-off-by: Eric Brown <eric_wade_brown@yahoo.com>

* Check if value.value is str

Signed-off-by: Eric Brown <eric_wade_brown@yahoo.com>

* Incorrect comment

Signed-off-by: Eric Brown <eric_wade_brown@yahoo.com>

* Fix up injection_sql.py

Signed-off-by: Eric Brown <eric_wade_brown@yahoo.com>

* More checking on Constant.value

Signed-off-by: Eric Brown <eric_wade_brown@yahoo.com>

* Final Constant value checks

Signed-off-by: Eric Brown <eric_wade_brown@yahoo.com>

---------

Signed-off-by: Eric Brown <eric_wade_brown@yahoo.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bandit version 1.8.1 showing false-positives in B106 warnings

1 participant