konradhalas / dacite

Simple creation of data classes from dictionaries.
MIT License
1.72k stars 107 forks source link

Add stricter mypy type check flags #76

Open antonagestam opened 4 years ago

antonagestam commented 4 years ago

This is a somewhat opinionated PR. The added __all__ makes the public API of the package more explicit and enables consumers of the library to type check with no_explicit_reexport = True in mypy. Adding python_version = 3.6 helps finding incompatibilities, such as trying to import Literal from stdlib typing, with mypy. dacite already passes with most of the stricter settings except for one found unnecessary ignore (warn_unused_ignores) and one added type hint in dacite.dataclasses.create_instance(). The exception is the dacite.types module where mypy isn't very successful at inferring return types, so I set warn_return_any = False for that file.

As I said I consider this opinionated, but do feel free to ask for changes if you're interested in some or all of these changes.