Files
pydantic/setup.cfg
T
PrettyWood 794d0bccf9 feat: add basic support for python 3.9 (#1844)
* feat: use partially get_origin and get_args from typing

Rework of d86a184072655d93652d6ea941421005f34de962 by @hmvp
We cannot directly use `typing.get_origin` and `typing.get_args` for
our custom types for which args and origin are wrong by default.
But at least we now have a unified behaviour, which can be improved
in the near future

* feat: add fallback in `get_args` for generics in python 3.9

* feat: add new `_evaluate` for python 3.9

In python 3.9, `typing._evaluate` has a new required
positional argument `recursive_guard`

* chore: add pragma no cover for python 3.9 fallbacks

* chore: add change file

* chore: add comments

* feat(ci): add python 3.9 support

* fix: mypy assumption is wrong
2020-10-18 20:36:18 +01:00

69 lines
1.4 KiB
INI

[tool:pytest]
testpaths = tests
filterwarnings =
error
ignore::DeprecationWarning:distutils
[flake8]
max-line-length = 120
max-complexity = 14
inline-quotes = single
multiline-quotes = double
ignore = E203, W503
per-file-ignores =
docs/examples/schema_unenforced_constraints.py: F811
docs/examples/validation_decorator_async.py: E402
docs/examples/types_constrained.py: F722
[bdist_wheel]
python-tag = py36.py37.py38.py39
[coverage:run]
source = pydantic
branch = True
[coverage:report]
precision = 2
exclude_lines =
pragma: no cover
raise NotImplementedError
raise NotImplemented
if TYPE_CHECKING:
@overload
[isort]
line_length=120
known_first_party=pydantic
multi_line_output=3
include_trailing_comma=True
force_grid_wrap=0
combine_as_imports=True
[mypy]
show_error_codes = True
follow_imports = silent
strict_optional = True
warn_redundant_casts = True
warn_unused_ignores = True
disallow_any_generics = True
check_untyped_defs = True
no_implicit_reexport = True
warn_unused_configs = True
disallow_subclassing_any = True
disallow_incomplete_defs = True
disallow_untyped_decorators = True
disallow_untyped_calls = True
# for strict mypy: (this is the tricky one :-))
disallow_untyped_defs = True
# remaining arguments from `mypy --strict` which cause errors
;no_implicit_optional = True
;warn_return_any = True
[mypy-email_validator]
ignore_missing_imports = true
[mypy-dotenv]
ignore_missing_imports = true