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

Skip to content

Commit cdb0ac5

Browse files
tausbnRasmusWL
authored andcommitted
Python: Add invoke model
1 parent 699b6b8 commit cdb0ac5

2 files changed

Lines changed: 15 additions & 1 deletion

File tree

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

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,15 @@ private import python
77
private import semmle.python.dataflow.new.DataFlow
88
private import semmle.python.Concepts
99
private import semmle.python.ApiGraphs
10+
private import semmle.python.frameworks.data.ModelsAsData
1011

1112
/**
13+
* INTERNAL: Do not use.
14+
*
1215
* Provides models for the `invoke` PyPI package.
1316
* See https://www.pyinvoke.org/.
1417
*/
15-
private module Invoke {
18+
module Invoke {
1619
// ---------------------------------------------------------------------------
1720
// invoke
1821
// ---------------------------------------------------------------------------
@@ -30,6 +33,8 @@ private module Invoke {
3033
result = API::moduleImport("invoke").getMember("context").getMember("Context")
3134
or
3235
result = API::moduleImport("invoke").getMember("Context")
36+
or
37+
result = ModelOutput::getATypeNode("invoke.context.Context~Subclass").getASubclass*()
3338
}
3439

3540
/** Gets a reference to an instance of `invoke.context.Context`. */

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ private import semmle.python.frameworks.ClickhouseDriver
1919
private import semmle.python.frameworks.Aiohttp
2020
private import semmle.python.frameworks.Fabric
2121
private import semmle.python.frameworks.Httpx
22+
private import semmle.python.frameworks.Invoke
2223
import semmle.python.frameworks.data.internal.ApiGraphModelsExtensions as Extensions
2324

2425
class FlaskViewClasses extends FindSubclassesSpec {
@@ -294,6 +295,14 @@ class HttpxClient extends FindSubclassesSpec {
294295
override API::Node getAlreadyModeledClass() { result = HttpxModel::Client::classRef() }
295296
}
296297

298+
class InvokeContext extends FindSubclassesSpec {
299+
InvokeContext() { this = "invoke.context.Context~Subclass" }
300+
301+
override API::Node getAlreadyModeledClass() {
302+
result = Invoke::InvokeModule::Context::ContextClass::classRef()
303+
}
304+
}
305+
297306
bindingset[fullyQualified]
298307
predicate fullyQualifiedToYamlFormat(string fullyQualified, string type2, string path) {
299308
exists(int firstDot | firstDot = fullyQualified.indexOf(".", 0, 0) |

0 commit comments

Comments
 (0)