File tree Expand file tree Collapse file tree
lib/semmle/python/frameworks Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -11,14 +11,17 @@ private import semmle.python.dataflow.new.TaintTracking
1111private import semmle.python.Concepts
1212private import semmle.python.ApiGraphs
1313private import semmle.python.frameworks.PEP249
14+ private import semmle.python.frameworks.data.ModelsAsData
1415
1516/**
17+ * INTERNAL: Do not use.
18+ *
1619 * Provides models for the `peewee` PyPI package.
1720 * See
1821 * - https://pypi.org/project/peewee/
1922 * - https://docs.peewee-orm.com/en/latest/index.html
2023 */
21- private module Peewee {
24+ module Peewee {
2225 /** Provides models for the `peewee.Database` class and subclasses. */
2326 module Database {
2427 /** Gets a reference to the `peewee.Database` class or any subclass. */
@@ -31,7 +34,7 @@ private module Peewee {
3134 .getMember ( [ "SqliteDatabase" , "MySQLDatabase" , "PostgresqlDatabase" ] )
3235 .getASubclass * ( )
3336 or
34- // Ohter known subclasses, semi auto generated by using
37+ // Other known subclasses, semi auto generated by using
3538 // ```ql
3639 // class DBClass extends Class, SelfRefMixin {
3740 // DBClass() {
@@ -153,6 +156,8 @@ private module Peewee {
153156 .getMember ( "sqliteq" )
154157 .getMember ( "SqliteQueueDatabase" )
155158 .getASubclass * ( )
159+ or
160+ result = ModelOutput:: getATypeNode ( "peewee.Database~Subclass" ) .getASubclass * ( )
156161 }
157162
158163 /** Gets a reference to an instance of `peewee.Database` or any subclass. */
Original file line number Diff line number Diff line change @@ -28,6 +28,7 @@ private import semmle.python.frameworks.SqlAlchemy
2828private import semmle.python.frameworks.Tornado
2929private import semmle.python.frameworks.Urllib3
3030private import semmle.python.frameworks.Pydantic
31+ private import semmle.python.frameworks.Peewee
3132import semmle.python.frameworks.data.internal.ApiGraphModelsExtensions as Extensions
3233
3334class FlaskViewClasses extends FindSubclassesSpec {
@@ -417,6 +418,12 @@ class PydanticBaseModel extends FindSubclassesSpec {
417418 override API:: Node getAlreadyModeledClass ( ) { result = Pydantic:: BaseModel:: subclassRef ( ) }
418419}
419420
421+ class PeeweeDatabase extends FindSubclassesSpec {
422+ PeeweeDatabase ( ) { this = "peewee.Database~Subclass" }
423+
424+ override API:: Node getAlreadyModeledClass ( ) { result = Peewee:: Database:: subclassRef ( ) }
425+ }
426+
420427bindingset [ fullyQualified]
421428predicate fullyQualifiedToYamlFormat ( string fullyQualified , string type2 , string path ) {
422429 exists ( int firstDot | firstDot = fullyQualified .indexOf ( "." , 0 , 0 ) |
You can’t perform that action at this time.
0 commit comments