mirror of
https://github.com/github/codeql.git
synced 2026-05-04 21:25:44 +02:00
Initial commit of Python queries and QL libraries.
This commit is contained in:
committed by
Mark Shannon
parent
90c75cd362
commit
5f58824d1b
19
python/ql/src/Classes/ShouldBeContextManager.ql
Normal file
19
python/ql/src/Classes/ShouldBeContextManager.ql
Normal file
@@ -0,0 +1,19 @@
|
||||
/**
|
||||
* @name Class should be a context manager
|
||||
* @description Making a class a context manager allows instances to be used in a 'with' statement.
|
||||
* This improves resource handling and code readability.
|
||||
* @kind problem
|
||||
* @tags maintainability
|
||||
* readability
|
||||
* convention
|
||||
* @problem.severity recommendation
|
||||
* @sub-severity high
|
||||
* @precision medium
|
||||
* @id py/should-be-context-manager
|
||||
*/
|
||||
|
||||
import python
|
||||
|
||||
from ClassObject c
|
||||
where not c.isC() and not c.isContextManager() and exists(c.declaredAttribute("__del__"))
|
||||
select c, "Class " + c.getName() + " implements __del__ (presumably to release some resource). Consider making it a context manager."
|
||||
Reference in New Issue
Block a user