| .. Mypy documentation master file, created by |
| sphinx-quickstart on Sun Sep 14 19:50:35 2014. |
| You can adapt this file completely to your liking, but it should at least |
| contain the root `toctree` directive. |
| |
| Welcome to mypy documentation! |
| ============================== |
| |
| Mypy is a static type checker for Python. |
| |
| Type checkers help ensure that you're using variables and functions in your code |
| correctly. With mypy, add type hints (:pep:`484`) |
| to your Python programs, and mypy will warn you when you use those types |
| incorrectly. |
| |
| Python is a dynamic language, so usually you'll only see errors in your code |
| when you attempt to run it. Mypy is a *static* checker, so it finds bugs |
| in your programs without even running them! |
| |
| Here is a small example to whet your appetite: |
| |
| .. code-block:: python |
| |
| number = input("What is your favourite number?") |
| print("It is", number + 1) # error: Unsupported operand types for + ("str" and "int") |
| |
| Adding type hints for mypy does not interfere with the way your program would |
| otherwise run. Think of type hints as similar to comments! You can always use |
| the Python interpreter to run your code, even if mypy reports errors. |
| |
| Mypy is designed with gradual typing in mind. This means you can add type |
| hints to your code base slowly and that you can always fall back to dynamic |
| typing when static typing is not convenient. |
| |
| Mypy has a powerful and easy-to-use type system, supporting features such as |
| type inference, generics, callable types, tuple types, union types, |
| structural subtyping and more. Using mypy will make your programs easier to |
| understand, debug, and maintain. |
| |
| .. note:: |
| |
| Although mypy is production ready, there may be occasional changes |
| that break backward compatibility. The mypy development team tries to |
| minimize the impact of changes to user code. In case of a major breaking |
| change, mypy's major version will be bumped. |
| |
| Contents |
| -------- |
| |
| .. toctree:: |
| :maxdepth: 2 |
| :caption: First steps |
| |
| getting_started |
| cheat_sheet_py3 |
| existing_code |
| |
| .. _overview-type-system-reference: |
| |
| .. toctree:: |
| :maxdepth: 2 |
| :caption: Type system reference |
| |
| builtin_types |
| type_inference_and_annotations |
| kinds_of_types |
| class_basics |
| runtime_troubles |
| protocols |
| dynamic_typing |
| type_narrowing |
| duck_type_compatibility |
| stubs |
| generics |
| more_types |
| literal_types |
| typed_dict |
| final_attrs |
| metaclasses |
| |
| .. toctree:: |
| :maxdepth: 2 |
| :caption: Configuring and running mypy |
| |
| running_mypy |
| command_line |
| config_file |
| inline_config |
| mypy_daemon |
| installed_packages |
| extending_mypy |
| stubgen |
| stubtest |
| |
| .. toctree:: |
| :maxdepth: 2 |
| :caption: Miscellaneous |
| |
| common_issues |
| supported_python_features |
| error_codes |
| error_code_list |
| error_code_list2 |
| additional_features |
| faq |
| |
| .. toctree:: |
| :hidden: |
| :caption: Project Links |
| |
| GitHub <https://github.com/python/mypy> |
| Website <https://mypy-lang.org/> |
| |
| Indices and tables |
| ================== |
| |
| * :ref:`genindex` |
| * :ref:`search` |