| Server IP : 109.234.162.214 / Your IP : 216.73.216.34 Web Server : Apache System : Linux servd162214.srv.odns.fr 4.18.0-372.26.1.lve.1.el8.x86_64 #1 SMP Fri Sep 16 14:08:19 EDT 2022 x86_64 User : carpe ( 1178) PHP Version : 8.0.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /opt/cloudlinux/venv/lib/python3.11/site-packages/pylint_django/ |
Upload File : |
"""Utils."""
import sys
import astroid
from astroid.bases import Instance
from astroid.exceptions import InferenceError
from astroid.nodes import ClassDef
from pylint_django.compat import Uninferable
PY3 = sys.version_info >= (3, 0) # TODO: pylint_django doesn't support Py2 any more
def node_is_subclass(cls, *subclass_names):
"""Checks if cls node has parent with subclass_name."""
if not isinstance(cls, (ClassDef, Instance)):
return False
if cls.bases == Uninferable:
return False
for base_cls in cls.bases:
try:
for inf in base_cls.inferred():
if inf.qname() in subclass_names:
return True
if inf != cls and node_is_subclass(inf, *subclass_names):
# check up the hierarchy in case we are a subclass of
# a subclass of a subclass ...
return True
except InferenceError:
continue
return False
def is_migrations_module(node):
if not isinstance(node, astroid.Module):
return False
return "migrations" in node.path[0] and not node.path[0].endswith("__init__.py")