Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 83e6e51

Browse files
tausbnRasmusWL
authored andcommitted
Python: Add starlette.websocket model
1 parent f19b672 commit 83e6e51

2 files changed

Lines changed: 10 additions & 0 deletions

File tree

python/ql/lib/semmle/python/frameworks/Starlette.qll

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ private import semmle.python.Concepts
1313
private import semmle.python.ApiGraphs
1414
private import semmle.python.frameworks.internal.InstanceTaintStepsHelper
1515
private import semmle.python.frameworks.Stdlib
16+
private import semmle.python.frameworks.data.ModelsAsData
1617

1718
/**
1819
* INTERNAL: Do not use.
@@ -35,6 +36,8 @@ module Starlette {
3536
result = API::moduleImport("starlette").getMember("websockets").getMember("WebSocket")
3637
or
3738
result = API::moduleImport("fastapi").getMember("WebSocket")
39+
or
40+
result = ModelOutput::getATypeNode("starlette.websockets.WebSocket~Subclass").getASubclass*()
3841
}
3942

4043
/**

python/ql/src/meta/ClassHierarchy/Find.ql

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ private import semmle.python.frameworks.Django
1414
private import semmle.python.frameworks.Tornado
1515
private import semmle.python.frameworks.Stdlib
1616
private import semmle.python.frameworks.Requests
17+
private import semmle.python.frameworks.Starlette
1718
import semmle.python.frameworks.data.internal.ApiGraphModelsExtensions as Extensions
1819

1920
class FlaskViewClasses extends FindSubclassesSpec {
@@ -227,6 +228,12 @@ class HttpClientHttpResponse extends FindSubclassesSpec {
227228
override API::Node getAlreadyModeledClass() { result = StdlibPrivate::HttpResponse::classRef() }
228229
}
229230

231+
class StarletteWebsocket extends FindSubclassesSpec {
232+
StarletteWebsocket() { this = "starlette.websockets.WebSocket~Subclass" }
233+
234+
override API::Node getAlreadyModeledClass() { result = Starlette::WebSocket::classRef() }
235+
}
236+
230237
bindingset[fullyQualified]
231238
predicate fullyQualifiedToYamlFormat(string fullyQualified, string type2, string path) {
232239
exists(int firstDot | firstDot = fullyQualified.indexOf(".", 0, 0) |

0 commit comments

Comments
 (0)