diff --git a/docs/types.rst b/docs/types.rst index 890f68ef..1aadea87 100644 --- a/docs/types.rst +++ b/docs/types.rst @@ -35,13 +35,13 @@ Attributes that only carry a class annotation do not have that object so trying Please note that types -- however added -- are *only metadata* that can be queried from the class and they aren't used for anything out of the box! -In practice, their biggest usefulness shows in combination with mypy. +In practice, their biggest usefulness shows in combination with mypy_ or pytype_ that both have dedicated support for ``attrs`` classes. mypy ---- -While having a nice syntax for type metadata is great, it's even greater that `mypy `_ as of 0.570 ships with a dedicated ``attrs`` plugin which allows you to statically check your code. +While having a nice syntax for type metadata is great, it's even greater that mypy_ as of 0.570 ships with a dedicated ``attrs`` plugin which allows you to statically check your code. Imagine you add another line that tries to instantiate the defined class using ``SomeClass("23")``. Mypy will catch that error for you: @@ -68,3 +68,7 @@ To mypy, this code is equivalent to the one above: The addition of static types is certainly one of the most exciting features in the Python ecosystem and helps you writing *correct* and *verified self-documenting* code. If you don't know where to start, Carl Meyer gave a great talk on `Type-checked Python in the Real World `_ at PyCon US 2018 that will help you to get started in no time. + + +.. _mypy: http://mypy-lang.org +.. _pytype: https://google.github.io/pytype/