chore(governance): finalize v1.2.0 synchronization and environment resolution#127
Found 0 failures, 192 warnings, and 0 notices.
The check found 0 failures, 192 warnings, and 0 notices. Review the documentation link on each issue to determine how to resolve. Alternatively, false positives can be suppressed. See documentation for details.
Details
PY001: Improper Check or Handling of Exceptional Conditions
Expand for further details
Assertions are typically used during the development phase to catch logic
errors and conditions that should never occur. However, relying on assertions
for security checks or other critical runtime validations is not recommended
because:
-
Assertions can be disabled in Python with the -O (optimize) and -OO flags,
which remove assert statements and sometimes docstrings. If critical checks
are implemented using assertions, this could lead to security vulnerabilities
being exposed in production environments where optimizations are enabled. -
Assertions throw exceptions if the condition fails, which, if not properly
handled, can lead to crashes or other unintended behavior in the application.
Using assertions for non-critical checks during development is common, but for
production code, especially for input validation, error handling, or other
security-sensitive operations, it's important to use proper error handling
mechanisms and validations that do not get removed during optimization.
Examples
def foobar(a: str = None):
assert a is not None
return f"Hello {a}"
foobar("World")??? example "Example Output"
> precli tests/unit/rules/python/stdlib/assert/examples/assert.py ⚠️ Warning on line 2 in tests/unit/rules/python/stdlib/assert/examples/assert.py PY001: Improper Check or Handling of Exceptional Conditions Assert statements are disabled when optimizations are enabled.
Remediation
Use proper error handling mechanism appropriate for production code.
def foobar(a: str = None):
if a is not None:
return f"Hello {a}"
foobar("World")Default Configuration
enabled = false
level = "warning"See also
!!! info
- Simple statements — Python documentation
- CWE-617: Reachable Assertion
- CWE-703: Improper Check or Handling of Exceptional Conditions
New in version 0.3.8
Precaution v0.7.9
Annotations
Check warning on line 66 in unit_tests/test_workflow_yaml.py
precaution / Precaution Basic
PY001: Improper Check or Handling of Exceptional Conditions
Assert statements are disabled when optimizations are enabled.
Check warning on line 79 in unit_tests/test_workflow_yaml.py
precaution / Precaution Basic
PY001: Improper Check or Handling of Exceptional Conditions
Assert statements are disabled when optimizations are enabled.
Check warning on line 86 in unit_tests/test_workflow_yaml.py
precaution / Precaution Basic
PY001: Improper Check or Handling of Exceptional Conditions
Assert statements are disabled when optimizations are enabled.
Check warning on line 87 in unit_tests/test_workflow_yaml.py
precaution / Precaution Basic
PY001: Improper Check or Handling of Exceptional Conditions
Assert statements are disabled when optimizations are enabled.
Check warning on line 88 in unit_tests/test_workflow_yaml.py
precaution / Precaution Basic
PY001: Improper Check or Handling of Exceptional Conditions
Assert statements are disabled when optimizations are enabled.
Check warning on line 97 in unit_tests/test_workflow_yaml.py
precaution / Precaution Basic
PY001: Improper Check or Handling of Exceptional Conditions
Assert statements are disabled when optimizations are enabled.
Check warning on line 106 in unit_tests/test_workflow_yaml.py
precaution / Precaution Basic
PY001: Improper Check or Handling of Exceptional Conditions
Assert statements are disabled when optimizations are enabled.
Check warning on line 107 in unit_tests/test_workflow_yaml.py
precaution / Precaution Basic
PY001: Improper Check or Handling of Exceptional Conditions
Assert statements are disabled when optimizations are enabled.
Check warning on line 108 in unit_tests/test_workflow_yaml.py
precaution / Precaution Basic
PY001: Improper Check or Handling of Exceptional Conditions
Assert statements are disabled when optimizations are enabled.
Check warning on line 116 in unit_tests/test_workflow_yaml.py
precaution / Precaution Basic
PY001: Improper Check or Handling of Exceptional Conditions
Assert statements are disabled when optimizations are enabled.
Check warning on line 129 in unit_tests/test_workflow_yaml.py
precaution / Precaution Basic
PY001: Improper Check or Handling of Exceptional Conditions
Assert statements are disabled when optimizations are enabled.
Check warning on line 132 in unit_tests/test_workflow_yaml.py
precaution / Precaution Basic
PY001: Improper Check or Handling of Exceptional Conditions
Assert statements are disabled when optimizations are enabled.
Check warning on line 144 in unit_tests/test_workflow_yaml.py
precaution / Precaution Basic
PY001: Improper Check or Handling of Exceptional Conditions
Assert statements are disabled when optimizations are enabled.
Check warning on line 158 in unit_tests/test_workflow_yaml.py
precaution / Precaution Basic
PY001: Improper Check or Handling of Exceptional Conditions
Assert statements are disabled when optimizations are enabled.
Check warning on line 162 in unit_tests/test_workflow_yaml.py
precaution / Precaution Basic
PY001: Improper Check or Handling of Exceptional Conditions
Assert statements are disabled when optimizations are enabled.
Check warning on line 163 in unit_tests/test_workflow_yaml.py
precaution / Precaution Basic
PY001: Improper Check or Handling of Exceptional Conditions
Assert statements are disabled when optimizations are enabled.
Check warning on line 164 in unit_tests/test_workflow_yaml.py
precaution / Precaution Basic
PY001: Improper Check or Handling of Exceptional Conditions
Assert statements are disabled when optimizations are enabled.
Check warning on line 165 in unit_tests/test_workflow_yaml.py
precaution / Precaution Basic
PY001: Improper Check or Handling of Exceptional Conditions
Assert statements are disabled when optimizations are enabled.
Check warning on line 168 in unit_tests/test_workflow_yaml.py
precaution / Precaution Basic
PY001: Improper Check or Handling of Exceptional Conditions
Assert statements are disabled when optimizations are enabled.
Check warning on line 173 in unit_tests/test_workflow_yaml.py
precaution / Precaution Basic
PY001: Improper Check or Handling of Exceptional Conditions
Assert statements are disabled when optimizations are enabled.
Check warning on line 178 in unit_tests/test_workflow_yaml.py
precaution / Precaution Basic
PY001: Improper Check or Handling of Exceptional Conditions
Assert statements are disabled when optimizations are enabled.
Check warning on line 183 in unit_tests/test_workflow_yaml.py
precaution / Precaution Basic
PY001: Improper Check or Handling of Exceptional Conditions
Assert statements are disabled when optimizations are enabled.
Check warning on line 191 in unit_tests/test_workflow_yaml.py
precaution / Precaution Basic
PY001: Improper Check or Handling of Exceptional Conditions
Assert statements are disabled when optimizations are enabled.
Check warning on line 195 in unit_tests/test_workflow_yaml.py
precaution / Precaution Basic
PY001: Improper Check or Handling of Exceptional Conditions
Assert statements are disabled when optimizations are enabled.
Check warning on line 196 in unit_tests/test_workflow_yaml.py
precaution / Precaution Basic
PY001: Improper Check or Handling of Exceptional Conditions
Assert statements are disabled when optimizations are enabled.