Python: More examples of things to handle in find-subclass

This commit is contained in:
Rasmus Wriedt Larsen
2023-10-20 10:23:45 +02:00
parent fa6aec7ae2
commit af2d783b38
2 changed files with 38 additions and 0 deletions

View File

@@ -1,4 +1,10 @@
| flask.MethodView~Subclass | find_subclass_test | Member[MethodView] |
| flask.MethodView~Subclass | find_subclass_test | Member[clash] |
| flask.View~Subclass | find_subclass_test | Member[A] |
| flask.View~Subclass | find_subclass_test | Member[B] |
| flask.View~Subclass | find_subclass_test | Member[ViewAliasInExcept] |
| flask.View~Subclass | find_subclass_test | Member[ViewAliasInTry] |
| flask.View~Subclass | find_subclass_test | Member[ViewAlias] |
| flask.View~Subclass | find_subclass_test | Member[View] |
| flask.View~Subclass | find_subclass_test | Member[clash3] |
| flask.View~Subclass | find_subclass_test | Member[complete_module_alias] |

View File

@@ -8,3 +8,35 @@ class B(A):
ViewAlias = View
try:
from flask.views import View as ViewAliasInTry
except:
from flask.views import View as ViewAliasInExcept
if cond:
from flask.views import View as clash # $ MISSING
else:
from flask.views import MethodView as clash # $ SPURIOUS: MethodView
if cond:
from flask.views import View as clash2 # $ MISSING
else:
from flask.views import MethodView as clash2 # $ MISSING
print(clash2)
if cond:
from flask.views import View as clash3
else:
from flask.views import MethodView as clash3 # $ MISSING
print(clash3)
import flask.views as containing_module_alias # $ MISSING
# now `find_subclass_test.containing_module_alias.View` is an alias of flask.views.View
# NOTE: this is not valid code, since View is not a module... but it could be in some cases, like for xml.etree.ElementTree, which is actually not a class but a module 😕
import flask.views.View as complete_module_alias
def wrapper():
return View # $ MISSING