mirror of
https://github.com/github/codeql.git
synced 2025-12-21 11:16:30 +01:00
Python: Add Peewee model
This commit is contained in:
committed by
Rasmus Wriedt Larsen
parent
5e3bdb8701
commit
875fa0b8f0
@@ -11,14 +11,17 @@ private import semmle.python.dataflow.new.TaintTracking
|
||||
private import semmle.python.Concepts
|
||||
private import semmle.python.ApiGraphs
|
||||
private import semmle.python.frameworks.PEP249
|
||||
private import semmle.python.frameworks.data.ModelsAsData
|
||||
|
||||
/**
|
||||
* INTERNAL: Do not use.
|
||||
*
|
||||
* Provides models for the `peewee` PyPI package.
|
||||
* See
|
||||
* - https://pypi.org/project/peewee/
|
||||
* - https://docs.peewee-orm.com/en/latest/index.html
|
||||
*/
|
||||
private module Peewee {
|
||||
module Peewee {
|
||||
/** Provides models for the `peewee.Database` class and subclasses. */
|
||||
module Database {
|
||||
/** Gets a reference to the `peewee.Database` class or any subclass. */
|
||||
@@ -31,7 +34,7 @@ private module Peewee {
|
||||
.getMember(["SqliteDatabase", "MySQLDatabase", "PostgresqlDatabase"])
|
||||
.getASubclass*()
|
||||
or
|
||||
// Ohter known subclasses, semi auto generated by using
|
||||
// Other known subclasses, semi auto generated by using
|
||||
// ```ql
|
||||
// class DBClass extends Class, SelfRefMixin {
|
||||
// DBClass() {
|
||||
@@ -153,6 +156,8 @@ private module Peewee {
|
||||
.getMember("sqliteq")
|
||||
.getMember("SqliteQueueDatabase")
|
||||
.getASubclass*()
|
||||
or
|
||||
result = ModelOutput::getATypeNode("peewee.Database~Subclass").getASubclass*()
|
||||
}
|
||||
|
||||
/** Gets a reference to an instance of `peewee.Database` or any subclass. */
|
||||
|
||||
@@ -28,6 +28,7 @@ private import semmle.python.frameworks.SqlAlchemy
|
||||
private import semmle.python.frameworks.Tornado
|
||||
private import semmle.python.frameworks.Urllib3
|
||||
private import semmle.python.frameworks.Pydantic
|
||||
private import semmle.python.frameworks.Peewee
|
||||
import semmle.python.frameworks.data.internal.ApiGraphModelsExtensions as Extensions
|
||||
|
||||
class FlaskViewClasses extends FindSubclassesSpec {
|
||||
@@ -417,6 +418,12 @@ class PydanticBaseModel extends FindSubclassesSpec {
|
||||
override API::Node getAlreadyModeledClass() { result = Pydantic::BaseModel::subclassRef() }
|
||||
}
|
||||
|
||||
class PeeweeDatabase extends FindSubclassesSpec {
|
||||
PeeweeDatabase() { this = "peewee.Database~Subclass" }
|
||||
|
||||
override API::Node getAlreadyModeledClass() { result = Peewee::Database::subclassRef() }
|
||||
}
|
||||
|
||||
bindingset[fullyQualified]
|
||||
predicate fullyQualifiedToYamlFormat(string fullyQualified, string type2, string path) {
|
||||
exists(int firstDot | firstDot = fullyQualified.indexOf(".", 0, 0) |
|
||||
|
||||
Reference in New Issue
Block a user