fix new mypy findings

This commit is contained in:
David Lord 2021-12-26 07:39:10 -07:00
parent 9dcb94fc2d
commit cdc4f1d0d3
No known key found for this signature in database
GPG Key ID: 7A1C87E3F5BC42A8
12 changed files with 15 additions and 17 deletions

View File

@ -87,6 +87,7 @@ per-file-ignores =
[mypy]
files = src/jinja2
python_version = 3.6
show_error_codes = True
disallow_subclassing_any = True
disallow_untyped_calls = True
disallow_untyped_defs = True

View File

@ -218,7 +218,7 @@ class Frame:
def copy(self) -> "Frame":
"""Create a copy of the current one."""
rv = t.cast(Frame, object.__new__(self.__class__))
rv = object.__new__(self.__class__)
rv.__dict__.update(self.__dict__)
rv.symbols = self.symbols.copy()
return rv

View File

@ -199,7 +199,6 @@ if sys.version_info >= (3, 7):
tb.tb_next = tb_next
return tb
elif platform.python_implementation() == "PyPy":
# PyPy might have special support, and won't work with ctypes.
try:
@ -225,7 +224,6 @@ elif platform.python_implementation() == "PyPy":
return tputil.make_proxy(controller, obj=tb) # type: ignore
else:
# Use ctypes to assign tb_next at the C level since it's read-only
# from Python.

View File

@ -938,7 +938,7 @@ class Environment:
@internalcode
def _load_template(
self, name: str, globals: t.Optional[t.Mapping[str, t.Any]]
self, name: str, globals: t.Optional[t.MutableMapping[str, t.Any]]
) -> "Template":
if self.loader is None:
raise TypeError("no loader for this environment specified")
@ -966,7 +966,7 @@ class Environment:
self,
name: t.Union[str, "Template"],
parent: t.Optional[str] = None,
globals: t.Optional[t.Mapping[str, t.Any]] = None,
globals: t.Optional[t.MutableMapping[str, t.Any]] = None,
) -> "Template":
"""Load a template by name with :attr:`loader` and return a
:class:`Template`. If the template does not exist a
@ -1001,7 +1001,7 @@ class Environment:
self,
names: t.Iterable[t.Union[str, "Template"]],
parent: t.Optional[str] = None,
globals: t.Optional[t.Mapping[str, t.Any]] = None,
globals: t.Optional[t.MutableMapping[str, t.Any]] = None,
) -> "Template":
"""Like :meth:`get_template`, but tries loading multiple names.
If none of the names can be loaded a :exc:`TemplatesNotFound`
@ -1057,7 +1057,7 @@ class Environment:
str, "Template", t.List[t.Union[str, "Template"]]
],
parent: t.Optional[str] = None,
globals: t.Optional[t.Mapping[str, t.Any]] = None,
globals: t.Optional[t.MutableMapping[str, t.Any]] = None,
) -> "Template":
"""Use :meth:`select_template` if an iterable of template names
is given, or :meth:`get_template` if one name is given.
@ -1073,7 +1073,7 @@ class Environment:
def from_string(
self,
source: t.Union[str, nodes.Template],
globals: t.Optional[t.Mapping[str, t.Any]] = None,
globals: t.Optional[t.MutableMapping[str, t.Any]] = None,
template_class: t.Optional[t.Type["Template"]] = None,
) -> "Template":
"""Load a template from a source string without using
@ -1092,7 +1092,7 @@ class Environment:
return cls.from_code(self, self.compile(source), gs, None)
def make_globals(
self, d: t.Optional[t.Mapping[str, t.Any]]
self, d: t.Optional[t.MutableMapping[str, t.Any]]
) -> t.MutableMapping[str, t.Any]:
"""Make the globals map for a template. Any given template
globals overlay the environment :attr:`globals`.

View File

@ -91,7 +91,7 @@ class Extension:
def bind(self, environment: Environment) -> "Extension":
"""Create a copy of this extension bound to another environment."""
rv = t.cast(Extension, object.__new__(self.__class__))
rv = object.__new__(self.__class__)
rv.__dict__.update(self.__dict__)
rv.environment = environment
return rv

View File

@ -84,7 +84,7 @@ class Symbols:
return rv
def copy(self) -> "Symbols":
rv = t.cast(Symbols, object.__new__(self.__class__))
rv = object.__new__(self.__class__)
rv.__dict__.update(self.__dict__)
rv.refs = self.refs.copy()
rv.loads = self.loads.copy()

View File

@ -723,7 +723,7 @@ class Lexer:
# tuples support more options
if isinstance(tokens, tuple):
groups = m.groups()
groups: t.Sequence[str] = m.groups()
if isinstance(tokens, OptionalLStrip):
# Rule supports lstrip. Match will look like

View File

@ -603,7 +603,7 @@ class ModuleLoader(BaseLoader):
if not isinstance(path, abc.Iterable) or isinstance(path, str):
path = [path]
mod.__path__ = [os.fspath(p) for p in path] # type: ignore
mod.__path__ = [os.fspath(p) for p in path]
sys.modules[package_name] = weakref.proxy(
mod, lambda x: sys.modules.pop(package_name, None)

View File

@ -160,7 +160,7 @@ class Parser:
self._last_identifier += 1
rv = object.__new__(nodes.InternalName)
nodes.Node.__init__(rv, f"fi{self._last_identifier}", lineno=lineno)
return rv # type: ignore
return rv
def parse_statement(self) -> t.Union[nodes.Node, t.List[nodes.Node]]:
"""Parse a single statement."""

View File

@ -409,7 +409,7 @@ class ImmutableSandboxedEnvironment(SandboxedEnvironment):
class SandboxedFormatter(Formatter):
def __init__(self, env: Environment, **kwargs: t.Any) -> None:
self._env = env
super().__init__(**kwargs) # type: ignore
super().__init__(**kwargs)
def get_field(
self, field_name: str, args: t.Sequence[t.Any], kwargs: t.Mapping[str, t.Any]

View File

@ -30,7 +30,7 @@ class NodeVisitor:
exists for this node. In that case the generic visit function is
used instead.
"""
return getattr(self, f"visit_{type(node).__name__}", None) # type: ignore
return getattr(self, f"visit_{type(node).__name__}", None)
def visit(self, node: Node, *args: t.Any, **kwargs: t.Any) -> t.Any:
"""Visit a node."""

View File

@ -20,7 +20,6 @@ if sys.version_info < (3, 7):
loop = asyncio.get_event_loop()
return loop.run_until_complete(coro)
else:
def run(coro):