Skip to content

Commit 3df36ec

Browse files
authored
Merge pull request github#14245 from RasmusWL/minor-modeling-fixup
Python: Modernize modeling of `BaseHTTPRequestHandler`
2 parents 6a2a029 + ad1743e commit 3df36ec

File tree

1 file changed

+106
-40
lines changed

1 file changed

+106
-40
lines changed

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

Lines changed: 106 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1815,51 +1815,95 @@ private module StdlibPrivate {
18151815
// ---------------------------------------------------------------------------
18161816
// BaseHTTPServer (Python 2 only)
18171817
// ---------------------------------------------------------------------------
1818-
/** Gets a reference to the `BaseHttpServer` module. */
1819-
API::Node baseHttpServer() { result = API::moduleImport("BaseHTTPServer") }
1818+
/**
1819+
* DEPRECATED: Use API-graphs directly instead.
1820+
*
1821+
* Gets a reference to the `BaseHttpServer` module.
1822+
*/
1823+
deprecated API::Node baseHttpServer() { result = API::moduleImport("BaseHTTPServer") }
18201824

1821-
/** Provides models for the `BaseHttpServer` module. */
1822-
module BaseHttpServer {
1825+
/**
1826+
* DEPRECATED: Use API-graphs directly instead.
1827+
*
1828+
* Provides models for the `BaseHttpServer` module.
1829+
*/
1830+
deprecated module BaseHttpServer {
18231831
/**
1832+
* DEPRECATED: Use API-graphs directly instead.
1833+
*
18241834
* Provides models for the `BaseHTTPServer.BaseHTTPRequestHandler` class (Python 2 only).
18251835
*/
1826-
module BaseHttpRequestHandler {
1827-
/** Gets a reference to the `BaseHttpServer.BaseHttpRequestHandler` class. */
1828-
API::Node classRef() { result = baseHttpServer().getMember("BaseHTTPRequestHandler") }
1836+
deprecated module BaseHttpRequestHandler {
1837+
/**
1838+
* DEPRECATED: Use API-graphs directly instead.
1839+
*
1840+
* Gets a reference to the `BaseHttpServer.BaseHttpRequestHandler` class.
1841+
*/
1842+
deprecated API::Node classRef() {
1843+
result = baseHttpServer().getMember("BaseHTTPRequestHandler")
1844+
}
18291845
}
18301846
}
18311847

18321848
// ---------------------------------------------------------------------------
18331849
// SimpleHTTPServer (Python 2 only)
18341850
// ---------------------------------------------------------------------------
1835-
/** Gets a reference to the `SimpleHttpServer` module. */
1836-
API::Node simpleHttpServer() { result = API::moduleImport("SimpleHTTPServer") }
1851+
/**
1852+
* DEPRECATED: Use API-graphs directly instead.
1853+
*
1854+
* Gets a reference to the `SimpleHttpServer` module.
1855+
*/
1856+
deprecated API::Node simpleHttpServer() { result = API::moduleImport("SimpleHTTPServer") }
18371857

1838-
/** Provides models for the `SimpleHttpServer` module. */
1839-
module SimpleHttpServer {
1858+
/**
1859+
* DEPRECATED: Use API-graphs directly instead.
1860+
*
1861+
* Provides models for the `SimpleHttpServer` module.
1862+
*/
1863+
deprecated module SimpleHttpServer {
18401864
/**
1865+
* DEPRECATED: Use API-graphs directly instead.
1866+
*
18411867
* Provides models for the `SimpleHTTPServer.SimpleHTTPRequestHandler` class (Python 2 only).
18421868
*/
1843-
module SimpleHttpRequestHandler {
1844-
/** Gets a reference to the `SimpleHttpServer.SimpleHttpRequestHandler` class. */
1845-
API::Node classRef() { result = simpleHttpServer().getMember("SimpleHTTPRequestHandler") }
1869+
deprecated module SimpleHttpRequestHandler {
1870+
/**
1871+
* DEPRECATED: Use API-graphs directly instead.
1872+
*
1873+
* Gets a reference to the `SimpleHttpServer.SimpleHttpRequestHandler` class.
1874+
*/
1875+
deprecated API::Node classRef() {
1876+
result = simpleHttpServer().getMember("SimpleHTTPRequestHandler")
1877+
}
18461878
}
18471879
}
18481880

18491881
// ---------------------------------------------------------------------------
18501882
// CGIHTTPServer (Python 2 only)
18511883
// ---------------------------------------------------------------------------
1852-
/** Gets a reference to the `CGIHTTPServer` module. */
1853-
API::Node cgiHttpServer() { result = API::moduleImport("CGIHTTPServer") }
1884+
/**
1885+
* DEPRECATED: Use API-graphs directly instead.
1886+
*
1887+
* Gets a reference to the `CGIHTTPServer` module.
1888+
*/
1889+
deprecated API::Node cgiHttpServer() { result = API::moduleImport("CGIHTTPServer") }
18541890

18551891
/** Provides models for the `CGIHTTPServer` module. */
1856-
module CgiHttpServer {
1892+
deprecated module CgiHttpServer {
18571893
/**
1894+
* DEPRECATED: Use API-graphs directly instead.
1895+
*
18581896
* Provides models for the `CGIHTTPServer.CGIHTTPRequestHandler` class (Python 2 only).
18591897
*/
1860-
module CgiHttpRequestHandler {
1861-
/** Gets a reference to the `CGIHTTPServer.CgiHttpRequestHandler` class. */
1862-
API::Node classRef() { result = cgiHttpServer().getMember("CGIHTTPRequestHandler") }
1898+
deprecated module CgiHttpRequestHandler {
1899+
/**
1900+
* DEPRECATED: Use API-graphs directly instead.
1901+
*
1902+
* Gets a reference to the `CGIHTTPServer.CgiHttpRequestHandler` class.
1903+
*/
1904+
deprecated API::Node classRef() {
1905+
result = cgiHttpServer().getMember("CGIHTTPRequestHandler")
1906+
}
18631907
}
18641908

18651909
/** DEPRECATED: Alias for CgiHttpRequestHandler */
@@ -1872,47 +1916,69 @@ private module StdlibPrivate {
18721916
// ---------------------------------------------------------------------------
18731917
// http (Python 3 only)
18741918
// ---------------------------------------------------------------------------
1875-
/** Gets a reference to the `http` module. */
1876-
API::Node http() { result = API::moduleImport("http") }
1919+
/**
1920+
* DEPRECATED: Use API-graphs directly instead.
1921+
*
1922+
* Gets a reference to the `http` module.
1923+
*/
1924+
deprecated API::Node http() { result = API::moduleImport("http") }
18771925

18781926
/** Provides models for the `http` module. */
1879-
module StdlibHttp {
1927+
deprecated module StdlibHttp {
18801928
// -------------------------------------------------------------------------
18811929
// http.server
18821930
// -------------------------------------------------------------------------
1883-
/** Gets a reference to the `http.server` module. */
1884-
API::Node server() { result = http().getMember("server") }
1931+
/**
1932+
* DEPRECATED: Use API-graphs directly instead.
1933+
*
1934+
* Gets a reference to the `http.server` module.
1935+
*/
1936+
deprecated API::Node server() { result = http().getMember("server") }
18851937

1886-
/** Provides models for the `http.server` module */
1887-
module Server {
1938+
/**
1939+
* DEPRECATED: Use API-graphs directly instead.
1940+
*
1941+
* Provides models for the `http.server` module
1942+
*/
1943+
deprecated module Server {
18881944
/**
1945+
* DEPRECATED: Use API-graphs directly instead.
1946+
*
18891947
* Provides models for the `http.server.BaseHTTPRequestHandler` class (Python 3 only).
18901948
*
18911949
* See https://docs.python.org/3.9/library/http.server.html#http.server.BaseHTTPRequestHandler.
18921950
*/
1893-
module BaseHttpRequestHandler {
1951+
deprecated module BaseHttpRequestHandler {
18941952
/** Gets a reference to the `http.server.BaseHttpRequestHandler` class. */
1895-
API::Node classRef() { result = server().getMember("BaseHTTPRequestHandler") }
1953+
deprecated API::Node classRef() { result = server().getMember("BaseHTTPRequestHandler") }
18961954
}
18971955

18981956
/**
1957+
* DEPRECATED: Use API-graphs directly instead.
1958+
*
18991959
* Provides models for the `http.server.SimpleHTTPRequestHandler` class (Python 3 only).
19001960
*
19011961
* See https://docs.python.org/3.9/library/http.server.html#http.server.SimpleHTTPRequestHandler.
19021962
*/
1903-
module SimpleHttpRequestHandler {
1963+
deprecated module SimpleHttpRequestHandler {
19041964
/** Gets a reference to the `http.server.SimpleHttpRequestHandler` class. */
1905-
API::Node classRef() { result = server().getMember("SimpleHTTPRequestHandler") }
1965+
deprecated API::Node classRef() { result = server().getMember("SimpleHTTPRequestHandler") }
19061966
}
19071967

19081968
/**
1969+
* DEPRECATED: Use API-graphs directly instead.
1970+
*
19091971
* Provides models for the `http.server.CGIHTTPRequestHandler` class (Python 3 only).
19101972
*
19111973
* See https://docs.python.org/3.9/library/http.server.html#http.server.CGIHTTPRequestHandler.
19121974
*/
1913-
module CgiHttpRequestHandler {
1914-
/** Gets a reference to the `http.server.CGIHTTPRequestHandler` class. */
1915-
API::Node classRef() { result = server().getMember("CGIHTTPRequestHandler") }
1975+
deprecated module CgiHttpRequestHandler {
1976+
/**
1977+
* DEPRECATED: Use API-graphs directly instead.
1978+
*
1979+
* Gets a reference to the `http.server.CGIHTTPRequestHandler` class.
1980+
*/
1981+
deprecated API::Node classRef() { result = server().getMember("CGIHTTPRequestHandler") }
19161982
}
19171983

19181984
/** DEPRECATED: Alias for CgiHttpRequestHandler */
@@ -1933,13 +1999,13 @@ private module StdlibPrivate {
19331999
result =
19342000
[
19352001
// Python 2
1936-
BaseHttpServer::BaseHttpRequestHandler::classRef(),
1937-
SimpleHttpServer::SimpleHttpRequestHandler::classRef(),
1938-
CgiHttpServer::CgiHttpRequestHandler::classRef(),
2002+
API::moduleImport("BaseHTTPServer").getMember("BaseHTTPRequestHandler"),
2003+
API::moduleImport("SimpleHTTPServer").getMember("SimpleHTTPRequestHandler"),
2004+
API::moduleImport("CGIHTTPServer").getMember("CGIHTTPRequestHandler"),
19392005
// Python 3
1940-
StdlibHttp::Server::BaseHttpRequestHandler::classRef(),
1941-
StdlibHttp::Server::SimpleHttpRequestHandler::classRef(),
1942-
StdlibHttp::Server::CgiHttpRequestHandler::classRef()
2006+
API::moduleImport("http").getMember("server").getMember("BaseHTTPRequestHandler"),
2007+
API::moduleImport("http").getMember("server").getMember("SimpleHTTPRequestHandler"),
2008+
API::moduleImport("http").getMember("server").getMember("CGIHTTPRequestHandler"),
19432009
].getASubclass*()
19442010
}
19452011

0 commit comments

Comments
 (0)