mirror of
https://github.com/github/codeql.git
synced 2025-12-21 11:16:30 +01:00
Python: Add QLDoc
This commit is contained in:
committed by
yoff
parent
1d4832cbfe
commit
d9854eb409
@@ -221,12 +221,17 @@ private predicate transitively_imported_from_entry_point(File file) {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Holds if the folder `f` is a regular Python package,
|
||||||
|
* containing an `__init__.py` file.
|
||||||
|
*/
|
||||||
private predicate isRegularPackage(Folder f, string name) {
|
private predicate isRegularPackage(Folder f, string name) {
|
||||||
legalShortName(name) and
|
legalShortName(name) and
|
||||||
name = f.getStem() and
|
name = f.getStem() and
|
||||||
exists(f.getFile("__init__.py"))
|
exists(f.getFile("__init__.py"))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Holds if the file `f` could be resolved to a module named `name`. */
|
||||||
private predicate isPotentialModuleFile(File file, string name) {
|
private predicate isPotentialModuleFile(File file, string name) {
|
||||||
legalShortName(name) and
|
legalShortName(name) and
|
||||||
name = file.getStem() and
|
name = file.getStem() and
|
||||||
@@ -239,7 +244,12 @@ private predicate isPotentialModuleFile(File file, string name) {
|
|||||||
name != ""
|
name != ""
|
||||||
}
|
}
|
||||||
|
|
||||||
// See https://peps.python.org/pep-0420/#specification
|
/**
|
||||||
|
* Holds if the folder `f` is a namespace package named `name`.
|
||||||
|
*
|
||||||
|
* See https://peps.python.org/pep-0420/#specification
|
||||||
|
* for details on namespace packages.
|
||||||
|
*/
|
||||||
private predicate isNameSpacePackage(Folder f, string name) {
|
private predicate isNameSpacePackage(Folder f, string name) {
|
||||||
legalShortName(name) and
|
legalShortName(name) and
|
||||||
name = f.getStem() and
|
name = f.getStem() and
|
||||||
@@ -259,22 +269,34 @@ private predicate isNameSpacePackage(Folder f, string name) {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Holds if the folder `f` is a package (either a regular package
|
||||||
|
* or a namespace package) named `name`.
|
||||||
|
*/
|
||||||
private predicate isPackage(Folder f, string name) {
|
private predicate isPackage(Folder f, string name) {
|
||||||
isRegularPackage(f, name)
|
isRegularPackage(f, name)
|
||||||
or
|
or
|
||||||
isNameSpacePackage(f, name)
|
isNameSpacePackage(f, name)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Holds if the file `f` is a module named `name`.
|
||||||
|
*/
|
||||||
private predicate isModuleFile(File file, string name) {
|
private predicate isModuleFile(File file, string name) {
|
||||||
isPotentialModuleFile(file, name) and
|
isPotentialModuleFile(file, name) and
|
||||||
not isPackage(file.getParent(), _)
|
not isPackage(file.getParent(), _)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Holds if the folder `f` is a package named `name`
|
||||||
|
* and does reside inside another package.
|
||||||
|
*/
|
||||||
private predicate isOutermostPackage(Folder f, string name) {
|
private predicate isOutermostPackage(Folder f, string name) {
|
||||||
isPackage(f, name) and
|
isPackage(f, name) and
|
||||||
not isPackage(f.getParent(), _)
|
not isPackage(f.getParent(), _)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Gets the name of the module that `c` resolves to, if any. */
|
||||||
cached
|
cached
|
||||||
string moduleNameFromFile(Container c) {
|
string moduleNameFromFile(Container c) {
|
||||||
// package
|
// package
|
||||||
|
|||||||
Reference in New Issue
Block a user