Skip to content

Commit 6458248

Browse files
authored
Revert "Use parse_bool implementation from mypy" (#1792)
* Revert "Use `parse_bool` implementation from mypy" This reverts commit a6b3ba9 * Add comment
1 parent 0ce571e commit 6458248

File tree

3 files changed

+12
-4
lines changed

3 files changed

+12
-4
lines changed

mypy_django_plugin/lib/helpers.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@
3535
SemanticAnalyzerPluginInterface,
3636
)
3737
from mypy.semanal import SemanticAnalyzer
38-
from mypy.semanal_shared import parse_bool
3938
from mypy.types import AnyType, Instance, LiteralType, NoneTyp, TupleType, TypedDictType, TypeOfAny, UnionType
4039
from mypy.types import Type as MypyType
4140
from typing_extensions import TypedDict
@@ -176,6 +175,16 @@ def make_optional(typ: MypyType) -> MypyType:
176175
return UnionType.make_union([typ, NoneTyp()])
177176

178177

178+
# Duplicating mypy.semanal_shared.parse_bool because importing it directly caused ImportError (#1784)
179+
def parse_bool(expr: Expression) -> Optional[bool]:
180+
if isinstance(expr, NameExpr):
181+
if expr.fullname == "builtins.True":
182+
return True
183+
if expr.fullname == "builtins.False":
184+
return False
185+
return None
186+
187+
179188
def has_any_of_bases(info: TypeInfo, bases: Iterable[str]) -> bool:
180189
for base_fullname in bases:
181190
if info.has_base(base_fullname):

mypy_django_plugin/transformers/fields.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@
66
from django.db.models.fields.reverse_related import ForeignObjectRel
77
from mypy.nodes import AssignmentStmt, NameExpr, TypeInfo
88
from mypy.plugin import FunctionContext
9-
from mypy.semanal_shared import parse_bool
109
from mypy.types import AnyType, Instance, ProperType, TypeOfAny, UnionType
1110
from mypy.types import Type as MypyType
1211

1312
from mypy_django_plugin.django.context import DjangoContext
1413
from mypy_django_plugin.exceptions import UnregisteredModelError
1514
from mypy_django_plugin.lib import fullnames, helpers
15+
from mypy_django_plugin.lib.helpers import parse_bool
1616
from mypy_django_plugin.transformers import manytomany
1717

1818
if TYPE_CHECKING:

mypy_django_plugin/transformers/querysets.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,13 @@
77
from django.db.models.fields.reverse_related import ForeignObjectRel
88
from mypy.nodes import ARG_NAMED, ARG_NAMED_OPT, Expression
99
from mypy.plugin import FunctionContext, MethodContext
10-
from mypy.semanal_shared import parse_bool
1110
from mypy.types import AnyType, Instance, TupleType, TypedDictType, TypeOfAny, get_proper_type
1211
from mypy.types import Type as MypyType
1312

1413
from mypy_django_plugin.django.context import DjangoContext, LookupsAreUnsupported
1514
from mypy_django_plugin.lib import fullnames, helpers
1615
from mypy_django_plugin.lib.fullnames import ANY_ATTR_ALLOWED_CLASS_FULLNAME
17-
from mypy_django_plugin.lib.helpers import is_annotated_model_fullname
16+
from mypy_django_plugin.lib.helpers import is_annotated_model_fullname, parse_bool
1817
from mypy_django_plugin.transformers.models import get_or_create_annotated_type
1918

2019

0 commit comments

Comments
 (0)