How can mypy ignore a single line in a source file?
Interview Questions practice on Codemia
Over 8,000 real interview questions from top companies, searchable by company and role.
Introduction
If you want mypy to ignore one specific line, the standard tool is an inline # type: ignore comment on that line. That tells mypy to suppress type errors there without disabling checking for the rest of the function, file, or project.
Use # type: ignore on the Exact Line
The simplest form looks like this:
Mypy will skip the type error on that line only.
This is useful when:
- a third-party library has incomplete type hints
- dynamic behavior is intentional and hard to express cleanly
- you are migrating legacy code gradually
The key benefit is scope. You are suppressing exactly one line instead of weakening type checking for a whole file.
Prefer Error-Code-Specific Ignores When Possible
Mypy also supports targeted ignores that specify which error code should be suppressed. This is better than a blanket ignore because it documents intent and prevents unrelated type errors on the same line from being hidden.
Example:
Now only the arg-type complaint is ignored. If another kind of mypy problem appears on that line later, mypy can still report it.
This is usually the best long-term style for production code because it keeps suppressions narrow and self-explanatory.
Use the Ignore Only Where the Dynamic Behavior Lives
A common mistake is placing # type: ignore far away from the actual type problem. The cleaner approach is to attach it to the line that mypy is flagging.
For example, if the issue is a missing attribute on a third-party object:
That makes it obvious what you are suppressing and why.
Another good pattern is to isolate the dynamic part in a small helper function rather than scattering ignores across business logic:
This keeps the rest of the codebase more strictly typed.
Know When an Ignore Is the Wrong Fix
Sometimes # type: ignore is a helpful escape hatch. Sometimes it is covering up a typing problem that should be solved properly.
For example, this code should probably be typed, not ignored:
If mypy complains later, adding an ignore is not the best solution. A proper annotation is:
Likewise, if a library lacks stubs, adding a protocol, cast, or better wrapper may be cleaner than a permanent ignore.
So the right question is not only "how do I silence mypy here," but also "is this line truly exceptional enough to deserve an ignore."
Common Pitfalls
The biggest mistake is using plain # type: ignore everywhere instead of narrowing the suppression to a specific error code. Broad ignores hide more than you intend.
Another issue is leaving old ignore comments behind after the code has been refactored. Over time, those comments can mask new problems that no longer deserve suppression.
Developers also sometimes place the comment on the wrong line and then wonder why mypy still reports the error. The ignore must be attached to the exact line mypy is checking.
Finally, do not use inline ignores as a substitute for writing real types. If the code can be expressed accurately with annotations, casts, protocols, or wrappers, that is usually the better fix.
Summary
- The standard way to ignore one line in mypy is
# type: ignore. - Prefer targeted forms such as
# type: ignore[arg-type]when possible. - Put the ignore on the exact line that triggers the error.
- Use ignores for genuinely exceptional dynamic cases, not as a default typing strategy.
- Revisit old ignore comments periodically so they do not become permanent blind spots.
Related reading
- How can the Euclidean distance be calculated with NumPy?
- How can we force naming of parameters when calling a function?
- How could I use aws lambda to write file to s3 python?
- How could I use requests in asyncio?
- How did Python implement the built-in function pow?
- How do I abort the execution of a Python script?
- How do I access the ith column of a NumPy multidimensional array?
- How do I add a path to PYTHONPATH in virtualenv
.png&w=3840&q=75)
Tackling System Design Interview Problems
A short course that equips you with the skills to approach system design interviews methodically.
Start the free courseTrack what you have practised
A free account saves your progress, solutions and study plan across every problem on Codemia.
Interview Questions practice on Codemia
Over 8,000 real interview questions from top companies, searchable by company and role.