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 @@ -70,7 +70,10 @@ module Flask {
7070 */
7171 module FlaskApp {
7272 /** Gets a reference to the `flask.Flask` class. */
73- API:: Node classRef ( ) { result = API:: moduleImport ( "flask" ) .getMember ( "Flask" ) }
73+ API:: Node classRef ( ) {
74+ result = API:: moduleImport ( "flask" ) .getMember ( "Flask" ) or
75+ result = ModelOutput:: getATypeNode ( "flask.Flask~Subclass" ) .getASubclass * ( )
76+ }
7477
7578 /** Gets a reference to an instance of `flask.Flask` (a flask application). */
7679 API:: Node instance ( ) { result = classRef ( ) .getReturn ( ) }
@@ -87,6 +90,8 @@ module Flask {
8790 result = API:: moduleImport ( "flask" ) .getMember ( "Blueprint" )
8891 or
8992 result = API:: moduleImport ( "flask" ) .getMember ( "blueprints" ) .getMember ( "Blueprint" )
93+ or
94+ result = ModelOutput:: getATypeNode ( "flask.Blueprint~Subclass" ) .getASubclass * ( )
9095 }
9196
9297 /** Gets a reference to an instance of `flask.Blueprint`. */
Original file line number Diff line number Diff line change @@ -275,6 +275,18 @@ class DjangoHttpRequest extends FindSubclassesSpec {
275275 }
276276}
277277
278+ class FlaskClass extends FindSubclassesSpec {
279+ FlaskClass ( ) { this = "flask.Flask~Subclass" }
280+
281+ override API:: Node getAlreadyModeledClass ( ) { result = Flask:: FlaskApp:: classRef ( ) }
282+ }
283+
284+ class FlaskBlueprint extends FindSubclassesSpec {
285+ FlaskBlueprint ( ) { this = "flask.Blueprint~Subclass" }
286+
287+ override API:: Node getAlreadyModeledClass ( ) { result = Flask:: Blueprint:: classRef ( ) }
288+ }
289+
278290bindingset [ fullyQualified]
279291predicate fullyQualifiedToYamlFormat ( string fullyQualified , string type2 , string path ) {
280292 exists ( int firstDot | firstDot = fullyQualified .indexOf ( "." , 0 , 0 ) |
You can’t perform that action at this time.
0 commit comments