Revision history¶
List of major changes (the Mypy Blog contains more detailed release notes):
- May 2018
- Publish
mypy
version 0.600 on PyPI.- Enable strict optional checking by default.
- Document disabling strict optional checking.
- Add Mypy daemon (mypy server).
- Add Using a remote cache to speed up mypy runs.
- Support user-specific configuration file (docs).
- Changes to section pattern semantics in configuration files (docs and more docs).
- Publish
- April 2018
- Publish
mypy
version 0.590 on PyPI.- Document PEP 561 support.
- Made incremental mode the default.
- Document
--always-true
and--always-false
(docs). - Document
follow_imports_for_stubs
(docs). - Add coroutines to Python 3 cheat sheet.
- Add
None
return/strict-optional to common issues. - Clarify that
SupportsInt
etc. don’t support arithmetic operations (see docs).
- Publish
- March 2018
- Publish
mypy
version 0.580 on PyPI.- Allow specifying multiple packages on the command line with
-p
and-m
flags.
- Allow specifying multiple packages on the command line with
- Publish
mypy
version 0.570 on PyPI.- Add support for The attrs package.
- Publish
- December 2017
- Publish
mypy
version 0.560 on PyPI.- Various types in
typing
that used to be ABCs are now protocols and support structural subtyping. - Explain how to silence invalid complaints by linters about unused imports due to type comments.
- Various types in
- Publish
- November 2017
- Publish
mypy
version 0.550 on PyPI.- Running mypy now requires Python 3.4 or higher.
However Python 3.3 is still valid for the target
of the analysis (i.e. the
--python-version
flag). - Split
--disallow-any
flag into separate boolean flags. - The
--old-html-report
flag was removed.
- Running mypy now requires Python 3.4 or higher.
However Python 3.3 is still valid for the target
of the analysis (i.e. the
- Publish
- October 2017
- Publish
mypy
version 0.540 on PyPI. - Publish
mypy
version 0.530 on PyPI.
- Publish
- August-September 2017
- Add Protocols and structural subtyping.
- Other updates to The mypy command line:
- Add
--warn-unused-configs
. - Add
--disallow-untyped-decorators
. - Add
--disallow-incomplete-defs
.
- Add
- July 2017
- Publish
mypy
version 0.521 on PyPI. - Publish
mypy
version 0.520 on PyPI. - Add fine-grained control of Any types.
- Add TypedDict.
- Other updates to The mypy command line:
- Add
--no-implicit-optional
. - Add
--shadow-file
. - Add
--no-incremental
.
- Add
- Publish
- May 2017
- Publish
mypy
version 0.510 on PyPI. - Remove option
--no-fast-parser
. - Deprecate option
--strict-boolean
. - Drop support for Python 3.2 as type checking target.
- Add support for overloaded functions with implementations.
- Add Extended Callable types.
- Add Asynchronous generators (PEP 525) and comprehensions (PEP 530).
- Add ClassVar.
- Add quick mode.
- Publish
- March 2017
- Publish
mypy
version 0.500 on PyPI. - Add The NoReturn type.
- Add Defining sub-classes of generic classes.
- Add Variance of generic types.
- Add Invariance vs covariance.
- Updates to New features in Python 3.6.
- Updates to Integrating mypy into another Python application.
- Updates to The mypy command line:
- Add option
--warn-return-any
. - Add option
--strict-boolean
. - Add option
--strict
.
- Add option
- Updates to The mypy configuration file:
warn_no_return
is on by default.- Read settings from
setup.cfg
ifmypy.ini
does not exist. - Add option
warn_return_any
. - Add option
strict_boolean
.
- Publish
- January 2017
- Publish
mypy
version 0.470 on PyPI. - Change package name from
mypy-lang
tomypy
. - Add Integrating mypy into another Python application.
- Add Type hints cheat sheet (Python 3).
- Major update to How imports are found.
- Add –ignore-missing-imports.
- Updates to The mypy configuration file.
- Document underscore support in numeric literals.
- Document that arguments prefixed with
__
are positional-only. - Document that
--hide-error-context
is now on by default, and there is a new flag--show-error-context
. - Add
ignore_errors
to Per-module flags.
- Publish
- November 2016
- Publish
mypy-lang
version 0.4.6 on PyPI. - Add Getting started.
- Add Generic methods and generic self (experimental).
- Add Declaring decorators.
- Discuss generic type aliases in Type aliases.
- Discuss Python 3.6 named tuple syntax in Named tuples.
- Updates to Common issues and solutions.
- Updates to New features in Python 3.6.
- Updates to The mypy command line:
--custom-typeshed-dir
--junit-xml
--find-occurrences
--cobertura-xml-report
--warn-no-return
- Updates to The mypy configuration file:
- Sections with fnmatch patterns now use module name patterns (previously they were path patterns).
- Added
custom_typeshed_dir
,mypy_path
andshow_column_numbers
.
- Mention the magic
MYPY
constant in Import cycles.
- Publish
- October 2016
- Publish
mypy-lang
version 0.4.5 on PyPI. - Add New features in Python 3.6.
- Add The mypy configuration file.
- Updates to The mypy command line:
--strict-optional-white-list
,--disallow-subclassing-any
,--config-file
,@flagfile
,--hide-error-context
(replaces--suppress-error-context
),--show-column-numbers
and--scripts-are-modules
. - Mention
typing.TYPE_CHECKING
in Import cycles.
- Publish
- August 2016
- Publish
mypy-lang
version 0.4.4 on PyPI. - Add NewTypes.
- Add Typing async/await.
- Add Text and AnyStr.
- Add Python version and system platform checks.
- Publish
- July 2016
- Publish
mypy-lang
version 0.4.3 on PyPI. - Add strict optional checking.
- Add Multi-line Python 2 function annotations.
- Publish
- June 2016
- Publish
mypy-lang
version 0.4.2 on PyPI. - Add The type of class objects.
- Add Type hints cheat sheet (Python 2).
- Add Displaying the type of an expression.
- Publish
- May 2016
- Publish
mypy-lang
version 0.4 on PyPI. - Add Type variables with upper bounds.
- Document The mypy command line.
- Publish
- Feb 2016
- Publish
mypy-lang
version 0.3.1 on PyPI. - Document Python 2 support.
- Publish
- Nov 2015
- Add Library stubs and typeshed.
- Jun 2015
- Remove
Undefined
andDynamic
, as they are not in PEP 484.
- Apr 2015
- Publish
mypy-lang
version 0.2.0 on PyPI.
- Mar 2015
- Update documentation to reflect PEP 484:
- Add Named tuples and Optional types.
- Do not mention type application syntax (for
example,
List[int]()
), as it’s no longer supported, due to PEP 484 compatibility. - Rename
typevar
toTypeVar
. - Document
# type: ignore
which allows locally ignoring spurious errors (Spurious errors and locally silencing the checker). - No longer mention
Any(x)
as a valid cast, as it will be phased out soon. - Mention the new
.pyi
stub file extension. Stubs can live in the same directory as the rest of the program.
- Jan 2015
- Mypy moves closer to PEP 484:
- Add Type aliases.
- Update discussion of overloading – it’s now only supported in stubs.
- Rename
Function[...]
toCallable[...]
.
- Dec 2014
- Publish mypy version 0.1.0 on PyPI.
- Oct 2014
- Major restructuring. Split the HTML documentation into multiple pages.
- Sep 2014
- Migrated docs to Sphinx.
- Aug 2014
- Don’t discuss native semantics. There is only Python semantics.
- Jul 2013
- Rewrite to use new syntax. Shift focus to discussing Python semantics. Add more content, including short discussions of Generic functions and Union types.