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 @@ -12,6 +12,7 @@ private import semmle.python.ApiGraphs
1212private import semmle.python.regex
1313private import semmle.python.frameworks.Stdlib
1414private import semmle.python.frameworks.internal.InstanceTaintStepsHelper
15+ private import semmle.python.frameworks.data.ModelsAsData
1516
1617/**
1718 * INTERNAL: Do not use.
@@ -87,7 +88,11 @@ module Tornado {
8788 */
8889 module RequestHandler {
8990 /** Gets a reference to the `tornado.web.RequestHandler` class or any subclass. */
90- API:: Node subclassRef ( ) { result = web ( ) .getMember ( "RequestHandler" ) .getASubclass * ( ) }
91+ API:: Node subclassRef ( ) {
92+ result = web ( ) .getMember ( "RequestHandler" ) .getASubclass * ( )
93+ or
94+ result = ModelOutput:: getATypeNode ( "tornado.web.RequestHandler~Subclass" ) .getASubclass * ( )
95+ }
9196
9297 /** A RequestHandler class (most likely in project code). */
9398 class RequestHandlerClass extends Class {
Original file line number Diff line number Diff line change @@ -11,6 +11,7 @@ import semmle.python.frameworks.internal.SubclassFinder::NotExposed
1111private import semmle.python.frameworks.Flask
1212private import semmle.python.frameworks.FastApi
1313private import semmle.python.frameworks.Django
14+ private import semmle.python.frameworks.Tornado
1415import semmle.python.frameworks.data.internal.ApiGraphModelsExtensions as Extensions
1516
1617class FlaskViewClasses extends FindSubclassesSpec {
@@ -57,6 +58,14 @@ class DjangoField extends FindSubclassesSpec {
5758 }
5859}
5960
61+ class TornadoRequestHandler extends FindSubclassesSpec {
62+ TornadoRequestHandler ( ) { this = "tornado.web.RequestHandler~Subclass" }
63+
64+ override API:: Node getAlreadyModeledClass ( ) {
65+ result = Tornado:: TornadoModule:: Web:: RequestHandler:: subclassRef ( )
66+ }
67+ }
68+
6069bindingset [ fullyQualified]
6170predicate fullyQualifiedToYamlFormat ( string fullyQualified , string type2 , string path ) {
6271 exists ( int firstDot | firstDot = fullyQualified .indexOf ( "." , 0 , 0 ) |
You can’t perform that action at this time.
0 commit comments